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

(setq backtrace-on-error (quote (bad-arg missing-arg void-value invalid-function)))
(defvar version "0.24")
(defvar glade-file "/usr/share/sawmill/0.24/themer.glade")
(defvar locale-dir "/usr/share/sawmill/0.24/locale")
(jade-byte-code "	] 	 	H
H	" [locale-dir "sawmill" get-command-line-option "--disable-nls" file-directory-p require gettext bindtextdomain textdomain] 3)
(require (quote libglade))
(defvar sawmill-client-program "sawmill-client")
(defvar reload-themes-after-saving t)
(defvar filter-when-saving nil)
(defvar help-launcher nil)
(defvar preferences-attrs (jade-byte-code "	**	***" [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*K" [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 "" [(inactive focused highlighted inactive-highlighted clicked inactive-clicked)] 1))
(defvar pattern-classes (quote (background foreground)))
(defvar image-attrs (jade-byte-code "				
	-**K" [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 "	 

 -D	
1	 $ 
E -	
	" [glade-file file file-exists-p glade-xml-new "top-level-window" expand-file-name "themer.glade" file-name-directory load-filename error "can't open file themer.glade"] 4))
(defvar theme-name-entry (jade-byte-code "
" [glade-xml-get-widget xml "theme-name-entry"] 3))
(defvar theme-dir-entry (jade-byte-code "
" [glade-xml-get-widget xml "theme-dir-entry"] 3))
(defvar theme-about-text (jade-byte-code "
" [glade-xml-get-widget xml "theme-about-text"] 3))
(defvar theme-name (quote unnamed))
(defvar patterns-name-entry (jade-byte-code "
" [glade-xml-get-widget xml "patterns-name-entry"] 3))
(defvar patterns-clist (jade-byte-code "
" [glade-xml-get-widget xml "patterns-clist"] 3))
(defvar patterns-table (jade-byte-code "
" [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 "
" [glade-xml-get-widget xml "frames-name-clist"] 3))
(defvar frames-frame (jade-byte-code "
" [glade-xml-get-widget xml "frames-frame"] 3))
(defvar frames-part-table-viewport (jade-byte-code "
" [glade-xml-get-widget xml "frames-part-table-viewport"] 3))
(defvar frames-part-clist (jade-byte-code "
" [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 "
" [glade-xml-get-widget xml "mapping-combo-hbox"] 3))
(defvar mapping-from-combo (jade-byte-code "
" [glade-xml-get-widget xml "mapping-from-combo"] 3))
(defvar mapping-to-combo (jade-byte-code "
" [glade-xml-get-widget xml "mapping-to-combo"] 3))
(defvar mapping-clist (jade-byte-code "
" [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)))
(defmacro mapseq #[(fun minimum maximum) "*)+K	+" [__mapseq-i__ let minimum list* while < maximum fun (__mapseq-i__) ((setq __mapseq-i__ (1+ __mapseq-i__)))] 7])
(defmacro save-entry-contents #[(entry &rest forms) "**)K	++" [entry let __save_entry_text__ gtk-entry-get-text unwind-protect progn forms list* gtk-entry-set-text (__save_entry_text__)] 8])
(defun make-item #[(cell callback) "DL F1zF2 M 
E" [cell type maker item-maker apply callback error "No item type %s"] 5])
(defun set-item-enabled #[(item enabled) "	
" [set-widget-enabled item widget enabled] 3])
(defun make-symbol-item #[(changed-callback &rest options) "D0	H 	K
H
CE" [widget options gtk-combo-new gtk-signal-connect gtk-combo-entry "changed" changed-callback gtk-combo-set-popdown-strings "" symbol-name #[(op) "a C 6a C 6a #C 6a - 6a 6	" [op widget set #[(x) "	 	 
" [x gtk-entry-set-text gtk-combo-entry widget symbol-name ""] 4] clear #[nil "	
" [gtk-entry-set-text gtk-combo-entry widget ""] 3] get #[nil "			" [string-to-symbol gtk-entry-get-text gtk-combo-entry widget] 4] validp symbolp] 2]] 5])
(put (quote symbol) (quote item-maker) make-symbol-item)
(defun make-string-item #[(changed-callback) "D0HCE" [widget gtk-entry-new gtk-signal-connect "changed" changed-callback #[(op) "a C 6a C 6a #C 6a - 6a 6	" [op widget set #[(x) "
" [gtk-entry-set-text widget x] 3] clear #[nil "
" [gtk-entry-set-text widget ""] 3] get #[nil "D	F0` I E" [text gtk-entry-get-text widget ""] 3] validp stringp] 2]] 4])
(put (quote string) (quote item-maker) make-string-item)
(defun make-number-item #[(changed-callback &optional minimum maximum) "D  0HCE" [widget gtk-spin-button-new gtk-adjustment-new minimum maximum gtk-signal-connect "changed" changed-callback #[(op) "a C 5a  5a \"C 5a , 5a 5	" [op widget set #[(x) "p 	
" [x gtk-spin-button-set-value widget] 3] clear nop get #[nil "	" [gtk-spin-button-get-value-as-int widget] 2] validp numberp] 2]] 8])
(put (quote number) (quote item-maker) make-number-item)
(defun make-boolean-item #[(changed-callback &optional label) "D 	 
1HCE" [label widget gtk-check-button-new-with-label gtk-check-button-new gtk-signal-connect "toggled" changed-callback #[(op) "a C 7a C 7a #C 7a - 7a 7	C" [op widget set #[(x) "
" [gtk-toggle-button-set-state widget x] 3] clear #[nil "I
" [gtk-toggle-button-set-state widget] 3] get #[nil "	" [gtk-toggle-button-active widget] 2] validp #[nil "J" [] 1]] 2]] 4])
(put (quote boolean) (quote item-maker) make-boolean-item)
(defun make-color-item #[(changed-callback) "DI0	1CHCE" [value button button-new-with-color gtk-signal-connect "clicked" #[nil "D		0 		
	
H	CH
	CHCH		H	H	E" [colorsel gtk-signal-connect value "clicked" #[nil "	" [gtk-widget-destroy colorsel] 2] gtk-color-selection-dialog-new _ "Select color" gtk-color-selection-set-color-interp gtk-color-selection-dialog-colorsel gdk-color-parse-interp gtk-color-selection-dialog-ok-button #[nil "D		F0 I				
\"

HH
	E" [color colorsel value gtk-color-selection-get-color-interp gtk-color-selection-dialog-colorsel format "#%04x%04x%04x" gdk-color-red gdk-color-green gdk-color-blue set-button-color button changed-callback 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) "a C 8a C 8a \"C 8a . 8	a 8
C" [op set #[(x) " 
" [value x set-button-color button] 3] clear #[nil "I I
" [value set-button-color button] 3] get #[nil "" [value] 1] widget button validp #[(x) "q 	
" [x string-match "^#"] 3]] 2]] 4])
(put (quote color) (quote item-maker) make-color-item)
(defun make-font-item #[(changed-callback) "DI
01			2
H
H
H
CHCE" [box entry button gtk-box-pack-start gtk-signal-connect gtk-hbox-new gtk-entry-new gtk-button-new-with-label _ "Browse..." "changed" changed-callback "clicked" #[nil "D		0		
H
	CH	CH
CH	H	E" [fontsel gtk-signal-connect "clicked" #[nil "	" [gtk-widget-destroy fontsel] 2] gtk-font-selection-dialog-new _ "Select font" gtk-font-selection-dialog-set-font-name gtk-entry-get-text entry gtk-font-selection-dialog-ok-button #[nil "	
H	" [fontsel gtk-entry-set-text entry 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) "a C 8a C 8a \"C 8a . 8	a 8
C" [op set #[(x) "q 
" [x gtk-entry-set-text entry] 3] clear #[nil "
" [gtk-entry-set-text entry ""] 3] get #[nil "D	F0q E" [text gtk-entry-get-text entry] 3] widget box validp #[(x) "l q" [x] 1]] 2]] 4])
(put (quote font) (quote item-maker) make-font-item)
(defun make-pattern-item #[(changed-callback) "D0	HC
H	CE" [widget gtk-combo-new gtk-signal-connect gtk-combo-entry "changed" changed-callback add-hook patterns-changed-hook #[nil "DI3D		2 	
H , 
u	K
EI 
EE" [widget gtk-combo-entry __save_entry_text__ frame-part-selection gtk-entry-get-text gtk-entry-set-text gtk-combo-set-popdown-strings "" car patterns-alist] 6] #[(op) "a C 7a C 7a #C 7a - 7a 7	C" [op widget set #[(x) "	
" [gtk-entry-set-text gtk-combo-entry widget x] 3] clear #[nil "	
" [gtk-entry-set-text gtk-combo-entry widget ""] 3] get #[nil "D		F0 E" [string gtk-entry-get-text gtk-combo-entry widget patterns-alist] 4] validp #[(x) "q " [x patterns-alist] 2]] 2]] 4])
(put (quote pattern) (quote item-maker) make-pattern-item)
(defun make-image-item #[(changed-callback) "D	I

				I6
1230JFHIFHIFHCHCHHCE" [widget entry p-button button gtk-box-pack-start gtk-signal-connect gtk-button-new-with-label _ "clicked" gtk-hbox-new "Browse..." "Properties..." gtk-entry-new properties #[nil "D		0		
H
	CH	CH
CH	H	E" [filesel gtk-signal-connect "clicked" #[nil "	" [gtk-widget-destroy filesel] 2] gtk-file-selection-new _ "Select Image" gtk-file-selection-set-filename gtk-entry-get-text entry gtk-file-selection-ok-button #[nil "D	1	H
E" [filesel file gtk-file-selection-get-filename gtk-widget-destroy gtk-entry-set-text entry] 3] gtk-file-selection-cancel-button "delete_event" gtk-grab-add gtk-widget-show] 4] #[nil "D

4	
5	
6
TI0C
1C6C6	H	 VFLD6	 S
EHM ?	
HJFH
H
HD3 DF2PM	PL M	H!\"PL		FhHPM#	FhEHh#Tf EH$	H%	E" [table items i __mapseq-i__ props-xml window vbox w "props-dialog" glade-xml-get-widget image-attrs gtk-table-attach-defaults glade-xml-new glade-file "props-vbox" gtk-table-new #[(cell) "L
K" [cell make-item nop] 4] #[nil "C DI1  IF! EHH	" [properties tem #[(x) "LM	K" [x get] 3] items changed-callback gtk-widget-destroy window] 2] on-props-ok #[nil "	" [gtk-widget-destroy window] 2] on-props-cancel glade-xml-signal-autoconnect gtk-container-children 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 set properties gtk-label-new symbol-name widget gtk-widget-show-all gtk-grab-add] 8] "changed" changed-callback #[(op) "a C 7a C 7a #C 7a - 7a 7	C" [op widget set #[(x) "L
HMF#" [x gtk-entry-set-text entry properties] 3] clear #[nil "
HIF#" [gtk-entry-set-text entry "" properties] 3] get #[nil "D	F0` I KE" [text gtk-entry-get-text entry "" properties] 3] validp #[(x) "o Lq" [x] 1]] 2]] 5])
(put (quote image) (quote item-maker) make-image-item)
(defun make-or-item #[(changed-callback &rest items) "C D	I
6
C3C4TI
6
I6C6C6D2 fD1PCHP
HPP
HPP	
EHh\"Tf 6EHHCE" [items i __mapseq-i__ hboxes checks gtk-box-pack-start box refresh-item #[(x) "
" [make-item x changed-callback] 3] gtk-vbox-new #[nil "I
" [gtk-hbox-new] 3] #[nil "" [gtk-check-button-new] 1] make-list enabled enabled-item #[nil "C%D0 *FLD1a
HPa
HhF EHM E	" [i x items enabled-item #[(x) "a" [enabled-item x] 2] enabled set-item-enabled gtk-toggle-button-set-state checks changed-callback] 5] #[(index) "Pa P	 P	 PF\"H" [index items enabled-item gtk-toggle-button-active checks refresh-item] 3] toggle-fun gtk-signal-connect "toggled" #[nil "	" [toggle-fun i] 2] widget #[(op) "a C 8a C 8a \"C 8a . 8	a 8
C" [op set #[(x) "l IF! k (		 (		 k (s k \"uD2 TDF6P		 OPF!		HJtEHh\"Tf 2EH	I
		EH" [x enabled-item __mapseq-i__ items validp set done i message format _ "No matching item for %S" refresh-item] 6] clear #[nil "I  FLDF2	EHM " [enabled-item items item clear refresh-item] 4] get #[nil " 	" [enabled-item get] 2] widget box validp #[(x) " s 0 uD0 'DF3P		 \"JtEHh Tf EE" [__mapseq-i__ out items i validp x] 3]] 2]] 4])
(put (quote or) (quote item-maker) make-or-item)
(defun make-and-item #[(changed-callback &rest items) "C!Da  I
2D0 1D3	P
	
EHh Tf EHCE" [__mapseq-i__ items box i #[(x) "
" [make-item x changed-callback] 3] and-direction horizontal gtk-hbox-new gtk-vbox-new gtk-box-pack-start widget #[(op) "a C 8a C 8a \"C 8a . 8	a 8
C" [op set #[(x) "D0 DF1P	P	EHh Tf E" [__mapseq-i__ i items set x] 4] clear #[nil " FLDF1	EHM I" [items x clear] 4] get #[nil "C" [#[(x) "	" [x get] 2] items] 2] widget box validp #[(x) "l Ko TTc I K s K uD0 @DF4P	P	] ;ItEHh Tf (EHEJ" [__mapseq-i__ x items out 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) "DI
0
!	
H	
H		H
CE" [box item gtk-box-pack-start gtk-hbox-new make-item changed-callback widget gtk-label-new label gtk-widget-show-all #[(op) "a 
 
	" [op widget box item] 2]] 4])
(put (quote labelled) (quote item-maker) make-labelled-item)
(defun make-optional-item #[(changed-callback item) "DI
02
!
H	
H	
CHI
H
	I
HCE" [check item box gtk-box-pack-start widget gtk-hbox-new gtk-check-button-new make-item changed-callback gtk-signal-connect "toggled" #[nil "		
H" [set-widget-enabled item widget gtk-toggle-button-active check changed-callback] 4] gtk-toggle-button-set-state set-widget-enabled #[(op) "a C 8a C 8a \"C 8a . 8	a 8
C" [op set #[(x) " 			H	
H
" [x item set set-widget-enabled widget gtk-toggle-button-set-state check] 3] clear #[nil "	H	I
HI
" [item clear set-widget-enabled widget gtk-toggle-button-set-state check] 3] get #[nil "	 
	" [gtk-toggle-button-active check item get] 2] widget box validp #[(x) "l 
		" [x item validp] 2]] 2]] 4])
(put (quote optional) (quote item-maker) make-optional-item)
(defun update-theme-name #[nil " 	 

" [theme-name gtk-entry-set-text theme-name-entry symbol-name ""] 4])
(defun on-theme-name-entry-changed #[nil "		F#" [string-to-symbol gtk-entry-get-text theme-name-entry theme-name] 3])
(defun clear-readme-text #[nil "
H	
" [theme-about-text gtk-text-set-point gtk-text-forward-delete gtk-text-get-length] 4])
(defun write-readme-file #[(dir) "D		

03 1 $
	H 1 u
EI E" [file theme-about-text write text gtk-editable-get-chars gtk-text-get-length open-file expand-file-name "README" dir close-file] 5])
(defun read-readme-file #[(dir) "D
0	 
F1 M #		H M uDI2
H >IFFFTH
	F\" 1EEI E" [readme file line expand-file-name "README" dir file-exists-p open-file read close-file clear-readme-text gtk-text-insert theme-about-text read-line] 9])
(defun patterns-format-pattern #[(pattern) "MF q  n L	 " [pattern file-name-nondirectory ""] 3])
(defun patterns-format-list #[(lst) "LC" [apply vector lst #[(attr) "DMF0 	 E" [elt attr lst patterns-format-pattern ""] 3] pattern-attrs] 5])
(defun patterns-update-all #[nil "	H HFLDF3M :FLD0DF1q 6	] 6 6M		
NEEHM 
	
EHM 	I" [elt name patterns-clist cell current-filename clist-delete-all patterns-alist file-name-absolute-p expand-file-name file-name-directory gtk-clist-append patterns-format-list] 8])
(defun on-patterns-add #[nil "D
F2)1)
 		
H
TiH	H
I		E" [patterns-alist elt name patterns-clist make-new-name "pattern" car 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 "I" [] 1])
(defun on-patterns-delete #[nil " D1I P\"	H
E" [patterns-selection row patterns-alist call-hook patterns-changed-hook gtk-clist-remove patterns-clist] 3])
(defun on-patterns-clist-select-row #[(widget row col) "a] =DPF1 8L
H /FLDF3M	LMM	EHM 	
J
EHF\"" [row cell patterns-selection attr patterns-alist gtk-entry-set-text patterns-name-entry patterns-item-alist set set-widget-enabled patterns-table] 5])
(defun on-patterns-clist-unselect-row #[nil "I 
H FLDF5M	EHM I
" [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	" [patterns-update-alist call-hook patterns-changed-hook] 2])
(defun patterns-update-alist #[nil " |D
P	
C415HD2 ?D6hP	EHh\"Tf &EH` RIF!HDI0 mFLDF6	M j	KF EHM Z NHOEE" [attrs name __mapseq-i__ patterns-selection values cell i gtk-clist-set-text patterns-clist attr patterns-alist gtk-entry-get-text patterns-name-entry #[(attr) "LM	K" [attr get] 3] patterns-item-alist patterns-format-pattern ""] 8])
(defun create-patterns-items #[nil "C\"D0 &D1PM	hVEHh Tf EH	H" [__mapseq-i__ i patterns-item-alist patterns-table #[(attr) "
K" [attr make-item pattern-type patterns-update-alist] 4] pattern-attrs gtk-table-attach-defaults widget gtk-widget-show-all] 8])
(defmacro current-frame #[nil "" [(and frame-selection (nth frame-selection frames-alist))] 1])
(defun frames-update-all #[nil "I#I$	H	H !FLD2L	
EHM I" [clist-delete-all frames-name-clist cell frame-selection frame-part-selection frames-part-clist frames-alist gtk-clist-append vector] 5])
(defun on-frames-add #[nil "D		F0 9] 9))
!	
H	H
	H
I		E" [name frames-alist _ string-dialog "Frame 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 " ID		PM4F0 H] H	K)
!	
	
HH
	HI		E" [name frames-alist frame-selection _ src string-dialog "Frame 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 " D1I P\"	H
E" [frame-selection row frames-alist call-hook frames-changed-hook gtk-clist-remove frames-name-clist] 3])
(defun on-frames-name-clist-select #[(w row col) "a] =  PL
H	H \"PM 5FLD5		
EHM &
J
" [frame-selection row frames-frame frames-alist frames-part-clist part gtk-frame-set-label clist-delete-all gtk-clist-append frame-part-columns set-widget-enabled] 5])
(defun on-frames-name-clist-unselect #[nil "D PMTi0I!
H  
Hi e I
E" [i frame-selection frames-frame frames-alist gtk-frame-set-label "" gtk-clist-remove frames-part-clist set-widget-enabled] 3])
(defun update-frame-names-clist #[nil "D0 FLD1LHhF EHM EI" [i frame frames-alist gtk-clist-set-text frames-name-clist] 6])
(defun frame-part-columns #[(part) "DC10 M	 	 )I	 +

E" [class rest part #[(x) "La]" [x class] 2] vector symbol-name _ "<none>" format "%S" "()"] 6])
(defun update-frame-part #[nil " (D PMP3	1SHSE" [frame-part-selection vec frame-selection part gtk-clist-set-text frames-part-clist frames-alist frame-part-columns] 6])
(defun on-frames-part-clist-select #[(w row col) "a]  HJ
" [frame-part-selection row update-frame-part-table set-widget-enabled frames-part-table-viewport] 3])
(defun on-frames-part-clist-unselect #[nil "D1I HI
E" [frame-part-selection row clear-frame-part-table set-widget-enabled frames-part-table-viewport] 3])
(defun on-frames-add-part #[nil "D PF0 ,D(1M)
OH	
HMTiEE" [frame part frame-selection frames-part-clist frames-alist nconc gtk-clist-append frame-part-columns gtk-clist-select-row] 5])
(defun on-frames-delete-part #[nil " !D P20I!MPMOH
E" [frame frame-part-selection row frame-selection frames-alist gtk-clist-remove frames-part-clist] 3])
(defun update-frame-part-table #[nil " ; ;D P3MPF6 6FLD1DLMF4 2	M	EEHM EI" [frame-selection cell frame-part-selection frame item frames-alist part frame-part-table-items set] 4])
(defun clear-frame-part-table #[nil " FLDF1M	EHM I" [frame-part-table-items cell clear] 4])
(defun on-frame-part-attr-changed #[(item) " eD 	P15 d dDMP4L2	F6
 S A	O _MQL	KKN _ _MQNHEE" [item frame cell frame-part-selection part attr get frame-selection frame-part-table-items frames-alist value update-frame-part] 5])
(defun create-frame-part-table #[nil "DTI01

H
HI$ FLD2D	I
	I
I356C
#LKK$L		
H	JFH
FhH
FhHhF!EEHM !	 FLD6
EHM 
H
,
H	HE" [table row attr item frame-part-table-items r-box l-box frames-part-table-viewport frame-part-attrs gtk-hbox-new gtk-table-attach-defaults x gtk-table-new gtk-table-set-row-spacings gtk-table-set-col-spacings make-item #[nil "	" [on-frame-part-attr-changed item] 2] gtk-box-pack-end gtk-label-new symbol-name gtk-box-pack-start widget gtk-container-children 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 FLD0L	M

EHM I" [cell mapping-clist clist-delete-all mapping-alist gtk-clist-append vector symbol-name] 6])
(defun on-mapping-add #[nil "DC
	1K)
 	
	

HTiH
	HI		E" [mapping-alist name "" mapping-clist intern make-new-name "type" #[(x) "L	" [symbol-name x] 2] 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 " D1I P\"	H
E" [mapping-selection row mapping-alist call-hook mappings-changed-hook gtk-clist-remove mapping-clist] 3])
(defun on-mapping-from-changed #[nil " (DP			12 'NH	
L	E" [mapping-selection sym cell mapping-alist string-to-symbol gtk-entry-get-text gtk-combo-entry mapping-from-combo gtk-clist-set-text mapping-clist symbol-name] 6])
(defun on-mapping-to-changed #[nil " DPF1		OHME" [mapping-selection cell mapping-alist 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) " J
H	PL	
H		PM
" [mapping-selection gtk-entry-set-text gtk-combo-entry mapping-alist row 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
" [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 "DI6D		1 	
H * u	
EI EHD		1 @	
H U 6u
K
EI 6EE" [gtk-combo-entry __save_entry_text__ mapping-from-combo mapping-to-combo gtk-entry-get-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 "D	*
**,+	2

 5I			 W] WD
 I	1	H
F#EE" [quote preview-xml output preview-window "preview-window" sawmill-eval progn (require (quote make-theme-preview)) make-theme-preview patterns-alist frames-alist mapping-alist string-match "^error-->(.*)
" message format _ "error while building frame: %S" expand-last-match "\\1" glade-xml-new glade-file error "something happened" glade-xml-signal-autoconnect glade-xml-get-widget] 8])
(defun on-preview-close #[nil " 	HIF " [preview-window gtk-widget-destroy] 2])
(defun filter-unused-frames #[(frames mappings) "C" [#[(x) "L" [x mappings] 2] frames] 2])
(defun filter-unused-patterns #[(old-patterns frames) "DIF10 IFLDF4M DFLDF5 ?FLDF2L <MF! <] <KF EHM EM EM 	E" [patterns tem cell frames frame part pattern-classes old-patterns] 6])
(defun print-list #[(lst indent) "D 
40(
H CLn (Lh

 /	LHMF!n B

H
Hn  R
H)
H	E" [stream lst write indent leader format make-string-output-stream make-string print-list "%S" " . %S" get-output-stream-string] 6])
(defun update-all #[nil "HHH" [update-theme-name patterns-update-all frames-update-all mappings-update-all] 1])
(defun set-current-filename #[(file) "! 	 
" [file current-filename gtk-entry-set-text theme-dir-entry file-name-directory ""] 4])
(defun save-to-file #[(filename) " | 	I		  uD

F0  2	H  *u
H
H
H
HD2 DL	F4n tL
 |LEHMF\" 
H XEH
HH
H
HI		EI *EEGH" [file write ptr format value message data filename file-error "%S" open-file close-file ";; theme file, written %s
" current-time-string ";; created by sawmill-themer -- DO NOT EDIT!

" "(require 'make-theme)

" "(let
    (" saved-variables symbol-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) "C" [#[(pat) "LCMK" [pat #[(cell) "DMF2n dDL0	
1	 (	 (	

H`] U	 D		
 U
H
I	H	MK\"LKF#EHE" [from to elt cell file-exists-p file-name-nondirectory file-modtime expand-file-name dir error "No such image: %s" time-later-p copy-file message format "%s -> %s/%s"] 7]] 3] patterns] 2])
(defun generate-theme #[(dir) "	 	] 
H	] 	H	

	H <
\"
F!HD
1	EH	HI		H n**	" [dir 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 sawmill-eval-async reload-frame-style quote theme-name] 5])
(defun new-theme #[nil "	H	H	H FLDF5IAEHM &H	" [clist-delete-all patterns-clist frames-name-clist mapping-clist saved-variables sym unnamed theme-name clear-readme-text update-all] 4])
(defun load-from-file #[(filename) "HD
F1  	H s u *| &I kI  uD	F4L	a f VFLDF2L
 SLAEHM AI
		EH /EGHEI H	H		HE" [filename file cell read form new-theme open-file close-file end-of-stream let saved-variables message format _ "Read theme from `%s'" set-current-filename read-readme-file file-name-directory update-all] 8])
(defun on-save #[nil " 		 " [current-filename generate-theme file-name-directory on-save-as] 3])
(defun on-save-as #[nil "D	 	
F1 	E" [current-filename dir file-dialog _ "Theme Directory" file-name-directory generate-theme] 5])
(defun do-open #[(file) "	 
	 
F  	H 3| &	I
	 < !u	EGH" [file expand-file-name "theme.jl" error data file-directory-p file-exists-p "Can only load from directories with theme.jl files" message format "%S" load-from-file] 6])
(defun on-open #[nil "D	
F0 	E" [file file-dialog _ "Open" current-filename do-open] 4])
(defun on-new-theme #[nil "I	H" [set-current-filename new-theme] 2])
(defun save-preferences #[nil "	] 
	HD
F0 H \"	H H u	 ?FLD1
LL	EHM +EIF E" [file x "~/.sawmill" file-exists-p make-directory open-file "~/.sawmill/themer-prefs" write close-file preferences-attrs format "(setq %s '%S)
" symbol-value] 9])
(defun load-preferences #[nil "	 JFF" ["~/.sawmill/themer-prefs" file-exists-p load] 5])
(defun on-settings-preferences #[nil "D	
1
2

0C6
C6C6	H
H	
H	 WFLD3	 T
EHM D {FLDF4M	L		HM	
EHM _	H	E" [vbox props-xml window w x "props-dialog" glade-xml-get-widget items glade-xml-new glade-file "props-vbox" #[(cell) "L
K" [cell make-item nop] 4] preferences-attrs #[nil " FLDF0LM	AEHM H	" [x items get save-preferences gtk-widget-destroy window] 5] on-props-ok #[nil "	" [gtk-widget-destroy window] 2] on-props-cancel glade-xml-signal-autoconnect gtk-container-border-width gtk-window-set-title _ "Preferences" gtk-container-children gtk-label-p gtk-container-remove set symbol-value gtk-box-pack-start widget gtk-widget-show-all gtk-grab-add] 6])
(defun gnome-help-launcher #[(node) "M 
 I	" [node ((frames . "Frame_Basics") (classes . "Frame_Part_Classes") (defs . "Frame_Part_Definition") (themes . "Themes")) error "No help for %s!" system format "gnome-help-browser 'info:sawmill#%s' &"] 5])
(setq help-launcher gnome-help-launcher)
(defun on-help-window-frames #[nil "	" [help-launcher frames] 2])
(defun on-help-frame-classes #[nil "	" [help-launcher classes] 2])
(defun on-help-frame-part-definitions #[nil "	" [help-launcher defs] 2])
(defun on-help-themes #[nil "	" [help-launcher themes] 2])
(defun on-help-about #[nil "D
 	0
3	
4
C6	H
I
H	E" [about-xml "about-dialog" glade-xml-get-widget window label glade-xml-new glade-file error "Can't create about dialog" "about-label" #[nil "	" [gtk-widget-destroy window] 2] on-about-ok glade-xml-signal-autoconnect gtk-label-set format "Sawmill Themer %s

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

This program allows window manager
themes for sawmill to be created
through a GUI.
" version gtk-grab-add] 6])
(defun on-quit #[nil "t" [quit] 2])
(defun copy-tree #[(tree) "DIFF203 6Ln L	 L\" +IKOHMF  2IKF#F HM!n 
 GOH HE" [ptr tree tem out copy-tree] 4])
(defun string-to-symbol #[(string) " | I  I uDI
	F0y EEGH" [data error read make-string-input-stream string] 6])
(defun make-new-name #[(stem lst) "D0 	h I IE" [i format "%s%d" stem lst] 5])
(defun string-dialog #[(title) "D
 		0
1

6
4
C6C6C6	H
H
H	H R	H l Ju _s g YuEEI JE" [string-xml window glade-xml-get-widget "string-dialog" label title glade-xml-new glade-file error "Can't create string-dialog widget" "string-dialog-entry" entry "string-dialog-label" #[(x) "t" [string-dialog-out x] 2] finished #[nil "		" [finished gtk-entry-get-text entry] 3] on-string-dialog-ok #[nil "I	" [finished] 2] on-string-dialog-cancel glade-xml-signal-autoconnect gtk-window-set-title gtk-label-set gtk-grab-add gtk-widget-destroy string-dialog-out gtk-main] 4])
(defun file-dialog #[(title &optional start) "D	0 
H		CH
	CHCH	H
	H B	H \\ :u Os W IuEEI :E" [filesel gtk-signal-connect start "clicked" #[nil "It" [filesel-out] 2] gtk-file-selection-new title gtk-file-selection-set-filename gtk-file-selection-ok-button #[nil "	t" [filesel-out gtk-file-selection-get-filename filesel] 3] gtk-file-selection-cancel-button "delete_event" gtk-grab-add gtk-widget-show gtk-widget-destroy filesel-out gtk-main] 4])
(jade-byte-code "DI12FCBHHFCBHHFCBHH	
E" [remove-message message-text message-count #[nil "D
1 
Hi d 	IF&E" [message-count statusbar glade-xml-get-widget xml "statusbar" gtk-statusbar-pop message-text] 3] message #[(string) "D
0HHh!IF&E" [statusbar message-count glade-xml-get-widget xml "statusbar" remove-message gtk-statusbar-push string message-text] 4] append-message #[(string) "D
0H	E" [new concat message-text string remove-message message] 3] add-hook idle-hook] 3)
(defun set-button-label #[(button text) "	 FLD0	 
EHM I" [w gtk-container-children button gtk-label-p gtk-label-set text] 4])
(defun clist-delete-all #[(clist) " 
H	d " [clist gtk-clist-remove gtk-clist-rows] 3])
(defun set-widget-enabled #[(w enabled) "
" [gtk-widget-set-sensitive w enabled] 3])
(defvar color-preview-width 28)
(defvar color-preview-height 16)
(defun set-preview-color #[(preview color) "DY	I01  AY	 ZRHYh	 ZRHYV	 ZRHh f   Y	
Hh 
f LE" [i buf color-preview-width color make-string gdk-color-red gdk-color-green gdk-color-blue gtk-preview-draw-row preview color-preview-height] 6])
(defun button-new-with-color #[(color-name) "D	 	I6012	
H &
H
HE" [color preview button color-name gtk-button-new gtk-preview-new gdk-color-parse-interp i gtk-preview-size color-preview-width color-preview-height set-preview-color gtk-container-add] 4])
(defun set-button-color #[(button color-name) "D 	F2 /	 +FLD0	 (
H	EHM IE" [w color-name color gdk-color-parse-interp gtk-container-children button gtk-preview-p set-preview-color gtk-widget-draw-interp] 5])
(defun sawmill-eval #[(form &optional read-back) "D0	1J4II	

k 7	  3
I
	 < <	E" [output process make-string-output-stream make-process print-escape call-process sawmill-client-program "-e" format "%S" form get-output-stream-string read-back read make-string-input-stream error "can't call sawmill-client"] 9])
(defun sawmill-eval-async #[(form) "DI	J20II	k] \"
	E" [process make-process print-escape call-process sawmill-client-program "-q" "-e" format "%S" form error "can't call sawmill-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 " [command-line-args file-exists-p do-open] 2)
(setq interrupt-mode (quote exit))
(recursive-edit)