aboutsummaryrefslogtreecommitdiffstats
path: root/lisp
diff options
context:
space:
mode:
authorGlenn Morris2007-10-18 04:08:42 +0000
committerGlenn Morris2007-10-18 04:08:42 +0000
commitfe1afc9b878fa523c24cee0435fbfa7ef17331bc (patch)
treee78b35a6da36a2b6911eab0075e2906e3feca953 /lisp
parent8dd4830b2a894e90c06921033d8cd8bd05469fe6 (diff)
downloademacs-fe1afc9b878fa523c24cee0435fbfa7ef17331bc.tar.gz
emacs-fe1afc9b878fa523c24cee0435fbfa7ef17331bc.zip
Drew Adams <drew.adams at oracle.com>
(mode-line-minor-mode-keymap): Add mouse-minor-mode-menu on mouse-1. (mode-line-modes): Add mouse-1 to help-echo text. (mouse-minor-mode-menu, minor-mode-menu-from-indicator): New functions. (mode-line-minor-mode-help): Doc fix.
Diffstat (limited to 'lisp')
-rw-r--r--lisp/ChangeLog9
-rw-r--r--lisp/bindings.el25
2 files changed, 32 insertions, 2 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index 8e0853ea612..c57c5aaacff 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,12 @@
12007-10-18 Drew Adams <drew.adams@oracle.com>
2
3 * bindings.el (mode-line-minor-mode-keymap):
4 Add mouse-minor-mode-menu on mouse-1.
5 (mode-line-modes): Add mouse-1 to help-echo text.
6 (mouse-minor-mode-menu, minor-mode-menu-from-indicator):
7 New functions.
8 (mode-line-minor-mode-help): Doc fix.
9
12007-10-17 Juri Linkov <juri@jurta.org> 102007-10-17 Juri Linkov <juri@jurta.org>
2 11
3 * textmodes/fill.el (fill-paragraph-or-region): Remove function 12 * textmodes/fill.el (fill-paragraph-or-region): Remove function
diff --git a/lisp/bindings.el b/lisp/bindings.el
index 2ca7c8afea8..ad7470e07e3 100644
--- a/lisp/bindings.el
+++ b/lisp/bindings.el
@@ -289,6 +289,7 @@ Keymap to display on major mode.")
289 289
290(defvar mode-line-minor-mode-keymap 290(defvar mode-line-minor-mode-keymap
291 (let ((map (make-sparse-keymap))) 291 (let ((map (make-sparse-keymap)))
292 (define-key map [mode-line down-mouse-1] 'mouse-minor-mode-menu)
292 (define-key map [mode-line mouse-2] 'mode-line-minor-mode-help) 293 (define-key map [mode-line mouse-2] 'mode-line-minor-mode-help)
293 (define-key map [mode-line down-mouse-3] 'mode-line-mode-menu-1) 294 (define-key map [mode-line down-mouse-3] 'mode-line-mode-menu-1)
294 (define-key map [header-line down-mouse-3] 'mode-line-mode-menu-1) 295 (define-key map [header-line down-mouse-3] 'mode-line-mode-menu-1)
@@ -331,7 +332,7 @@ Keymap to display on minor modes.")
331 '("" mode-line-process) 332 '("" mode-line-process)
332 `(:propertize ("" minor-mode-alist) 333 `(:propertize ("" minor-mode-alist)
333 mouse-face mode-line-highlight 334 mouse-face mode-line-highlight
334 help-echo "mouse-2: minor mode help, mouse-3: toggle minor modes" 335 help-echo "mouse-1: minor mode, mouse-2: minor mode help, mouse-3: toggle minor modes"
335 local-map ,mode-line-minor-mode-keymap) 336 local-map ,mode-line-minor-mode-keymap)
336 (propertize "%n" 'help-echo "mouse-2: widen" 337 (propertize "%n" 'help-echo "mouse-2: widen"
337 'mouse-face 'mode-line-highlight 338 'mouse-face 'mode-line-highlight
@@ -492,8 +493,28 @@ Menu of mode operations in the mode line.")
492 (interactive "@e") 493 (interactive "@e")
493 (x-popup-menu event mode-line-mode-menu)) 494 (x-popup-menu event mode-line-mode-menu))
494 495
496(defun mouse-minor-mode-menu (event)
497 "Show minor-mode menu for EVENT on minor modes area of the mode line."
498 (interactive "@e")
499 (let ((indicator (car (nth 4 (car (cdr event))))))
500 (minor-mode-menu-from-indicator indicator)))
501
502(defun minor-mode-menu-from-indicator (indicator)
503 "Show menu, if any, for minor mode specified by INDICATOR.
504Interactively, INDICATOR is read using completion."
505 (interactive (list (completing-read "Minor mode indicator: "
506 (describe-minor-mode-completion-table-for-indicator))))
507 (let ((minor-mode (lookup-minor-mode-from-indicator indicator)))
508 (if minor-mode
509 (let* ((map (cdr-safe (assq minor-mode minor-mode-map-alist)))
510 (menu (and (keymapp map) (lookup-key map [menu-bar]))))
511 (if menu
512 (popup-menu menu)
513 (message "No menu for minor mode `%s'" minor-mode)))
514 (error "Cannot find minor mode for `%s'" indicator))))
515
495(defun mode-line-minor-mode-help (event) 516(defun mode-line-minor-mode-help (event)
496 "Describe minor mode for EVENT occurred on minor modes area of the mode line." 517 "Describe minor mode for EVENT on minor modes area of the mode line."
497 (interactive "@e") 518 (interactive "@e")
498 (let ((indicator (car (nth 4 (car (cdr event)))))) 519 (let ((indicator (car (nth 4 (car (cdr event))))))
499 (describe-minor-mode-from-indicator indicator))) 520 (describe-minor-mode-from-indicator indicator)))