X-Git-Url: http://git.chise.org/gitweb/?a=blobdiff_plain;f=lisp%2Fliece-emacs.el;h=dee2edac7f6ab21dc6c543e804786bf1e2ddfa3c;hb=7a6b3352eacf4495eaf8c6db78c34e6b95774039;hp=7a1e9c7eba9650d6edbc8c11765fe474997e9fa6;hpb=cd45da24bd497f99a83773edba671c009bcad15d;p=elisp%2Fliece.git diff --git a/lisp/liece-emacs.el b/lisp/liece-emacs.el index 7a1e9c7..dee2eda 100644 --- a/lisp/liece-emacs.el +++ b/lisp/liece-emacs.el @@ -41,6 +41,11 @@ (autoload 'bitmap-stipple-xbm-file-to-stipple "bitmap-stipple") (autoload 'bitmap-stipple-insert-pixmap "bitmap-stipple")) +(defcustom liece-emacs-unread-character "!" + "Unread character." + :type 'character + :group 'liece-look) + ;;; @ widget emulation ;;; (defvar liece-widget-keymap nil) @@ -232,12 +237,44 @@ 'rear-nonsticky (list 'display)))) (beginning-of-line 2))))))) +;;; @ unread mark +;;; +(defun liece-emacs-unread-mark (chnl) + (if liece-display-unread-mark + (with-current-buffer liece-channel-list-buffer + (let ((buffer-read-only nil)) + (goto-char (point-min)) + (when (re-search-forward (concat "^ ?[0-9]+: " chnl "$") nil t) + (goto-char (match-end 0)) + (insert (concat " " liece-emacs-unread-character))))))) + +(defun liece-emacs-read-mark (chnl) + (if liece-display-unread-mark + (with-current-buffer liece-channel-list-buffer + (let ((buffer-read-only nil)) + (goto-char (point-min)) + (when (re-search-forward + (concat "^ ?[0-9]+: " chnl " " + liece-emacs-unread-character "$") nil t) + (goto-char (- (match-end 0) 2)) + (delete-char 2)))))) + +(defun liece-emacs-redisplay-unread-mark () + (if liece-display-unread-mark + (let ((chnl)) + (dolist (chnl liece-channel-unread-list) + (liece-emacs-unread-mark chnl))))) + (add-hook 'liece-nick-insert-hook 'liece-emacs-nick-image-region) (add-hook 'liece-nick-replace-hook 'liece-emacs-nick-image-region) (and liece-splash-image window-system (liece-emacs-splash)) +(fset 'liece-redisplay-unread-mark 'liece-emacs-redisplay-unread-mark) +(add-hook 'liece-channel-unread-hook 'liece-emacs-unread-mark) +(add-hook 'liece-channel-read-hook 'liece-emacs-read-mark) + (provide 'liece-emacs) ;;; liece-emacs.el ends here