[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-commit] emacs/lisp/mh-e mh-tool-bar.el mh-seq.el mh-let...
From: |
Bill Wohler |
Subject: |
[Emacs-commit] emacs/lisp/mh-e mh-tool-bar.el mh-seq.el mh-let... |
Date: |
Fri, 21 Apr 2006 01:32:17 +0000 |
CVSROOT: /cvsroot/emacs
Module name: emacs
Branch:
Changes by: Bill Wohler <address@hidden> 06/04/21 01:32:17
Modified files:
lisp/mh-e : mh-tool-bar.el mh-seq.el mh-letter.el
mh-folder.el ChangeLog
Log message:
* mh-tool-bar.el (image-load-path): Define to shush compiler.
(mh-buffer-exists-p): Move inside mh-do-in-gnu-emacs since it isn't
used outside of it.
(mh-tool-bar-folder-buttons-init, mh-tool-bar-letter-buttons-init):
Update load-path/image-load-path before setting buttons. This code
used to be in mh-folder-mode/mh-letter-mode but this was the wrong
place since mh-tool-bar-*-buttons-init can also be called when
customizing the buttons.
(mh-tool-bar-update): New function which updates tool-bar-map in all
of the MH-E buffers after customizing the buttons (closes SF
#1452718).
(mh-tool-bar-folder-buttons-set, mh-tool-bar-letter-buttons-set): Call
it (closes SF #1452718).
* mh-folder.el (mh-folder-buttons-init-flag): Delete. Use
mh-folder-tool-bar-map instead.
(image-load-path): Delete. No longer used.
(mh-folder-mode): Moved setting of image-load-path into
mh-tool-bar-folder-buttons-init.
* mh-letter.el (mh-letter-buttons-init-flag): Delete. Use
mh-letter-tool-bar-map instead.
(image-load-path): Delete. No longer used.
(mh-letter-mode): Moved setting of image-load-path into
mh-tool-bar-letter-buttons-init.
* mh-seq.el (mh-narrow-to-seq, mh-widen): Use with-current-buffer
instead of set-buffer.
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/emacs/emacs/lisp/mh-e/mh-tool-bar.el.diff?tr1=1.7&tr2=1.8&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/emacs/emacs/lisp/mh-e/mh-seq.el.diff?tr1=1.31&tr2=1.32&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/emacs/emacs/lisp/mh-e/mh-letter.el.diff?tr1=1.12&tr2=1.13&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/emacs/emacs/lisp/mh-e/mh-folder.el.diff?tr1=1.12&tr2=1.13&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/emacs/emacs/lisp/mh-e/ChangeLog.diff?tr1=1.209&tr2=1.210&r1=text&r2=text
Patches:
Index: emacs/lisp/mh-e/ChangeLog
diff -u emacs/lisp/mh-e/ChangeLog:1.209 emacs/lisp/mh-e/ChangeLog:1.210
--- emacs/lisp/mh-e/ChangeLog:1.209 Wed Apr 19 21:03:23 2006
+++ emacs/lisp/mh-e/ChangeLog Fri Apr 21 01:32:16 2006
@@ -1,3 +1,35 @@
+2006-04-20 Bill Wohler <address@hidden>
+
+ * mh-tool-bar.el (image-load-path): Define to shush compiler.
+ (mh-buffer-exists-p): Move inside mh-do-in-gnu-emacs since it
+ isn't used outside of it.
+ (mh-tool-bar-folder-buttons-init,
+ mh-tool-bar-letter-buttons-init): Update load-path/image-load-path
+ before setting buttons. This code used to be in
+ mh-folder-mode/mh-letter-mode but this was the wrong place since
+ mh-tool-bar-*-buttons-init can also be called when customizing the
+ buttons.
+ (mh-tool-bar-update): New function which updates tool-bar-map in
+ all of the MH-E buffers after customizing the buttons (closes SF
+ #1452718).
+ (mh-tool-bar-folder-buttons-set, mh-tool-bar-letter-buttons-set):
+ Call it (closes SF #1452718).
+
+ * mh-folder.el (mh-folder-buttons-init-flag): Delete. Use
+ mh-folder-tool-bar-map instead.
+ (image-load-path): Delete. No longer used.
+ (mh-folder-mode): Moved setting of image-load-path into
+ mh-tool-bar-folder-buttons-init.
+
+ * mh-letter.el (mh-letter-buttons-init-flag): Delete. Use
+ mh-letter-tool-bar-map instead.
+ (image-load-path): Delete. No longer used.
+ (mh-letter-mode): Moved setting of image-load-path into
+ mh-tool-bar-letter-buttons-init.
+
+ * mh-seq.el (mh-narrow-to-seq, mh-widen): Use with-current-buffer
+ instead of set-buffer.
+
2006-04-19 Bill Wohler <address@hidden>
* mh-tool-bar.el (mh-tool-bar-define): Fix enable-expr so that one
Index: emacs/lisp/mh-e/mh-folder.el
diff -u emacs/lisp/mh-e/mh-folder.el:1.12 emacs/lisp/mh-e/mh-folder.el:1.13
--- emacs/lisp/mh-e/mh-folder.el:1.12 Sat Apr 15 00:28:08 2006
+++ emacs/lisp/mh-e/mh-folder.el Fri Apr 21 01:32:16 2006
@@ -524,11 +524,8 @@
;; Shush compiler.
(defvar desktop-save-buffer)
(defvar font-lock-auto-fontify)
-(defvar image-load-path)
(defvar font-lock-defaults) ; XEmacs
-(defvar mh-folder-buttons-init-flag nil)
-
;; Ensure new buffers won't get this mode if default-major-mode is nil.
(put 'mh-folder-mode 'mode-class 'special)
@@ -590,13 +587,8 @@
\\{mh-folder-mode-map}"
(mh-do-in-gnu-emacs
- (unless mh-folder-buttons-init-flag
- (let* ((load-path (mh-image-load-path-for-library "mh-e" "mh-logo.xpm"))
- (image-load-path (cons (car load-path)
- (when (boundp 'image-load-path)
- image-load-path))))
- (mh-tool-bar-folder-buttons-init)
- (setq mh-folder-buttons-init-flag t)))
+ (unless mh-folder-tool-bar-map
+ (mh-tool-bar-folder-buttons-init))
(set (make-local-variable 'tool-bar-map) mh-folder-tool-bar-map))
(mh-do-in-xemacs
(mh-tool-bar-init :folder))
Index: emacs/lisp/mh-e/mh-letter.el
diff -u emacs/lisp/mh-e/mh-letter.el:1.12 emacs/lisp/mh-e/mh-letter.el:1.13
--- emacs/lisp/mh-e/mh-letter.el:1.12 Sat Apr 15 00:28:08 2006
+++ emacs/lisp/mh-e/mh-letter.el Fri Apr 21 01:32:16 2006
@@ -275,10 +275,7 @@
;;; MH-Letter Mode
-(defvar mh-letter-buttons-init-flag nil)
-
;; Shush compiler.
-(defvar image-load-path)
(defvar font-lock-defaults) ; XEmacs
;; Ensure new buffers won't get this mode if default-major-mode is nil.
@@ -313,13 +310,8 @@
(make-local-variable 'mh-sent-from-folder)
(make-local-variable 'mh-sent-from-msg)
(mh-do-in-gnu-emacs
- (unless mh-letter-buttons-init-flag
- (let* ((load-path (mh-image-load-path-for-library "mh-e" "mh-logo.xpm"))
- (image-load-path (cons (car load-path)
- (when (boundp 'image-load-path)
- image-load-path))))
- (mh-tool-bar-letter-buttons-init)
- (setq mh-letter-buttons-init-flag t)))
+ (unless mh-letter-tool-bar-map
+ (mh-tool-bar-letter-buttons-init))
(set (make-local-variable 'tool-bar-map) mh-letter-tool-bar-map))
(mh-do-in-xemacs
(mh-tool-bar-init :letter))
Index: emacs/lisp/mh-e/mh-seq.el
diff -u emacs/lisp/mh-e/mh-seq.el:1.31 emacs/lisp/mh-e/mh-seq.el:1.32
--- emacs/lisp/mh-e/mh-seq.el:1.31 Sat Apr 15 00:28:08 2006
+++ emacs/lisp/mh-e/mh-seq.el Fri Apr 21 01:32:16 2006
@@ -238,8 +238,7 @@
(set (make-local-variable 'tool-bar-map)
mh-folder-seq-tool-bar-map)
(when (buffer-live-p (get-buffer mh-show-buffer))
- (save-excursion
- (set-buffer (get-buffer mh-show-buffer))
+ (with-current-buffer mh-show-buffer
(set (make-local-variable 'tool-bar-map)
mh-show-seq-tool-bar-map))))
(push 'widen mh-view-ops)))
@@ -371,8 +370,7 @@
(when (and (null mh-folder-view-stack) (boundp 'tool-bar-mode) tool-bar-mode)
(set (make-local-variable 'tool-bar-map) mh-folder-tool-bar-map)
(when (buffer-live-p (get-buffer mh-show-buffer))
- (save-excursion
- (set-buffer (get-buffer mh-show-buffer))
+ (with-current-buffer mh-show-buffer
(set (make-local-variable 'tool-bar-map) mh-show-tool-bar-map)))))
Index: emacs/lisp/mh-e/mh-tool-bar.el
diff -u emacs/lisp/mh-e/mh-tool-bar.el:1.7 emacs/lisp/mh-e/mh-tool-bar.el:1.8
--- emacs/lisp/mh-e/mh-tool-bar.el:1.7 Wed Apr 19 21:02:59 2006
+++ emacs/lisp/mh-e/mh-tool-bar.el Fri Apr 21 01:32:16 2006
@@ -83,6 +83,9 @@
;;; Tool Bar Creation
+;; Shush compiler.
+(defvar image-load-path)
+
(defmacro mh-tool-bar-define (defaults &rest buttons)
"Define a tool bar for MH-E.
DEFAULTS is the list of buttons that are present by default. It
@@ -178,7 +181,7 @@
(t 'folder-vectors)))
(list (cond ((eq type :letter) 'mh-tool-bar-letter-buttons)
(t 'mh-tool-bar-folder-buttons)))
- (key (intern (concat "mh-" type1 "tool-bar-" name-str)))
+ (key (intern (concat "mh-" type1 "-tool-bar-" name-str)))
(setter (intern (concat type1 "-button-setter")))
(mbuttons (cond ((eq type :letter) 'letter-buttons)
((eq type :show) 'show-buttons)
@@ -209,50 +212,79 @@
(unless (memq x letter-buttons)
(error "Letter defaults contains unknown button %s" x)))
`(eval-when (compile load eval)
- (defun mh-buffer-exists-p (mode)
- "Test whether a buffer with major mode MODE is present."
- (loop for buf in (buffer-list)
- when (save-excursion
- (set-buffer buf)
- (eq major-mode mode))
- return t))
-
;; GNU Emacs tool bar specific code
(mh-do-in-gnu-emacs
+ (defun mh-buffer-exists-p (mode)
+ "Test whether a buffer with major mode MODE is present."
+ (loop for buf in (buffer-list)
+ when (with-current-buffer buf
+ (eq major-mode mode))
+ return t))
;; Tool bar initialization functions
(defun mh-tool-bar-folder-buttons-init ()
(when (mh-buffer-exists-p 'mh-folder-mode)
- (setq mh-folder-tool-bar-map
- (let ((tool-bar-map (make-sparse-keymap)))
- ,@(nreverse folder-button-setter)
- tool-bar-map))
- (setq mh-show-tool-bar-map
- (let ((tool-bar-map (make-sparse-keymap)))
- ,@(nreverse show-button-setter)
- tool-bar-map))
- (setq mh-show-seq-tool-bar-map
- (let ((tool-bar-map (copy-keymap mh-show-tool-bar-map)))
- ,@(nreverse show-seq-button-setter)
- tool-bar-map))
- (setq mh-folder-seq-tool-bar-map
- (let ((tool-bar-map (copy-keymap mh-folder-tool-bar-map)))
- ,@(nreverse sequence-button-setter)
- tool-bar-map))))
+ (let* ((load-path (mh-image-load-path-for-library "mh-e"
+ "mh-logo.xpm"))
+ (image-load-path (cons (car load-path)
+ (when (boundp 'image-load-path)
+ image-load-path))))
+ (setq mh-folder-tool-bar-map
+ (let ((tool-bar-map (make-sparse-keymap)))
+ ,@(nreverse folder-button-setter)
+ tool-bar-map))
+ (setq mh-folder-seq-tool-bar-map
+ (let ((tool-bar-map (copy-keymap mh-folder-tool-bar-map)))
+ ,@(nreverse sequence-button-setter)
+ tool-bar-map))
+ (setq mh-show-tool-bar-map
+ (let ((tool-bar-map (make-sparse-keymap)))
+ ,@(nreverse show-button-setter)
+ tool-bar-map))
+ (setq mh-show-seq-tool-bar-map
+ (let ((tool-bar-map (copy-keymap mh-show-tool-bar-map)))
+ ,@(nreverse show-seq-button-setter)
+ tool-bar-map)))))
(defun mh-tool-bar-letter-buttons-init ()
(when (mh-buffer-exists-p 'mh-letter-mode)
- (setq mh-letter-tool-bar-map
- (let ((tool-bar-map (make-sparse-keymap)))
- ,@(nreverse letter-button-setter)
- tool-bar-map))))
+ (let* ((load-path (mh-image-load-path-for-library "mh-e"
+ "mh-logo.xpm"))
+ (image-load-path (cons (car load-path)
+ (when (boundp 'image-load-path)
+ image-load-path))))
+ (setq mh-letter-tool-bar-map
+ (let ((tool-bar-map (make-sparse-keymap)))
+ ,@(nreverse letter-button-setter)
+ tool-bar-map)))))
;; Custom setter functions
+ (defun mh-tool-bar-update (mode default-map sequence-map)
+ "Update `tool-bar-map' in all buffers of MODE.
+Use SEQUENCE-MAP if display is limited; DEFAULT-MAP otherwise."
+ (loop for buf in (buffer-list)
+ do (with-current-buffer buf
+ (if (eq mode major-mode)
+ (let ((map (if mh-folder-view-stack
+ sequence-map
+ default-map)))
+ ;; Yes, make-local-variable is necessary since we
+ ;; get here during initialization when loading
+ ;; mh-e.el, after the +inbox buffer has been
+ ;; created, but before mh-folder-mode has run and
+ ;; created the local map.
+ (set (make-local-variable 'tool-bar-map) map))))))
(defun mh-tool-bar-folder-buttons-set (symbol value)
"Construct tool bar for `mh-folder-mode' and `mh-show-mode'."
(set-default symbol value)
- (mh-tool-bar-folder-buttons-init))
+ (mh-tool-bar-folder-buttons-init)
+ (mh-tool-bar-update 'mh-folder-mode mh-folder-tool-bar-map
+ mh-folder-seq-tool-bar-map)
+ (mh-tool-bar-update 'mh-show-mode mh-show-tool-bar-map
+ mh-show-seq-tool-bar-map))
(defun mh-tool-bar-letter-buttons-set (symbol value)
"Construct tool bar for `mh-letter-mode'."
(set-default symbol value)
- (mh-tool-bar-letter-buttons-init)))
+ (mh-tool-bar-letter-buttons-init)
+ (mh-tool-bar-update 'mh-letter-mode mh-letter-tool-bar-map
+ mh-letter-tool-bar-map)))
;; XEmacs specific code
(mh-do-in-xemacs
(defvar mh-tool-bar-folder-vector-map
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Emacs-commit] emacs/lisp/mh-e mh-tool-bar.el mh-seq.el mh-let...,
Bill Wohler <=