Commit d6c22d46 authored by Dave Love's avatar Dave Love
Browse files

(add-minor-mode): Use toggle-fun arg.

parent a2b07751
...@@ -658,6 +658,7 @@ Please convert your programs to use the variable `baud-rate' directly." ...@@ -658,6 +658,7 @@ Please convert your programs to use the variable `baud-rate' directly."
(defalias 'search-backward-regexp (symbol-function 're-search-backward)) (defalias 'search-backward-regexp (symbol-function 're-search-backward))
(defalias 'int-to-string 'number-to-string) (defalias 'int-to-string 'number-to-string)
(defalias 'store-match-data 'set-match-data) (defalias 'store-match-data 'set-match-data)
;; These are the XEmacs names:
(defalias 'point-at-eol 'line-end-position) (defalias 'point-at-eol 'line-end-position)
(defalias 'point-at-bol 'line-beginning-position) (defalias 'point-at-bol 'line-beginning-position)
...@@ -1509,13 +1510,33 @@ to `minor-mode-map-alist'. ...@@ -1509,13 +1510,33 @@ to `minor-mode-map-alist'.
Optional AFTER specifies that TOGGLE should be added after AFTER Optional AFTER specifies that TOGGLE should be added after AFTER
in `minor-mode-alist'. in `minor-mode-alist'.
Optional TOGGLE-FUN is there for compatiblity with other Emacsen. Optional TOGGLE-FUN is an interactive function to toggle the mode. If
It is currently not used. supplied, it is used to make mouse clicks on the mode-line string turn
off the mode.
If TOGGLE-FUN is supplied and TOGGLE has a non-nil `:included'
property, an entry for the mode is included in the mode-line minor
mode menu. If TOGGLE has a `:menu-tag', that is used for the menu
item's label instead of NAME.
In most cases, `define-minor-mode' should be used instead." In most cases, `define-minor-mode' should be used instead."
(when name (when name
(let ((existing (assq toggle minor-mode-alist)) (let ((existing (assq toggle minor-mode-alist))
(name (if (symbolp name) (symbol-value name) name))) (name (if (symbolp name) (symbol-value name) name)))
(when (functionp toggle-fun)
(setq name
(apply 'propertize name
'local-map (make-mode-line-mouse2-map toggle-fun)
(unless (get-text-property 0 'help-echo name)
(list 'help-echo
(format "mouse-2: turn off %S" toggle)))))
(when (get toggle :included)
(define-key mode-line-mode-menu
(vector toggle)
(list 'menu-item
(or (get toggle :menu-tag) name)
toggle-fun
:button (cons :toggle toggle)))))
(cond ((null existing) (cond ((null existing)
(let ((tail minor-mode-alist) found) (let ((tail minor-mode-alist) found)
(while (and tail (not found)) (while (and tail (not found))
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment