(eval-when-compile
(require 'cl)
- (defvar tool-bar-map))
+ (defvar tool-bar-mode))
(require 'gnus)
(require 'gnus-group)
;; Note: The :set function in the `gnus-summary-tool-bar*' variables will only
;; affect _new_ message buffers. We might add a function that walks thru all
-;; message-mode buffers and force the update.
+;; summary-mode buffers and force the update.
(defun gnus-summary-tool-bar-update (&optional symbol value)
"Update summary mode toolbar.
Setter function for custom variables."
- (if symbol
- ;; When used as ":set" function:
- (progn
- (set-default symbol value)
- (setq-default gnus-summary-tool-bar-map nil))
- (gnus-summary-make-tool-bar t)))
-
-;; The default will be changed when the new icons have been checked in:
-(defcustom gnus-summary-tool-bar 'gnus-summary-tool-bar-retro
+ (setq-default gnus-summary-tool-bar-map nil)
+ (when symbol
+ ;; When used as ":set" function:
+ (set-default symbol value))
+ (when (gnus-buffer-live-p gnus-summary-buffer)
+ (with-current-buffer gnus-summary-buffer
+ (gnus-summary-make-tool-bar))))
+
+(defcustom gnus-summary-tool-bar (if (eq gmm-tool-bar-style 'gnome)
+ 'gnus-summary-tool-bar-gnome
+ 'gnus-summary-tool-bar-retro)
"Specifies the Gnus summary tool bar.
It can be either a list or a symbol refering to a list. See
:group 'gnus-summary)
(defcustom gnus-summary-tool-bar-gnome
- '((gnus-summary-post-news "compose" nil)
- (gnus-summary-reply-with-original "reply-author")
- (gnus-summary-reply "reply" nil :visible nil)
- (gnus-summary-followup-with-original "reply-all")
- (gnus-summary-followup "reply-all" nil :visible nil)
- (gnus-summary-mail-forward "forward")
- (gnus-summary-save-article "save") ;; stock_mail-copy
- (gnus-summary-search-article-forward "search")
+ '((gnus-summary-post-news "mail/compose" nil)
+ (gnus-summary-insert-new-articles "mail/inbox" nil
+ :visible (or (not gnus-agent)
+ gnus-plugged))
+ (gnus-summary-reply-with-original "mail/reply")
+ (gnus-summary-reply "mail/reply" nil :visible nil)
+ (gnus-summary-followup-with-original "mail/reply-all")
+ (gnus-summary-followup "mail/reply-all" nil :visible nil)
+ (gnus-summary-mail-forward "mail/forward")
+ (gnus-summary-save-article "mail/save")
+ (gnus-summary-search-article-forward "search" nil :visible nil)
(gnus-summary-print-article "print")
- ;; gnus-group-read-only-p
+ (gnus-summary-tick-article-forward "flag-followup" nil :visible nil)
+ ;; Some new commands that may need more suitable icons:
+ (gnus-summary-save-newsrc "save" nil :visible nil)
+ ;; (gnus-summary-show-article "stock_message-display" nil :visible nil)
+ (gnus-summary-prev-article "left-arrow")
+ (gnus-summary-next-article "right-arrow")
+ (gnus-summary-next-page "next-page")
+ ;; (gnus-summary-enter-digest-group "right_arrow" nil :visible nil)
+ ;;
+ ;; Maybe some sort-by-... could be added:
+ ;; (gnus-summary-sort-by-author "sort-a-z" nil :visible nil)
+ ;; (gnus-summary-sort-by-date "sort-1-9" nil :visible nil)
(gnus-summary-mark-as-expirable
"delete" nil
:visible (gnus-check-backend-function 'request-expire-articles
gnus-newsgroup-name))
- (gnus-summary-tick-article-forward "flag-followup" nil :visible nil)
(gnus-summary-mark-as-spam
- "spam" t :visible (spam-group-ham-contents-p gnus-newsgroup-name)
+ "mail/spam" t :visible (spam-group-ham-contents-p gnus-newsgroup-name)
:help "Mark as spam")
(gnus-summary-mark-as-read-forward
- "not-spam" nil :visible (spam-group-spam-contents-p gnus-newsgroup-name))
- ;; Some new commands that may need more suitable icons:
- (gnus-summary-save-newsrc "save" nil :visible nil)
- ;; (gnus-summary-show-article "stock_message-display" nil :visible nil)
- (gnus-summary-prev-article "left-arrow" nil :visible nil) ;; Emacs 22
- (gnus-summary-next-article "right-arrow" nil :visible nil) ;; Emacs 22
- (gnus-summary-prev-unread-article "prev-node") ;; Emacs 22
- (gnus-summary-next-unread-article "next-node") ;; Emacs 22
- (gnus-summary-enter-digest-group "right_arrow" nil :visible nil)
- ;;
- ;; Maybe some sort-by-... could be added:
- (gnus-summary-sort-by-author "sort-a-z" nil :visible nil)
- (gnus-summary-sort-by-date "sort-1-9" nil :visible nil)
- ;;
- (gnus-summary-insert-new-articles "inbox")
- ;;
- (gnus-summary-exit "exit-mode")
+ "mail/not-spam" nil :visible (spam-group-spam-contents-p gnus-newsgroup-name))
;;
+ (gnus-summary-exit "exit")
+ (gmm-customize-mode "preferences" t :help "Edit mode preferences")
(gnus-info-find-node "help"))
"List of functions for the summary tool bar (GNOME style).
:group 'gnus-summary)
(defcustom gnus-summary-tool-bar-retro
- '((gnus-summary-prev-unread-article "prev-ur")
- (gnus-summary-next-unread-article "next-ur")
- (gnus-summary-post-news "post")
- (gnus-summary-followup-with-original "fuwo")
- (gnus-summary-followup "followup")
- (gnus-summary-reply-with-original "reply-wo")
- (gnus-summary-reply "reply")
- (gnus-summary-caesar-message "rot13")
- (gnus-uu-decode-uu "uu-decode")
- (gnus-summary-save-article-file "save-aif")
- (gnus-summary-save-article "save-art")
- (gnus-uu-post-news "uu-post")
- (gnus-summary-catchup "catchup")
- (gnus-summary-catchup-and-exit "cu-exit")
- (gnus-summary-exit "exit-summ")
+ '((gnus-summary-prev-unread-article "gnus/prev-ur")
+ (gnus-summary-next-unread-article "gnus/next-ur")
+ (gnus-summary-post-news "gnus/post")
+ (gnus-summary-followup-with-original "gnus/fuwo")
+ (gnus-summary-followup "gnus/followup")
+ (gnus-summary-reply-with-original "gnus/reply-wo")
+ (gnus-summary-reply "gnus/reply")
+ (gnus-summary-caesar-message "gnus/rot13")
+ (gnus-uu-decode-uu "gnus/uu-decode")
+ (gnus-summary-save-article-file "gnus/save-aif")
+ (gnus-summary-save-article "gnus/save-art")
+ (gnus-uu-post-news "gnus/uu-post")
+ (gnus-summary-catchup "gnus/catchup")
+ (gnus-summary-catchup-and-exit "gnus/cu-exit")
+ (gnus-summary-exit "gnus/exit-summ")
;; Some new command that may need more suitable icons:
- (gnus-summary-print-article "print" nil :visible nil)
- (gnus-summary-mark-as-expirable "close" nil :visible nil)
- (gnus-summary-save-newsrc "save" nil :visible nil)
- ;; (gnus-summary-enter-digest-group "right_arrow" nil :visible nil)
- (gnus-summary-search-article-forward "search" nil :visible nil)
- ;; (gnus-summary-insert-new-articles "paste" nil :visible nil)
- ;; (gnus-summary-toggle-threads "open" nil :visible nil)
+ (gnus-summary-print-article "gnus/print" nil :visible nil)
+ (gnus-summary-mark-as-expirable "gnus/close" nil :visible nil)
+ (gnus-summary-save-newsrc "gnus/save" nil :visible nil)
+ ;; (gnus-summary-enter-digest-group "gnus/right_arrow" nil :visible nil)
+ (gnus-summary-search-article-forward "gnus/search" nil :visible nil)
+ ;; (gnus-summary-insert-new-articles "gnus/paste" nil :visible nil)
+ ;; (gnus-summary-toggle-threads "gnus/open" nil :visible nil)
;;
- (gnus-info-find-node "help" nil :visible nil))
+ (gnus-info-find-node "gnus/help" nil :visible nil))
"List of functions for the summary tool bar (retro look).
See `gmm-tool-bar-from-list' for the format of the list."
(defun gnus-summary-make-tool-bar (&optional force)
"Make a summary mode tool bar from `gnus-summary-tool-bar'.
When FORCE, rebuild the tool bar."
- (when (or (not gnus-summary-tool-bar-map) force)
- (let ((map (when (default-value 'tool-bar-mode)
- (let ((load-path (mm-image-load-path)))
- (gmm-tool-bar-from-list gnus-summary-tool-bar
- gnus-summary-tool-bar-zap-list
- 'gnus-summary-mode-map)))))
+ (when (and (not (featurep 'xemacs))
+ (boundp 'tool-bar-mode)
+ tool-bar-mode
+ (or (not gnus-summary-tool-bar-map) force))
+ (let* ((load-path
+ (gmm-image-load-path "gnus" "mail/save.xpm" 'load-path))
+ (image-load-path
+ (gmm-image-load-path "gnus" "mail/save.xpm" 'image-load-path))
+ (map (gmm-tool-bar-from-list gnus-summary-tool-bar
+ gnus-summary-tool-bar-zap-list
+ 'gnus-summary-mode-map)))
(when map
;; Need to set `gnus-summary-tool-bar-map' because `gnus-article-mode'
;; uses it's value.
(setq nlast (if (atom (cadr read)) (cadr read) (caadr read)))
(setq read (cdr read)))))
;; And add the last unread articles.
- (cond ((< first last)
- (push (cons first last) unread))
- ((= first last)
- (push first unread)))
+ (cond ((not (and first last))
+ nil)
+ ((< first last)
+ (push (cons first last) unread))
+ ((= first last)
+ (push first unread)))
;; Return the sequence of unread articles.
(delq 0 (nreverse unread))))