Mercurial > emacs
changeset 31563:96b9757bfd45
(add-minor-mode): Use toggle-fun arg.
author | Dave Love <fx@gnu.org> |
---|---|
date | Tue, 12 Sep 2000 12:56:25 +0000 |
parents | a2d8210661c8 |
children | 00efca34e7d0 |
files | lisp/subr.el |
diffstat | 1 files changed, 23 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/subr.el Tue Sep 12 12:54:31 2000 +0000 +++ b/lisp/subr.el Tue Sep 12 12:56:25 2000 +0000 @@ -658,6 +658,7 @@ (defalias 'search-backward-regexp (symbol-function 're-search-backward)) (defalias 'int-to-string 'number-to-string) (defalias 'store-match-data 'set-match-data) +;; These are the XEmacs names: (defalias 'point-at-eol 'line-end-position) (defalias 'point-at-bol 'line-beginning-position) @@ -1509,13 +1510,33 @@ Optional AFTER specifies that TOGGLE should be added after AFTER in `minor-mode-alist'. -Optional TOGGLE-FUN is there for compatiblity with other Emacsen. -It is currently not used. +Optional TOGGLE-FUN is an interactive function to toggle the mode. If +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." (when name (let ((existing (assq toggle minor-mode-alist)) (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) (let ((tail minor-mode-alist) found) (while (and tail (not found))