(require 'riece-misc)
(defvar riece-update-buffer-functions
- '(riece-user-list-update-buffer
- riece-channel-list-update-buffer
+ '(riece-update-user-list-buffer
+ riece-update-channel-list-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)
+(defun riece-update-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
(insert " " (car users) "\n")))
(setq users (cdr users))))))))
-(defun riece-channel-list-update-buffer ()
- (if (get-buffer riece-channel-list-buffer)
+(defun riece-update-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
(concat riece-current-channel ": "
(riece-channel-get-topic riece-current-channel))
riece-current-channel))
- "None"))
- (with-current-buffer riece-command-buffer
- (force-mode-line-update)))
+ "None")))
(defun riece-update-channel-list-indicator ()
(if (and riece-current-channels
",")))
(setq riece-channel-list-indicator "No channel")))
+(defun riece-update-status-indicators ()
+ (with-current-buffer riece-command-buffer
+ (riece-with-server-buffer
+ (setq riece-away-indicator
+ (if (and riece-real-nickname
+ (riece-user-get-away riece-real-nickname))
+ "A"
+ "-")
+ riece-operator-indicator
+ (if (and riece-real-nickname
+ (riece-user-get-operator riece-real-nickname))
+ "O"
+ "-")
+ riece-user-indicator riece-real-nickname)))
+ (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"))
(setq riece-last-channel riece-current-channel
riece-current-channel identity
riece-channel-buffer
- (cdr (riece-identity-assoc-no-server
+ (cdr (riece-identity-assoc
identity riece-channel-buffer-alist))
riece-user-list-buffer
- (cdr (riece-identity-assoc-no-server
- identity riece-user-list-buffer-alist))))
+ (cdr (riece-identity-assoc
+ 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)))
- (unless (riece-identity-member-no-server
+ (unless (riece-identity-member
identity riece-current-channels)
(setq riece-current-channels
(riece-identity-assign-binding
identity riece-current-channels
riece-default-channel-binding)))
- (unless (riece-identity-assoc-no-server
+ (unless (riece-identity-assoc
identity riece-channel-buffer-alist)
(let ((buffer (riece-channel-buffer-create identity)))
(setq riece-channel-buffer-alist
(cons (cons identity buffer)
riece-channel-buffer-alist))))
- (unless (riece-identity-assoc-no-server
+ (unless (riece-identity-assoc
identity riece-user-list-buffer-alist)
(let ((buffer (riece-user-list-buffer-create identity)))
(setq riece-user-list-buffer-alist
(defun riece-part-channel (channel-name)
(let* ((identity (riece-make-identity channel-name))
- (pointer (riece-identity-member-no-server
+ (pointer (riece-identity-member
identity riece-current-channels)))
(if pointer
(setcar pointer nil))
- ;;XXX
- (if (riece-identity-equal-no-server identity riece-current-channel)
+ (if (riece-identity-equal identity riece-current-channel)
(riece-switch-to-nearest-channel pointer))))
(defun riece-configure-windows-predicate ()
(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