Mercurial > emacs
comparison lisp/menu-bar.el @ 47296:8d11b5360234
(menu-bar-make-mm-toggle): New macro.
(showhide-menu-bar, showhide-toolbar, menu-bar-toggle-auto-compression)
(toggle-highlight-paren-mode, toggle-global-lazy-font-lock-mode):
Remove. Use the minor mode function directly instead.
(menu-bar-mode): Add message and customize-mark-as-set and return
the new value as do other minor modes.
author | Stefan Monnier <monnier@iro.umontreal.ca> |
---|---|
date | Fri, 06 Sep 2002 20:27:59 +0000 |
parents | 58ccd45ac06b |
children | 055681adf287 |
comparison
equal
deleted
inserted
replaced
47295:5c0a2b139b90 | 47296:8d11b5360234 |
---|---|
549 '(menu-item "Top-level Customization Group" customize | 549 '(menu-item "Top-level Customization Group" customize |
550 :help "The master group called `Emacs'")) | 550 :help "The master group called `Emacs'")) |
551 | 551 |
552 ;(defvar menu-bar-preferences-menu (make-sparse-keymap "Preferences")) | 552 ;(defvar menu-bar-preferences-menu (make-sparse-keymap "Preferences")) |
553 | 553 |
554 (defmacro menu-bar-make-mm-toggle (fname doc help &optional props) | |
555 "Make a menu-item for a global minor mode toggle. | |
556 FNAME is the minor mode's name (variable and function). | |
557 DOC is the text to use the menu entry. | |
558 HELP is the text to use for the tooltip. | |
559 PROPS are additional properties." | |
560 `'(menu-item ,doc ',fname | |
561 ,@(if props props) | |
562 :help ,help | |
563 :button (:toggle . (and (default-boundp ',fname) | |
564 (default-value ',fname))))) | |
565 | |
554 (defmacro menu-bar-make-toggle (name variable doc message help &optional props &rest body) | 566 (defmacro menu-bar-make-toggle (name variable doc message help &optional props &rest body) |
555 `(progn | 567 `(progn |
556 (defun ,name () | 568 (defun ,name () |
557 ,(concat "Toggle whether to " (downcase (substring help 0 1)) | 569 ,(concat "Toggle whether to " (downcase (substring help 0 1)) |
558 (substring help 1) ".") | 570 (substring help 1) ".") |
773 (define-key menu-bar-showhide-menu [showhide-scroll-bar] | 785 (define-key menu-bar-showhide-menu [showhide-scroll-bar] |
774 (list 'menu-item "Scroll-bar" menu-bar-showhide-scroll-bar-menu | 786 (list 'menu-item "Scroll-bar" menu-bar-showhide-scroll-bar-menu |
775 :visible `(display-graphic-p) | 787 :visible `(display-graphic-p) |
776 :help "Select scroll-bar mode")) | 788 :help "Select scroll-bar mode")) |
777 | 789 |
778 (defun showhide-menu-bar () | 790 (define-key menu-bar-showhide-menu [menu-bar-mode] |
779 "Toggle whether to turn menu-bar on/off." | 791 '(menu-item "Menu-bar" menu-bar-mode |
780 (interactive) | |
781 (menu-bar-mode) | |
782 (if menu-bar-mode | |
783 (message "Menu-bar mode enabled.") | |
784 (message "Menu-bar mode disabled. Use M-x menu-bar-mode to make the menu bar appear.")) | |
785 (customize-mark-as-set 'menu-bar-mode)) | |
786 | |
787 (define-key menu-bar-showhide-menu [showhide-menu-bar] | |
788 '(menu-item "Menu-bar" showhide-menu-bar | |
789 :help "Toggle menu-bar on/off" | 792 :help "Toggle menu-bar on/off" |
790 :button (:toggle . menu-bar-mode))) | 793 :button (:toggle . menu-bar-mode))) |
791 | 794 |
792 (defun showhide-toolbar () | |
793 "Toggle whether to turn tool-bar on/off." | |
794 (interactive) | |
795 (if (tool-bar-mode) | |
796 (message "Tool-bar mode enabled.") | |
797 (message "Tool-bar mode disabled.")) | |
798 (customize-mark-as-set 'tool-bar-mode)) | |
799 | |
800 (define-key menu-bar-showhide-menu [showhide-tool-bar] | 795 (define-key menu-bar-showhide-menu [showhide-tool-bar] |
801 (list 'menu-item "Tool-bar" 'showhide-toolbar | 796 (list 'menu-item "Tool-bar" 'tool-bar-mode |
802 :help "Turn tool-bar on/off" | 797 :help "Turn tool-bar on/off" |
803 :visible `(display-graphic-p) | 798 :visible `(display-graphic-p) |
804 :button `(:toggle . tool-bar-mode))) | 799 :button `(:toggle . tool-bar-mode))) |
805 | 800 |
806 (define-key menu-bar-options-menu [showhide] | 801 (define-key menu-bar-options-menu [showhide] |
837 "Enter Lisp debugger when an error is signaled")) | 832 "Enter Lisp debugger when an error is signaled")) |
838 (define-key menu-bar-options-menu [debugger-separator] | 833 (define-key menu-bar-options-menu [debugger-separator] |
839 '("--")) | 834 '("--")) |
840 (define-key menu-bar-options-menu [toggle-auto-compression] | 835 (define-key menu-bar-options-menu [toggle-auto-compression] |
841 '(menu-item "Automatic File De/compression" | 836 '(menu-item "Automatic File De/compression" |
842 menu-bar-toggle-auto-compression-mode | 837 auto-compression-mode |
843 :help "Transparently decompress compressed files" | 838 :help "Transparently decompress compressed files" |
844 :button (:toggle . (rassq 'jka-compr-handler | 839 :button (:toggle . (rassq 'jka-compr-handler |
845 file-name-handler-alist)))) | 840 file-name-handler-alist)))) |
846 | |
847 (defun menu-bar-toggle-auto-compression () | |
848 "Toggle automatic file compression and uncompression. | |
849 With prefix argument ARG, turn auto compression on if positive, else off. | |
850 Returns the new status of auto compression (non-nil means on)." | |
851 (interactive) | |
852 (auto-compression-mode) | |
853 (customize-mark-as-set 'auto-compression-mode)) | |
854 | 841 |
855 (define-key menu-bar-options-menu [save-place] | 842 (define-key menu-bar-options-menu [save-place] |
856 (menu-bar-make-toggle toggle-save-place-globally save-place | 843 (menu-bar-make-toggle toggle-save-place-globally save-place |
857 "Save Place in Files between Sessions" | 844 "Save Place in Files between Sessions" |
858 "Saving place in files %s" | 845 "Saving place in files %s" |
917 :button (:toggle . truncate-lines))) | 904 :button (:toggle . truncate-lines))) |
918 | 905 |
919 (define-key menu-bar-options-menu [highlight-separator] | 906 (define-key menu-bar-options-menu [highlight-separator] |
920 '("--")) | 907 '("--")) |
921 (define-key menu-bar-options-menu [highlight-paren-mode] | 908 (define-key menu-bar-options-menu [highlight-paren-mode] |
922 (menu-bar-make-toggle toggle-highlight-paren-mode show-paren-mode | 909 (menu-bar-make-mm-toggle show-paren-mode |
923 "Paren Match Highlighting" | 910 "Paren Match Highlighting" |
924 "Show Paren mode %s" | |
925 "Highlight matching/mismatched parentheses at cursor (Show Paren mode)")) | 911 "Highlight matching/mismatched parentheses at cursor (Show Paren mode)")) |
926 (define-key menu-bar-options-menu [transient-mark-mode] | 912 (define-key menu-bar-options-menu [transient-mark-mode] |
927 (menu-bar-make-toggle toggle-transient-mark-mode transient-mark-mode | 913 (menu-bar-make-toggle toggle-transient-mark-mode transient-mark-mode |
928 "Active Region Highlighting" | 914 "Active Region Highlighting" |
929 "Transient Mark mode %s" | 915 "Transient Mark mode %s" |
930 "Make text in active region stand out in color (Transient Mark mode)" | 916 "Make text in active region stand out in color (Transient Mark mode)" |
931 (:enable (not cua-mode)))) | 917 (:enable (not cua-mode)))) |
932 (define-key menu-bar-options-menu [toggle-global-lazy-font-lock-mode] | 918 (define-key menu-bar-options-menu [toggle-global-lazy-font-lock-mode] |
933 (menu-bar-make-toggle toggle-global-lazy-font-lock-mode global-font-lock-mode | 919 (menu-bar-make-mm-toggle global-font-lock-mode |
934 "Syntax Highlighting" | 920 "Syntax Highlighting" |
935 "Global Font Lock mode %s" | 921 "Colorize text based on language syntax (Global Font Lock mode)")) |
936 "Colorize text based on language syntax (Global Font Lock mode)")) | |
937 | 922 |
938 | 923 |
939 ;; The "Tools" menu items | 924 ;; The "Tools" menu items |
940 | 925 |
941 (defun send-mail-item-name () | 926 (defun send-mail-item-name () |
1613 "Toggle display of a menu bar on each frame. | 1598 "Toggle display of a menu bar on each frame. |
1614 This command applies to all frames that exist and frames to be | 1599 This command applies to all frames that exist and frames to be |
1615 created in the future. | 1600 created in the future. |
1616 With a numeric argument, if the argument is positive, | 1601 With a numeric argument, if the argument is positive, |
1617 turn on menu bars; otherwise, turn off menu bars." | 1602 turn on menu bars; otherwise, turn off menu bars." |
1618 (interactive "P") | 1603 (interactive "P") |
1619 | 1604 |
1620 ;; Make menu-bar-mode and default-frame-alist consistent. | 1605 ;; Make menu-bar-mode and default-frame-alist consistent. |
1621 (let ((default (assq 'menu-bar-lines default-frame-alist))) | 1606 (let ((default (assq 'menu-bar-lines default-frame-alist))) |
1622 (if default | 1607 (if default |
1623 (setq menu-bar-mode (not (eq (cdr default) 0))) | 1608 (setq menu-bar-mode (not (eq (cdr default) 0))) |
1624 (setq default-frame-alist | 1609 (setq default-frame-alist |
1625 (cons (cons 'menu-bar-lines (if menu-bar-mode 1 0)) | 1610 (cons (cons 'menu-bar-lines (if menu-bar-mode 1 0)) |
1626 default-frame-alist)))) | 1611 default-frame-alist)))) |
1627 | 1612 |
1628 ;; Toggle or set the mode, according to FLAG. | 1613 ;; Toggle or set the mode, according to FLAG. |
1629 (setq menu-bar-mode (if (null flag) (not menu-bar-mode) | 1614 (setq menu-bar-mode (if (null flag) (not menu-bar-mode) |
1630 (> (prefix-numeric-value flag) 0))) | 1615 (> (prefix-numeric-value flag) 0))) |
1631 | 1616 |
1632 ;; Apply it to default-frame-alist. | 1617 ;; Apply it to default-frame-alist. |
1633 (let ((parameter (assq 'menu-bar-lines default-frame-alist))) | 1618 (let ((parameter (assq 'menu-bar-lines default-frame-alist))) |
1634 (if (consp parameter) | 1619 (if (consp parameter) |
1635 (setcdr parameter (if menu-bar-mode 1 0)) | 1620 (setcdr parameter (if menu-bar-mode 1 0)) |
1636 (setq default-frame-alist | 1621 (setq default-frame-alist |
1637 (cons (cons 'menu-bar-lines (if menu-bar-mode 1 0)) | 1622 (cons (cons 'menu-bar-lines (if menu-bar-mode 1 0)) |
1638 default-frame-alist)))) | 1623 default-frame-alist)))) |
1639 | 1624 |
1640 ;; Apply it to existing frames. | 1625 ;; Apply it to existing frames. |
1641 (let ((frames (frame-list))) | 1626 (let ((frames (frame-list))) |
1642 (while frames | 1627 (while frames |
1643 (let ((height (cdr (assq 'height (frame-parameters (car frames)))))) | 1628 (let ((height (cdr (assq 'height (frame-parameters (car frames)))))) |
1644 (modify-frame-parameters (car frames) | 1629 (modify-frame-parameters (car frames) |
1645 (list (cons 'menu-bar-lines | 1630 (list (cons 'menu-bar-lines |
1646 (if menu-bar-mode 1 0)))) | 1631 (if menu-bar-mode 1 0)))) |
1647 (modify-frame-parameters (car frames) | 1632 (modify-frame-parameters (car frames) |
1648 (list (cons 'height height)))) | 1633 (list (cons 'height height)))) |
1649 (setq frames (cdr frames))))) | 1634 (setq frames (cdr frames)))) |
1635 | |
1636 (when (interactive-p) | |
1637 (if menu-bar-mode | |
1638 (message "Menu-bar mode enabled.") | |
1639 (message "Menu-bar mode disabled. Use M-x menu-bar-mode to make the menu bar appear.")) | |
1640 (customize-mark-as-set 'menu-bar-mode)) | |
1641 | |
1642 menu-bar-mode) | |
1650 | 1643 |
1651 (provide 'menu-bar) | 1644 (provide 'menu-bar) |
1652 | 1645 |
1653 ;;; menu-bar.el ends here | 1646 ;;; menu-bar.el ends here |