#!/bin/sh
exec rep "$0" "$@"
!#;; Source file: themer.jl
(validate-byte-code 9 0)

(setq backtrace-on-error (quote (bad-arg missing-arg void-value invalid-function)))
(defvar version "0.28")
(defvar glade-file "/usr/share/sawfish/0.28/themer.glade")
(defvar locale-dir "/usr/share/sawfish/0.28/locale")
(jade-byte-code "	] 	 	H
H	v" [locale-dir "sawfish" get-command-line-option "--disable-nls" file-directory-p require gettext bindtextdomain textdomain] 3)
(require (quote gtk))
(require (quote libglade))
(defvar sawfish-client-program "sawfish-client")
(defvar reload-themes-after-saving t)
(defvar filter-when-saving nil)
(defvar help-launcher nil)
(defvar preferences-attrs (jade-byte-code "	**	***v" [boolean _ reload-themes-after-saving "Reload themes in window manager after saving." filter-when-saving "Remove unused definitions when saving."] 5))
(defvar frame-part-classes (quote (title menu-button close-button iconify-button maximize-button top-border left-border right-border bottom-border top-left-corner top-right-corner bottom-left-corner bottom-right-corner)))
(defvar frame-part-attrs (jade-byte-code "K*Kv" [class symbol frame-part-classes ((left-edge (optional number)) (right-edge (optional number)) (top-edge (optional number)) (bottom-edge (optional number)) (width (optional (number 1))) (height (optional (number 1))) (background (or pattern color)) (foreground (or pattern color)) (font (optional font)) (text (or (symbol window-name window-icon-name) string)) (x-justify (or (symbol left right center) number)) (y-justify (or (symbol top bottom center) number)) (cursor (optional symbol)) (removable boolean) (below-client boolean))] 3))
(defvar pattern-type (quote (or color image)))
(defvar pattern-attrs (jade-byte-code "v" [(inactive focused highlighted inactive-highlighted clicked inactive-clicked)] 1))
(defvar pattern-classes (quote (background foreground)))
(defvar image-attrs (jade-byte-code "				
	-**Kv" [list* labelled _ (number) border optional v-and "[left]" "[right]" "[top]" "[bottom]" ((tiled boolean))] 10))
(defvar window-types (quote (default transient shaped shaped-transient unframed)))
(defvar and-direction (quote horizontal))
(defvar current-filename nil)
(defvar xml (jade-byte-code "	 

 -	
D68	 $8 
E -	
	v" [glade-file file-exists-p glade-xml-new "top-level-window" expand-file-name "themer.glade" file-name-directory load-filename file error "can't open file themer.glade"] 4))
(defvar theme-name-entry (jade-byte-code "
v" [glade-xml-get-widget xml "theme-name-entry"] 3))
(defvar theme-dir-entry (jade-byte-code "
v" [glade-xml-get-widget xml "theme-dir-entry"] 3))
(defvar theme-about-text (jade-byte-code "
v" [glade-xml-get-widget xml "theme-about-text"] 3))
(defvar theme-name (quote unnamed))
(defvar patterns-name-entry (jade-byte-code "
v" [glade-xml-get-widget xml "patterns-name-entry"] 3))
(defvar patterns-clist (jade-byte-code "
v" [glade-xml-get-widget xml "patterns-clist"] 3))
(defvar patterns-table (jade-byte-code "
v" [glade-xml-get-widget xml "patterns-table"] 3))
(defvar patterns-changed-hook nil)
(defvar patterns-item-alist nil)
(defvar patterns-selection nil)
(defvar patterns-alist nil)
(defvar frames-name-clist (jade-byte-code "
v" [glade-xml-get-widget xml "frames-name-clist"] 3))
(defvar frames-frame (jade-byte-code "
v" [glade-xml-get-widget xml "frames-frame"] 3))
(defvar frames-part-table-viewport (jade-byte-code "
v" [glade-xml-get-widget xml "frames-part-table-viewport"] 3))
(defvar frames-part-clist (jade-byte-code "
v" [glade-xml-get-widget xml "frames-part-clist"] 3))
(defvar frames-alist nil)
(defvar frame-selection nil)
(defvar frame-part-selection nil)
(defvar frame-part-table-items nil)
(defvar mapping-combo-hbox (jade-byte-code "
v" [glade-xml-get-widget xml "mapping-combo-hbox"] 3))
(defvar mapping-from-combo (jade-byte-code "
v" [glade-xml-get-widget xml "mapping-from-combo"] 3))
(defvar mapping-to-combo (jade-byte-code "
v" [glade-xml-get-widget xml "mapping-to-combo"] 3))
(defvar mapping-clist (jade-byte-code "
v" [glade-xml-get-widget xml "mapping-clist"] 3))
(defvar mapping-alist nil)
(defvar mapping-selection nil)
(defvar preview-window nil)
(defvar saved-variables (quote (patterns-alist frames-alist mapping-alist theme-name)))
(jade-byte-code "x] 	Fv" [quotient /] 2)
(defmacro mapseq #[(fun minimum maximum) "9*)8+:K+v" [__mapseq-i__ let list* while < (__mapseq-i__) ((setq __mapseq-i__ (1+ __mapseq-i__)))] 7])
(defmacro save-entry-contents #[(entry &rest forms) "9**)8K9++v" [let __save_entry_text__ gtk-entry-get-text unwind-protect progn list* gtk-entry-set-text (__save_entry_text__)] 8])
(defmacro with-clist-frozen #[(clist &rest forms) "9*8K9*++v" [progn gtk-clist-freeze unwind-protect gtk-clist-thaw] 6])
(defun make-item #[(cell callback) "D9L 9F0zF2 8:;Mv9
v" [type item-maker maker apply error "No item type %s"] 5])
(defun set-item-enabled #[(item enabled) "9	8
v" [set-widget-enabled widget] 3])
(defun make-symbol-item #[(changed-callback &rest options) "D18	:H9 89K
HCv" [gtk-combo-new widget gtk-signal-connect gtk-combo-entry "changed" gtk-combo-set-popdown-strings "" symbol-name #[(op) "8a 	Cv8a Cv8a Cv8a $9v8a -v" [set #[(x) ":	8 8	 
v" [gtk-entry-set-text gtk-combo-entry symbol-name ""] 4] clear #[nil "9	
v" [gtk-entry-set-text gtk-combo-entry ""] 3] get #[nil "9			v" [string-to-symbol gtk-entry-get-text gtk-combo-entry] 4] widget validp symbolp] 2]] 5])
(put (quote symbol) (quote item-maker) make-symbol-item)
(defun make-string-item #[(changed-callback) "D189HCv" [gtk-entry-new widget gtk-signal-connect "changed" #[(op) "8a 	Cv8a Cv8a Cv8a $9v8a -v" [set #[(x) ":8
v" [gtk-entry-set-text] 3] clear #[nil "9
v" [gtk-entry-set-text ""] 3] get #[nil "9	DF1` 
Iv8v" [gtk-entry-get-text text ""] 3] widget validp stringp] 2]] 4])
(put (quote string) (quote item-maker) make-string-item)
(defun make-number-item #[(changed-callback &optional minimum maximum) "9 
8 D28;HCv" [gtk-spin-button-new gtk-adjustment-new widget gtk-signal-connect "changed" #[(op) "8a 	Cv8a v8a Cv8a #9v8a ,v" [set #[(x) "8p 	:8
v" [gtk-spin-button-set-value] 3] clear nop get #[nil "9	v" [gtk-spin-button-get-value-as-int] 2] widget validp numberp] 2]] 8])
(put (quote number) (quote item-maker) make-number-item)
(defun make-boolean-item #[(changed-callback &optional label) "8 
8	 D28:HCv" [gtk-check-button-new-with-label gtk-check-button-new widget gtk-signal-connect "toggled" #[(op) "8a 	Cv8a Cv8a Cv8a $9v8a .Cv" [set #[(x) ":8
v" [gtk-toggle-button-set-state] 3] clear #[nil "9I
v" [gtk-toggle-button-set-state] 3] get #[nil "9	v" [gtk-toggle-button-active] 2] widget validp #[nil "Jv" [] 1]] 2]] 4])
(put (quote boolean) (quote item-maker) make-boolean-item)
(defun make-color-item #[(changed-callback) "DI08	28CHCv" [value button-new-with-color button gtk-signal-connect "clicked" #[nil "		D6: 8		:	
H
8	CH8	CH8
CH8		H8	H8	v" [gtk-signal-connect "clicked" #[nil "8	v" [gtk-widget-destroy] 2] gtk-color-selection-dialog-new _ "Select color" colorsel gtk-color-selection-set-color-interp gtk-color-selection-dialog-colorsel gdk-color-parse-interp gtk-color-selection-dialog-ok-button #[nil "8		DF2 I8	8	8	
:;
H<H	9	v" [gtk-color-selection-get-color-interp gtk-color-selection-dialog-colorsel color format "#%04x%04x%04x" gdk-color-red gdk-color-green gdk-color-blue set-button-color gtk-widget-destroy] 8] gtk-color-selection-dialog-cancel-button "delete_event" gtk-widget-hide gtk-color-selection-dialog-help-button gtk-widget-show gtk-grab-add] 4] #[(op) "8a 	Cv8a Cv8a Cv8a $9v8a .Cv" [set #[(x) "8:;
v" [set-button-color] 3] clear #[nil "I9I
v" [set-button-color] 3] get #[nil ":v" [] 1] widget validp #[(x) "8q 	8
v" [string-match "^#"] 3]] 2]] 4])
(put (quote color) (quote item-maker) make-color-item)
(defun make-font-item #[(changed-callback) "DI
35		6	:9
H:8
H9
;H8CH
Cv" [gtk-box-pack-start gtk-signal-connect gtk-hbox-new box gtk-entry-new entry gtk-button-new-with-label _ "Browse..." button "changed" "clicked" #[nil "		D68:	
H	8	
CH8	CH8CH
8	H8	v" [gtk-signal-connect "clicked" #[nil "8	v" [gtk-widget-destroy] 2] gtk-font-selection-dialog-new _ "Select font" fontsel gtk-font-selection-dialog-set-font-name gtk-entry-get-text gtk-font-selection-dialog-ok-button #[nil ":8	
H8	v" [gtk-entry-set-text gtk-font-selection-dialog-get-font-name gtk-widget-destroy] 4] gtk-font-selection-dialog-cancel-button "delete_event" gtk-widget-show gtk-grab-add] 4] #[(op) "8a 	Cv8a Cv8a Cv8a $;v8a .Cv" [set #[(x) ";8q 8
v" [gtk-entry-set-text] 3] clear #[nil ":
v" [gtk-entry-set-text ""] 3] get #[nil ":	DF1q 8v" [gtk-entry-get-text text] 3] widget validp #[(x) "8] 8qv" [] 1]] 2]] 4])
(put (quote font) (quote item-maker) make-font-item)
(defun make-pattern-item #[(changed-callback) "D18	9HC
HCv" [gtk-combo-new widget gtk-signal-connect gtk-combo-entry "changed" add-hook patterns-changed-hook #[nil "ID8		D3 9	8
H + 
u9K
EI 
v" [gtk-combo-entry frame-part-selection gtk-entry-get-text __save_entry_text__ gtk-entry-set-text gtk-combo-set-popdown-strings "" car patterns-alist] 6] #[(op) "8a 	Cv8a Cv8a Cv8a $9v8a .Cv" [set #[(x) ":	8
v" [gtk-entry-set-text gtk-combo-entry] 3] clear #[nil "9	
v" [gtk-entry-set-text gtk-combo-entry ""] 3] get #[nil "9		DF2 8v" [gtk-entry-get-text gtk-combo-entry string patterns-alist] 4] widget validp #[(x) "8q 8v" [patterns-alist] 2]] 2]] 4])
(put (quote pattern) (quote item-maker) make-pattern-item)
(defun make-image-item #[(changed-callback) "I
				ID6	6
666
8;JFH89IFH8:IFH9CH:CH;=HCv" [gtk-box-pack-start gtk-signal-connect gtk-button-new-with-label _ "clicked" gtk-hbox-new "Browse..." "Properties..." gtk-entry-new properties entry p-button button widget #[nil "		D68<	
H	8	
CH8	CH8CH
8	H8	v" [gtk-signal-connect "clicked" #[nil "8	v" [gtk-widget-destroy] 2] gtk-file-selection-new _ "Select Image" filesel gtk-file-selection-set-filename gtk-entry-get-text gtk-file-selection-ok-button #[nil "8	D19	H=8
v" [gtk-file-selection-get-filename file gtk-widget-destroy gtk-entry-set-text] 3] gtk-file-selection-cancel-button "delete_event" gtk-grab-add gtk-widget-show] 4] #[nil "D
68
69	
6
TI6
C6C6C6>9H>8H<	 ZFLD68	 W=8
EHM F=	
H<;JFH;
H;
HD6 8DF6 <PM!	8<PL>
M	H=\"#8<PL		8FhH=8<PM$	8FhEH8h8;Tf EH%=	H&=	v" ["props-dialog" glade-xml-get-widget image-attrs glade-xml-signal-connect gtk-table-attach-defaults glade-xml-new glade-file props-xml window "props-vbox" vbox gtk-table-new table #[(cell) "8L8
Kv" [make-item nop] 4] items #[nil "C8	ID1 8>

I>
F EH>
H;	v" [#[(x) "8L8M	Kv" [get] 3] tem gtk-widget-destroy] 2] on-props-ok #[nil "<	v" [gtk-widget-destroy] 2] on-props-cancel "on-props-ok" "on-props-cancel" gtk-container-children w gtk-label-p gtk-container-remove gtk-window-set-title _ "Image Properties" gtk-box-pack-start gtk-table-set-col-spacings gtk-table-set-row-spacings __mapseq-i__ i set gtk-label-new symbol-name widget gtk-widget-show-all gtk-grab-add] 8] "changed" #[(op) "8a 	Cv8a Cv8a Cv8a $9v8a .Cv" [set #[(x) "=8L
H8MFv" [gtk-entry-set-text] 3] clear #[nil "<
HIFv" [gtk-entry-set-text ""] 3] get #[nil "<	DF1` 
Iv8>Kv" [gtk-entry-get-text text ""] 3] widget validp #[(x) "8o 8Lqv" [] 1]] 2]] 5])
(put (quote image) (quote item-maker) make-image-item)
(defun make-or-item #[(changed-callback &rest items) "C8DI
3C95C:6;TI
6	I6
C6
C6D6 k8D68>PCH>8>P
H8>P8>P
H8>P8>	P	
EH8h8>Tf 4EH9HCv" [gtk-box-pack-start #[(x) "8:
v" [make-item] 3] gtk-vbox-new box #[nil "I
v" [gtk-hbox-new] 3] hboxes #[nil "v" [gtk-check-button-new] 1] checks make-list enabled enabled-item #[nil "C=D1> (FLD28:8a
H9<P:8a
H9hFEHM 
E>v" [#[(x) "98av" [] 2] i x set-item-enabled gtk-toggle-button-set-state] 5] refresh-item #[(index) "8>P:a 8<P	 8<P	 8>PFH9v" [gtk-toggle-button-active] 3] toggle-fun __mapseq-i__ i gtk-signal-connect "toggled" #[nil ":8	v" [] 2] widget #[(op) "8a 	Cv8a Cv8a Cv8a %>v8a /Cv" [set #[(x) "8 	F e< \"<	8	 \"<	8	 es e uD3 N8DF4>P	:	 I8>PF	:	HJtEH8h8>
Tf ,EHI	8	EH;v" [validp set done __mapseq-i__ i message format _ "No matching item for %S"] 6] clear #[nil "I> FLDF0	EHM :v" [item clear] 4] get #[nil "; ;	v" [get] 2] widget validp #[(x) " s 2 uD1 (8DF2>P	:	 #JtEH8h8>
Tf EEv" [out __mapseq-i__ i validp] 3]] 2]] 4])
(put (quote or) (quote item-maker) make-or-item)
(defun make-and-item #[(changed-callback &rest items) "C8a  I
D5D6 08D6:8;P		
EH8h8:Tf EH
Cv" [#[(x) "8:
v" [make-item] 3] and-direction horizontal gtk-hbox-new gtk-vbox-new box __mapseq-i__ i gtk-box-pack-start widget #[(op) "8a 	Cv8a Cv8a Cv8a $9v8a .Cv" [set #[(x) "D0 8DF1=P	8:P	EH8h8<Tf v" [__mapseq-i__ i set] 4] clear #[nil ": FLDF0	EHM Iv" [x clear] 4] get #[nil "C:v" [#[(x) "8	v" [get] 2]] 2] widget validp #[(x) "8] F8o 8T;T` Ivs F uD1 ;8DF2=P	8:P	] 6ItEH8h8<Tf #EHEJv" [out __mapseq-i__ i validp] 4]] 2]] 4])
(put (quote and) (quote item-maker) make-and-item)
(put (quote h-and) (quote item-maker) (lambda (&rest args) (let ((and-direction (quote horizontal))) (apply make-and-item args))))
(put (quote v-and) (quote item-maker) (lambda (&rest args) (let ((and-direction (quote vertical))) (apply make-and-item args))))
(defun make-labelled-item #[(changed-callback label item) "I
D29;
89	
H8:	
H8	HCv" [gtk-box-pack-start gtk-hbox-new box make-item widget gtk-label-new gtk-widget-show-all #[(op) "8a 9v:8	v" [widget] 2]] 4])
(put (quote labelled) (quote item-maker) make-labelled-item)
(defun make-optional-item #[(changed-callback item) "I
D45:;
89
H8:	
H9	CH
9I
H:	I
HCv" [gtk-box-pack-start widget gtk-hbox-new gtk-check-button-new check box make-item gtk-signal-connect "toggled" #[nil ":	9	
H;v" [set-widget-enabled widget gtk-toggle-button-active] 4] gtk-toggle-button-set-state set-widget-enabled #[(op) "8a 	Cv8a Cv8a Cv8a $9v8a .Cv" [set #[(x) "8 	<	8	H<	8
H;8
v" [set set-widget-enabled widget gtk-toggle-button-set-state] 3] clear #[nil ";	H;	I
H:I
v" [clear set-widget-enabled widget gtk-toggle-button-set-state] 3] get #[nil ":	 
;	v" [gtk-toggle-button-active get] 2] widget validp #[(x) "8] 
<	8	v" [validp] 2]] 2]] 4])
(put (quote optional) (quote item-maker) make-optional-item)
(defun update-theme-name #[nil " 	 

v" [theme-name gtk-entry-set-text theme-name-entry symbol-name ""] 4])
(defun on-theme-name-entry-changed #[nil "		F#v" [string-to-symbol gtk-entry-get-text theme-name-entry theme-name] 3])
(defun clear-readme-text #[nil "
H	
v" [theme-about-text gtk-text-set-point gtk-text-forward-delete gtk-text-get-length] 4])
(defun write-readme-file #[(dir) "	8

D669 0 #	9	H 0 u98
EI v" [theme-about-text write gtk-editable-get-chars gtk-text-get-length open-file expand-file-name "README" file text close-file] 5])
(defun read-readme-file #[(dir) "D8
28	 8
F6 L !8	H L uID6	H =
IFF8FTH9	F 0EEI v" [expand-file-name "README" readme file-exists-p open-file read file close-file line clear-readme-text gtk-text-insert theme-about-text read-line] 9])
(defun patterns-format-pattern #[(pattern) "8MFq 
8v8n 8L	vv" [file-name-nondirectory ""] 3])
(defun patterns-format-list #[(lst) "8LCv" [apply vector #[(attr) "89MDF0 8	vv" [elt patterns-format-pattern ""] 3] pattern-attrs] 5])
(defun patterns-update-all #[nil "	H 	H ` u WFLDF5M IFLDF6DF6q E8	] E E9M	8
	
NEEHM 8	
EHM EIF v" [patterns-clist current-filename gtk-clist-freeze gtk-clist-thaw patterns-alist cell elt name file-name-absolute-p expand-file-name file-name-directory gtk-clist-append patterns-format-list] 9])
(defun on-patterns-add #[nil "D
F5)68)
 	8	
H
TiH	H
I	9	v" [patterns-alist patterns-clist make-new-name "pattern" car name elt nconc gtk-clist-append patterns-format-list gtk-clist-select-row call-hook patterns-changed-hook message format _ "Added pattern `%s'"] 6])
(defun on-patterns-copy #[nil "Iv" [] 1])
(defun on-patterns-delete #[nil " D2I 8P!	H8
Ev" [patterns-selection patterns-alist row call-hook patterns-changed-hook gtk-clist-remove patterns-clist] 3])
(defun on-patterns-clist-select-row #[(widget row col) "9a] <9PDF2 78L
H .FLDF6M	8L9MM	EHM 	J
EH9F v" [patterns-selection patterns-alist cell gtk-entry-set-text patterns-name-entry patterns-item-alist attr set set-widget-enabled patterns-table] 5])
(defun on-patterns-clist-unselect-row #[nil "I 
H FLDF5M	EHM I
v" [patterns-selection gtk-entry-set-text patterns-name-entry "" patterns-item-alist attr clear set-widget-enabled patterns-table] 4])
(defun on-patterns-entry-changed #[nil "H	v" [patterns-update-alist call-hook patterns-changed-hook] 2])
(defun patterns-update-alist #[nil " wP	CD66	6
9HD6 :8D68h
8<P	EH8h8;Tf %EH9` MIFHID6; hFLDF6M e89KFEHM V89:NH98OEEv" [patterns-selection gtk-clist-set-text patterns-clist patterns-alist gtk-entry-get-text patterns-name-entry #[(attr) "8L8M	Kv" [get] 3] patterns-item-alist values name cell __mapseq-i__ i patterns-format-pattern "" attrs attr] 8])
(defun create-patterns-items #[nil "C D4 &8D58PM	8h8VEH8h8Tf EH	Hv" [patterns-item-alist patterns-table #[(attr) "8
Kv" [make-item pattern-type patterns-update-alist] 4] pattern-attrs __mapseq-i__ i gtk-table-attach-defaults widget gtk-widget-show-all] 8])
(defmacro current-frame #[nil "v" [(and frame-selection (nth frame-selection frames-alist))] 1])
(defun frames-update-all #[nil "I%I&	H 	H U u	H %	H P u	H	H GFLD6	
8L	
EHM 6EIF EI v" [frames-name-clist frames-part-clist gtk-clist-freeze gtk-clist-thaw clist-delete-all frame-selection frame-part-selection frames-alist cell gtk-clist-append vector] 7])
(defun on-frames-add #[nil "		DF4 98] 98))
 8	
H	H
	H
I	8	v" [frames-alist _ string-dialog "Frame name" name nconc gtk-clist-append frames-name-clist vector update-frame-names-clist call-hook frames-changed-hook message format "Added frame `%s'"] 6])
(defun on-frames-copy #[nil " I		PMD5F6 H8] H89	K)
 	
8	
HH
	HI	8	Ev" [frames-alist frame-selection _ string-dialog "Frame name" src name nconc copy-tree gtk-clist-append frames-name-clist vector update-frame-names-clist call-hook frames-changed-hook message format "Added frame `%s'"] 6])
(defun on-frames-delete #[nil " D2I 8P!	H8
Ev" [frame-selection frames-alist row call-hook frames-changed-hook gtk-clist-remove frames-name-clist] 3])
(defun on-frames-name-clist-select #[(w row col) "9a] W9  PL
H	H $	H Q u	H 4PM HFLD6	
8	
EHM 8EIF HJ
v" [frame-selection frames-part-clist frames-frame frames-alist gtk-frame-set-label gtk-clist-freeze gtk-clist-thaw clist-delete-all part gtk-clist-append frame-part-columns set-widget-enabled] 6])
(defun on-frames-name-clist-unselect #[nil "D PMTi4I 
H	H $	H ? u 4	8
H8i8e +EI H
I
v" [frame-selection frames-part-clist frames-frame frames-alist i gtk-frame-set-label "" gtk-clist-freeze gtk-clist-thaw gtk-clist-remove set-widget-enabled] 4])
(defun update-frame-names-clist #[nil "D1	H 	H 6 
u -FLD598LH9hFEHM EIF 
v" [frames-name-clist i gtk-clist-freeze gtk-clist-thaw frames-alist frame gtk-clist-set-text] 7])
(defun frame-part-columns #[(part) "8C8D208 8M	 	9 (I9 *	
v" [class #[(x) "8La]v" [class] 2] rest vector symbol-name _ "<none>" format "%S" "()"] 6])
(defun update-frame-part #[nil " (D 
PMP58	68SH8SEv" [frame-part-selection frame-selection gtk-clist-set-text frames-part-clist frames-alist part frame-part-columns vec] 6])
(defun on-frames-part-clist-select #[(w row col) "9a] 9 HJ
v" [frame-part-selection update-frame-part-table set-widget-enabled frames-part-table-viewport] 3])
(defun on-frames-part-clist-unselect #[nil "D1I HI
v" [frame-part-selection row clear-frame-part-table set-widget-enabled frames-part-table-viewport] 3])
(defun on-frames-add-part #[nil " PDF3 ,(D499M8)
OH8	
H9MTiEv" [frame-selection frames-part-clist frames-alist frame part nconc gtk-clist-append frame-part-columns gtk-clist-select-row] 5])
(defun on-frames-delete-part #[nil " ! PD34I 898MP8MOH9
Ev" [frame-part-selection frame-selection frames-alist row frame gtk-clist-remove frames-part-clist] 3])
(defun update-frame-part-table #[nil " ; ;D P38MPF4 6FLDF5LMDF6 28	9M	EEHM EIv" [frame-selection frame-part-selection frames-alist frame part cell frame-part-table-items item set] 4])
(defun clear-frame-part-table #[nil " FLDF1M	EHM Iv" [frame-part-table-items cell clear] 4])
(defun on-frame-part-attr-changed #[(item) "8 a8 PD569 ` `D9MP69L86<	F6	 O9 >9=	O [<MQ;L=	K:KN [9 [<MQ9:NH
EEv" [frame-part-selection get frame-selection frame-part-table-items frames-alist frame attr part cell value update-frame-part] 5])
(defun create-frame-part-table #[nil "DTI669
H	9
HI  }FLD6
I
I
ID666
;C
;L:KK 8;L		
H9:	JFH=8<FhH=9<FhH<hFEEHM  	 FLD68
EHM 9
H
,
H9	H9v" [frame-part-table-items frames-part-table-viewport frame-part-attrs gtk-hbox-new gtk-table-attach-defaults gtk-table-new table row gtk-table-set-row-spacings gtk-table-set-col-spacings attr item r-box l-box make-item #[nil ":	v" [on-frame-part-attr-changed] 2] gtk-box-pack-end gtk-label-new symbol-name gtk-box-pack-start widget gtk-container-children x gtk-container-remove gtk-container-add gtk-paned-set-position glade-xml-get-widget xml "frames-part-vpaned" gtk-widget-show-all] 8])
(defun mappings-update-all #[nil "	H 	H 8 u	H /FLD58L	8M

EHM EIF v" [mapping-clist gtk-clist-freeze gtk-clist-thaw clist-delete-all mapping-alist cell gtk-clist-append vector symbol-name] 7])
(defun on-mapping-add #[nil "C
	D68K)
 	
8	

HTiH
	HI	8	v" [mapping-alist "" mapping-clist intern make-new-name "type" #[(x) "8L	v" [symbol-name] 2] name nconc gtk-clist-append vector symbol-name gtk-clist-select-row call-hook mappings-changed-hook message format _ "Added frame type `%s'"] 5])
(defun on-mapping-delete #[nil " D2I 8P!	H8
Ev" [mapping-selection mapping-alist row call-hook mappings-changed-hook gtk-clist-remove mapping-clist] 3])
(defun on-mapping-from-changed #[nil " (P			D669 '89NH	
8L	Ev" [mapping-selection mapping-alist string-to-symbol gtk-entry-get-text gtk-combo-entry mapping-from-combo sym cell gtk-clist-set-text mapping-clist symbol-name] 6])
(defun on-mapping-to-changed #[nil " PDF2		OH8MEv" [mapping-selection mapping-alist cell gtk-entry-get-text gtk-combo-entry mapping-to-combo gtk-clist-set-text mapping-clist] 6])
(defun on-mapping-clist-select #[(w row col) "9 J
H	PL	
H	PM
v" [mapping-selection gtk-entry-set-text gtk-combo-entry mapping-alist set-widget-enabled mapping-combo-hbox mapping-from-combo symbol-name mapping-to-combo] 5])
(defun on-mapping-clist-unselect #[nil "I#	
H	
HI
v" [gtk-entry-set-text gtk-combo-entry "" mapping-selection mapping-from-combo mapping-to-combo set-widget-enabled mapping-combo-hbox] 3])
(defun mapping-update-combos #[nil "ID		D4 	8
H * u	
EI EH		D4 @	8
H U 6u
K
EI 6v" [gtk-combo-entry mapping-from-combo mapping-to-combo gtk-entry-get-text __save_entry_text__ gtk-entry-set-text gtk-combo-set-popdown-strings mapping-selection symbol-name window-types "" car frames-alist] 6])
(add-hook (quote frames-changed-hook) mapping-update-combos)
(defun on-preview #[nil "**	*,+	D6
8
 2
I			v] U
 E	D68	H8
F!Ev" [quote preview-window "preview-window" sawfish-eval progn (require (quote make-theme-preview)) make-theme-preview patterns-alist frames-alist mapping-alist output string-match "^error-->(.*)
" message format _ "error while building frame: %S" expand-last-match "\\1" glade-xml-new glade-file error "something happened" preview-xml glade-xml-signal-autoconnect glade-xml-get-widget] 8])
(defun on-preview-close #[nil " 	HIF v" [preview-window gtk-widget-destroy] 2])
(defun filter-unused-frames #[(frames mappings) "C9v" [#[(x) "8L9v" [] 2]] 2])
(defun filter-unused-patterns #[(old-patterns frames) "IFD01: HFLDF2M CFLDF3 >FLDF4L ;8M>F ;<;] ;<;KFEHM EM EM 	8v" [tem patterns frame part cell pattern-classes] 6])
(defun print-list #[(lst indent) "8 
D458(
H A;Ln &8;L:h

 -8;LH;MFn @8

H89
H;n ; P8;H8)
H	8	v" [write format make-string-output-stream make-string leader stream print-list "%S" " . %S" get-output-stream-string] 6])
(defun update-all #[nil "HHHv" [update-theme-name patterns-update-all frames-update-all mappings-update-all] 1])
(defun set-current-filename #[(file) "8 8 8	 
v" [current-filename gtk-entry-set-text theme-dir-entry file-name-directory ""] 4])
(defun save-to-file #[(filename) " | I8	  u8
DF6  .8	H  &u8	
H8
H8
H8
HD6 8L	DF6n r:9L8
 z:9L8EH8MF 9
H8 UEH8
H8H8
H8
HI	9	EI &EEGHv" [write format message file-error "%S" data open-file file close-file ";; theme file, written %s
" current-time-string ";; created by sawfish-themer -- DO NOT EDIT!

" "(require 'make-theme)

" "(let
    (" saved-variables ptr symbol-value value "(%s
      '%s)" print-list "(%s '%S)" "

     " ")

" "  (add-frame-style
   theme-name %S)
" (make-theme patterns-alist frames-alist mapping-alist) "  (when (boundp 'mark-frame-style-editable)
" "    (mark-frame-style-editable theme-name)))
" _ "Saved as `%s'"] 10])
(defun generate-patterns #[(patterns dir) "C9v" [#[(pat) "8LC8MKv" [#[(cell) "8MDF3n aD8L48	<
69	 '8	 '9
H98`] R8	 A	9	8	
 R
98
HI
98	H8	:MK;L:KFEH9v" [file-exists-p file-name-nondirectory file-modtime elt from expand-file-name to error "No such image: %s" time-later-p copy-file message format "%s -> %s/%s"] 7]] 3]] 2])
(defun generate-theme #[(dir) "8	 8	] 8
H8	] 8	H	8
	H
 ;
!

F H8
D	EH8	HI	8	H m**	v" [patterns-alist frames-alist file-exists-p file-directory-p error "Not a directory: %s" make-directory set-current-filename expand-file-name "theme.jl" filter-when-saving filter-unused-frames mapping-alist filter-unused-patterns generate-patterns save-to-file current-filename write-readme-file message format _ "Generated theme in directory `%s'" reload-themes-after-saving sawfish-eval-async reload-frame-style quote theme-name] 5])
(defun new-theme #[nil "	H 	H  u	EI H	H )	H 5 \"u	EI \"H	H D	H P =u	EI =H aFLDF6IAEHM V&	
Hv" [gtk-clist-freeze patterns-clist gtk-clist-thaw clist-delete-all frames-name-clist mapping-clist saved-variables sym unnamed theme-name clear-readme-text update-all] 5])
(defun load-from-file #[(filename) "H8
DF3  8	H r u '| #I jI u8	DF6La e8 UFLDF6L	 R8L8AEHM ?
I
	:	EH ,EGHEI H9	H9		Hv" [read new-theme open-file file close-file end-of-stream form let cell saved-variables message format _ "Read theme from `%s'" set-current-filename read-readme-file file-name-directory update-all] 8])
(defun on-save #[nil " 
		vv" [current-filename generate-theme file-name-directory on-save-as] 3])
(defun on-save-as #[nil "	 	
DF5 8	v" [current-filename file-dialog _ "Theme Directory" file-name-directory dir generate-theme] 5])
(defun do-open #[(file) "8	 8
	 8
F 	H 1| $I8	 ;	 u
8	EGHv" [expand-file-name "theme.jl" error file-directory-p file-exists-p "Can only load from directories with theme.jl files" message format "%S" data load-from-file] 6])
(defun on-open #[nil "	
DF4 8	v" [file-dialog _ "Open" current-filename file do-open] 4])
(defun on-new-theme #[nil "I	Hv" [set-current-filename new-theme] 2])
(defun save-preferences #[nil "	] 
	H
DF6 H !8	H H u ?FLD6	
98L8L	EHM *EIF v" ["~/.sawfish" file-exists-p make-directory open-file "~/.sawfish/themer-prefs" write file close-file preferences-attrs x format "(setq %s '%S)
" symbol-value] 9])
(defun load-preferences #[nil "	 JFFv" ["~/.sawfish/themer-prefs" file-exists-p load] 5])
(defun on-settings-preferences #[nil "D
58
69
6	C
6C6
C6=9H=8H;
H<	
H;	 _FLD68	 \\<8
EHM K: FLDF6M	8L		H<8M	
EHM f<	H <	v" ["props-dialog" glade-xml-get-widget glade-xml-signal-connect glade-xml-new glade-file props-xml window "props-vbox" vbox #[(cell) "8L8
Kv" [make-item nop] 4] preferences-attrs items #[nil "8 FLDF0L8M	AEHM H:	v" [x get save-preferences gtk-widget-destroy] 5] on-props-ok #[nil ";	v" [gtk-widget-destroy] 2] on-props-cancel "on-props-ok" "on-props-cancel" gtk-container-border-width gtk-window-set-title _ "Preferences" gtk-container-children w gtk-label-p gtk-container-remove x set symbol-value gtk-box-pack-start widget gtk-widget-show-all gtk-grab-add] 6])
(defun gnome-help-launcher #[(node) "8M 8
I8	v" [((frames . "Frame_Basics") (classes . "Frame_Part_Classes") (defs . "Frame_Part_Definition") (themes . "Themes")) error "No help for %s!" system format "gnome-help-browser 'info:sawfish#%s' &"] 5])
(setq help-launcher gnome-help-launcher)
(defun on-help-window-frames #[nil "	v" [help-launcher frames] 2])
(defun on-help-frame-classes #[nil "	v" [help-launcher classes] 2])
(defun on-help-frame-part-definitions #[nil "	v" [help-launcher defs] 2])
(defun on-help-themes #[nil "	v" [help-launcher themes] 2])
(defun on-help-about #[nil "D
 	68
69
6	
C6;
8H9I
H:	v" ["about-dialog" glade-xml-get-widget glade-xml-new glade-file error "Can't create about dialog" about-xml window "about-label" label #[nil "9	v" [gtk-widget-destroy] 2] on-about-ok glade-xml-signal-connect "on-about-ok" gtk-label-set format "Sawfish Themer %s

Copyright (C) 2000 John Harper
<jsh@users.sourceforge.net>

This program allows window manager
themes for sawfish to be created
through a GUI.
" version gtk-grab-add] 6])
(defun on-quit #[nil "tv" [quit] 2])
(defun copy-tree #[(tree) "IFFD012 6;Ln ;L	 ;L9 +9:IKOH9MF 2:IKFFH;M;n 
9 E9;OH8v;v" [tem ptr out copy-tree] 4])
(defun string-to-symbol #[(string) " | I I u8	DF2y 8EEGHv" [error read-from-string data] 4])
(defun make-new-name #[(stem lst) "D2 	8hI:89 I:8v" [format "%s%d" i] 5])
(defun string-dialog #[(title) "D
 	68
69	
6
:
6
C6C6C6>9H>8H=>
H;>
H=	H _=	H y Wu ls t fuEEI Wv" [glade-xml-get-widget "string-dialog" glade-xml-signal-connect glade-xml-new glade-file error "Can't create string-dialog widget" string-xml window "string-dialog-entry" entry "string-dialog-label" label #[(x) "8tv" [string-dialog-out] 2] finished #[nil "8:		v" [gtk-entry-get-text] 3] on-string-dialog-ok #[nil "9I	v" [] 2] on-string-dialog-cancel "on-string-dialog-ok" "on-string-dialog-cancel" gtk-window-set-title gtk-label-set gtk-grab-add gtk-widget-destroy string-dialog-out recursive-edit] 4])
(defun file-dialog #[(title &optional start) "9	D49 
89
H8	CH8	CH8	CH
8	H8	H @8	H Z 8u M
s U GuEEI 8v" [gtk-signal-connect "clicked" #[nil "Itv" [filesel-out] 2] gtk-file-selection-new filesel gtk-file-selection-set-filename gtk-file-selection-ok-button #[nil "8	tv" [filesel-out gtk-file-selection-get-filename] 3] gtk-file-selection-cancel-button "delete_event" gtk-grab-add gtk-widget-show gtk-widget-destroy filesel-out recursive-edit] 4])
(jade-byte-code "ID45	H		H
	H
v" [remove-message mark-symbol-defined message append-message message-text message-count (lambda nil (let ((statusbar (glade-xml-get-widget xml "statusbar"))) (while (> message-count 0) (gtk-statusbar-pop statusbar 1) (setq message-count (1- message-count))) (setq message-text nil))) "remove-message" (lambda (string) (let ((statusbar (glade-xml-get-widget xml "statusbar"))) (remove-message) (gtk-statusbar-push statusbar 1 string) (setq message-count (1+ message-count)) (setq message-text nil))) "message" (lambda (string) (let ((new (concat message-text string))) (remove-message) (message new))) "append-message" add-hook idle-hook] 3)
(defun set-button-label #[(button text) "9	 FLD18	 89
EHM Iv" [gtk-container-children w gtk-label-p gtk-label-set] 4])
(defun clist-delete-all #[(clist) " 8
H8	d v" [gtk-clist-remove gtk-clist-rows] 3])
(defun set-widget-enabled #[(w enabled) "98
v" [gtk-widget-set-sensitive] 3])
(defvar color-preview-width 28)
(defvar color-preview-height 16)
(defun set-preview-color #[(preview color) "Y	ID23 @89Y:	 ~RH89Yh:	 ~RH89YV:	 ~RH9h9f  W;89
H9h9f Kv" [color-preview-width make-string i buf gdk-color-red gdk-color-green gdk-color-blue gtk-preview-draw-row color-preview-height] 6])
(defun button-new-with-color #[(color-name) "	8 8	ID40569	H: %
9:
H89
H8v" [color gtk-button-new gtk-preview-new gdk-color-parse-interp i preview button gtk-preview-size color-preview-width color-preview-height set-preview-color gtk-container-add] 4])
(defun set-button-color #[(button color-name) "8 8	DF1 -:	 )FLD38	 &89
H8	EHM Iv" [gdk-color-parse-interp color gtk-container-children w gtk-preview-p set-preview-color gtk-widget-draw-interp] 5])
(defun sawfish-eval #[(form &optional read-back) "D18	3J8II	;
k -
9	: +9	v9v
	v" [make-string-output-stream output make-process process print-escape call-process sawfish-client-program "-e" format "%S" get-output-stream-string read-from-string error "can't call sawfish-client"] 9])
(defun sawfish-eval-async #[(form) "I	JD28II9k] !	
	v" [make-process print-escape process call-process sawfish-client-program "-q" "-e" format "%S" error "can't call sawfish-client"] 10])
(load-preferences)
(update-theme-name)
(create-patterns-items)
(on-patterns-clist-unselect-row)
(on-frames-name-clist-unselect)
(on-frames-part-clist-unselect)
(on-mapping-clist-unselect)
(mapping-update-combos)
(create-frame-part-table)
(gtk-clist-set-column-auto-resize frames-part-clist 1 t)
(glade-xml-signal-autoconnect xml)
(jade-byte-code " L	 L	HMF v" [command-line-args file-exists-p do-open] 2)
(setq interrupt-mode (quote exit))
(recursive-edit)
