(defvar riece-update-buffer-functions
'(riece-user-list-update-buffer
riece-channel-list-update-buffer
+ riece-update-status-indicators
riece-update-channel-indicator
riece-update-channel-list-indicator))
:group 'riece-looks)
(defun riece-configure-windows ()
- (let ((buffer (current-buffer))
+ (let ((buffer (window-buffer))
(show-user-list
(and riece-user-list-buffer-mode
riece-current-channel
(unless (riece-frozen riece-user-list-buffer)
(set-window-start (get-buffer-window riece-user-list-buffer)
(point-min)))))
- (if (get-buffer-window riece-channel-list-buffer)
+ (if (and riece-channel-list-buffer
+ (get-buffer-window riece-channel-list-buffer))
(with-current-buffer riece-channel-list-buffer
(unless (riece-frozen riece-channel-list-buffer)
(set-window-start (get-buffer-window riece-channel-list-buffer)
(point-min))))))
(defun riece-user-list-update-buffer ()
- (if (get-buffer riece-user-list-buffer)
+ (if (and riece-user-list-buffer
+ (get-buffer riece-user-list-buffer))
(save-excursion
(set-buffer riece-user-list-buffer)
(when (and riece-current-channel
(setq users (cdr users))))))))
(defun riece-channel-list-update-buffer ()
- (if (get-buffer riece-channel-list-buffer)
+ (if (and riece-channel-list-buffer
+ (get-buffer riece-channel-list-buffer))
(save-excursion
(set-buffer riece-channel-list-buffer)
(let ((inhibit-read-only t)
(erase-buffer)
(while channels
(if (car channels)
- (insert (format "%2d:%s\n" index (car channels))))
+ (insert (format "%2d: %s\n" index (car channels))))
(setq index (1+ index)
channels (cdr channels)))))))
-(defsubst riece-update-channel-indicator ()
+(defun riece-update-channel-indicator ()
(setq riece-channel-indicator
(if riece-current-channel
(riece-concat-current-channel-modes
",")))
(setq riece-channel-list-indicator "No channel")))
+(defun riece-update-status-indicators ()
+ (riece-with-server-buffer
+ (setq riece-away-indicator
+ (if (and riece-real-nickname
+ (riece-user-get-away riece-real-nickname))
+ "A"
+ "-"))
+ (setq riece-operator-indicator
+ (if (and riece-real-nickname
+ (riece-user-get-operator riece-real-nickname))
+ "O"
+ "-")))
+ (setq riece-freeze-indicator
+ (with-current-buffer (if (and riece-channel-buffer-mode
+ riece-channel-buffer)
+ riece-channel-buffer
+ riece-dialogue-buffer)
+ (if (eq riece-freeze 'own)
+ "f"
+ (if riece-freeze
+ "F"
+ "-")))))
+
(defun riece-update-buffers ()
(run-hooks 'riece-update-buffer-functions)
- (force-mode-line-update t))
+ (force-mode-line-update t)
+ (run-hooks 'riece-update-buffers-hook))
(eval-when-compile
(autoload 'riece-channel-mode "riece"))
identity riece-channel-buffer-alist))
riece-user-list-buffer
(cdr (riece-identity-assoc-no-server
- identity riece-user-list-buffer-alist))))
+ identity riece-user-list-buffer-alist)))
+ (run-hooks 'riece-channel-switch-hook))
(defun riece-join-channel (channel-name)
(let ((identity (riece-make-identity channel-name)))
(riece-update-buffers)
(if (or force
(funcall riece-configure-windows-predicate))
- (funcall riece-configure-windows-function)))
+ (funcall riece-configure-windows-function))
+ (run-hooks 'riece-redisplay-buffers-hook))
(provide 'riece-display)
+
+;;; riece-display.el ends here