Mercurial > emacs
annotate lisp/tool-bar.el @ 110410:f2e111723c3a
Merge changes made in Gnus trunk.
Reimplement nnimap, and do tweaks to the rest of the code to support that.
* gnus-int.el (gnus-finish-retrieve-group-infos)
(gnus-retrieve-group-data-early): New functions.
* gnus-range.el (gnus-range-nconcat): New function.
* gnus-start.el (gnus-get-unread-articles): Support early retrieval of
data.
(gnus-read-active-for-groups): Support finishing the early retrieval of
data.
* gnus-sum.el (gnus-summary-move-article): Pass the move-to group name
if the move is internal, so that nnimap can do fast internal moves.
* gnus.el (gnus-article-special-mark-lists): Add uid/active tuples, for
nnimap usage.
* nnimap.el: Rewritten.
* nnmail.el (nnmail-inhibit-default-split-group): New internal variable
to allow the mail splitting to not return a default group. This is
useful for nnimap, which will leave unmatched mail in the inbox.
* utf7.el (utf7-encode): Autoload.
Implement shell connection.
* nnimap.el (nnimap-open-shell-stream): New function.
(nnimap-open-connection): Use it.
Get the number of lines by using BODYSTRUCTURE.
(nnimap-transform-headers): Get the number of lines in each message.
(nnimap-retrieve-headers): Query for BODYSTRUCTURE so that we get the
number of lines.
Not all servers return UIDNEXT. Work past this problem.
Remove junk from end of file.
Fix typo in "bogus" section.
Make capabilties be case-insensitive.
Require cl when compiling.
Don't bug out if the LIST command doesn't have any parameters.
2010-09-17 Knut Anders Hatlen <kahatlen@gmail.com> (tiny change)
* nnimap.el (nnimap-get-groups): Don't bug out if the LIST command
doesn't have any parameters.
(mm-text-html-renderer): Document gnus-article-html.
2010-09-17 Julien Danjou <julien@danjou.info> (tiny fix)
* mm-decode.el (mm-text-html-renderer): Document gnus-article-html.
* dgnushack.el: Define netrc-credentials.
If the user doesn't have a /etc/services, supply some sensible port defaults.
Have `unseen-or-unread' select an unread unseen article first.
(nntp-open-server): Return whether the open was successful or not.
Throughout all files, replace (save-excursion (set-buffer ...)) with (with-current-buffer ... ).
Save result so that it doesn't say "failed" all the time.
Add ~/.authinfo to the default, since that's probably most useful for users.
Don't use the "finish" method when we're reading from the agent.
Add some more nnimap-relevant agent stuff to nnagent.el.
* nnimap.el (nnimap-with-process-buffer): Removed.
Revert one line that was changed by mistake in the last checkin.
(nnimap-open-connection): Don't error out when we can't make a connection
nnimap-related changes to avoid bugging out if we can't contact a server.
* gnus-start.el (gnus-get-unread-articles): Don't try to scan groups
from methods that are denied.
* nnimap.el (nnimap-possibly-change-group): Return nil if we can't log
in.
(nnimap-finish-retrieve-group-infos): Make sure we're not waiting for
nothing.
* gnus-sum.el (gnus-select-newsgroup): Indent.
author | Katsumi Yamaoka <yamaoka@jpl.org> |
---|---|
date | Sat, 18 Sep 2010 10:02:19 +0000 |
parents | 280c8ae2476d |
children | c82718dcce89 |
rev | line source |
---|---|
66168
28718fa5d988
Moved all remaining images from lisp/toolbar to etc/images, moved
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1 ;;; tool-bar.el --- setting up the tool bar |
28718fa5d988
Moved all remaining images from lisp/toolbar to etc/images, moved
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
2 ;; |
28718fa5d988
Moved all remaining images from lisp/toolbar to etc/images, moved
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
3 ;; Copyright (C) 2000, 2001, 2002, 2003, 2004, |
106815 | 4 ;; 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. |
66168
28718fa5d988
Moved all remaining images from lisp/toolbar to etc/images, moved
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
5 ;; |
28718fa5d988
Moved all remaining images from lisp/toolbar to etc/images, moved
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
6 ;; Author: Dave Love <fx@gnu.org> |
28718fa5d988
Moved all remaining images from lisp/toolbar to etc/images, moved
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
7 ;; Keywords: mouse frames |
110015
280c8ae2476d
Add "Package:" file headers to denote built-in packages.
Chong Yidong <cyd@stupidchicken.com>
parents:
109147
diff
changeset
|
8 ;; Package: emacs |
66168
28718fa5d988
Moved all remaining images from lisp/toolbar to etc/images, moved
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
9 |
28718fa5d988
Moved all remaining images from lisp/toolbar to etc/images, moved
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
10 ;; This file is part of GNU Emacs. |
28718fa5d988
Moved all remaining images from lisp/toolbar to etc/images, moved
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
11 |
94678
ee5932bf781d
Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents:
93975
diff
changeset
|
12 ;; GNU Emacs is free software: you can redistribute it and/or modify |
66168
28718fa5d988
Moved all remaining images from lisp/toolbar to etc/images, moved
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
13 ;; it under the terms of the GNU General Public License as published by |
94678
ee5932bf781d
Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents:
93975
diff
changeset
|
14 ;; the Free Software Foundation, either version 3 of the License, or |
ee5932bf781d
Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents:
93975
diff
changeset
|
15 ;; (at your option) any later version. |
66168
28718fa5d988
Moved all remaining images from lisp/toolbar to etc/images, moved
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
16 |
28718fa5d988
Moved all remaining images from lisp/toolbar to etc/images, moved
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
17 ;; GNU Emacs is distributed in the hope that it will be useful, |
28718fa5d988
Moved all remaining images from lisp/toolbar to etc/images, moved
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
18 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of |
28718fa5d988
Moved all remaining images from lisp/toolbar to etc/images, moved
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
19 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
28718fa5d988
Moved all remaining images from lisp/toolbar to etc/images, moved
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
20 ;; GNU General Public License for more details. |
28718fa5d988
Moved all remaining images from lisp/toolbar to etc/images, moved
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
21 |
28718fa5d988
Moved all remaining images from lisp/toolbar to etc/images, moved
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
22 ;; You should have received a copy of the GNU General Public License |
94678
ee5932bf781d
Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents:
93975
diff
changeset
|
23 ;; along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. |
66168
28718fa5d988
Moved all remaining images from lisp/toolbar to etc/images, moved
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
24 |
28718fa5d988
Moved all remaining images from lisp/toolbar to etc/images, moved
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
25 ;;; Commentary: |
28718fa5d988
Moved all remaining images from lisp/toolbar to etc/images, moved
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
26 |
28718fa5d988
Moved all remaining images from lisp/toolbar to etc/images, moved
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
27 ;; Provides `tool-bar-mode' to control display of the tool-bar and |
28718fa5d988
Moved all remaining images from lisp/toolbar to etc/images, moved
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
28 ;; bindings for the global tool bar with convenience functions |
28718fa5d988
Moved all remaining images from lisp/toolbar to etc/images, moved
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
29 ;; `tool-bar-add-item' and `tool-bar-add-item-from-menu'. |
28718fa5d988
Moved all remaining images from lisp/toolbar to etc/images, moved
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
30 |
28718fa5d988
Moved all remaining images from lisp/toolbar to etc/images, moved
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
31 ;; The normal global binding for [tool-bar] (below) uses the value of |
28718fa5d988
Moved all remaining images from lisp/toolbar to etc/images, moved
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
32 ;; `tool-bar-map' as the actual keymap to define the tool bar. Modes |
28718fa5d988
Moved all remaining images from lisp/toolbar to etc/images, moved
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
33 ;; may either bind items under the [tool-bar] prefix key of the local |
28718fa5d988
Moved all remaining images from lisp/toolbar to etc/images, moved
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
34 ;; map to add to the global bar or may set `tool-bar-map' |
28718fa5d988
Moved all remaining images from lisp/toolbar to etc/images, moved
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
35 ;; buffer-locally to override it. (Some items are removed from the |
28718fa5d988
Moved all remaining images from lisp/toolbar to etc/images, moved
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
36 ;; global bar in modes which have `special' as their `mode-class' |
28718fa5d988
Moved all remaining images from lisp/toolbar to etc/images, moved
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
37 ;; property.) |
28718fa5d988
Moved all remaining images from lisp/toolbar to etc/images, moved
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
38 |
28718fa5d988
Moved all remaining images from lisp/toolbar to etc/images, moved
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
39 ;; Todo: Somehow make tool bars easily customizable by the naive? |
28718fa5d988
Moved all remaining images from lisp/toolbar to etc/images, moved
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
40 |
28718fa5d988
Moved all remaining images from lisp/toolbar to etc/images, moved
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
41 ;;; Code: |
28718fa5d988
Moved all remaining images from lisp/toolbar to etc/images, moved
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
42 |
66494
b9971215f644
(tool-bar-mode): Delete autoload cookie.
Richard M. Stallman <rms@gnu.org>
parents:
66168
diff
changeset
|
43 ;; The autoload cookie doesn't work when preloading. |
b9971215f644
(tool-bar-mode): Delete autoload cookie.
Richard M. Stallman <rms@gnu.org>
parents:
66168
diff
changeset
|
44 ;; Deleting it means invoking this command won't work |
b9971215f644
(tool-bar-mode): Delete autoload cookie.
Richard M. Stallman <rms@gnu.org>
parents:
66168
diff
changeset
|
45 ;; when you are on a tty. I hope that won't cause too much trouble -- rms. |
66168
28718fa5d988
Moved all remaining images from lisp/toolbar to etc/images, moved
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
46 (define-minor-mode tool-bar-mode |
28718fa5d988
Moved all remaining images from lisp/toolbar to etc/images, moved
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
47 "Toggle use of the tool bar. |
28718fa5d988
Moved all remaining images from lisp/toolbar to etc/images, moved
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
48 With numeric ARG, display the tool bar if and only if ARG is positive. |
28718fa5d988
Moved all remaining images from lisp/toolbar to etc/images, moved
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
49 |
28718fa5d988
Moved all remaining images from lisp/toolbar to etc/images, moved
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
50 See `tool-bar-add-item' and `tool-bar-add-item-from-menu' for |
28718fa5d988
Moved all remaining images from lisp/toolbar to etc/images, moved
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
51 conveniently adding tool bar items." |
109058
2f0720afc474
Change default-frame-alist and menu/tool-bar-mode interaction (Bug#2249).
Chong Yidong <cyd@stupidchicken.com>
parents:
108110
diff
changeset
|
52 :init-value t |
66168
28718fa5d988
Moved all remaining images from lisp/toolbar to etc/images, moved
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
53 :global t |
28718fa5d988
Moved all remaining images from lisp/toolbar to etc/images, moved
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
54 :group 'mouse |
28718fa5d988
Moved all remaining images from lisp/toolbar to etc/images, moved
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
55 :group 'frames |
109058
2f0720afc474
Change default-frame-alist and menu/tool-bar-mode interaction (Bug#2249).
Chong Yidong <cyd@stupidchicken.com>
parents:
108110
diff
changeset
|
56 (let ((val (if tool-bar-mode 1 0))) |
2f0720afc474
Change default-frame-alist and menu/tool-bar-mode interaction (Bug#2249).
Chong Yidong <cyd@stupidchicken.com>
parents:
108110
diff
changeset
|
57 (dolist (frame (frame-list)) |
109147
783986775ee8
Set default-frame-alist, if necessary, in menu/tool-bar-mode.
Chong Yidong <cyd@stupidchicken.com>
parents:
109058
diff
changeset
|
58 (set-frame-parameter frame 'tool-bar-lines val)) |
783986775ee8
Set default-frame-alist, if necessary, in menu/tool-bar-mode.
Chong Yidong <cyd@stupidchicken.com>
parents:
109058
diff
changeset
|
59 ;; If the user has given `default-frame-alist' a `tool-bar-lines' |
783986775ee8
Set default-frame-alist, if necessary, in menu/tool-bar-mode.
Chong Yidong <cyd@stupidchicken.com>
parents:
109058
diff
changeset
|
60 ;; parameter, replace it. |
783986775ee8
Set default-frame-alist, if necessary, in menu/tool-bar-mode.
Chong Yidong <cyd@stupidchicken.com>
parents:
109058
diff
changeset
|
61 (if (assq 'tool-bar-lines default-frame-alist) |
783986775ee8
Set default-frame-alist, if necessary, in menu/tool-bar-mode.
Chong Yidong <cyd@stupidchicken.com>
parents:
109058
diff
changeset
|
62 (setq default-frame-alist |
783986775ee8
Set default-frame-alist, if necessary, in menu/tool-bar-mode.
Chong Yidong <cyd@stupidchicken.com>
parents:
109058
diff
changeset
|
63 (cons (cons 'tool-bar-lines val) |
783986775ee8
Set default-frame-alist, if necessary, in menu/tool-bar-mode.
Chong Yidong <cyd@stupidchicken.com>
parents:
109058
diff
changeset
|
64 (assq-delete-all 'tool-bar-lines |
783986775ee8
Set default-frame-alist, if necessary, in menu/tool-bar-mode.
Chong Yidong <cyd@stupidchicken.com>
parents:
109058
diff
changeset
|
65 default-frame-alist))))) |
783986775ee8
Set default-frame-alist, if necessary, in menu/tool-bar-mode.
Chong Yidong <cyd@stupidchicken.com>
parents:
109058
diff
changeset
|
66 (and tool-bar-mode |
783986775ee8
Set default-frame-alist, if necessary, in menu/tool-bar-mode.
Chong Yidong <cyd@stupidchicken.com>
parents:
109058
diff
changeset
|
67 (= 1 (length (default-value 'tool-bar-map))) ; not yet setup |
783986775ee8
Set default-frame-alist, if necessary, in menu/tool-bar-mode.
Chong Yidong <cyd@stupidchicken.com>
parents:
109058
diff
changeset
|
68 (tool-bar-setup))) |
66168
28718fa5d988
Moved all remaining images from lisp/toolbar to etc/images, moved
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
69 |
28718fa5d988
Moved all remaining images from lisp/toolbar to etc/images, moved
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
70 ;;;###autoload |
83497
a25bb5ef27bf
Fix tool-bar and menu-bar toggles in Show/Hide menu to reflect the state of the current frame.
Karoly Lorentey <lorentey@elte.hu>
parents:
83496
diff
changeset
|
71 ;; Used in the Show/Hide menu, to have the toggle reflect the current frame. |
a25bb5ef27bf
Fix tool-bar and menu-bar toggles in Show/Hide menu to reflect the state of the current frame.
Karoly Lorentey <lorentey@elte.hu>
parents:
83496
diff
changeset
|
72 (defun toggle-tool-bar-mode-from-frame (&optional arg) |
a25bb5ef27bf
Fix tool-bar and menu-bar toggles in Show/Hide menu to reflect the state of the current frame.
Karoly Lorentey <lorentey@elte.hu>
parents:
83496
diff
changeset
|
73 "Toggle tool bar on or off, based on the status of the current frame. |
a25bb5ef27bf
Fix tool-bar and menu-bar toggles in Show/Hide menu to reflect the state of the current frame.
Karoly Lorentey <lorentey@elte.hu>
parents:
83496
diff
changeset
|
74 See `tool-bar-mode' for more information." |
a25bb5ef27bf
Fix tool-bar and menu-bar toggles in Show/Hide menu to reflect the state of the current frame.
Karoly Lorentey <lorentey@elte.hu>
parents:
83496
diff
changeset
|
75 (interactive (list (or current-prefix-arg 'toggle))) |
a25bb5ef27bf
Fix tool-bar and menu-bar toggles in Show/Hide menu to reflect the state of the current frame.
Karoly Lorentey <lorentey@elte.hu>
parents:
83496
diff
changeset
|
76 (if (eq arg 'toggle) |
a25bb5ef27bf
Fix tool-bar and menu-bar toggles in Show/Hide menu to reflect the state of the current frame.
Karoly Lorentey <lorentey@elte.hu>
parents:
83496
diff
changeset
|
77 (tool-bar-mode (if (> (frame-parameter nil 'tool-bar-lines) 0) 0 1)) |
a25bb5ef27bf
Fix tool-bar and menu-bar toggles in Show/Hide menu to reflect the state of the current frame.
Karoly Lorentey <lorentey@elte.hu>
parents:
83496
diff
changeset
|
78 (tool-bar-mode arg))) |
a25bb5ef27bf
Fix tool-bar and menu-bar toggles in Show/Hide menu to reflect the state of the current frame.
Karoly Lorentey <lorentey@elte.hu>
parents:
83496
diff
changeset
|
79 |
66168
28718fa5d988
Moved all remaining images from lisp/toolbar to etc/images, moved
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
80 (defvar tool-bar-map (make-sparse-keymap) |
28718fa5d988
Moved all remaining images from lisp/toolbar to etc/images, moved
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
81 "Keymap for the tool bar. |
28718fa5d988
Moved all remaining images from lisp/toolbar to etc/images, moved
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
82 Define this locally to override the global tool bar.") |
28718fa5d988
Moved all remaining images from lisp/toolbar to etc/images, moved
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
83 |
28718fa5d988
Moved all remaining images from lisp/toolbar to etc/images, moved
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
84 (global-set-key [tool-bar] |
105870
26baacb565b0
* textmodes/tex-mode.el (tex-alt-dvi-print-command)
Dan Nicolaescu <dann@ics.uci.edu>
parents:
101039
diff
changeset
|
85 `(menu-item ,(purecopy "tool bar") ignore |
94727
ddce4c48ffb7
Choose images dynamically.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
94678
diff
changeset
|
86 :filter tool-bar-make-keymap)) |
ddce4c48ffb7
Choose images dynamically.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
94678
diff
changeset
|
87 |
95841
b4e36ff621b3
Add some compiler declarations, for builds without X.
Glenn Morris <rgm@gnu.org>
parents:
94899
diff
changeset
|
88 (declare-function image-mask-p "image.c" (spec &optional frame)) |
b4e36ff621b3
Add some compiler declarations, for builds without X.
Glenn Morris <rgm@gnu.org>
parents:
94899
diff
changeset
|
89 |
99971
1b6dc3613e69
(tool-bar-find-image-cache): Var deleted.
Chong Yidong <cyd@stupidchicken.com>
parents:
98658
diff
changeset
|
90 (defconst tool-bar-keymap-cache (make-hash-table :weakness t :test 'equal)) |
1b6dc3613e69
(tool-bar-find-image-cache): Var deleted.
Chong Yidong <cyd@stupidchicken.com>
parents:
98658
diff
changeset
|
91 |
94727
ddce4c48ffb7
Choose images dynamically.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
94678
diff
changeset
|
92 (defun tool-bar-make-keymap (&optional ignore) |
ddce4c48ffb7
Choose images dynamically.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
94678
diff
changeset
|
93 "Generate an actual keymap from `tool-bar-map'. |
ddce4c48ffb7
Choose images dynamically.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
94678
diff
changeset
|
94 Its main job is to figure out which images to use based on the display's |
ddce4c48ffb7
Choose images dynamically.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
94678
diff
changeset
|
95 color capability and based on the available image libraries." |
99971
1b6dc3613e69
(tool-bar-find-image-cache): Var deleted.
Chong Yidong <cyd@stupidchicken.com>
parents:
98658
diff
changeset
|
96 (let ((key (cons (frame-terminal) tool-bar-map))) |
1b6dc3613e69
(tool-bar-find-image-cache): Var deleted.
Chong Yidong <cyd@stupidchicken.com>
parents:
98658
diff
changeset
|
97 (or (gethash key tool-bar-keymap-cache) |
1b6dc3613e69
(tool-bar-find-image-cache): Var deleted.
Chong Yidong <cyd@stupidchicken.com>
parents:
98658
diff
changeset
|
98 (puthash key (tool-bar-make-keymap-1) tool-bar-keymap-cache)))) |
1b6dc3613e69
(tool-bar-find-image-cache): Var deleted.
Chong Yidong <cyd@stupidchicken.com>
parents:
98658
diff
changeset
|
99 |
1b6dc3613e69
(tool-bar-find-image-cache): Var deleted.
Chong Yidong <cyd@stupidchicken.com>
parents:
98658
diff
changeset
|
100 (defun tool-bar-make-keymap-1 () |
1b6dc3613e69
(tool-bar-find-image-cache): Var deleted.
Chong Yidong <cyd@stupidchicken.com>
parents:
98658
diff
changeset
|
101 "Generate an actual keymap from `tool-bar-map', without caching." |
94727
ddce4c48ffb7
Choose images dynamically.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
94678
diff
changeset
|
102 (mapcar (lambda (bind) |
94897
f23487dcd0a8
(tool-bar-make-keymap): Account for the optional KEY-BINDING-DATA
Chong Yidong <cyd@stupidchicken.com>
parents:
94727
diff
changeset
|
103 (let (image-exp plist) |
94727
ddce4c48ffb7
Choose images dynamically.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
94678
diff
changeset
|
104 (when (and (eq (car-safe (cdr-safe bind)) 'menu-item) |
94897
f23487dcd0a8
(tool-bar-make-keymap): Account for the optional KEY-BINDING-DATA
Chong Yidong <cyd@stupidchicken.com>
parents:
94727
diff
changeset
|
105 ;; For the format of menu-items, see node |
f23487dcd0a8
(tool-bar-make-keymap): Account for the optional KEY-BINDING-DATA
Chong Yidong <cyd@stupidchicken.com>
parents:
94727
diff
changeset
|
106 ;; `Extended Menu Items' in the Elisp manual. |
f23487dcd0a8
(tool-bar-make-keymap): Account for the optional KEY-BINDING-DATA
Chong Yidong <cyd@stupidchicken.com>
parents:
94727
diff
changeset
|
107 (setq plist (nthcdr (if (consp (nth 4 bind)) 5 4) |
f23487dcd0a8
(tool-bar-make-keymap): Account for the optional KEY-BINDING-DATA
Chong Yidong <cyd@stupidchicken.com>
parents:
94727
diff
changeset
|
108 bind)) |
f23487dcd0a8
(tool-bar-make-keymap): Account for the optional KEY-BINDING-DATA
Chong Yidong <cyd@stupidchicken.com>
parents:
94727
diff
changeset
|
109 (setq image-exp (plist-get plist :image)) |
f23487dcd0a8
(tool-bar-make-keymap): Account for the optional KEY-BINDING-DATA
Chong Yidong <cyd@stupidchicken.com>
parents:
94727
diff
changeset
|
110 (consp image-exp) |
f23487dcd0a8
(tool-bar-make-keymap): Account for the optional KEY-BINDING-DATA
Chong Yidong <cyd@stupidchicken.com>
parents:
94727
diff
changeset
|
111 (not (eq (car image-exp) 'image)) |
f23487dcd0a8
(tool-bar-make-keymap): Account for the optional KEY-BINDING-DATA
Chong Yidong <cyd@stupidchicken.com>
parents:
94727
diff
changeset
|
112 (fboundp (car image-exp))) |
f23487dcd0a8
(tool-bar-make-keymap): Account for the optional KEY-BINDING-DATA
Chong Yidong <cyd@stupidchicken.com>
parents:
94727
diff
changeset
|
113 (if (not (display-images-p)) |
f23487dcd0a8
(tool-bar-make-keymap): Account for the optional KEY-BINDING-DATA
Chong Yidong <cyd@stupidchicken.com>
parents:
94727
diff
changeset
|
114 (setq bind nil) |
f23487dcd0a8
(tool-bar-make-keymap): Account for the optional KEY-BINDING-DATA
Chong Yidong <cyd@stupidchicken.com>
parents:
94727
diff
changeset
|
115 (let ((image (eval image-exp))) |
94899
29fb4d52c079
(tool-bar-make-keymap): Additional minor fix.
Chong Yidong <cyd@stupidchicken.com>
parents:
94897
diff
changeset
|
116 (unless (and image (image-mask-p image)) |
94897
f23487dcd0a8
(tool-bar-make-keymap): Account for the optional KEY-BINDING-DATA
Chong Yidong <cyd@stupidchicken.com>
parents:
94727
diff
changeset
|
117 (setq image (append image '(:mask heuristic)))) |
f23487dcd0a8
(tool-bar-make-keymap): Account for the optional KEY-BINDING-DATA
Chong Yidong <cyd@stupidchicken.com>
parents:
94727
diff
changeset
|
118 (setq bind (copy-sequence bind) |
f23487dcd0a8
(tool-bar-make-keymap): Account for the optional KEY-BINDING-DATA
Chong Yidong <cyd@stupidchicken.com>
parents:
94727
diff
changeset
|
119 plist (nthcdr (if (consp (nth 4 bind)) 5 4) |
f23487dcd0a8
(tool-bar-make-keymap): Account for the optional KEY-BINDING-DATA
Chong Yidong <cyd@stupidchicken.com>
parents:
94727
diff
changeset
|
120 bind)) |
f23487dcd0a8
(tool-bar-make-keymap): Account for the optional KEY-BINDING-DATA
Chong Yidong <cyd@stupidchicken.com>
parents:
94727
diff
changeset
|
121 (plist-put plist :image image)))) |
f23487dcd0a8
(tool-bar-make-keymap): Account for the optional KEY-BINDING-DATA
Chong Yidong <cyd@stupidchicken.com>
parents:
94727
diff
changeset
|
122 bind)) |
94727
ddce4c48ffb7
Choose images dynamically.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
94678
diff
changeset
|
123 tool-bar-map)) |
ddce4c48ffb7
Choose images dynamically.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
94678
diff
changeset
|
124 |
66168
28718fa5d988
Moved all remaining images from lisp/toolbar to etc/images, moved
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
125 ;;;###autoload |
28718fa5d988
Moved all remaining images from lisp/toolbar to etc/images, moved
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
126 (defun tool-bar-add-item (icon def key &rest props) |
28718fa5d988
Moved all remaining images from lisp/toolbar to etc/images, moved
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
127 "Add an item to the tool bar. |
28718fa5d988
Moved all remaining images from lisp/toolbar to etc/images, moved
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
128 ICON names the image, DEF is the key definition and KEY is a symbol |
28718fa5d988
Moved all remaining images from lisp/toolbar to etc/images, moved
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
129 for the fake function key in the menu keymap. Remaining arguments |
28718fa5d988
Moved all remaining images from lisp/toolbar to etc/images, moved
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
130 PROPS are additional items to add to the menu item specification. See |
28718fa5d988
Moved all remaining images from lisp/toolbar to etc/images, moved
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
131 Info node `(elisp)Tool Bar'. Items are added from left to right. |
28718fa5d988
Moved all remaining images from lisp/toolbar to etc/images, moved
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
132 |
28718fa5d988
Moved all remaining images from lisp/toolbar to etc/images, moved
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
133 ICON is the base name of a file containing the image to use. The |
80756
76e75acf7e4e
Fix typos (sync from the trunk).
Juanma Barranquero <lekktu@gmail.com>
parents:
79721
diff
changeset
|
134 function will first try to use low-color/ICON.xpm if `display-color-cells' |
66168
28718fa5d988
Moved all remaining images from lisp/toolbar to etc/images, moved
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
135 is less or equal to 256, then ICON.xpm, then ICON.pbm, and finally |
28718fa5d988
Moved all remaining images from lisp/toolbar to etc/images, moved
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
136 ICON.xbm, using `find-image'. |
28718fa5d988
Moved all remaining images from lisp/toolbar to etc/images, moved
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
137 |
28718fa5d988
Moved all remaining images from lisp/toolbar to etc/images, moved
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
138 Use this function only to make bindings in the global value of `tool-bar-map'. |
28718fa5d988
Moved all remaining images from lisp/toolbar to etc/images, moved
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
139 To define items in any other map, use `tool-bar-local-item'." |
28718fa5d988
Moved all remaining images from lisp/toolbar to etc/images, moved
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
140 (apply 'tool-bar-local-item icon def key tool-bar-map props)) |
28718fa5d988
Moved all remaining images from lisp/toolbar to etc/images, moved
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
141 |
28718fa5d988
Moved all remaining images from lisp/toolbar to etc/images, moved
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
142 ;;;###autoload |
28718fa5d988
Moved all remaining images from lisp/toolbar to etc/images, moved
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
143 (defun tool-bar-local-item (icon def key map &rest props) |
28718fa5d988
Moved all remaining images from lisp/toolbar to etc/images, moved
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
144 "Add an item to the tool bar in map MAP. |
28718fa5d988
Moved all remaining images from lisp/toolbar to etc/images, moved
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
145 ICON names the image, DEF is the key definition and KEY is a symbol |
28718fa5d988
Moved all remaining images from lisp/toolbar to etc/images, moved
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
146 for the fake function key in the menu keymap. Remaining arguments |
28718fa5d988
Moved all remaining images from lisp/toolbar to etc/images, moved
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
147 PROPS are additional items to add to the menu item specification. See |
28718fa5d988
Moved all remaining images from lisp/toolbar to etc/images, moved
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
148 Info node `(elisp)Tool Bar'. Items are added from left to right. |
28718fa5d988
Moved all remaining images from lisp/toolbar to etc/images, moved
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
149 |
28718fa5d988
Moved all remaining images from lisp/toolbar to etc/images, moved
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
150 ICON is the base name of a file containing the image to use. The |
94727
ddce4c48ffb7
Choose images dynamically.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
94678
diff
changeset
|
151 function will first try to use low-color/ICON.xpm if `display-color-cells' |
66168
28718fa5d988
Moved all remaining images from lisp/toolbar to etc/images, moved
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
152 is less or equal to 256, then ICON.xpm, then ICON.pbm, and finally |
28718fa5d988
Moved all remaining images from lisp/toolbar to etc/images, moved
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
153 ICON.xbm, using `find-image'." |
28718fa5d988
Moved all remaining images from lisp/toolbar to etc/images, moved
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
154 (let* ((fg (face-attribute 'tool-bar :foreground)) |
28718fa5d988
Moved all remaining images from lisp/toolbar to etc/images, moved
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
155 (bg (face-attribute 'tool-bar :background)) |
28718fa5d988
Moved all remaining images from lisp/toolbar to etc/images, moved
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
156 (colors (nconc (if (eq fg 'unspecified) nil (list :foreground fg)) |
28718fa5d988
Moved all remaining images from lisp/toolbar to etc/images, moved
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
157 (if (eq bg 'unspecified) nil (list :background bg)))) |
28718fa5d988
Moved all remaining images from lisp/toolbar to etc/images, moved
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
158 (xpm-spec (list :type 'xpm :file (concat icon ".xpm"))) |
98624
14621c767c96
(tool-bar-local-item)
Chong Yidong <cyd@stupidchicken.com>
parents:
98594
diff
changeset
|
159 (xpm-lo-spec (list :type 'xpm :file |
14621c767c96
(tool-bar-local-item)
Chong Yidong <cyd@stupidchicken.com>
parents:
98594
diff
changeset
|
160 (concat "low-color/" icon ".xpm"))) |
66168
28718fa5d988
Moved all remaining images from lisp/toolbar to etc/images, moved
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
161 (pbm-spec (append (list :type 'pbm :file |
28718fa5d988
Moved all remaining images from lisp/toolbar to etc/images, moved
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
162 (concat icon ".pbm")) colors)) |
28718fa5d988
Moved all remaining images from lisp/toolbar to etc/images, moved
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
163 (xbm-spec (append (list :type 'xbm :file |
28718fa5d988
Moved all remaining images from lisp/toolbar to etc/images, moved
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
164 (concat icon ".xbm")) colors)) |
99971
1b6dc3613e69
(tool-bar-find-image-cache): Var deleted.
Chong Yidong <cyd@stupidchicken.com>
parents:
98658
diff
changeset
|
165 (image-exp `(find-image |
98624
14621c767c96
(tool-bar-local-item)
Chong Yidong <cyd@stupidchicken.com>
parents:
98594
diff
changeset
|
166 (cond ((not (display-color-p)) |
14621c767c96
(tool-bar-local-item)
Chong Yidong <cyd@stupidchicken.com>
parents:
98594
diff
changeset
|
167 ',(list pbm-spec xbm-spec xpm-lo-spec xpm-spec)) |
14621c767c96
(tool-bar-local-item)
Chong Yidong <cyd@stupidchicken.com>
parents:
98594
diff
changeset
|
168 ((< (display-color-cells) 256) |
14621c767c96
(tool-bar-local-item)
Chong Yidong <cyd@stupidchicken.com>
parents:
98594
diff
changeset
|
169 ',(list xpm-lo-spec xpm-spec pbm-spec xbm-spec)) |
14621c767c96
(tool-bar-local-item)
Chong Yidong <cyd@stupidchicken.com>
parents:
98594
diff
changeset
|
170 (t |
14621c767c96
(tool-bar-local-item)
Chong Yidong <cyd@stupidchicken.com>
parents:
98594
diff
changeset
|
171 ',(list xpm-spec pbm-spec xbm-spec)))))) |
94727
ddce4c48ffb7
Choose images dynamically.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
94678
diff
changeset
|
172 (define-key-after map (vector key) |
ddce4c48ffb7
Choose images dynamically.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
94678
diff
changeset
|
173 `(menu-item ,(symbol-name key) ,def :image ,image-exp ,@props)))) |
66168
28718fa5d988
Moved all remaining images from lisp/toolbar to etc/images, moved
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
174 |
28718fa5d988
Moved all remaining images from lisp/toolbar to etc/images, moved
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
175 ;;;###autoload |
28718fa5d988
Moved all remaining images from lisp/toolbar to etc/images, moved
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
176 (defun tool-bar-add-item-from-menu (command icon &optional map &rest props) |
66512
759df5a9dc3e
(tool-bar-add-item-from-menu)
Nick Roberts <nickrob@snap.net.nz>
parents:
66494
diff
changeset
|
177 "Define tool bar binding for COMMAND in keymap MAP using the given ICON. |
66168
28718fa5d988
Moved all remaining images from lisp/toolbar to etc/images, moved
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
178 This makes a binding for COMMAND in `tool-bar-map', copying its |
28718fa5d988
Moved all remaining images from lisp/toolbar to etc/images, moved
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
179 binding from the menu bar in MAP (which defaults to `global-map'), but |
28718fa5d988
Moved all remaining images from lisp/toolbar to etc/images, moved
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
180 modifies the binding by adding an image specification for ICON. It |
28718fa5d988
Moved all remaining images from lisp/toolbar to etc/images, moved
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
181 finds ICON just like `tool-bar-add-item'. PROPS are additional |
28718fa5d988
Moved all remaining images from lisp/toolbar to etc/images, moved
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
182 properties to add to the binding. |
28718fa5d988
Moved all remaining images from lisp/toolbar to etc/images, moved
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
183 |
28718fa5d988
Moved all remaining images from lisp/toolbar to etc/images, moved
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
184 MAP must contain appropriate binding for `[menu-bar]' which holds a keymap. |
28718fa5d988
Moved all remaining images from lisp/toolbar to etc/images, moved
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
185 |
28718fa5d988
Moved all remaining images from lisp/toolbar to etc/images, moved
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
186 Use this function only to make bindings in the global value of `tool-bar-map'. |
66512
759df5a9dc3e
(tool-bar-add-item-from-menu)
Nick Roberts <nickrob@snap.net.nz>
parents:
66494
diff
changeset
|
187 To define items in any other map, use `tool-bar-local-item-from-menu'." |
66168
28718fa5d988
Moved all remaining images from lisp/toolbar to etc/images, moved
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
188 (apply 'tool-bar-local-item-from-menu command icon |
28718fa5d988
Moved all remaining images from lisp/toolbar to etc/images, moved
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
189 (default-value 'tool-bar-map) map props)) |
28718fa5d988
Moved all remaining images from lisp/toolbar to etc/images, moved
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
190 |
28718fa5d988
Moved all remaining images from lisp/toolbar to etc/images, moved
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
191 ;;;###autoload |
28718fa5d988
Moved all remaining images from lisp/toolbar to etc/images, moved
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
192 (defun tool-bar-local-item-from-menu (command icon in-map &optional from-map &rest props) |
66512
759df5a9dc3e
(tool-bar-add-item-from-menu)
Nick Roberts <nickrob@snap.net.nz>
parents:
66494
diff
changeset
|
193 "Define local tool bar binding for COMMAND using the given ICON. |
66168
28718fa5d988
Moved all remaining images from lisp/toolbar to etc/images, moved
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
194 This makes a binding for COMMAND in IN-MAP, copying its binding from |
28718fa5d988
Moved all remaining images from lisp/toolbar to etc/images, moved
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
195 the menu bar in FROM-MAP (which defaults to `global-map'), but |
28718fa5d988
Moved all remaining images from lisp/toolbar to etc/images, moved
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
196 modifies the binding by adding an image specification for ICON. It |
28718fa5d988
Moved all remaining images from lisp/toolbar to etc/images, moved
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
197 finds ICON just like `tool-bar-add-item'. PROPS are additional |
28718fa5d988
Moved all remaining images from lisp/toolbar to etc/images, moved
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
198 properties to add to the binding. |
28718fa5d988
Moved all remaining images from lisp/toolbar to etc/images, moved
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
199 |
66512
759df5a9dc3e
(tool-bar-add-item-from-menu)
Nick Roberts <nickrob@snap.net.nz>
parents:
66494
diff
changeset
|
200 FROM-MAP must contain appropriate binding for `[menu-bar]' which |
759df5a9dc3e
(tool-bar-add-item-from-menu)
Nick Roberts <nickrob@snap.net.nz>
parents:
66494
diff
changeset
|
201 holds a keymap." |
66168
28718fa5d988
Moved all remaining images from lisp/toolbar to etc/images, moved
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
202 (unless from-map |
28718fa5d988
Moved all remaining images from lisp/toolbar to etc/images, moved
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
203 (setq from-map global-map)) |
28718fa5d988
Moved all remaining images from lisp/toolbar to etc/images, moved
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
204 (let* ((menu-bar-map (lookup-key from-map [menu-bar])) |
28718fa5d988
Moved all remaining images from lisp/toolbar to etc/images, moved
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
205 (keys (where-is-internal command menu-bar-map)) |
28718fa5d988
Moved all remaining images from lisp/toolbar to etc/images, moved
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
206 (fg (face-attribute 'tool-bar :foreground)) |
28718fa5d988
Moved all remaining images from lisp/toolbar to etc/images, moved
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
207 (bg (face-attribute 'tool-bar :background)) |
28718fa5d988
Moved all remaining images from lisp/toolbar to etc/images, moved
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
208 (colors (nconc (if (eq fg 'unspecified) nil (list :foreground fg)) |
28718fa5d988
Moved all remaining images from lisp/toolbar to etc/images, moved
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
209 (if (eq bg 'unspecified) nil (list :background bg)))) |
28718fa5d988
Moved all remaining images from lisp/toolbar to etc/images, moved
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
210 (xpm-spec (list :type 'xpm :file (concat icon ".xpm"))) |
98624
14621c767c96
(tool-bar-local-item)
Chong Yidong <cyd@stupidchicken.com>
parents:
98594
diff
changeset
|
211 (xpm-lo-spec (list :type 'xpm :file |
14621c767c96
(tool-bar-local-item)
Chong Yidong <cyd@stupidchicken.com>
parents:
98594
diff
changeset
|
212 (concat "low-color/" icon ".xpm"))) |
66168
28718fa5d988
Moved all remaining images from lisp/toolbar to etc/images, moved
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
213 (pbm-spec (append (list :type 'pbm :file |
28718fa5d988
Moved all remaining images from lisp/toolbar to etc/images, moved
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
214 (concat icon ".pbm")) colors)) |
28718fa5d988
Moved all remaining images from lisp/toolbar to etc/images, moved
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
215 (xbm-spec (append (list :type 'xbm :file |
28718fa5d988
Moved all remaining images from lisp/toolbar to etc/images, moved
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
216 (concat icon ".xbm")) colors)) |
99971
1b6dc3613e69
(tool-bar-find-image-cache): Var deleted.
Chong Yidong <cyd@stupidchicken.com>
parents:
98658
diff
changeset
|
217 (image-exp `(find-image |
98624
14621c767c96
(tool-bar-local-item)
Chong Yidong <cyd@stupidchicken.com>
parents:
98594
diff
changeset
|
218 (cond ((not (display-color-p)) |
14621c767c96
(tool-bar-local-item)
Chong Yidong <cyd@stupidchicken.com>
parents:
98594
diff
changeset
|
219 ',(list pbm-spec xbm-spec xpm-lo-spec xpm-spec)) |
14621c767c96
(tool-bar-local-item)
Chong Yidong <cyd@stupidchicken.com>
parents:
98594
diff
changeset
|
220 ((< (display-color-cells) 256) |
14621c767c96
(tool-bar-local-item)
Chong Yidong <cyd@stupidchicken.com>
parents:
98594
diff
changeset
|
221 ',(list xpm-lo-spec xpm-spec pbm-spec xbm-spec)) |
14621c767c96
(tool-bar-local-item)
Chong Yidong <cyd@stupidchicken.com>
parents:
98594
diff
changeset
|
222 (t |
14621c767c96
(tool-bar-local-item)
Chong Yidong <cyd@stupidchicken.com>
parents:
98594
diff
changeset
|
223 ',(list xpm-spec pbm-spec xbm-spec))))) |
66168
28718fa5d988
Moved all remaining images from lisp/toolbar to etc/images, moved
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
224 submap key) |
94727
ddce4c48ffb7
Choose images dynamically.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
94678
diff
changeset
|
225 ;; We'll pick up the last valid entry in the list of keys if |
ddce4c48ffb7
Choose images dynamically.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
94678
diff
changeset
|
226 ;; there's more than one. |
108085
34eca4ecfbe6
Provide byte-compiler warnings when set-default a read-only var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108024
diff
changeset
|
227 ;; FIXME: Aren't they *all* "valid"?? --Stef |
94727
ddce4c48ffb7
Choose images dynamically.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
94678
diff
changeset
|
228 (dolist (k keys) |
ddce4c48ffb7
Choose images dynamically.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
94678
diff
changeset
|
229 ;; We're looking for a binding of the command in a submap of |
ddce4c48ffb7
Choose images dynamically.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
94678
diff
changeset
|
230 ;; the menu bar map, so the key sequence must be two or more |
ddce4c48ffb7
Choose images dynamically.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
94678
diff
changeset
|
231 ;; long. |
ddce4c48ffb7
Choose images dynamically.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
94678
diff
changeset
|
232 (if (and (vectorp k) |
ddce4c48ffb7
Choose images dynamically.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
94678
diff
changeset
|
233 (> (length k) 1)) |
ddce4c48ffb7
Choose images dynamically.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
94678
diff
changeset
|
234 (let ((m (lookup-key menu-bar-map (substring k 0 -1))) |
ddce4c48ffb7
Choose images dynamically.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
94678
diff
changeset
|
235 ;; Last element in the bound key sequence: |
ddce4c48ffb7
Choose images dynamically.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
94678
diff
changeset
|
236 (kk (aref k (1- (length k))))) |
ddce4c48ffb7
Choose images dynamically.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
94678
diff
changeset
|
237 (if (and (keymapp m) |
108110
21b1df34bc55
tool-bar.el: Revert unintended checkin in rev 100010.
Jan D <jan.h.d@swipnet.se>
parents:
108085
diff
changeset
|
238 (symbolp kk)) |
94727
ddce4c48ffb7
Choose images dynamically.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
94678
diff
changeset
|
239 (setq submap m |
ddce4c48ffb7
Choose images dynamically.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
94678
diff
changeset
|
240 key kk))))) |
108110
21b1df34bc55
tool-bar.el: Revert unintended checkin in rev 100010.
Jan D <jan.h.d@swipnet.se>
parents:
108085
diff
changeset
|
241 (when (and (symbolp submap) (boundp submap)) |
21b1df34bc55
tool-bar.el: Revert unintended checkin in rev 100010.
Jan D <jan.h.d@swipnet.se>
parents:
108085
diff
changeset
|
242 (setq submap (eval submap))) |
21b1df34bc55
tool-bar.el: Revert unintended checkin in rev 100010.
Jan D <jan.h.d@swipnet.se>
parents:
108085
diff
changeset
|
243 (let ((defn (assq key (cdr submap)))) |
21b1df34bc55
tool-bar.el: Revert unintended checkin in rev 100010.
Jan D <jan.h.d@swipnet.se>
parents:
108085
diff
changeset
|
244 (if (eq (cadr defn) 'menu-item) |
21b1df34bc55
tool-bar.el: Revert unintended checkin in rev 100010.
Jan D <jan.h.d@swipnet.se>
parents:
108085
diff
changeset
|
245 (define-key-after in-map (vector key) |
21b1df34bc55
tool-bar.el: Revert unintended checkin in rev 100010.
Jan D <jan.h.d@swipnet.se>
parents:
108085
diff
changeset
|
246 (append (cdr defn) (list :image image-exp) props)) |
21b1df34bc55
tool-bar.el: Revert unintended checkin in rev 100010.
Jan D <jan.h.d@swipnet.se>
parents:
108085
diff
changeset
|
247 (setq defn (cdr defn)) |
94727
ddce4c48ffb7
Choose images dynamically.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
94678
diff
changeset
|
248 (define-key-after in-map (vector key) |
108110
21b1df34bc55
tool-bar.el: Revert unintended checkin in rev 100010.
Jan D <jan.h.d@swipnet.se>
parents:
108085
diff
changeset
|
249 (let ((rest (cdr defn))) |
21b1df34bc55
tool-bar.el: Revert unintended checkin in rev 100010.
Jan D <jan.h.d@swipnet.se>
parents:
108085
diff
changeset
|
250 ;; If the rest of the definition starts |
21b1df34bc55
tool-bar.el: Revert unintended checkin in rev 100010.
Jan D <jan.h.d@swipnet.se>
parents:
108085
diff
changeset
|
251 ;; with a list of menu cache info, get rid of that. |
21b1df34bc55
tool-bar.el: Revert unintended checkin in rev 100010.
Jan D <jan.h.d@swipnet.se>
parents:
108085
diff
changeset
|
252 (if (and (consp rest) (consp (car rest))) |
21b1df34bc55
tool-bar.el: Revert unintended checkin in rev 100010.
Jan D <jan.h.d@swipnet.se>
parents:
108085
diff
changeset
|
253 (setq rest (cdr rest))) |
21b1df34bc55
tool-bar.el: Revert unintended checkin in rev 100010.
Jan D <jan.h.d@swipnet.se>
parents:
108085
diff
changeset
|
254 (append `(menu-item ,(car defn) ,rest) |
21b1df34bc55
tool-bar.el: Revert unintended checkin in rev 100010.
Jan D <jan.h.d@swipnet.se>
parents:
108085
diff
changeset
|
255 (list :image image-exp) props))))))) |
66168
28718fa5d988
Moved all remaining images from lisp/toolbar to etc/images, moved
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
256 |
28718fa5d988
Moved all remaining images from lisp/toolbar to etc/images, moved
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
257 ;;; Set up some global items. Additions/deletions up for grabs. |
28718fa5d988
Moved all remaining images from lisp/toolbar to etc/images, moved
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
258 |
98658
3e7bd62df13a
(tool-bar-setup): Variable deleted.
Chong Yidong <cyd@stupidchicken.com>
parents:
98624
diff
changeset
|
259 (defun tool-bar-setup () |
3e7bd62df13a
(tool-bar-setup): Variable deleted.
Chong Yidong <cyd@stupidchicken.com>
parents:
98624
diff
changeset
|
260 ;; People say it's bad to have EXIT on the tool bar, since users |
3e7bd62df13a
(tool-bar-setup): Variable deleted.
Chong Yidong <cyd@stupidchicken.com>
parents:
98624
diff
changeset
|
261 ;; might inadvertently click that button. |
3e7bd62df13a
(tool-bar-setup): Variable deleted.
Chong Yidong <cyd@stupidchicken.com>
parents:
98624
diff
changeset
|
262 ;;(tool-bar-add-item-from-menu 'save-buffers-kill-emacs "exit") |
108024
4d8277a44bb4
Gtk tool bars can be text, icons with text or just icons.
Jan D. <jan.h.d@swipnet.se>
parents:
106815
diff
changeset
|
263 (tool-bar-add-item-from-menu 'find-file "new" nil :label "New File") |
98658
3e7bd62df13a
(tool-bar-setup): Variable deleted.
Chong Yidong <cyd@stupidchicken.com>
parents:
98624
diff
changeset
|
264 (tool-bar-add-item-from-menu 'menu-find-file-existing "open") |
3e7bd62df13a
(tool-bar-setup): Variable deleted.
Chong Yidong <cyd@stupidchicken.com>
parents:
98624
diff
changeset
|
265 (tool-bar-add-item-from-menu 'dired "diropen") |
3e7bd62df13a
(tool-bar-setup): Variable deleted.
Chong Yidong <cyd@stupidchicken.com>
parents:
98624
diff
changeset
|
266 (tool-bar-add-item-from-menu 'kill-this-buffer "close") |
3e7bd62df13a
(tool-bar-setup): Variable deleted.
Chong Yidong <cyd@stupidchicken.com>
parents:
98624
diff
changeset
|
267 (tool-bar-add-item-from-menu 'save-buffer "save" nil |
3e7bd62df13a
(tool-bar-setup): Variable deleted.
Chong Yidong <cyd@stupidchicken.com>
parents:
98624
diff
changeset
|
268 :visible '(or buffer-file-name |
3e7bd62df13a
(tool-bar-setup): Variable deleted.
Chong Yidong <cyd@stupidchicken.com>
parents:
98624
diff
changeset
|
269 (not (eq 'special |
3e7bd62df13a
(tool-bar-setup): Variable deleted.
Chong Yidong <cyd@stupidchicken.com>
parents:
98624
diff
changeset
|
270 (get major-mode |
3e7bd62df13a
(tool-bar-setup): Variable deleted.
Chong Yidong <cyd@stupidchicken.com>
parents:
98624
diff
changeset
|
271 'mode-class))))) |
3e7bd62df13a
(tool-bar-setup): Variable deleted.
Chong Yidong <cyd@stupidchicken.com>
parents:
98624
diff
changeset
|
272 (tool-bar-add-item-from-menu 'write-file "saveas" nil |
3e7bd62df13a
(tool-bar-setup): Variable deleted.
Chong Yidong <cyd@stupidchicken.com>
parents:
98624
diff
changeset
|
273 :visible '(or buffer-file-name |
3e7bd62df13a
(tool-bar-setup): Variable deleted.
Chong Yidong <cyd@stupidchicken.com>
parents:
98624
diff
changeset
|
274 (not (eq 'special |
3e7bd62df13a
(tool-bar-setup): Variable deleted.
Chong Yidong <cyd@stupidchicken.com>
parents:
98624
diff
changeset
|
275 (get major-mode |
3e7bd62df13a
(tool-bar-setup): Variable deleted.
Chong Yidong <cyd@stupidchicken.com>
parents:
98624
diff
changeset
|
276 'mode-class))))) |
3e7bd62df13a
(tool-bar-setup): Variable deleted.
Chong Yidong <cyd@stupidchicken.com>
parents:
98624
diff
changeset
|
277 (tool-bar-add-item-from-menu 'undo "undo" nil |
3e7bd62df13a
(tool-bar-setup): Variable deleted.
Chong Yidong <cyd@stupidchicken.com>
parents:
98624
diff
changeset
|
278 :visible '(not (eq 'special (get major-mode |
3e7bd62df13a
(tool-bar-setup): Variable deleted.
Chong Yidong <cyd@stupidchicken.com>
parents:
98624
diff
changeset
|
279 'mode-class)))) |
3e7bd62df13a
(tool-bar-setup): Variable deleted.
Chong Yidong <cyd@stupidchicken.com>
parents:
98624
diff
changeset
|
280 (tool-bar-add-item-from-menu (lookup-key menu-bar-edit-menu [cut]) |
3e7bd62df13a
(tool-bar-setup): Variable deleted.
Chong Yidong <cyd@stupidchicken.com>
parents:
98624
diff
changeset
|
281 "cut" nil |
3e7bd62df13a
(tool-bar-setup): Variable deleted.
Chong Yidong <cyd@stupidchicken.com>
parents:
98624
diff
changeset
|
282 :visible '(not (eq 'special (get major-mode |
3e7bd62df13a
(tool-bar-setup): Variable deleted.
Chong Yidong <cyd@stupidchicken.com>
parents:
98624
diff
changeset
|
283 'mode-class)))) |
3e7bd62df13a
(tool-bar-setup): Variable deleted.
Chong Yidong <cyd@stupidchicken.com>
parents:
98624
diff
changeset
|
284 (tool-bar-add-item-from-menu (lookup-key menu-bar-edit-menu [copy]) |
3e7bd62df13a
(tool-bar-setup): Variable deleted.
Chong Yidong <cyd@stupidchicken.com>
parents:
98624
diff
changeset
|
285 "copy") |
3e7bd62df13a
(tool-bar-setup): Variable deleted.
Chong Yidong <cyd@stupidchicken.com>
parents:
98624
diff
changeset
|
286 (tool-bar-add-item-from-menu (lookup-key menu-bar-edit-menu [paste]) |
3e7bd62df13a
(tool-bar-setup): Variable deleted.
Chong Yidong <cyd@stupidchicken.com>
parents:
98624
diff
changeset
|
287 "paste" nil |
3e7bd62df13a
(tool-bar-setup): Variable deleted.
Chong Yidong <cyd@stupidchicken.com>
parents:
98624
diff
changeset
|
288 :visible '(not (eq 'special (get major-mode |
3e7bd62df13a
(tool-bar-setup): Variable deleted.
Chong Yidong <cyd@stupidchicken.com>
parents:
98624
diff
changeset
|
289 'mode-class)))) |
108024
4d8277a44bb4
Gtk tool bars can be text, icons with text or just icons.
Jan D. <jan.h.d@swipnet.se>
parents:
106815
diff
changeset
|
290 (tool-bar-add-item-from-menu 'nonincremental-search-forward "search" |
4d8277a44bb4
Gtk tool bars can be text, icons with text or just icons.
Jan D. <jan.h.d@swipnet.se>
parents:
106815
diff
changeset
|
291 nil :label "Search") |
98658
3e7bd62df13a
(tool-bar-setup): Variable deleted.
Chong Yidong <cyd@stupidchicken.com>
parents:
98624
diff
changeset
|
292 ;;(tool-bar-add-item-from-menu 'ispell-buffer "spell") |
66168
28718fa5d988
Moved all remaining images from lisp/toolbar to etc/images, moved
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
293 |
98658
3e7bd62df13a
(tool-bar-setup): Variable deleted.
Chong Yidong <cyd@stupidchicken.com>
parents:
98624
diff
changeset
|
294 ;; There's no icon appropriate for News and we need a command rather |
3e7bd62df13a
(tool-bar-setup): Variable deleted.
Chong Yidong <cyd@stupidchicken.com>
parents:
98624
diff
changeset
|
295 ;; than a lambda for Read Mail. |
3e7bd62df13a
(tool-bar-setup): Variable deleted.
Chong Yidong <cyd@stupidchicken.com>
parents:
98624
diff
changeset
|
296 ;;(tool-bar-add-item-from-menu 'compose-mail "mail/compose") |
3e7bd62df13a
(tool-bar-setup): Variable deleted.
Chong Yidong <cyd@stupidchicken.com>
parents:
98624
diff
changeset
|
297 |
108024
4d8277a44bb4
Gtk tool bars can be text, icons with text or just icons.
Jan D. <jan.h.d@swipnet.se>
parents:
106815
diff
changeset
|
298 (tool-bar-add-item-from-menu 'print-buffer "print" nil :label "Print") |
98658
3e7bd62df13a
(tool-bar-setup): Variable deleted.
Chong Yidong <cyd@stupidchicken.com>
parents:
98624
diff
changeset
|
299 |
3e7bd62df13a
(tool-bar-setup): Variable deleted.
Chong Yidong <cyd@stupidchicken.com>
parents:
98624
diff
changeset
|
300 ;; tool-bar-add-item-from-menu itself operates on |
3e7bd62df13a
(tool-bar-setup): Variable deleted.
Chong Yidong <cyd@stupidchicken.com>
parents:
98624
diff
changeset
|
301 ;; (default-value 'tool-bar-map), but when we don't use that function, |
3e7bd62df13a
(tool-bar-setup): Variable deleted.
Chong Yidong <cyd@stupidchicken.com>
parents:
98624
diff
changeset
|
302 ;; we must explicitly operate on the default value. |
66168
28718fa5d988
Moved all remaining images from lisp/toolbar to etc/images, moved
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
303 |
98658
3e7bd62df13a
(tool-bar-setup): Variable deleted.
Chong Yidong <cyd@stupidchicken.com>
parents:
98624
diff
changeset
|
304 (let ((tool-bar-map (default-value 'tool-bar-map))) |
3e7bd62df13a
(tool-bar-setup): Variable deleted.
Chong Yidong <cyd@stupidchicken.com>
parents:
98624
diff
changeset
|
305 (tool-bar-add-item "preferences" 'customize 'customize |
3e7bd62df13a
(tool-bar-setup): Variable deleted.
Chong Yidong <cyd@stupidchicken.com>
parents:
98624
diff
changeset
|
306 :help "Edit preferences (customize)") |
70323
810cd69c168f
(tool-bar-setup): Put Help and Preferences items in the default tool-bar-map.
Richard M. Stallman <rms@gnu.org>
parents:
68651
diff
changeset
|
307 |
98658
3e7bd62df13a
(tool-bar-setup): Variable deleted.
Chong Yidong <cyd@stupidchicken.com>
parents:
98624
diff
changeset
|
308 (tool-bar-add-item "help" (lambda () |
3e7bd62df13a
(tool-bar-setup): Variable deleted.
Chong Yidong <cyd@stupidchicken.com>
parents:
98624
diff
changeset
|
309 (interactive) |
3e7bd62df13a
(tool-bar-setup): Variable deleted.
Chong Yidong <cyd@stupidchicken.com>
parents:
98624
diff
changeset
|
310 (popup-menu menu-bar-help-menu)) |
3e7bd62df13a
(tool-bar-setup): Variable deleted.
Chong Yidong <cyd@stupidchicken.com>
parents:
98624
diff
changeset
|
311 'help |
3e7bd62df13a
(tool-bar-setup): Variable deleted.
Chong Yidong <cyd@stupidchicken.com>
parents:
98624
diff
changeset
|
312 :help "Pop up the Help menu"))) |
83514 | 313 |
66168
28718fa5d988
Moved all remaining images from lisp/toolbar to etc/images, moved
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
314 |
28718fa5d988
Moved all remaining images from lisp/toolbar to etc/images, moved
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
315 (provide 'tool-bar) |
93975
1e3a407766b9
Fix up comment convention on the arch-tag lines.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
92262
diff
changeset
|
316 ;; arch-tag: 15f30f0a-d0d7-4d50-bbb7-f48fd0c8582f |
66168
28718fa5d988
Moved all remaining images from lisp/toolbar to etc/images, moved
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
317 ;;; tool-bar.el ends here |