X-Git-Url: http://cgit.sxemacs.org/?a=blobdiff_plain;f=lisp%2Friece-icon.el;h=76e3aef34ec8bfdb753253e29119c3e569b5ef9e;hb=8f85eb7ad3c09298932116b76d2ee6ad415a354c;hp=a417f91e36ab5e228c97a146d326ba08ca22a719;hpb=1aedc8c61a2b0bf1512acab6b780dbd7cbc71eb9;p=riece diff --git a/lisp/riece-icon.el b/lisp/riece-icon.el index a417f91..76e3aef 100644 --- a/lisp/riece-icon.el +++ b/lisp/riece-icon.el @@ -318,6 +318,34 @@ Modify whole identification by side effect." (add-hook 'riece-update-buffer-functions 'riece-icon-update-channel-list-buffer t t))) +(defun riece-icon-insinuate () + (save-excursion + (when riece-user-list-buffer + (set-buffer riece-user-list-buffer) + (riece-icon-user-list-mode-hook)) + (when riece-channel-list-buffer + (set-buffer riece-channel-list-buffer) + (riece-icon-channel-list-mode-hook))) + (add-hook 'riece-user-list-mode-hook + 'riece-icon-user-list-mode-hook) + (add-hook 'riece-channel-list-mode-hook + 'riece-icon-channel-list-mode-hook)) + +(defun riece-icon-uninstall () + (save-excursion + (when riece-user-list-buffer + (set-buffer riece-user-list-buffer) + (remove-hook 'riece-update-buffer-functions + 'riece-icon-update-user-list-buffer t)) + (when riece-channel-list-buffer + (set-buffer riece-channel-list-buffer) + (remove-hook 'riece-update-buffer-functions + 'riece-icon-update-channel-list-buffer t))) + (remove-hook 'riece-user-list-mode-hook + 'riece-icon-user-list-mode-hook) + (remove-hook 'riece-channel-list-mode-hook + 'riece-icon-channel-list-mode-hook)) + (defvar riece-icon-original-mode-line-buffer-identification nil) (defun riece-icon-update-mode-line-buffer-identification () @@ -332,40 +360,21 @@ Modify whole identification by side effect." riece-mode-line-buffer-identification))) (setq buffers (cdr buffers)))))) -(defun riece-icon-insinuate () +(defun riece-icon-enable () (setq riece-icon-original-mode-line-buffer-identification (symbol-function 'riece-mode-line-buffer-identification)) (defalias 'riece-mode-line-buffer-identification - #'riece-icon-modeline-buffer-identification) + 'riece-icon-modeline-buffer-identification) (riece-icon-update-mode-line-buffer-identification) - (add-hook 'riece-user-list-mode-hook - 'riece-icon-user-list-mode-hook) - (add-hook 'riece-channel-list-mode-hook - 'riece-icon-channel-list-mode-hook)) - -(defun riece-icon-uninstall () - (fset 'riece-mode-line-buffer-identification - riece-icon-original-mode-line-buffer-identification) - (riece-icon-update-mode-line-buffer-identification) - (save-excursion - (set-buffer riece-user-list-buffer) - (remove-hook 'riece-update-buffer-functions - 'riece-icon-update-user-list-buffer) - (set-buffer riece-channel-list-buffer) - (remove-hook 'riece-update-buffer-functions - 'riece-icon-update-user-list-buffer)) - (remove-hook 'riece-user-list-mode-hook - 'riece-icon-user-list-mode-hook) - (remove-hook 'riece-channel-list-mode-hook - 'riece-icon-channel-list-mode-hook)) - -(defun riece-icon-enable () (setq riece-icon-enabled t) (if riece-current-channel (riece-emit-signal 'user-list-changed riece-current-channel)) (riece-emit-signal 'channel-list-changed)) (defun riece-icon-disable () + (fset 'riece-mode-line-buffer-identification + riece-icon-original-mode-line-buffer-identification) + (riece-icon-update-mode-line-buffer-identification) (setq riece-icon-enabled nil) (if riece-current-channel (riece-emit-signal 'user-list-changed riece-current-channel))