+ (add-hook 'riece-channel-list-mode-hook
+ 'riece-highlight-setup-channel-list)
+ (add-hook 'riece-format-identity-for-channel-list-indicator-functions
+ 'riece-highlight-format-identity-for-channel-list-indicator)
+ (add-hook 'riece-after-insert-functions
+ 'riece-highlight-put-overlay-faces))
+
+(defun riece-highlight-uninstall ()
+ (let ((buffers riece-buffer-list))
+ (save-excursion
+ (while buffers
+ (set-buffer (car buffers))
+ (if (eq (derived-mode-class major-mode)
+ 'riece-dialogue-mode)
+ (remove-hook 'after-change-functions
+ 'riece-highlight-hide-prefix t))
+ (setq buffers (cdr buffers)))))
+ (riece-remprop 'riece-channel-mode 'font-lock-defaults)
+ (riece-remprop 'riece-others-mode 'font-lock-defaults)
+ (riece-remprop 'riece-dialogue-mode 'font-lock-defaults)
+ (remove-hook 'riece-dialogue-mode-hook
+ 'riece-highlight-setup-dialogue)
+ (riece-remprop 'riece-channel-list-mode 'font-lock-defaults)
+ (remove-hook 'riece-channel-list-mode-hook
+ 'riece-highlight-setup-channel-list)
+ (remove-hook 'riece-format-identity-for-channel-list-indicator-functions
+ 'riece-highlight-format-identity-for-channel-list-indicator)
+ (remove-hook 'riece-after-insert-functions
+ 'riece-highlight-put-overlay-faces))
+
+(defun riece-highlight-enable ()
+ (let ((buffers riece-buffer-list))
+ (while buffers
+ (if (memq (derived-mode-class
+ (with-current-buffer (car buffers)
+ major-mode))
+ '(riece-dialogue-mode riece-channel-list-mode))
+ (with-current-buffer (car buffers)
+ (font-lock-mode 1)))
+ (setq buffers (cdr buffers)))))
+
+(defun riece-highlight-disable ()
+ (let ((buffers riece-buffer-list))
+ (while buffers
+ (if (memq (derived-mode-class
+ (with-current-buffer (car buffers)
+ major-mode))
+ '(riece-dialogue-mode riece-channel-list-mode))
+ (with-current-buffer (car buffers)
+ (font-lock-mode 0)))
+ (setq buffers (cdr buffers)))))