
(require (quote mini-cl))

(require (quote epoch-util))

(require (quote event))

(provide (quote property))

(defvar property::functions nil "\
List of property/handler")

(setq epoch::lazy-events t)

(defmacro atomize (property) (byte-code "ÂÃ!Ä	DCÅÆDDÇDÈÉÊ	DDË	ÌDEÌDFDÍFE)‡" [p property make-symbol "PrOpErTy" let cond resourcep stringp if symbolp quote setq intern-atom (t (error "Invalid property argument"))] 12))

(defun install-property (property) (byte-code "	Å!ƒ ‚' ;ƒ$ Á9ƒ Æ!‰‚! Æ!‚' ÇÈ!)ˆÉ	\"?…8 	ÄBB‰‡" [PrOpErTy property t property::functions nil resourcep intern-atom error "Invalid property argument" assoc] 7))

(defun remove-property (property) (byte-code "	Ä!ƒ ‚' ;ƒ$ Á9ƒ Å!‰‚! Å!‚' ÆÇ!)ˆÈÉ\"‰‡" [PrOpErTy property t property::functions resourcep intern-atom error "Invalid property argument" delete-if (lambda (x) (byte-code "Â	@\"‡" [property x equal] 3))] 7))

(defun push-property (property handler) (byte-code "	Æ!ƒ ‚' ;ƒ$ Á9ƒ Ç!‰‚! Ç!‚' ÈÉ!)ˆÊ	\":ƒ= ËAB\"‚D 	DB‰)‡" [PrOpErTy property t elist property::functions handler resourcep intern-atom error "Invalid property argument" assoc setcdr] 9))

(defun pop-property (property) (byte-code "	Æ!ƒ ‚' ;ƒ$ Á9ƒ Ç!‰‚! Ç!‚' ÈÉ!)ˆÊ	\":?ƒ8 Å‚B Ë!ÌÍ!\"ˆ)‡" [PrOpErTy property t elist property::functions nil resourcep intern-atom error "Invalid property argument" assoc cadr setcdr cddr] 11))

(defun ignore-property (property) (byte-code "	Ã!ƒ ‚' ;ƒ$ Á9ƒ Ä!‰‚! Ä!‚' ÅÆ!)ˆÇ	Â\"‡" [PrOpErTy property t resourcep intern-atom error "Invalid property argument" push-property] 7))

(defun resume-property (property) (byte-code "	Å!ƒ ‚' ;ƒ$ Á9ƒ Æ!‰‚! Æ!‚' ÇÈ!)ˆÉ	!…4 Ê!?ƒ< Ä‚@ Ë	\")‡" [PrOpErTy property t h nil resourcep intern-atom error "Invalid property argument" pop-property functionp push-property] 9))

(defun property::handler (type value scr) (byte-code "Ë!??ƒ Á‚ Ã‰ˆÌÍ@\"ˆÎÏ\"!Ð!?ƒ0 Á‚< ÑŽÒ	
$)+‡" [value nil epoch::lazy-events t property::atom property::event-handler epoch::event-handler callback property::functions type scr resourcep message "Missed property event %s" cadr assoc functionp ((byte-code "??ƒ
 Á‚ Ä
!ˆ‰‡" [epoch::event-handler nil property::atom property::event-handler ignore-property] 3)) funcall] 10))

(push-event (quote property-change) (quote property::handler))

(epoch-add-setup-hook (quote property::init))

(defun property::init nil (byte-code "ÀÁÂ\"‡" [push-property "EPOCH_EXECUTE" (lambda (type prop screen) (byte-code "Ä Å
\"ÆŽÇÈ!!ˆ	;… ÉÊ	!!)*‡" [cw action prop screen selected-window get-property ((byte-code "Á!‡" [cw select-window] 2)) select-window epoch::selected-window eval read] 7))] 3))
