annotate lisp/toolbar/tool-bar.el @ 51151:fe11e703042b

Summary: MIME support added for e-mail processing that skips encoded regions. Allow user to skip saving Fcc messages with large attachments. Fixed region skipping bug with multi-line comments - e.g. tex $ regions spanning multiple lines. Added support for postscript and uuencoded regions. Redundant dictionary file names purged. Dictionary definition field name changed from "Character Set" to "Coding System". Fixed bug in reloading dictionaries. Modified headers to reflect new version. XEmacs menu now adds customize item. (ispell-check-version): No longer an aliased function. Returns library path if not called interactively. Variable `temporary-file-directory' protected if not loaded. (check-ispell-version): Now the alias for `ispell-check-version'. (ispell-message-fcc-skip): New variable that determines if and when to query about saving Fcc copy of message if an attachment is large. (ispell-skip-html): Declared buffer-local. (ispell-local-dictionary-alist): Docstring expanded. Tag name changed from "Character Set" to "Coding System". (ispell-dictionary-alist-1): Removed redundant command-line option to load brasileiro, british, and castellano dictionary files. (ispell-dictionary-alist-2): Removed redundant command-line option to load czech dictionary file. (ispell-dictionary-alist-3): Moved francais-tex here. (ispell-dictionary-alist-4): Removed german and german8 dictionaries. The deutsch ones are the correct definitions. `nederlands' and `nederlands8' dictionaries moved here. (ispell-dictionary-alist-5): `polish' and `portugues' dictionaries moved here. Removed redundant command-line option to `norsk' and `portugues'. (ispell-dictionary-alist-6): Removed redundant command-line option to load `russian' and `slovak' dictionary files. (ispell-dictionary-alist): Tag name changed from "Character Set" to "Coding System". (ispell-version): Updated to 3.6. (ispell-library-directory): Calls non-deprecated function. (ispell-valid-dictionary-list): New function returning all valid dictionaries on machine. (ispell-checking-message): Documentation string improved. (ispell-skip-region-alist): Added uuencoded and postscript region skipping. Improved http/e-mail/file regexp to not match `/.\w'. (ispell-html-skip-alists): New variable for html region support. (ispell-send-string): Removed redundant xemacs check. (ispell-word): Fix spelling error in documentation string, added extent information to support highlighting in ispell-minor-mode. (ispell-command-loop): Disable horizontal scrollbar in XEmacs choices buffer. (ispell-show-choices): Directly select `choices-window'. (ispell-help): Use default buffer size for electric help. (ispell-adjusted-window-height): Correct for xemacs detection. (ispell-start-process): Don't double specify dictionary file name. (ispell-init-process): Set `ispell-library-path' each call. (ispell-change-dictionary): Now only completes valid dictionaries. (ispell-region): Add support for MIME region skipping and Fcc message query for large attachments. (ispell-begin-skip-region-regexp): Add documentation string. Added message support and cleaned up code for generic and html regions. (ispell-begin-skip-region): Function is now requires alist argument. (ispell-begin-tex-skip-regexp): Added comments and support improved html and message regions. (ispell-skip-region-list): New function for MIME and region skipping. (ispell-tex-arg-end): Add documentation string. (ispell-ignore-fcc): New function to query saving Fcc message. (ispell-skip-region): Calculate alist for key match dynamically, html skipping pushed to alists. (ispell-get-line): Add support for multi-line comment regions. (ispell): Check that variables to continue spelling are bound. (ispell-message-text-end): Postscript and uuencoded regions now supported as MIME regions, rather than as end-of-message region. (ispell-mime-multipartp): New function supporting MIME. (ispell-mime-skip-part): New function supporting MIME. (ispell-message): Add MIME support. (ispell-buffer-local-parsing): Variable `ispell-skip-html' now local. (ispell-buffer-local-dict): Fixed bug for detecting and reloading new dictionary.
author Stefan Monnier <monnier@iro.umontreal.ca>
date Thu, 22 May 2003 21:34:00 +0000
parents 7350385eb42a
children 695cf19ef79e
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
38436
b174db545cfd Some fixes to follow coding conventions.
Pavel Janík <Pavel@Janik.cz>
parents: 38144
diff changeset
1 ;;; tool-bar.el --- setting up the tool bar
31738
e8458588eb55 Renamed from toolbar.el. Change `toolbar'
Dave Love <fx@gnu.org>
parents:
diff changeset
2 ;;
43246
c187056ac630 2002-02-11 Per Abrahamsen <abraham@dina.kvl.dk>
Per Abrahamsen <abraham@dina.kvl.dk>
parents: 39019
diff changeset
3 ;; Copyright (C) 2000, 2001, 2002 Free Software Foundation, Inc.
31738
e8458588eb55 Renamed from toolbar.el. Change `toolbar'
Dave Love <fx@gnu.org>
parents:
diff changeset
4 ;;
e8458588eb55 Renamed from toolbar.el. Change `toolbar'
Dave Love <fx@gnu.org>
parents:
diff changeset
5 ;; Author: Dave Love <fx@gnu.org>
e8458588eb55 Renamed from toolbar.el. Change `toolbar'
Dave Love <fx@gnu.org>
parents:
diff changeset
6 ;; Keywords: mouse frames
e8458588eb55 Renamed from toolbar.el. Change `toolbar'
Dave Love <fx@gnu.org>
parents:
diff changeset
7
e8458588eb55 Renamed from toolbar.el. Change `toolbar'
Dave Love <fx@gnu.org>
parents:
diff changeset
8 ;; This file is part of GNU Emacs.
e8458588eb55 Renamed from toolbar.el. Change `toolbar'
Dave Love <fx@gnu.org>
parents:
diff changeset
9
e8458588eb55 Renamed from toolbar.el. Change `toolbar'
Dave Love <fx@gnu.org>
parents:
diff changeset
10 ;; GNU Emacs is free software; you can redistribute it and/or modify
e8458588eb55 Renamed from toolbar.el. Change `toolbar'
Dave Love <fx@gnu.org>
parents:
diff changeset
11 ;; it under the terms of the GNU General Public License as published by
e8458588eb55 Renamed from toolbar.el. Change `toolbar'
Dave Love <fx@gnu.org>
parents:
diff changeset
12 ;; the Free Software Foundation; either version 2, or (at your option)
e8458588eb55 Renamed from toolbar.el. Change `toolbar'
Dave Love <fx@gnu.org>
parents:
diff changeset
13 ;; any later version.
e8458588eb55 Renamed from toolbar.el. Change `toolbar'
Dave Love <fx@gnu.org>
parents:
diff changeset
14
e8458588eb55 Renamed from toolbar.el. Change `toolbar'
Dave Love <fx@gnu.org>
parents:
diff changeset
15 ;; GNU Emacs is distributed in the hope that it will be useful,
e8458588eb55 Renamed from toolbar.el. Change `toolbar'
Dave Love <fx@gnu.org>
parents:
diff changeset
16 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
e8458588eb55 Renamed from toolbar.el. Change `toolbar'
Dave Love <fx@gnu.org>
parents:
diff changeset
17 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
e8458588eb55 Renamed from toolbar.el. Change `toolbar'
Dave Love <fx@gnu.org>
parents:
diff changeset
18 ;; GNU General Public License for more details.
e8458588eb55 Renamed from toolbar.el. Change `toolbar'
Dave Love <fx@gnu.org>
parents:
diff changeset
19
e8458588eb55 Renamed from toolbar.el. Change `toolbar'
Dave Love <fx@gnu.org>
parents:
diff changeset
20 ;; You should have received a copy of the GNU General Public License
e8458588eb55 Renamed from toolbar.el. Change `toolbar'
Dave Love <fx@gnu.org>
parents:
diff changeset
21 ;; along with GNU Emacs; see the file COPYING. If not, write to the
e8458588eb55 Renamed from toolbar.el. Change `toolbar'
Dave Love <fx@gnu.org>
parents:
diff changeset
22 ;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
e8458588eb55 Renamed from toolbar.el. Change `toolbar'
Dave Love <fx@gnu.org>
parents:
diff changeset
23 ;; Boston, MA 02111-1307, USA.
e8458588eb55 Renamed from toolbar.el. Change `toolbar'
Dave Love <fx@gnu.org>
parents:
diff changeset
24
e8458588eb55 Renamed from toolbar.el. Change `toolbar'
Dave Love <fx@gnu.org>
parents:
diff changeset
25 ;;; Commentary:
e8458588eb55 Renamed from toolbar.el. Change `toolbar'
Dave Love <fx@gnu.org>
parents:
diff changeset
26
45935
7ac43b3204b0 Comment change.
Richard M. Stallman <rms@gnu.org>
parents: 45133
diff changeset
27 ;; Provides `tool-bar-mode' to control display of the tool-bar and
31738
e8458588eb55 Renamed from toolbar.el. Change `toolbar'
Dave Love <fx@gnu.org>
parents:
diff changeset
28 ;; bindings for the global tool bar with convenience functions
e8458588eb55 Renamed from toolbar.el. Change `toolbar'
Dave Love <fx@gnu.org>
parents:
diff changeset
29 ;; `tool-bar-add-item' and `tool-bar-add-item-from-menu'.
e8458588eb55 Renamed from toolbar.el. Change `toolbar'
Dave Love <fx@gnu.org>
parents:
diff changeset
30
32285
4763231809cd (tool-bar-map): Define it empty.
Dave Love <fx@gnu.org>
parents: 32124
diff changeset
31 ;; The normal global binding for [tool-bar] (below) uses the value of
33574
b470e0e05721 comment fix
Dave Love <fx@gnu.org>
parents: 33201
diff changeset
32 ;; `tool-bar-map' as the actual keymap to define the tool bar. Modes
b470e0e05721 comment fix
Dave Love <fx@gnu.org>
parents: 33201
diff changeset
33 ;; may either bind items under the [tool-bar] prefix key of the local
b470e0e05721 comment fix
Dave Love <fx@gnu.org>
parents: 33201
diff changeset
34 ;; map to add to the global bar or may set `tool-bar-map'
32382
2c430e11f471 Fix a typo.
Eli Zaretskii <eliz@gnu.org>
parents: 32358
diff changeset
35 ;; buffer-locally to override it. (Some items are removed from the
32285
4763231809cd (tool-bar-map): Define it empty.
Dave Love <fx@gnu.org>
parents: 32124
diff changeset
36 ;; global bar in modes which have `special' as their `mode-class'
44153
3db8348dbbfa Fix typo in commentary.
Juanma Barranquero <lekktu@gmail.com>
parents: 43445
diff changeset
37 ;; property.)
32285
4763231809cd (tool-bar-map): Define it empty.
Dave Love <fx@gnu.org>
parents: 32124
diff changeset
38
32331
d1c0cf83e365 (tool-bar-mode): Check whether tool-bar-map
Dave Love <fx@gnu.org>
parents: 32285
diff changeset
39 ;; Todo: Somehow make tool bars easily customizable by the naive?
d1c0cf83e365 (tool-bar-mode): Check whether tool-bar-map
Dave Love <fx@gnu.org>
parents: 32285
diff changeset
40
31738
e8458588eb55 Renamed from toolbar.el. Change `toolbar'
Dave Love <fx@gnu.org>
parents:
diff changeset
41 ;;; Code:
e8458588eb55 Renamed from toolbar.el. Change `toolbar'
Dave Love <fx@gnu.org>
parents:
diff changeset
42
e8458588eb55 Renamed from toolbar.el. Change `toolbar'
Dave Love <fx@gnu.org>
parents:
diff changeset
43 ;;;###autoload
e8458588eb55 Renamed from toolbar.el. Change `toolbar'
Dave Love <fx@gnu.org>
parents:
diff changeset
44 (define-minor-mode tool-bar-mode
e8458588eb55 Renamed from toolbar.el. Change `toolbar'
Dave Love <fx@gnu.org>
parents:
diff changeset
45 "Toggle use of the tool bar.
34004
423ccdfa2db5 (tool-bar-mode): Doc fix.
Gerd Moellmann <gerd@gnu.org>
parents: 33895
diff changeset
46 With numeric ARG, display the tool bar if and only if ARG is positive.
31738
e8458588eb55 Renamed from toolbar.el. Change `toolbar'
Dave Love <fx@gnu.org>
parents:
diff changeset
47
e8458588eb55 Renamed from toolbar.el. Change `toolbar'
Dave Love <fx@gnu.org>
parents:
diff changeset
48 See `tool-bar-add-item' and `tool-bar-add-item-from-menu' for
e8458588eb55 Renamed from toolbar.el. Change `toolbar'
Dave Love <fx@gnu.org>
parents:
diff changeset
49 conveniently adding tool bar items."
43445
2fca4318df9a 2002-02-21 Per Abrahamsen <abraham@dina.kvl.dk>
Per Abrahamsen <abraham@dina.kvl.dk>
parents: 43412
diff changeset
50 :init-value nil
31738
e8458588eb55 Renamed from toolbar.el. Change `toolbar'
Dave Love <fx@gnu.org>
parents:
diff changeset
51 :global t
e8458588eb55 Renamed from toolbar.el. Change `toolbar'
Dave Love <fx@gnu.org>
parents:
diff changeset
52 :group 'mouse
e8458588eb55 Renamed from toolbar.el. Change `toolbar'
Dave Love <fx@gnu.org>
parents:
diff changeset
53 :group 'frames
39019
a9bd717014f0 (tool-bar-mode): Make it a no-op if images
Eli Zaretskii <eliz@gnu.org>
parents: 38698
diff changeset
54 (and (display-images-p)
a9bd717014f0 (tool-bar-mode): Make it a no-op if images
Eli Zaretskii <eliz@gnu.org>
parents: 38698
diff changeset
55 (let ((lines (if tool-bar-mode 1 0)))
a9bd717014f0 (tool-bar-mode): Make it a no-op if images
Eli Zaretskii <eliz@gnu.org>
parents: 38698
diff changeset
56 ;; Alter existing frames...
a9bd717014f0 (tool-bar-mode): Make it a no-op if images
Eli Zaretskii <eliz@gnu.org>
parents: 38698
diff changeset
57 (mapc (lambda (frame)
a9bd717014f0 (tool-bar-mode): Make it a no-op if images
Eli Zaretskii <eliz@gnu.org>
parents: 38698
diff changeset
58 (modify-frame-parameters frame
a9bd717014f0 (tool-bar-mode): Make it a no-op if images
Eli Zaretskii <eliz@gnu.org>
parents: 38698
diff changeset
59 (list (cons 'tool-bar-lines lines))))
a9bd717014f0 (tool-bar-mode): Make it a no-op if images
Eli Zaretskii <eliz@gnu.org>
parents: 38698
diff changeset
60 (frame-list))
a9bd717014f0 (tool-bar-mode): Make it a no-op if images
Eli Zaretskii <eliz@gnu.org>
parents: 38698
diff changeset
61 ;; ...and future ones.
a9bd717014f0 (tool-bar-mode): Make it a no-op if images
Eli Zaretskii <eliz@gnu.org>
parents: 38698
diff changeset
62 (let ((elt (assq 'tool-bar-lines default-frame-alist)))
a9bd717014f0 (tool-bar-mode): Make it a no-op if images
Eli Zaretskii <eliz@gnu.org>
parents: 38698
diff changeset
63 (if elt
a9bd717014f0 (tool-bar-mode): Make it a no-op if images
Eli Zaretskii <eliz@gnu.org>
parents: 38698
diff changeset
64 (setcdr elt lines)
a9bd717014f0 (tool-bar-mode): Make it a no-op if images
Eli Zaretskii <eliz@gnu.org>
parents: 38698
diff changeset
65 (add-to-list 'default-frame-alist (cons 'tool-bar-lines lines)))))
a9bd717014f0 (tool-bar-mode): Make it a no-op if images
Eli Zaretskii <eliz@gnu.org>
parents: 38698
diff changeset
66 (if (and tool-bar-mode
a9bd717014f0 (tool-bar-mode): Make it a no-op if images
Eli Zaretskii <eliz@gnu.org>
parents: 38698
diff changeset
67 (display-graphic-p)
a9bd717014f0 (tool-bar-mode): Make it a no-op if images
Eli Zaretskii <eliz@gnu.org>
parents: 38698
diff changeset
68 (= 1 (length (default-value 'tool-bar-map)))) ; not yet setup
a9bd717014f0 (tool-bar-mode): Make it a no-op if images
Eli Zaretskii <eliz@gnu.org>
parents: 38698
diff changeset
69 (tool-bar-setup))))
31738
e8458588eb55 Renamed from toolbar.el. Change `toolbar'
Dave Love <fx@gnu.org>
parents:
diff changeset
70
43445
2fca4318df9a 2002-02-21 Per Abrahamsen <abraham@dina.kvl.dk>
Per Abrahamsen <abraham@dina.kvl.dk>
parents: 43412
diff changeset
71 ;;;###autoload
2fca4318df9a 2002-02-21 Per Abrahamsen <abraham@dina.kvl.dk>
Per Abrahamsen <abraham@dina.kvl.dk>
parents: 43412
diff changeset
72 ;; We want to pretend the toolbar by standard is on, as this will make
2fca4318df9a 2002-02-21 Per Abrahamsen <abraham@dina.kvl.dk>
Per Abrahamsen <abraham@dina.kvl.dk>
parents: 43412
diff changeset
73 ;; customize consider disabling the toolbar a customization, and save
2fca4318df9a 2002-02-21 Per Abrahamsen <abraham@dina.kvl.dk>
Per Abrahamsen <abraham@dina.kvl.dk>
parents: 43412
diff changeset
74 ;; that. We could do this for real by setting :init-value above, but
2fca4318df9a 2002-02-21 Per Abrahamsen <abraham@dina.kvl.dk>
Per Abrahamsen <abraham@dina.kvl.dk>
parents: 43412
diff changeset
75 ;; that would turn on the toolbar in MS Windows where it is currently
2fca4318df9a 2002-02-21 Per Abrahamsen <abraham@dina.kvl.dk>
Per Abrahamsen <abraham@dina.kvl.dk>
parents: 43412
diff changeset
76 ;; useless, and it would overwrite disabling the tool bar from X
2fca4318df9a 2002-02-21 Per Abrahamsen <abraham@dina.kvl.dk>
Per Abrahamsen <abraham@dina.kvl.dk>
parents: 43412
diff changeset
77 ;; resources. If anyone want to implement this in a cleaner way,
2fca4318df9a 2002-02-21 Per Abrahamsen <abraham@dina.kvl.dk>
Per Abrahamsen <abraham@dina.kvl.dk>
parents: 43412
diff changeset
78 ;; please do so.
2fca4318df9a 2002-02-21 Per Abrahamsen <abraham@dina.kvl.dk>
Per Abrahamsen <abraham@dina.kvl.dk>
parents: 43412
diff changeset
79 ;; -- Per Abrahamsen <abraham@dina.kvl.dk> 2002-02-21.
2fca4318df9a 2002-02-21 Per Abrahamsen <abraham@dina.kvl.dk>
Per Abrahamsen <abraham@dina.kvl.dk>
parents: 43412
diff changeset
80 (put 'tool-bar-mode 'standard-value '(t))
2fca4318df9a 2002-02-21 Per Abrahamsen <abraham@dina.kvl.dk>
Per Abrahamsen <abraham@dina.kvl.dk>
parents: 43412
diff changeset
81
32285
4763231809cd (tool-bar-map): Define it empty.
Dave Love <fx@gnu.org>
parents: 32124
diff changeset
82 (defvar tool-bar-map (make-sparse-keymap)
4763231809cd (tool-bar-map): Define it empty.
Dave Love <fx@gnu.org>
parents: 32124
diff changeset
83 "Keymap for the tool bar.
4763231809cd (tool-bar-map): Define it empty.
Dave Love <fx@gnu.org>
parents: 32124
diff changeset
84 Define this locally to override the global tool bar.")
4763231809cd (tool-bar-map): Define it empty.
Dave Love <fx@gnu.org>
parents: 32124
diff changeset
85
4763231809cd (tool-bar-map): Define it empty.
Dave Love <fx@gnu.org>
parents: 32124
diff changeset
86 (global-set-key [tool-bar]
4763231809cd (tool-bar-map): Define it empty.
Dave Love <fx@gnu.org>
parents: 32124
diff changeset
87 '(menu-item "tool bar" ignore
4763231809cd (tool-bar-map): Define it empty.
Dave Love <fx@gnu.org>
parents: 32124
diff changeset
88 :filter (lambda (ignore) tool-bar-map)))
31738
e8458588eb55 Renamed from toolbar.el. Change `toolbar'
Dave Love <fx@gnu.org>
parents:
diff changeset
89
e8458588eb55 Renamed from toolbar.el. Change `toolbar'
Dave Love <fx@gnu.org>
parents:
diff changeset
90 ;;;###autoload
32285
4763231809cd (tool-bar-map): Define it empty.
Dave Love <fx@gnu.org>
parents: 32124
diff changeset
91 (defun tool-bar-add-item (icon def key &rest props)
31738
e8458588eb55 Renamed from toolbar.el. Change `toolbar'
Dave Love <fx@gnu.org>
parents:
diff changeset
92 "Add an item to the tool bar.
e8458588eb55 Renamed from toolbar.el. Change `toolbar'
Dave Love <fx@gnu.org>
parents:
diff changeset
93 ICON names the image, DEF is the key definition and KEY is a symbol
32285
4763231809cd (tool-bar-map): Define it empty.
Dave Love <fx@gnu.org>
parents: 32124
diff changeset
94 for the fake function key in the menu keymap. Remaining arguments
4763231809cd (tool-bar-map): Define it empty.
Dave Love <fx@gnu.org>
parents: 32124
diff changeset
95 PROPS are additional items to add to the menu item specification. See
4763231809cd (tool-bar-map): Define it empty.
Dave Love <fx@gnu.org>
parents: 32124
diff changeset
96 Info node `(elisp)Tool Bar'. Items are added from left to right.
31738
e8458588eb55 Renamed from toolbar.el. Change `toolbar'
Dave Love <fx@gnu.org>
parents:
diff changeset
97
35764
0a2ba9c8fde1 (tool-bar-add-item): Doc fix.
Eli Zaretskii <eliz@gnu.org>
parents: 34019
diff changeset
98 ICON is the base name of a file containing the image to use. The
0a2ba9c8fde1 (tool-bar-add-item): Doc fix.
Eli Zaretskii <eliz@gnu.org>
parents: 34019
diff changeset
99 function will first try to use ICON.xpm, then ICON.pbm, and finally
0a2ba9c8fde1 (tool-bar-add-item): Doc fix.
Eli Zaretskii <eliz@gnu.org>
parents: 34019
diff changeset
100 ICON.xbm, using `find-image'.
32285
4763231809cd (tool-bar-map): Define it empty.
Dave Love <fx@gnu.org>
parents: 32124
diff changeset
101
44307
62bd2c6cd91f (tool-bar-local-item): Renamed from tool-bar-add-item, and new arg MAP.
Richard M. Stallman <rms@gnu.org>
parents: 44153
diff changeset
102 Use this function only to make bindings in the global value of `tool-bar-map'.
62bd2c6cd91f (tool-bar-local-item): Renamed from tool-bar-add-item, and new arg MAP.
Richard M. Stallman <rms@gnu.org>
parents: 44153
diff changeset
103 To define items in any other map, use `tool-bar-local-item'."
62bd2c6cd91f (tool-bar-local-item): Renamed from tool-bar-add-item, and new arg MAP.
Richard M. Stallman <rms@gnu.org>
parents: 44153
diff changeset
104 (apply 'tool-bar-local-item icon def key tool-bar-map props))
62bd2c6cd91f (tool-bar-local-item): Renamed from tool-bar-add-item, and new arg MAP.
Richard M. Stallman <rms@gnu.org>
parents: 44153
diff changeset
105
62bd2c6cd91f (tool-bar-local-item): Renamed from tool-bar-add-item, and new arg MAP.
Richard M. Stallman <rms@gnu.org>
parents: 44153
diff changeset
106 ;;;###autoload
62bd2c6cd91f (tool-bar-local-item): Renamed from tool-bar-add-item, and new arg MAP.
Richard M. Stallman <rms@gnu.org>
parents: 44153
diff changeset
107 (defun tool-bar-local-item (icon def key map &rest props)
62bd2c6cd91f (tool-bar-local-item): Renamed from tool-bar-add-item, and new arg MAP.
Richard M. Stallman <rms@gnu.org>
parents: 44153
diff changeset
108 "Add an item to the tool bar in map MAP.
62bd2c6cd91f (tool-bar-local-item): Renamed from tool-bar-add-item, and new arg MAP.
Richard M. Stallman <rms@gnu.org>
parents: 44153
diff changeset
109 ICON names the image, DEF is the key definition and KEY is a symbol
62bd2c6cd91f (tool-bar-local-item): Renamed from tool-bar-add-item, and new arg MAP.
Richard M. Stallman <rms@gnu.org>
parents: 44153
diff changeset
110 for the fake function key in the menu keymap. Remaining arguments
62bd2c6cd91f (tool-bar-local-item): Renamed from tool-bar-add-item, and new arg MAP.
Richard M. Stallman <rms@gnu.org>
parents: 44153
diff changeset
111 PROPS are additional items to add to the menu item specification. See
62bd2c6cd91f (tool-bar-local-item): Renamed from tool-bar-add-item, and new arg MAP.
Richard M. Stallman <rms@gnu.org>
parents: 44153
diff changeset
112 Info node `(elisp)Tool Bar'. Items are added from left to right.
62bd2c6cd91f (tool-bar-local-item): Renamed from tool-bar-add-item, and new arg MAP.
Richard M. Stallman <rms@gnu.org>
parents: 44153
diff changeset
113
62bd2c6cd91f (tool-bar-local-item): Renamed from tool-bar-add-item, and new arg MAP.
Richard M. Stallman <rms@gnu.org>
parents: 44153
diff changeset
114 ICON is the base name of a file containing the image to use. The
62bd2c6cd91f (tool-bar-local-item): Renamed from tool-bar-add-item, and new arg MAP.
Richard M. Stallman <rms@gnu.org>
parents: 44153
diff changeset
115 function will first try to use ICON.xpm, then ICON.pbm, and finally
62bd2c6cd91f (tool-bar-local-item): Renamed from tool-bar-add-item, and new arg MAP.
Richard M. Stallman <rms@gnu.org>
parents: 44153
diff changeset
116 ICON.xbm, using `find-image'."
34019
3d6f9638e8e5 (tool-bar-add-item-from-menu): Use
Gerd Moellmann <gerd@gnu.org>
parents: 34004
diff changeset
117 (let* ((fg (face-attribute 'tool-bar :foreground))
3d6f9638e8e5 (tool-bar-add-item-from-menu): Use
Gerd Moellmann <gerd@gnu.org>
parents: 34004
diff changeset
118 (bg (face-attribute 'tool-bar :background))
3d6f9638e8e5 (tool-bar-add-item-from-menu): Use
Gerd Moellmann <gerd@gnu.org>
parents: 34004
diff changeset
119 (colors (nconc (if (eq fg 'unspecified) nil (list :foreground fg))
3d6f9638e8e5 (tool-bar-add-item-from-menu): Use
Gerd Moellmann <gerd@gnu.org>
parents: 34004
diff changeset
120 (if (eq bg 'unspecified) nil (list :background bg))))
32788
5ed618d6e94c (tool-bar-add-item-from-menu)
Dave Love <fx@gnu.org>
parents: 32382
diff changeset
121 (image (find-image
32358
52dcf5ad6176 (tool-bar-add-item)
Dave Love <fx@gnu.org>
parents: 32340
diff changeset
122 (if (display-color-p)
34019
3d6f9638e8e5 (tool-bar-add-item-from-menu): Use
Gerd Moellmann <gerd@gnu.org>
parents: 34004
diff changeset
123 (list (list :type 'xpm :file (concat icon ".xpm"))
3d6f9638e8e5 (tool-bar-add-item-from-menu): Use
Gerd Moellmann <gerd@gnu.org>
parents: 34004
diff changeset
124 (append (list :type 'pbm :file (concat icon ".pbm"))
3d6f9638e8e5 (tool-bar-add-item-from-menu): Use
Gerd Moellmann <gerd@gnu.org>
parents: 34004
diff changeset
125 colors)
3d6f9638e8e5 (tool-bar-add-item-from-menu): Use
Gerd Moellmann <gerd@gnu.org>
parents: 34004
diff changeset
126 (append (list :type 'xbm :file (concat icon ".xbm"))
3d6f9638e8e5 (tool-bar-add-item-from-menu): Use
Gerd Moellmann <gerd@gnu.org>
parents: 34004
diff changeset
127 colors))
3d6f9638e8e5 (tool-bar-add-item-from-menu): Use
Gerd Moellmann <gerd@gnu.org>
parents: 34004
diff changeset
128 (list (append (list :type 'pbm :file (concat icon ".pbm"))
3d6f9638e8e5 (tool-bar-add-item-from-menu): Use
Gerd Moellmann <gerd@gnu.org>
parents: 34004
diff changeset
129 colors)
3d6f9638e8e5 (tool-bar-add-item-from-menu): Use
Gerd Moellmann <gerd@gnu.org>
parents: 34004
diff changeset
130 (append (list :type 'xbm :file (concat icon ".xbm"))
3d6f9638e8e5 (tool-bar-add-item-from-menu): Use
Gerd Moellmann <gerd@gnu.org>
parents: 34004
diff changeset
131 colors)
3d6f9638e8e5 (tool-bar-add-item-from-menu): Use
Gerd Moellmann <gerd@gnu.org>
parents: 34004
diff changeset
132 (list :type 'xpm :file (concat icon ".xpm")))))))
38470
b8361f155685 (tool-bar-add-item-from-menu, tool-bar-add-item): Don't call image-related
Eli Zaretskii <eliz@gnu.org>
parents: 38436
diff changeset
133 (when (and (display-images-p) image)
31738
e8458588eb55 Renamed from toolbar.el. Change `toolbar'
Dave Love <fx@gnu.org>
parents:
diff changeset
134 (unless (image-mask-p image)
e8458588eb55 Renamed from toolbar.el. Change `toolbar'
Dave Love <fx@gnu.org>
parents:
diff changeset
135 (setq image (append image '(:mask heuristic))))
44307
62bd2c6cd91f (tool-bar-local-item): Renamed from tool-bar-add-item, and new arg MAP.
Richard M. Stallman <rms@gnu.org>
parents: 44153
diff changeset
136 (define-key-after map (vector key)
31738
e8458588eb55 Renamed from toolbar.el. Change `toolbar'
Dave Love <fx@gnu.org>
parents:
diff changeset
137 `(menu-item ,(symbol-name key) ,def :image ,image ,@props)))))
e8458588eb55 Renamed from toolbar.el. Change `toolbar'
Dave Love <fx@gnu.org>
parents:
diff changeset
138
32340
97bfc5c6e1c1 (tool-bar-add-item-from-menu): Add autoload cookie.
Dave Love <fx@gnu.org>
parents: 32331
diff changeset
139 ;;;###autoload
31738
e8458588eb55 Renamed from toolbar.el. Change `toolbar'
Dave Love <fx@gnu.org>
parents:
diff changeset
140 (defun tool-bar-add-item-from-menu (command icon &optional map &rest props)
e8458588eb55 Renamed from toolbar.el. Change `toolbar'
Dave Love <fx@gnu.org>
parents:
diff changeset
141 "Define tool bar binding for COMMAND using the given ICON in keymap MAP.
44307
62bd2c6cd91f (tool-bar-local-item): Renamed from tool-bar-add-item, and new arg MAP.
Richard M. Stallman <rms@gnu.org>
parents: 44153
diff changeset
142 This makes a binding for COMMAND in `tool-bar-map', copying its
62bd2c6cd91f (tool-bar-local-item): Renamed from tool-bar-add-item, and new arg MAP.
Richard M. Stallman <rms@gnu.org>
parents: 44153
diff changeset
143 binding from the menu bar in MAP (which defaults to `global-map'), but
62bd2c6cd91f (tool-bar-local-item): Renamed from tool-bar-add-item, and new arg MAP.
Richard M. Stallman <rms@gnu.org>
parents: 44153
diff changeset
144 modifies the binding by adding an image specification for ICON. It
62bd2c6cd91f (tool-bar-local-item): Renamed from tool-bar-add-item, and new arg MAP.
Richard M. Stallman <rms@gnu.org>
parents: 44153
diff changeset
145 finds ICON just like `tool-bar-add-item'. PROPS are additional
62bd2c6cd91f (tool-bar-local-item): Renamed from tool-bar-add-item, and new arg MAP.
Richard M. Stallman <rms@gnu.org>
parents: 44153
diff changeset
146 properties to add to the binding.
62bd2c6cd91f (tool-bar-local-item): Renamed from tool-bar-add-item, and new arg MAP.
Richard M. Stallman <rms@gnu.org>
parents: 44153
diff changeset
147
62bd2c6cd91f (tool-bar-local-item): Renamed from tool-bar-add-item, and new arg MAP.
Richard M. Stallman <rms@gnu.org>
parents: 44153
diff changeset
148 MAP must contain appropriate binding for `[menu-bar]' which holds a keymap.
62bd2c6cd91f (tool-bar-local-item): Renamed from tool-bar-add-item, and new arg MAP.
Richard M. Stallman <rms@gnu.org>
parents: 44153
diff changeset
149
62bd2c6cd91f (tool-bar-local-item): Renamed from tool-bar-add-item, and new arg MAP.
Richard M. Stallman <rms@gnu.org>
parents: 44153
diff changeset
150 Use this function only to make bindings in the global value of `tool-bar-map'.
62bd2c6cd91f (tool-bar-local-item): Renamed from tool-bar-add-item, and new arg MAP.
Richard M. Stallman <rms@gnu.org>
parents: 44153
diff changeset
151 To define items in any other map, use `tool-bar-local-item'."
46483
7350385eb42a (tool-bar-add-item-from-menu): Make sure to change the global tool-bar-map.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 45935
diff changeset
152 (apply 'tool-bar-local-item-from-menu command icon
7350385eb42a (tool-bar-add-item-from-menu): Make sure to change the global tool-bar-map.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 45935
diff changeset
153 (default-value 'tool-bar-map) map props))
32285
4763231809cd (tool-bar-map): Define it empty.
Dave Love <fx@gnu.org>
parents: 32124
diff changeset
154
44307
62bd2c6cd91f (tool-bar-local-item): Renamed from tool-bar-add-item, and new arg MAP.
Richard M. Stallman <rms@gnu.org>
parents: 44153
diff changeset
155 ;;;###autoload
62bd2c6cd91f (tool-bar-local-item): Renamed from tool-bar-add-item, and new arg MAP.
Richard M. Stallman <rms@gnu.org>
parents: 44153
diff changeset
156 (defun tool-bar-local-item-from-menu (command icon in-map &optional from-map &rest props)
62bd2c6cd91f (tool-bar-local-item): Renamed from tool-bar-add-item, and new arg MAP.
Richard M. Stallman <rms@gnu.org>
parents: 44153
diff changeset
157 "Define tool bar binding for COMMAND using the given ICON in keymap MAP.
62bd2c6cd91f (tool-bar-local-item): Renamed from tool-bar-add-item, and new arg MAP.
Richard M. Stallman <rms@gnu.org>
parents: 44153
diff changeset
158 This makes a binding for COMMAND in IN-MAP, copying its binding from
62bd2c6cd91f (tool-bar-local-item): Renamed from tool-bar-add-item, and new arg MAP.
Richard M. Stallman <rms@gnu.org>
parents: 44153
diff changeset
159 the menu bar in FROM-MAP (which defaults to `global-map'), but
62bd2c6cd91f (tool-bar-local-item): Renamed from tool-bar-add-item, and new arg MAP.
Richard M. Stallman <rms@gnu.org>
parents: 44153
diff changeset
160 modifies the binding by adding an image specification for ICON. It
62bd2c6cd91f (tool-bar-local-item): Renamed from tool-bar-add-item, and new arg MAP.
Richard M. Stallman <rms@gnu.org>
parents: 44153
diff changeset
161 finds ICON just like `tool-bar-add-item'. PROPS are additional
62bd2c6cd91f (tool-bar-local-item): Renamed from tool-bar-add-item, and new arg MAP.
Richard M. Stallman <rms@gnu.org>
parents: 44153
diff changeset
162 properties to add to the binding.
62bd2c6cd91f (tool-bar-local-item): Renamed from tool-bar-add-item, and new arg MAP.
Richard M. Stallman <rms@gnu.org>
parents: 44153
diff changeset
163
62bd2c6cd91f (tool-bar-local-item): Renamed from tool-bar-add-item, and new arg MAP.
Richard M. Stallman <rms@gnu.org>
parents: 44153
diff changeset
164 MAP must contain appropriate binding for `[menu-bar]' which holds a keymap."
62bd2c6cd91f (tool-bar-local-item): Renamed from tool-bar-add-item, and new arg MAP.
Richard M. Stallman <rms@gnu.org>
parents: 44153
diff changeset
165 (unless from-map
62bd2c6cd91f (tool-bar-local-item): Renamed from tool-bar-add-item, and new arg MAP.
Richard M. Stallman <rms@gnu.org>
parents: 44153
diff changeset
166 (setq from-map global-map))
62bd2c6cd91f (tool-bar-local-item): Renamed from tool-bar-add-item, and new arg MAP.
Richard M. Stallman <rms@gnu.org>
parents: 44153
diff changeset
167 (let* ((menu-bar-map (lookup-key from-map [menu-bar]))
31738
e8458588eb55 Renamed from toolbar.el. Change `toolbar'
Dave Love <fx@gnu.org>
parents:
diff changeset
168 (keys (where-is-internal command menu-bar-map))
34019
3d6f9638e8e5 (tool-bar-add-item-from-menu): Use
Gerd Moellmann <gerd@gnu.org>
parents: 34004
diff changeset
169 (fg (face-attribute 'tool-bar :foreground))
3d6f9638e8e5 (tool-bar-add-item-from-menu): Use
Gerd Moellmann <gerd@gnu.org>
parents: 34004
diff changeset
170 (bg (face-attribute 'tool-bar :background))
3d6f9638e8e5 (tool-bar-add-item-from-menu): Use
Gerd Moellmann <gerd@gnu.org>
parents: 34004
diff changeset
171 (colors (nconc (if (eq fg 'unspecified) nil (list :foreground fg))
3d6f9638e8e5 (tool-bar-add-item-from-menu): Use
Gerd Moellmann <gerd@gnu.org>
parents: 34004
diff changeset
172 (if (eq bg 'unspecified) nil (list :background bg))))
33895
3683396305bc (tool-bar-add-item-from-menu): Handle case
Gerd Moellmann <gerd@gnu.org>
parents: 33574
diff changeset
173 (spec (if (display-color-p)
3683396305bc (tool-bar-add-item-from-menu): Handle case
Gerd Moellmann <gerd@gnu.org>
parents: 33574
diff changeset
174 (list (list :type 'xpm :file (concat icon ".xpm"))
3683396305bc (tool-bar-add-item-from-menu): Handle case
Gerd Moellmann <gerd@gnu.org>
parents: 33574
diff changeset
175 (append (list :type 'pbm :file (concat icon ".pbm"))
3683396305bc (tool-bar-add-item-from-menu): Handle case
Gerd Moellmann <gerd@gnu.org>
parents: 33574
diff changeset
176 colors)
3683396305bc (tool-bar-add-item-from-menu): Handle case
Gerd Moellmann <gerd@gnu.org>
parents: 33574
diff changeset
177 (append (list :type 'xbm :file (concat icon ".xbm"))
3683396305bc (tool-bar-add-item-from-menu): Handle case
Gerd Moellmann <gerd@gnu.org>
parents: 33574
diff changeset
178 colors))
3683396305bc (tool-bar-add-item-from-menu): Handle case
Gerd Moellmann <gerd@gnu.org>
parents: 33574
diff changeset
179 (list (append (list :type 'pbm :file (concat icon ".pbm"))
3683396305bc (tool-bar-add-item-from-menu): Handle case
Gerd Moellmann <gerd@gnu.org>
parents: 33574
diff changeset
180 colors)
3683396305bc (tool-bar-add-item-from-menu): Handle case
Gerd Moellmann <gerd@gnu.org>
parents: 33574
diff changeset
181 (append (list :type 'xbm :file (concat icon ".xbm"))
3683396305bc (tool-bar-add-item-from-menu): Handle case
Gerd Moellmann <gerd@gnu.org>
parents: 33574
diff changeset
182 colors)
3683396305bc (tool-bar-add-item-from-menu): Handle case
Gerd Moellmann <gerd@gnu.org>
parents: 33574
diff changeset
183 (list :type 'xpm :file (concat icon ".xpm")))))
3683396305bc (tool-bar-add-item-from-menu): Handle case
Gerd Moellmann <gerd@gnu.org>
parents: 33574
diff changeset
184 (image (find-image spec))
31738
e8458588eb55 Renamed from toolbar.el. Change `toolbar'
Dave Love <fx@gnu.org>
parents:
diff changeset
185 submap key)
38470
b8361f155685 (tool-bar-add-item-from-menu, tool-bar-add-item): Don't call image-related
Eli Zaretskii <eliz@gnu.org>
parents: 38436
diff changeset
186 (when (and (display-images-p) image)
31738
e8458588eb55 Renamed from toolbar.el. Change `toolbar'
Dave Love <fx@gnu.org>
parents:
diff changeset
187 ;; We'll pick up the last valid entry in the list of keys if
e8458588eb55 Renamed from toolbar.el. Change `toolbar'
Dave Love <fx@gnu.org>
parents:
diff changeset
188 ;; there's more than one.
e8458588eb55 Renamed from toolbar.el. Change `toolbar'
Dave Love <fx@gnu.org>
parents:
diff changeset
189 (dolist (k keys)
e8458588eb55 Renamed from toolbar.el. Change `toolbar'
Dave Love <fx@gnu.org>
parents:
diff changeset
190 ;; We're looking for a binding of the command in a submap of
e8458588eb55 Renamed from toolbar.el. Change `toolbar'
Dave Love <fx@gnu.org>
parents:
diff changeset
191 ;; the menu bar map, so the key sequence must be two or more
e8458588eb55 Renamed from toolbar.el. Change `toolbar'
Dave Love <fx@gnu.org>
parents:
diff changeset
192 ;; long.
e8458588eb55 Renamed from toolbar.el. Change `toolbar'
Dave Love <fx@gnu.org>
parents:
diff changeset
193 (if (and (vectorp k)
e8458588eb55 Renamed from toolbar.el. Change `toolbar'
Dave Love <fx@gnu.org>
parents:
diff changeset
194 (> (length k) 1))
e8458588eb55 Renamed from toolbar.el. Change `toolbar'
Dave Love <fx@gnu.org>
parents:
diff changeset
195 (let ((m (lookup-key menu-bar-map (substring k 0 -1)))
e8458588eb55 Renamed from toolbar.el. Change `toolbar'
Dave Love <fx@gnu.org>
parents:
diff changeset
196 ;; Last element in the bound key sequence:
e8458588eb55 Renamed from toolbar.el. Change `toolbar'
Dave Love <fx@gnu.org>
parents:
diff changeset
197 (kk (aref k (1- (length k)))))
e8458588eb55 Renamed from toolbar.el. Change `toolbar'
Dave Love <fx@gnu.org>
parents:
diff changeset
198 (if (and (keymapp m)
e8458588eb55 Renamed from toolbar.el. Change `toolbar'
Dave Love <fx@gnu.org>
parents:
diff changeset
199 (symbolp kk))
e8458588eb55 Renamed from toolbar.el. Change `toolbar'
Dave Love <fx@gnu.org>
parents:
diff changeset
200 (setq submap m
e8458588eb55 Renamed from toolbar.el. Change `toolbar'
Dave Love <fx@gnu.org>
parents:
diff changeset
201 key kk)))))
e8458588eb55 Renamed from toolbar.el. Change `toolbar'
Dave Love <fx@gnu.org>
parents:
diff changeset
202 (when (and (symbolp submap) (boundp submap))
e8458588eb55 Renamed from toolbar.el. Change `toolbar'
Dave Love <fx@gnu.org>
parents:
diff changeset
203 (setq submap (eval submap)))
31751
3c4b8a33fed9 Reapply Gerd's change from 2000-09-18, which seems to have gotten lost:
Miles Bader <miles@gnu.org>
parents: 31738
diff changeset
204 (unless (image-mask-p image)
3c4b8a33fed9 Reapply Gerd's change from 2000-09-18, which seems to have gotten lost:
Miles Bader <miles@gnu.org>
parents: 31738
diff changeset
205 (setq image (append image '(:mask heuristic))))
38698
0d7cddbc0fa7 (tool-bar-add-item-from-menu): Handle
Gerd Moellmann <gerd@gnu.org>
parents: 38470
diff changeset
206 (let ((defn (assq key (cdr submap))))
0d7cddbc0fa7 (tool-bar-add-item-from-menu): Handle
Gerd Moellmann <gerd@gnu.org>
parents: 38470
diff changeset
207 (if (eq (cadr defn) 'menu-item)
44307
62bd2c6cd91f (tool-bar-local-item): Renamed from tool-bar-add-item, and new arg MAP.
Richard M. Stallman <rms@gnu.org>
parents: 44153
diff changeset
208 (define-key-after in-map (vector key)
38698
0d7cddbc0fa7 (tool-bar-add-item-from-menu): Handle
Gerd Moellmann <gerd@gnu.org>
parents: 38470
diff changeset
209 (append (cdr defn) (list :image image) props))
0d7cddbc0fa7 (tool-bar-add-item-from-menu): Handle
Gerd Moellmann <gerd@gnu.org>
parents: 38470
diff changeset
210 (setq defn (cdr defn))
44307
62bd2c6cd91f (tool-bar-local-item): Renamed from tool-bar-add-item, and new arg MAP.
Richard M. Stallman <rms@gnu.org>
parents: 44153
diff changeset
211 (define-key-after in-map (vector key)
45133
1fa9ceaa1c5f (tool-bar-local-item-from-menu): Handle both cases: when the menu item
Richard M. Stallman <rms@gnu.org>
parents: 44670
diff changeset
212 (let ((rest (cdr defn)))
1fa9ceaa1c5f (tool-bar-local-item-from-menu): Handle both cases: when the menu item
Richard M. Stallman <rms@gnu.org>
parents: 44670
diff changeset
213 ;; If the rest of the definition starts
1fa9ceaa1c5f (tool-bar-local-item-from-menu): Handle both cases: when the menu item
Richard M. Stallman <rms@gnu.org>
parents: 44670
diff changeset
214 ;; with a list of menu cache info, get rid of that.
1fa9ceaa1c5f (tool-bar-local-item-from-menu): Handle both cases: when the menu item
Richard M. Stallman <rms@gnu.org>
parents: 44670
diff changeset
215 (if (and (consp rest) (consp (car rest)))
1fa9ceaa1c5f (tool-bar-local-item-from-menu): Handle both cases: when the menu item
Richard M. Stallman <rms@gnu.org>
parents: 44670
diff changeset
216 (setq rest (cdr rest)))
1fa9ceaa1c5f (tool-bar-local-item-from-menu): Handle both cases: when the menu item
Richard M. Stallman <rms@gnu.org>
parents: 44670
diff changeset
217 (append `(menu-item ,(car defn) ,rest)
1fa9ceaa1c5f (tool-bar-local-item-from-menu): Handle both cases: when the menu item
Richard M. Stallman <rms@gnu.org>
parents: 44670
diff changeset
218 (list :image image) props))))))))
31738
e8458588eb55 Renamed from toolbar.el. Change `toolbar'
Dave Love <fx@gnu.org>
parents:
diff changeset
219
e8458588eb55 Renamed from toolbar.el. Change `toolbar'
Dave Love <fx@gnu.org>
parents:
diff changeset
220 ;;; Set up some global items. Additions/deletions up for grabs.
e8458588eb55 Renamed from toolbar.el. Change `toolbar'
Dave Love <fx@gnu.org>
parents:
diff changeset
221
32124
5554c8f22e37 (tool-bar-setup): New function.
Dave Love <fx@gnu.org>
parents: 31921
diff changeset
222 (defun tool-bar-setup ()
38144
ef9d470d0fd1 (tool-bar-setup): Remove the EXIT button.
Eli Zaretskii <eliz@gnu.org>
parents: 36715
diff changeset
223 ;; People say it's bad to have EXIT on the tool bar, since users
ef9d470d0fd1 (tool-bar-setup): Remove the EXIT button.
Eli Zaretskii <eliz@gnu.org>
parents: 36715
diff changeset
224 ;; might inadvertently click that button.
ef9d470d0fd1 (tool-bar-setup): Remove the EXIT button.
Eli Zaretskii <eliz@gnu.org>
parents: 36715
diff changeset
225 ;;(tool-bar-add-item-from-menu 'save-buffers-kill-emacs "exit")
32124
5554c8f22e37 (tool-bar-setup): New function.
Dave Love <fx@gnu.org>
parents: 31921
diff changeset
226 (tool-bar-add-item-from-menu 'find-file "new")
5554c8f22e37 (tool-bar-setup): New function.
Dave Love <fx@gnu.org>
parents: 31921
diff changeset
227 (tool-bar-add-item-from-menu 'dired "open")
5554c8f22e37 (tool-bar-setup): New function.
Dave Love <fx@gnu.org>
parents: 31921
diff changeset
228 (tool-bar-add-item-from-menu 'kill-this-buffer "close")
5554c8f22e37 (tool-bar-setup): New function.
Dave Love <fx@gnu.org>
parents: 31921
diff changeset
229 (tool-bar-add-item-from-menu 'save-buffer "save" nil
36715
2b98ff02ebaf (tool-bar-setup): Don't suppress write-file
Dave Love <fx@gnu.org>
parents: 35764
diff changeset
230 :visible '(or buffer-file-name
2b98ff02ebaf (tool-bar-setup): Don't suppress write-file
Dave Love <fx@gnu.org>
parents: 35764
diff changeset
231 (not (eq 'special
2b98ff02ebaf (tool-bar-setup): Don't suppress write-file
Dave Love <fx@gnu.org>
parents: 35764
diff changeset
232 (get major-mode
2b98ff02ebaf (tool-bar-setup): Don't suppress write-file
Dave Love <fx@gnu.org>
parents: 35764
diff changeset
233 'mode-class)))))
32124
5554c8f22e37 (tool-bar-setup): New function.
Dave Love <fx@gnu.org>
parents: 31921
diff changeset
234 (tool-bar-add-item-from-menu 'write-file "saveas" nil
36715
2b98ff02ebaf (tool-bar-setup): Don't suppress write-file
Dave Love <fx@gnu.org>
parents: 35764
diff changeset
235 :visible '(or buffer-file-name
2b98ff02ebaf (tool-bar-setup): Don't suppress write-file
Dave Love <fx@gnu.org>
parents: 35764
diff changeset
236 (not (eq 'special
2b98ff02ebaf (tool-bar-setup): Don't suppress write-file
Dave Love <fx@gnu.org>
parents: 35764
diff changeset
237 (get major-mode
2b98ff02ebaf (tool-bar-setup): Don't suppress write-file
Dave Love <fx@gnu.org>
parents: 35764
diff changeset
238 'mode-class)))))
32124
5554c8f22e37 (tool-bar-setup): New function.
Dave Love <fx@gnu.org>
parents: 31921
diff changeset
239 (tool-bar-add-item-from-menu 'undo "undo" nil
5554c8f22e37 (tool-bar-setup): New function.
Dave Love <fx@gnu.org>
parents: 31921
diff changeset
240 :visible '(not (eq 'special (get major-mode
5554c8f22e37 (tool-bar-setup): New function.
Dave Love <fx@gnu.org>
parents: 31921
diff changeset
241 'mode-class))))
5554c8f22e37 (tool-bar-setup): New function.
Dave Love <fx@gnu.org>
parents: 31921
diff changeset
242 (tool-bar-add-item-from-menu 'kill-region "cut" nil
5554c8f22e37 (tool-bar-setup): New function.
Dave Love <fx@gnu.org>
parents: 31921
diff changeset
243 :visible '(not (eq 'special (get major-mode
5554c8f22e37 (tool-bar-setup): New function.
Dave Love <fx@gnu.org>
parents: 31921
diff changeset
244 'mode-class))))
5554c8f22e37 (tool-bar-setup): New function.
Dave Love <fx@gnu.org>
parents: 31921
diff changeset
245 (tool-bar-add-item-from-menu 'menu-bar-kill-ring-save "copy")
5554c8f22e37 (tool-bar-setup): New function.
Dave Love <fx@gnu.org>
parents: 31921
diff changeset
246 (tool-bar-add-item-from-menu 'yank "paste" nil
5554c8f22e37 (tool-bar-setup): New function.
Dave Love <fx@gnu.org>
parents: 31921
diff changeset
247 :visible '(not (eq 'special (get major-mode
5554c8f22e37 (tool-bar-setup): New function.
Dave Love <fx@gnu.org>
parents: 31921
diff changeset
248 'mode-class))))
5554c8f22e37 (tool-bar-setup): New function.
Dave Love <fx@gnu.org>
parents: 31921
diff changeset
249 (tool-bar-add-item-from-menu 'nonincremental-search-forward "search")
5554c8f22e37 (tool-bar-setup): New function.
Dave Love <fx@gnu.org>
parents: 31921
diff changeset
250 ;;(tool-bar-add-item-from-menu 'ispell-buffer "spell")
31738
e8458588eb55 Renamed from toolbar.el. Change `toolbar'
Dave Love <fx@gnu.org>
parents:
diff changeset
251
32124
5554c8f22e37 (tool-bar-setup): New function.
Dave Love <fx@gnu.org>
parents: 31921
diff changeset
252 ;; There's no icon appropriate for News and we need a command rather
5554c8f22e37 (tool-bar-setup): New function.
Dave Love <fx@gnu.org>
parents: 31921
diff changeset
253 ;; than a lambda for Read Mail.
5554c8f22e37 (tool-bar-setup): New function.
Dave Love <fx@gnu.org>
parents: 31921
diff changeset
254 ;;(tool-bar-add-item-from-menu 'compose-mail "mail_compose")
31895
6d04db7a9256 (tool-bar-help): New function.
Gerd Moellmann <gerd@gnu.org>
parents: 31751
diff changeset
255
32124
5554c8f22e37 (tool-bar-setup): New function.
Dave Love <fx@gnu.org>
parents: 31921
diff changeset
256 (tool-bar-add-item-from-menu 'print-buffer "print")
32285
4763231809cd (tool-bar-map): Define it empty.
Dave Love <fx@gnu.org>
parents: 32124
diff changeset
257 (tool-bar-add-item "preferences" 'customize 'customize
32124
5554c8f22e37 (tool-bar-setup): New function.
Dave Love <fx@gnu.org>
parents: 31921
diff changeset
258 :help "Edit preferences (customize)")
31895
6d04db7a9256 (tool-bar-help): New function.
Gerd Moellmann <gerd@gnu.org>
parents: 31751
diff changeset
259
32285
4763231809cd (tool-bar-map): Define it empty.
Dave Love <fx@gnu.org>
parents: 32124
diff changeset
260 (tool-bar-add-item "help" (lambda ()
4763231809cd (tool-bar-map): Define it empty.
Dave Love <fx@gnu.org>
parents: 32124
diff changeset
261 (interactive)
4763231809cd (tool-bar-map): Define it empty.
Dave Love <fx@gnu.org>
parents: 32124
diff changeset
262 (popup-menu menu-bar-help-menu))
4763231809cd (tool-bar-map): Define it empty.
Dave Love <fx@gnu.org>
parents: 32124
diff changeset
263 'help
4763231809cd (tool-bar-map): Define it empty.
Dave Love <fx@gnu.org>
parents: 32124
diff changeset
264 :help "Pop up the Help menu")
32124
5554c8f22e37 (tool-bar-setup): New function.
Dave Love <fx@gnu.org>
parents: 31921
diff changeset
265 )
31738
e8458588eb55 Renamed from toolbar.el. Change `toolbar'
Dave Love <fx@gnu.org>
parents:
diff changeset
266
e8458588eb55 Renamed from toolbar.el. Change `toolbar'
Dave Love <fx@gnu.org>
parents:
diff changeset
267 (provide 'tool-bar)
e8458588eb55 Renamed from toolbar.el. Change `toolbar'
Dave Love <fx@gnu.org>
parents:
diff changeset
268
e8458588eb55 Renamed from toolbar.el. Change `toolbar'
Dave Love <fx@gnu.org>
parents:
diff changeset
269 ;;; tool-bar.el ends here