Mercurial > emacs
annotate lisp/facemenu.el @ 80401:52454b9e8627
* url-auth.el (url-digest-auth): Changed an if so that the
interaction between the PROMPT and OVERWRITE arguments can no
longer result in the user being queried twice for the same login
and password information.
author | Chong Yidong <cyd@stupidchicken.com> |
---|---|
date | Mon, 31 Mar 2008 22:02:08 +0000 |
parents | 73661ddc7ac7 |
children | 76e75acf7e4e 107ccd98fa12 |
rev | line source |
---|---|
13337 | 1 ;;; facemenu.el --- create a face menu for interactively adding fonts to text |
14169 | 2 |
64762
41bb365f41c4
Update years in copyright notice; nfc.
Thien-Thi Nguyen <ttn@gnuvola.org>
parents:
64211
diff
changeset
|
3 ;; Copyright (C) 1994, 1995, 1996, 2001, 2002, 2003, 2004, |
79721 | 4 ;; 2005, 2006, 2007, 2008 Free Software Foundation, Inc. |
8743 | 5 |
25278 | 6 ;; Author: Boris Goldowsky <boris@gnu.org> |
8743 | 7 ;; Keywords: faces |
8 | |
9 ;; This file is part of GNU Emacs. | |
10 | |
11 ;; GNU Emacs is free software; you can redistribute it and/or modify | |
12 ;; it under the terms of the GNU General Public License as published by | |
78236
9355f9b7bbff
Switch license to GPLv3 or later.
Glenn Morris <rgm@gnu.org>
parents:
75347
diff
changeset
|
13 ;; the Free Software Foundation; either version 3, or (at your option) |
8743 | 14 ;; any later version. |
15 | |
16 ;; GNU Emacs is distributed in the hope that it will be useful, | |
17 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of | |
18 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
19 ;; GNU General Public License for more details. | |
20 | |
21 ;; You should have received a copy of the GNU General Public License | |
14169 | 22 ;; along with GNU Emacs; see the file COPYING. If not, write to the |
64091 | 23 ;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, |
24 ;; Boston, MA 02110-1301, USA. | |
8743 | 25 |
26 ;;; Commentary: | |
14169 | 27 |
9623
fe1c170fa35a
(facemenu-get-face): Don't add to menu here.
Boris Goldowsky <boris@gnu.org>
parents:
9494
diff
changeset
|
28 ;; This file defines a menu of faces (bold, italic, etc) which allows you to |
fe1c170fa35a
(facemenu-get-face): Don't add to menu here.
Boris Goldowsky <boris@gnu.org>
parents:
9494
diff
changeset
|
29 ;; set the face used for a region of the buffer. Some faces also have |
43902
e0e6df854822
(facemenu-add-new-face):
Richard M. Stallman <rms@gnu.org>
parents:
43412
diff
changeset
|
30 ;; keybindings, which are shown in the menu. |
10520
3d30caa4b459
(facemenu-keybindings, facemenu-face-menu):
Richard M. Stallman <rms@gnu.org>
parents:
10238
diff
changeset
|
31 ;; |
3d30caa4b459
(facemenu-keybindings, facemenu-face-menu):
Richard M. Stallman <rms@gnu.org>
parents:
10238
diff
changeset
|
32 ;; The menu also contains submenus for indentation and justification-changing |
3d30caa4b459
(facemenu-keybindings, facemenu-face-menu):
Richard M. Stallman <rms@gnu.org>
parents:
10238
diff
changeset
|
33 ;; commands. |
8743 | 34 |
35 ;;; Usage: | |
9623
fe1c170fa35a
(facemenu-get-face): Don't add to menu here.
Boris Goldowsky <boris@gnu.org>
parents:
9494
diff
changeset
|
36 ;; Selecting a face from the menu or typing the keyboard equivalent will |
fe1c170fa35a
(facemenu-get-face): Don't add to menu here.
Boris Goldowsky <boris@gnu.org>
parents:
9494
diff
changeset
|
37 ;; change the region to use that face. If you use transient-mark-mode and the |
fe1c170fa35a
(facemenu-get-face): Don't add to menu here.
Boris Goldowsky <boris@gnu.org>
parents:
9494
diff
changeset
|
38 ;; region is not active, the face will be remembered and used for the next |
fe1c170fa35a
(facemenu-get-face): Don't add to menu here.
Boris Goldowsky <boris@gnu.org>
parents:
9494
diff
changeset
|
39 ;; insertion. It will be forgotten if you move point or make other |
fe1c170fa35a
(facemenu-get-face): Don't add to menu here.
Boris Goldowsky <boris@gnu.org>
parents:
9494
diff
changeset
|
40 ;; modifications before inserting or typing anything. |
8743 | 41 ;; |
49588
37645a051842
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
46248
diff
changeset
|
42 ;; Faces can be selected from the keyboard as well. |
60466
53053dc21ae7
(global-map): Bind M-o, not M-g.
Richard M. Stallman <rms@gnu.org>
parents:
59484
diff
changeset
|
43 ;; The standard keybindings are M-o (or ESC o) + letter: |
53053dc21ae7
(global-map): Bind M-o, not M-g.
Richard M. Stallman <rms@gnu.org>
parents:
59484
diff
changeset
|
44 ;; M-o i = "set italic", M-o b = "set bold", etc. |
8743 | 45 |
46 ;;; Customization: | |
47 ;; An alternative set of keybindings that may be easier to type can be set up | |
10520
3d30caa4b459
(facemenu-keybindings, facemenu-face-menu):
Richard M. Stallman <rms@gnu.org>
parents:
10238
diff
changeset
|
48 ;; using "Alt" or "Hyper" keys. This requires that you either have or create |
3d30caa4b459
(facemenu-keybindings, facemenu-face-menu):
Richard M. Stallman <rms@gnu.org>
parents:
10238
diff
changeset
|
49 ;; an Alt or Hyper key on your keyboard. On my keyboard, there is a key |
3d30caa4b459
(facemenu-keybindings, facemenu-face-menu):
Richard M. Stallman <rms@gnu.org>
parents:
10238
diff
changeset
|
50 ;; labeled "Alt", but to make it act as an Alt key I have to put this command |
3d30caa4b459
(facemenu-keybindings, facemenu-face-menu):
Richard M. Stallman <rms@gnu.org>
parents:
10238
diff
changeset
|
51 ;; into my .xinitrc: |
3d30caa4b459
(facemenu-keybindings, facemenu-face-menu):
Richard M. Stallman <rms@gnu.org>
parents:
10238
diff
changeset
|
52 ;; xmodmap -e "add Mod3 = Alt_L" |
3d30caa4b459
(facemenu-keybindings, facemenu-face-menu):
Richard M. Stallman <rms@gnu.org>
parents:
10238
diff
changeset
|
53 ;; Or, I can make it into a Hyper key with this: |
8743 | 54 ;; xmodmap -e "keysym Alt_L = Hyper_L" -e "add Mod2 = Hyper_L" |
10520
3d30caa4b459
(facemenu-keybindings, facemenu-face-menu):
Richard M. Stallman <rms@gnu.org>
parents:
10238
diff
changeset
|
55 ;; Check with local X-perts for how to do it on your system. |
3d30caa4b459
(facemenu-keybindings, facemenu-face-menu):
Richard M. Stallman <rms@gnu.org>
parents:
10238
diff
changeset
|
56 ;; Then you can define your keybindings with code like this in your .emacs: |
8743 | 57 ;; (setq facemenu-keybindings |
58 ;; '((default . [?\H-d]) | |
59 ;; (bold . [?\H-b]) | |
60 ;; (italic . [?\H-i]) | |
10520
3d30caa4b459
(facemenu-keybindings, facemenu-face-menu):
Richard M. Stallman <rms@gnu.org>
parents:
10238
diff
changeset
|
61 ;; (bold-italic . [?\H-l]) |
8743 | 62 ;; (underline . [?\H-u]))) |
17505
c2640d101ca9
(facemenu-update): Don't make global bindings here.
Richard M. Stallman <rms@gnu.org>
parents:
17073
diff
changeset
|
63 ;; (facemenu-update) |
8743 | 64 ;; (setq facemenu-keymap global-map) |
10520
3d30caa4b459
(facemenu-keybindings, facemenu-face-menu):
Richard M. Stallman <rms@gnu.org>
parents:
10238
diff
changeset
|
65 ;; (define-key global-map [?\H-c] 'facemenu-set-foreground) ; set fg color |
3d30caa4b459
(facemenu-keybindings, facemenu-face-menu):
Richard M. Stallman <rms@gnu.org>
parents:
10238
diff
changeset
|
66 ;; (define-key global-map [?\H-C] 'facemenu-set-background) ; set bg color |
8743 | 67 ;; |
10520
3d30caa4b459
(facemenu-keybindings, facemenu-face-menu):
Richard M. Stallman <rms@gnu.org>
parents:
10238
diff
changeset
|
68 ;; The order of the faces that appear in the menu and their keybindings can be |
3d30caa4b459
(facemenu-keybindings, facemenu-face-menu):
Richard M. Stallman <rms@gnu.org>
parents:
10238
diff
changeset
|
69 ;; controlled by setting the variables `facemenu-keybindings' and |
71568
8d6af1c1c365
* facemenu.el (facemenu-listed-faces): New var.
Chong Yidong <cyd@stupidchicken.com>
parents:
71369
diff
changeset
|
70 ;; `facemenu-new-faces-at-end'. List faces that you want to use in documents |
8d6af1c1c365
* facemenu.el (facemenu-listed-faces): New var.
Chong Yidong <cyd@stupidchicken.com>
parents:
71369
diff
changeset
|
71 ;; in `facemenu-listed-faces'. |
8743 | 72 |
73 ;;; Known Problems: | |
10520
3d30caa4b459
(facemenu-keybindings, facemenu-face-menu):
Richard M. Stallman <rms@gnu.org>
parents:
10238
diff
changeset
|
74 ;; Bold and Italic do not combine to create bold-italic if you select them |
3d30caa4b459
(facemenu-keybindings, facemenu-face-menu):
Richard M. Stallman <rms@gnu.org>
parents:
10238
diff
changeset
|
75 ;; both, although most other combinations (eg bold + underline + some color) |
3d30caa4b459
(facemenu-keybindings, facemenu-face-menu):
Richard M. Stallman <rms@gnu.org>
parents:
10238
diff
changeset
|
76 ;; do the intuitive thing. |
3d30caa4b459
(facemenu-keybindings, facemenu-face-menu):
Richard M. Stallman <rms@gnu.org>
parents:
10238
diff
changeset
|
77 ;; |
8743 | 78 ;; There is at present no way to display what the faces look like in |
79 ;; the menu itself. | |
80 ;; | |
81 ;; `list-faces-display' shows the faces in a different order than | |
82 ;; this menu, which could be confusing. I do /not/ sort the list | |
83 ;; alphabetically, because I like the default order: it puts the most | |
84 ;; basic, common fonts first. | |
85 ;; | |
86 ;; Please send me any other problems, comments or ideas. | |
87 | |
88 ;;; Code: | |
89 | |
49588
37645a051842
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
46248
diff
changeset
|
90 (eval-when-compile |
43295
ce2590f06ba0
2002-02-14 Per Abrahamsen <abraham@dina.kvl.dk>
Per Abrahamsen <abraham@dina.kvl.dk>
parents:
42948
diff
changeset
|
91 (require 'help) |
ce2590f06ba0
2002-02-14 Per Abrahamsen <abraham@dina.kvl.dk>
Per Abrahamsen <abraham@dina.kvl.dk>
parents:
42948
diff
changeset
|
92 (require 'button)) |
ce2590f06ba0
2002-02-14 Per Abrahamsen <abraham@dina.kvl.dk>
Per Abrahamsen <abraham@dina.kvl.dk>
parents:
42948
diff
changeset
|
93 |
11091
c968d4c026b7
Doc fix + autoload cookies.
Boris Goldowsky <boris@gnu.org>
parents:
11081
diff
changeset
|
94 ;;; Provide some binding for startup: |
60466
53053dc21ae7
(global-map): Bind M-o, not M-g.
Richard M. Stallman <rms@gnu.org>
parents:
59484
diff
changeset
|
95 ;;;###autoload (define-key global-map "\M-o" 'facemenu-keymap) |
11091
c968d4c026b7
Doc fix + autoload cookies.
Boris Goldowsky <boris@gnu.org>
parents:
11081
diff
changeset
|
96 ;;;###autoload (autoload 'facemenu-keymap "facemenu" "Keymap for face-changing commands." t 'keymap) |
49588
37645a051842
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
46248
diff
changeset
|
97 |
17505
c2640d101ca9
(facemenu-update): Don't make global bindings here.
Richard M. Stallman <rms@gnu.org>
parents:
17073
diff
changeset
|
98 ;; Global bindings: |
c2640d101ca9
(facemenu-update): Don't make global bindings here.
Richard M. Stallman <rms@gnu.org>
parents:
17073
diff
changeset
|
99 (define-key global-map [C-down-mouse-2] 'facemenu-menu) |
60466
53053dc21ae7
(global-map): Bind M-o, not M-g.
Richard M. Stallman <rms@gnu.org>
parents:
59484
diff
changeset
|
100 (define-key global-map "\M-o" 'facemenu-keymap) |
8743 | 101 |
19009 | 102 (defgroup facemenu nil |
64011
ca0386c4cfd5
(facemenu): Finish `defgroup' description with period.
Juanma Barranquero <lekktu@gmail.com>
parents:
63897
diff
changeset
|
103 "Create a face menu for interactively adding fonts to text." |
19009 | 104 :group 'faces |
105 :prefix "facemenu-") | |
106 | |
107 (defcustom facemenu-keybindings | |
8743 | 108 '((default . "d") |
109 (bold . "b") | |
110 (italic . "i") | |
10520
3d30caa4b459
(facemenu-keybindings, facemenu-face-menu):
Richard M. Stallman <rms@gnu.org>
parents:
10238
diff
changeset
|
111 (bold-italic . "l") ; {bold} intersect {italic} = {l} |
8743 | 112 (underline . "u")) |
41799 | 113 "Alist of interesting faces and keybindings. |
8743 | 114 Each element is itself a list: the car is the name of the face, |
115 the next element is the key to use as a keyboard equivalent of the menu item; | |
17505
c2640d101ca9
(facemenu-update): Don't make global bindings here.
Richard M. Stallman <rms@gnu.org>
parents:
17073
diff
changeset
|
116 the binding is made in `facemenu-keymap'. |
8743 | 117 |
118 The faces specifically mentioned in this list are put at the top of | |
71568
8d6af1c1c365
* facemenu.el (facemenu-listed-faces): New var.
Chong Yidong <cyd@stupidchicken.com>
parents:
71369
diff
changeset
|
119 the menu, in the order specified. All other faces which are defined |
8d6af1c1c365
* facemenu.el (facemenu-listed-faces): New var.
Chong Yidong <cyd@stupidchicken.com>
parents:
71369
diff
changeset
|
120 in `facemenu-listed-faces' are listed after them, but get no |
8d6af1c1c365
* facemenu.el (facemenu-listed-faces): New var.
Chong Yidong <cyd@stupidchicken.com>
parents:
71369
diff
changeset
|
121 keyboard equivalents. |
8743 | 122 |
123 If you change this variable after loading facemenu.el, you will need to call | |
19009 | 124 `facemenu-update' to make it take effect." |
125 :type '(repeat (cons face string)) | |
126 :group 'facemenu) | |
8743 | 127 |
19009 | 128 (defcustom facemenu-new-faces-at-end t |
17505
c2640d101ca9
(facemenu-update): Don't make global bindings here.
Richard M. Stallman <rms@gnu.org>
parents:
17073
diff
changeset
|
129 "*Where in the menu to insert newly-created faces. |
10520
3d30caa4b459
(facemenu-keybindings, facemenu-face-menu):
Richard M. Stallman <rms@gnu.org>
parents:
10238
diff
changeset
|
130 This should be nil to put them at the top of the menu, or t to put them |
19009 | 131 just before \"Other\" at the end." |
132 :type 'boolean | |
133 :group 'facemenu) | |
10520
3d30caa4b459
(facemenu-keybindings, facemenu-face-menu):
Richard M. Stallman <rms@gnu.org>
parents:
10238
diff
changeset
|
134 |
74422
a756f7ecaf2e
(facemenu-unlisted-faces): Define as obsolete variable.
Chong Yidong <cyd@stupidchicken.com>
parents:
74281
diff
changeset
|
135 (defvar facemenu-unlisted-faces |
a756f7ecaf2e
(facemenu-unlisted-faces): Define as obsolete variable.
Chong Yidong <cyd@stupidchicken.com>
parents:
74281
diff
changeset
|
136 `(modeline region secondary-selection highlight scratch-face |
a756f7ecaf2e
(facemenu-unlisted-faces): Define as obsolete variable.
Chong Yidong <cyd@stupidchicken.com>
parents:
74281
diff
changeset
|
137 ,(purecopy "^font-lock-") ,(purecopy "^gnus-") ,(purecopy "^message-") |
a756f7ecaf2e
(facemenu-unlisted-faces): Define as obsolete variable.
Chong Yidong <cyd@stupidchicken.com>
parents:
74281
diff
changeset
|
138 ,(purecopy "^ediff-") ,(purecopy "^term-") ,(purecopy "^vc-") |
a756f7ecaf2e
(facemenu-unlisted-faces): Define as obsolete variable.
Chong Yidong <cyd@stupidchicken.com>
parents:
74281
diff
changeset
|
139 ,(purecopy "^widget-") ,(purecopy "^custom-") ,(purecopy "^vm-")) |
74423
fb9de3443cda
(facemenu-unlisted-faces): Put obsolescence info in the call to
Juanma Barranquero <lekktu@gmail.com>
parents:
74422
diff
changeset
|
140 "*List of faces that are of no interest to the user.") |
fb9de3443cda
(facemenu-unlisted-faces): Put obsolescence info in the call to
Juanma Barranquero <lekktu@gmail.com>
parents:
74422
diff
changeset
|
141 (make-obsolete-variable 'facemenu-unlisted-faces 'facemenu-listed-faces |
fb9de3443cda
(facemenu-unlisted-faces): Put obsolescence info in the call to
Juanma Barranquero <lekktu@gmail.com>
parents:
74422
diff
changeset
|
142 "since 22.1,\nand has no effect on the Face menu") |
74422
a756f7ecaf2e
(facemenu-unlisted-faces): Define as obsolete variable.
Chong Yidong <cyd@stupidchicken.com>
parents:
74281
diff
changeset
|
143 |
71568
8d6af1c1c365
* facemenu.el (facemenu-listed-faces): New var.
Chong Yidong <cyd@stupidchicken.com>
parents:
71369
diff
changeset
|
144 (defcustom facemenu-listed-faces nil |
8d6af1c1c365
* facemenu.el (facemenu-listed-faces): New var.
Chong Yidong <cyd@stupidchicken.com>
parents:
71369
diff
changeset
|
145 "*List of faces to include in the Face menu. |
72338
1bac8eb0facf
(facemenu-listed-faces): Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
72335
diff
changeset
|
146 Each element should be a symbol, the name of a face. |
71568
8d6af1c1c365
* facemenu.el (facemenu-listed-faces): New var.
Chong Yidong <cyd@stupidchicken.com>
parents:
71369
diff
changeset
|
147 The \"basic \" faces in `facemenu-keybindings' are automatically |
72338
1bac8eb0facf
(facemenu-listed-faces): Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
72335
diff
changeset
|
148 added to the Face menu, and need not be in this list. |
19558
56079fac4d24
(facemenu-unlisted-faces): Expand variable
Richard M. Stallman <rms@gnu.org>
parents:
19009
diff
changeset
|
149 |
72338
1bac8eb0facf
(facemenu-listed-faces): Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
72335
diff
changeset
|
150 This value takes effect when you load facemenu.el. If the |
1bac8eb0facf
(facemenu-listed-faces): Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
72335
diff
changeset
|
151 list includes symbols which are not defined as faces, they |
1bac8eb0facf
(facemenu-listed-faces): Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
72335
diff
changeset
|
152 are ignored; however, subsequently defining or creating |
1bac8eb0facf
(facemenu-listed-faces): Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
72335
diff
changeset
|
153 those faces adds them to the menu then. You can call |
1bac8eb0facf
(facemenu-listed-faces): Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
72335
diff
changeset
|
154 `facemenu-update' to recalculate the menu contents, such as |
1bac8eb0facf
(facemenu-listed-faces): Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
72335
diff
changeset
|
155 if you change the value of this variable, |
8743 | 156 |
72338
1bac8eb0facf
(facemenu-listed-faces): Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
72335
diff
changeset
|
157 If this variable is t, all faces that you apply to text |
1bac8eb0facf
(facemenu-listed-faces): Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
72335
diff
changeset
|
158 using the face menu commands (even by name), and all faces |
1bac8eb0facf
(facemenu-listed-faces): Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
72335
diff
changeset
|
159 that you define or create, are added to the menu. You may |
1bac8eb0facf
(facemenu-listed-faces): Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
72335
diff
changeset
|
160 find it useful to set this variable to t temporarily while |
1bac8eb0facf
(facemenu-listed-faces): Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
72335
diff
changeset
|
161 you define some faces, so that they will be added. However, |
1bac8eb0facf
(facemenu-listed-faces): Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
72335
diff
changeset
|
162 if the value is no longer t and you call `facemenu-update', |
1bac8eb0facf
(facemenu-listed-faces): Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
72335
diff
changeset
|
163 it will remove any faces not explicitly in the list." |
71568
8d6af1c1c365
* facemenu.el (facemenu-listed-faces): New var.
Chong Yidong <cyd@stupidchicken.com>
parents:
71369
diff
changeset
|
164 :type '(choice (const :tag "List all faces" t) |
8d6af1c1c365
* facemenu.el (facemenu-listed-faces): New var.
Chong Yidong <cyd@stupidchicken.com>
parents:
71369
diff
changeset
|
165 (const :tag "None" nil) |
8d6af1c1c365
* facemenu.el (facemenu-listed-faces): New var.
Chong Yidong <cyd@stupidchicken.com>
parents:
71369
diff
changeset
|
166 (repeat symbol)) |
8d6af1c1c365
* facemenu.el (facemenu-listed-faces): New var.
Chong Yidong <cyd@stupidchicken.com>
parents:
71369
diff
changeset
|
167 :group 'facemenu |
8d6af1c1c365
* facemenu.el (facemenu-listed-faces): New var.
Chong Yidong <cyd@stupidchicken.com>
parents:
71369
diff
changeset
|
168 :version "22.1") |
10520
3d30caa4b459
(facemenu-keybindings, facemenu-face-menu):
Richard M. Stallman <rms@gnu.org>
parents:
10238
diff
changeset
|
169 |
11091
c968d4c026b7
Doc fix + autoload cookies.
Boris Goldowsky <boris@gnu.org>
parents:
11081
diff
changeset
|
170 ;;;###autoload |
10520
3d30caa4b459
(facemenu-keybindings, facemenu-face-menu):
Richard M. Stallman <rms@gnu.org>
parents:
10238
diff
changeset
|
171 (defvar facemenu-face-menu |
9623
fe1c170fa35a
(facemenu-get-face): Don't add to menu here.
Boris Goldowsky <boris@gnu.org>
parents:
9494
diff
changeset
|
172 (let ((map (make-sparse-keymap "Face"))) |
10520
3d30caa4b459
(facemenu-keybindings, facemenu-face-menu):
Richard M. Stallman <rms@gnu.org>
parents:
10238
diff
changeset
|
173 (define-key map "o" (cons "Other..." 'facemenu-set-face)) |
9623
fe1c170fa35a
(facemenu-get-face): Don't add to menu here.
Boris Goldowsky <boris@gnu.org>
parents:
9494
diff
changeset
|
174 map) |
fe1c170fa35a
(facemenu-get-face): Don't add to menu here.
Boris Goldowsky <boris@gnu.org>
parents:
9494
diff
changeset
|
175 "Menu keymap for faces.") |
11091
c968d4c026b7
Doc fix + autoload cookies.
Boris Goldowsky <boris@gnu.org>
parents:
11081
diff
changeset
|
176 ;;;###autoload |
10520
3d30caa4b459
(facemenu-keybindings, facemenu-face-menu):
Richard M. Stallman <rms@gnu.org>
parents:
10238
diff
changeset
|
177 (defalias 'facemenu-face-menu facemenu-face-menu) |
63769
cae70b5066ae
(facemenu-enable-faces-p): New function.
Richard M. Stallman <rms@gnu.org>
parents:
60522
diff
changeset
|
178 (put 'facemenu-face-menu 'menu-enable '(facemenu-enable-faces-p)) |
9623
fe1c170fa35a
(facemenu-get-face): Don't add to menu here.
Boris Goldowsky <boris@gnu.org>
parents:
9494
diff
changeset
|
179 |
11091
c968d4c026b7
Doc fix + autoload cookies.
Boris Goldowsky <boris@gnu.org>
parents:
11081
diff
changeset
|
180 ;;;###autoload |
49588
37645a051842
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
46248
diff
changeset
|
181 (defvar facemenu-foreground-menu |
9623
fe1c170fa35a
(facemenu-get-face): Don't add to menu here.
Boris Goldowsky <boris@gnu.org>
parents:
9494
diff
changeset
|
182 (let ((map (make-sparse-keymap "Foreground Color"))) |
12014
e4932082046a
(facemenu-special-menu): Use characters, not symbols.
Karl Heuer <kwzh@gnu.org>
parents:
11830
diff
changeset
|
183 (define-key map "o" (cons "Other..." 'facemenu-set-foreground)) |
9623
fe1c170fa35a
(facemenu-get-face): Don't add to menu here.
Boris Goldowsky <boris@gnu.org>
parents:
9494
diff
changeset
|
184 map) |
fe1c170fa35a
(facemenu-get-face): Don't add to menu here.
Boris Goldowsky <boris@gnu.org>
parents:
9494
diff
changeset
|
185 "Menu keymap for foreground colors.") |
11091
c968d4c026b7
Doc fix + autoload cookies.
Boris Goldowsky <boris@gnu.org>
parents:
11081
diff
changeset
|
186 ;;;###autoload |
10520
3d30caa4b459
(facemenu-keybindings, facemenu-face-menu):
Richard M. Stallman <rms@gnu.org>
parents:
10238
diff
changeset
|
187 (defalias 'facemenu-foreground-menu facemenu-foreground-menu) |
63769
cae70b5066ae
(facemenu-enable-faces-p): New function.
Richard M. Stallman <rms@gnu.org>
parents:
60522
diff
changeset
|
188 (put 'facemenu-foreground-menu 'menu-enable '(facemenu-enable-faces-p)) |
9623
fe1c170fa35a
(facemenu-get-face): Don't add to menu here.
Boris Goldowsky <boris@gnu.org>
parents:
9494
diff
changeset
|
189 |
11091
c968d4c026b7
Doc fix + autoload cookies.
Boris Goldowsky <boris@gnu.org>
parents:
11081
diff
changeset
|
190 ;;;###autoload |
9623
fe1c170fa35a
(facemenu-get-face): Don't add to menu here.
Boris Goldowsky <boris@gnu.org>
parents:
9494
diff
changeset
|
191 (defvar facemenu-background-menu |
fe1c170fa35a
(facemenu-get-face): Don't add to menu here.
Boris Goldowsky <boris@gnu.org>
parents:
9494
diff
changeset
|
192 (let ((map (make-sparse-keymap "Background Color"))) |
12014
e4932082046a
(facemenu-special-menu): Use characters, not symbols.
Karl Heuer <kwzh@gnu.org>
parents:
11830
diff
changeset
|
193 (define-key map "o" (cons "Other..." 'facemenu-set-background)) |
9623
fe1c170fa35a
(facemenu-get-face): Don't add to menu here.
Boris Goldowsky <boris@gnu.org>
parents:
9494
diff
changeset
|
194 map) |
30092
6d383cf4bb99
Docstrings fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29050
diff
changeset
|
195 "Menu keymap for background colors.") |
11091
c968d4c026b7
Doc fix + autoload cookies.
Boris Goldowsky <boris@gnu.org>
parents:
11081
diff
changeset
|
196 ;;;###autoload |
10520
3d30caa4b459
(facemenu-keybindings, facemenu-face-menu):
Richard M. Stallman <rms@gnu.org>
parents:
10238
diff
changeset
|
197 (defalias 'facemenu-background-menu facemenu-background-menu) |
63769
cae70b5066ae
(facemenu-enable-faces-p): New function.
Richard M. Stallman <rms@gnu.org>
parents:
60522
diff
changeset
|
198 (put 'facemenu-background-menu 'menu-enable '(facemenu-enable-faces-p)) |
cae70b5066ae
(facemenu-enable-faces-p): New function.
Richard M. Stallman <rms@gnu.org>
parents:
60522
diff
changeset
|
199 |
cae70b5066ae
(facemenu-enable-faces-p): New function.
Richard M. Stallman <rms@gnu.org>
parents:
60522
diff
changeset
|
200 ;;; Condition for enabling menu items that set faces. |
cae70b5066ae
(facemenu-enable-faces-p): New function.
Richard M. Stallman <rms@gnu.org>
parents:
60522
diff
changeset
|
201 (defun facemenu-enable-faces-p () |
cae70b5066ae
(facemenu-enable-faces-p): New function.
Richard M. Stallman <rms@gnu.org>
parents:
60522
diff
changeset
|
202 (not (and font-lock-mode font-lock-defaults))) |
9623
fe1c170fa35a
(facemenu-get-face): Don't add to menu here.
Boris Goldowsky <boris@gnu.org>
parents:
9494
diff
changeset
|
203 |
11091
c968d4c026b7
Doc fix + autoload cookies.
Boris Goldowsky <boris@gnu.org>
parents:
11081
diff
changeset
|
204 ;;;###autoload |
49588
37645a051842
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
46248
diff
changeset
|
205 (defvar facemenu-special-menu |
9623
fe1c170fa35a
(facemenu-get-face): Don't add to menu here.
Boris Goldowsky <boris@gnu.org>
parents:
9494
diff
changeset
|
206 (let ((map (make-sparse-keymap "Special"))) |
27494 | 207 (define-key map [?s] (cons (purecopy "Remove Special") |
208 'facemenu-remove-special)) | |
209 (define-key map [?t] (cons (purecopy "Intangible") | |
210 'facemenu-set-intangible)) | |
211 (define-key map [?v] (cons (purecopy "Invisible") | |
212 'facemenu-set-invisible)) | |
213 (define-key map [?r] (cons (purecopy "Read-Only") | |
214 'facemenu-set-read-only)) | |
9623
fe1c170fa35a
(facemenu-get-face): Don't add to menu here.
Boris Goldowsky <boris@gnu.org>
parents:
9494
diff
changeset
|
215 map) |
fe1c170fa35a
(facemenu-get-face): Don't add to menu here.
Boris Goldowsky <boris@gnu.org>
parents:
9494
diff
changeset
|
216 "Menu keymap for non-face text-properties.") |
11091
c968d4c026b7
Doc fix + autoload cookies.
Boris Goldowsky <boris@gnu.org>
parents:
11081
diff
changeset
|
217 ;;;###autoload |
10520
3d30caa4b459
(facemenu-keybindings, facemenu-face-menu):
Richard M. Stallman <rms@gnu.org>
parents:
10238
diff
changeset
|
218 (defalias 'facemenu-special-menu facemenu-special-menu) |
3d30caa4b459
(facemenu-keybindings, facemenu-face-menu):
Richard M. Stallman <rms@gnu.org>
parents:
10238
diff
changeset
|
219 |
11091
c968d4c026b7
Doc fix + autoload cookies.
Boris Goldowsky <boris@gnu.org>
parents:
11081
diff
changeset
|
220 ;;;###autoload |
10520
3d30caa4b459
(facemenu-keybindings, facemenu-face-menu):
Richard M. Stallman <rms@gnu.org>
parents:
10238
diff
changeset
|
221 (defvar facemenu-justification-menu |
3d30caa4b459
(facemenu-keybindings, facemenu-face-menu):
Richard M. Stallman <rms@gnu.org>
parents:
10238
diff
changeset
|
222 (let ((map (make-sparse-keymap "Justification"))) |
27494 | 223 (define-key map [?c] (cons (purecopy "Center") 'set-justification-center)) |
224 (define-key map [?b] (cons (purecopy "Full") 'set-justification-full)) | |
225 (define-key map [?r] (cons (purecopy "Right") 'set-justification-right)) | |
226 (define-key map [?l] (cons (purecopy "Left") 'set-justification-left)) | |
227 (define-key map [?u] (cons (purecopy "Unfilled") 'set-justification-none)) | |
10520
3d30caa4b459
(facemenu-keybindings, facemenu-face-menu):
Richard M. Stallman <rms@gnu.org>
parents:
10238
diff
changeset
|
228 map) |
3d30caa4b459
(facemenu-keybindings, facemenu-face-menu):
Richard M. Stallman <rms@gnu.org>
parents:
10238
diff
changeset
|
229 "Submenu for text justification commands.") |
11091
c968d4c026b7
Doc fix + autoload cookies.
Boris Goldowsky <boris@gnu.org>
parents:
11081
diff
changeset
|
230 ;;;###autoload |
10520
3d30caa4b459
(facemenu-keybindings, facemenu-face-menu):
Richard M. Stallman <rms@gnu.org>
parents:
10238
diff
changeset
|
231 (defalias 'facemenu-justification-menu facemenu-justification-menu) |
3d30caa4b459
(facemenu-keybindings, facemenu-face-menu):
Richard M. Stallman <rms@gnu.org>
parents:
10238
diff
changeset
|
232 |
11091
c968d4c026b7
Doc fix + autoload cookies.
Boris Goldowsky <boris@gnu.org>
parents:
11081
diff
changeset
|
233 ;;;###autoload |
10520
3d30caa4b459
(facemenu-keybindings, facemenu-face-menu):
Richard M. Stallman <rms@gnu.org>
parents:
10238
diff
changeset
|
234 (defvar facemenu-indentation-menu |
3d30caa4b459
(facemenu-keybindings, facemenu-face-menu):
Richard M. Stallman <rms@gnu.org>
parents:
10238
diff
changeset
|
235 (let ((map (make-sparse-keymap "Indentation"))) |
49588
37645a051842
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
46248
diff
changeset
|
236 (define-key map [decrease-right-margin] |
27494 | 237 (cons (purecopy "Indent Right Less") 'decrease-right-margin)) |
12014
e4932082046a
(facemenu-special-menu): Use characters, not symbols.
Karl Heuer <kwzh@gnu.org>
parents:
11830
diff
changeset
|
238 (define-key map [increase-right-margin] |
27494 | 239 (cons (purecopy "Indent Right More") 'increase-right-margin)) |
12014
e4932082046a
(facemenu-special-menu): Use characters, not symbols.
Karl Heuer <kwzh@gnu.org>
parents:
11830
diff
changeset
|
240 (define-key map [decrease-left-margin] |
27494 | 241 (cons (purecopy "Indent Less") 'decrease-left-margin)) |
12014
e4932082046a
(facemenu-special-menu): Use characters, not symbols.
Karl Heuer <kwzh@gnu.org>
parents:
11830
diff
changeset
|
242 (define-key map [increase-left-margin] |
27494 | 243 (cons (purecopy "Indent More") 'increase-left-margin)) |
10520
3d30caa4b459
(facemenu-keybindings, facemenu-face-menu):
Richard M. Stallman <rms@gnu.org>
parents:
10238
diff
changeset
|
244 map) |
3d30caa4b459
(facemenu-keybindings, facemenu-face-menu):
Richard M. Stallman <rms@gnu.org>
parents:
10238
diff
changeset
|
245 "Submenu for indentation commands.") |
11091
c968d4c026b7
Doc fix + autoload cookies.
Boris Goldowsky <boris@gnu.org>
parents:
11081
diff
changeset
|
246 ;;;###autoload |
10520
3d30caa4b459
(facemenu-keybindings, facemenu-face-menu):
Richard M. Stallman <rms@gnu.org>
parents:
10238
diff
changeset
|
247 (defalias 'facemenu-indentation-menu facemenu-indentation-menu) |
9623
fe1c170fa35a
(facemenu-get-face): Don't add to menu here.
Boris Goldowsky <boris@gnu.org>
parents:
9494
diff
changeset
|
248 |
12014
e4932082046a
(facemenu-special-menu): Use characters, not symbols.
Karl Heuer <kwzh@gnu.org>
parents:
11830
diff
changeset
|
249 ;; This is split up to avoid an overlong line in loaddefs.el. |
11091
c968d4c026b7
Doc fix + autoload cookies.
Boris Goldowsky <boris@gnu.org>
parents:
11081
diff
changeset
|
250 ;;;###autoload |
12014
e4932082046a
(facemenu-special-menu): Use characters, not symbols.
Karl Heuer <kwzh@gnu.org>
parents:
11830
diff
changeset
|
251 (defvar facemenu-menu nil |
9874
2bf88bd23cbb
(facemenu-update): Use C-down-mouse-2 for the menu.
Richard M. Stallman <rms@gnu.org>
parents:
9623
diff
changeset
|
252 "Facemenu top-level menu keymap.") |
11091
c968d4c026b7
Doc fix + autoload cookies.
Boris Goldowsky <boris@gnu.org>
parents:
11081
diff
changeset
|
253 ;;;###autoload |
12014
e4932082046a
(facemenu-special-menu): Use characters, not symbols.
Karl Heuer <kwzh@gnu.org>
parents:
11830
diff
changeset
|
254 (setq facemenu-menu (make-sparse-keymap "Text Properties")) |
e4932082046a
(facemenu-special-menu): Use characters, not symbols.
Karl Heuer <kwzh@gnu.org>
parents:
11830
diff
changeset
|
255 ;;;###autoload |
e4932082046a
(facemenu-special-menu): Use characters, not symbols.
Karl Heuer <kwzh@gnu.org>
parents:
11830
diff
changeset
|
256 (let ((map facemenu-menu)) |
27494 | 257 (define-key map [dc] (cons (purecopy "Display Colors") 'list-colors-display)) |
258 (define-key map [df] (cons (purecopy "Display Faces") 'list-faces-display)) | |
45869
fb2ae7bd271d
(facemenu-map): Rename to Describe Text
Richard M. Stallman <rms@gnu.org>
parents:
45207
diff
changeset
|
259 (define-key map [dp] (cons (purecopy "Describe Properties") |
fb2ae7bd271d
(facemenu-map): Rename to Describe Text
Richard M. Stallman <rms@gnu.org>
parents:
45207
diff
changeset
|
260 'describe-text-properties)) |
27494 | 261 (define-key map [ra] (cons (purecopy "Remove Text Properties") |
262 'facemenu-remove-all)) | |
263 (define-key map [rm] (cons (purecopy "Remove Face Properties") | |
264 'facemenu-remove-face-props)) | |
265 (define-key map [s1] (list (purecopy "--")))) | |
12014
e4932082046a
(facemenu-special-menu): Use characters, not symbols.
Karl Heuer <kwzh@gnu.org>
parents:
11830
diff
changeset
|
266 ;;;###autoload |
e4932082046a
(facemenu-special-menu): Use characters, not symbols.
Karl Heuer <kwzh@gnu.org>
parents:
11830
diff
changeset
|
267 (let ((map facemenu-menu)) |
49588
37645a051842
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
46248
diff
changeset
|
268 (define-key map [in] (cons (purecopy "Indentation") |
27494 | 269 'facemenu-indentation-menu)) |
270 (define-key map [ju] (cons (purecopy "Justification") | |
271 'facemenu-justification-menu)) | |
272 (define-key map [s2] (list (purecopy "--"))) | |
49588
37645a051842
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
46248
diff
changeset
|
273 (define-key map [sp] (cons (purecopy "Special Properties") |
27494 | 274 'facemenu-special-menu)) |
49588
37645a051842
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
46248
diff
changeset
|
275 (define-key map [bg] (cons (purecopy "Background Color") |
27494 | 276 'facemenu-background-menu)) |
49588
37645a051842
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
46248
diff
changeset
|
277 (define-key map [fg] (cons (purecopy "Foreground Color") |
27494 | 278 'facemenu-foreground-menu)) |
49588
37645a051842
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
46248
diff
changeset
|
279 (define-key map [fc] (cons (purecopy "Face") |
27494 | 280 'facemenu-face-menu))) |
12014
e4932082046a
(facemenu-special-menu): Use characters, not symbols.
Karl Heuer <kwzh@gnu.org>
parents:
11830
diff
changeset
|
281 ;;;###autoload |
10520
3d30caa4b459
(facemenu-keybindings, facemenu-face-menu):
Richard M. Stallman <rms@gnu.org>
parents:
10238
diff
changeset
|
282 (defalias 'facemenu-menu facemenu-menu) |
9623
fe1c170fa35a
(facemenu-get-face): Don't add to menu here.
Boris Goldowsky <boris@gnu.org>
parents:
9494
diff
changeset
|
283 |
49588
37645a051842
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
46248
diff
changeset
|
284 (defvar facemenu-keymap |
10520
3d30caa4b459
(facemenu-keybindings, facemenu-face-menu):
Richard M. Stallman <rms@gnu.org>
parents:
10238
diff
changeset
|
285 (let ((map (make-sparse-keymap "Set face"))) |
27494 | 286 (define-key map "o" (cons (purecopy "Other...") 'facemenu-set-face)) |
10520
3d30caa4b459
(facemenu-keybindings, facemenu-face-menu):
Richard M. Stallman <rms@gnu.org>
parents:
10238
diff
changeset
|
287 map) |
11091
c968d4c026b7
Doc fix + autoload cookies.
Boris Goldowsky <boris@gnu.org>
parents:
11081
diff
changeset
|
288 "Keymap for face-changing commands. |
9623
fe1c170fa35a
(facemenu-get-face): Don't add to menu here.
Boris Goldowsky <boris@gnu.org>
parents:
9494
diff
changeset
|
289 `Facemenu-update' fills in the keymap according to the bindings |
9874
2bf88bd23cbb
(facemenu-update): Use C-down-mouse-2 for the menu.
Richard M. Stallman <rms@gnu.org>
parents:
9623
diff
changeset
|
290 requested in `facemenu-keybindings'.") |
10520
3d30caa4b459
(facemenu-keybindings, facemenu-face-menu):
Richard M. Stallman <rms@gnu.org>
parents:
10238
diff
changeset
|
291 (defalias 'facemenu-keymap facemenu-keymap) |
9623
fe1c170fa35a
(facemenu-get-face): Don't add to menu here.
Boris Goldowsky <boris@gnu.org>
parents:
9494
diff
changeset
|
292 |
13923
35e379a3952e
(facemenu-read-color, list-colors-display)
Richard M. Stallman <rms@gnu.org>
parents:
13495
diff
changeset
|
293 |
19009 | 294 (defcustom facemenu-add-face-function nil |
30092
6d383cf4bb99
Docstrings fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29050
diff
changeset
|
295 "Function called at beginning of text to change or nil. |
13923
35e379a3952e
(facemenu-read-color, list-colors-display)
Richard M. Stallman <rms@gnu.org>
parents:
13495
diff
changeset
|
296 This function is passed the FACE to set and END of text to change, and must |
19009 | 297 return a string which is inserted. It may set `facemenu-end-add-face'." |
298 :type '(choice (const :tag "None" nil) | |
299 function) | |
300 :group 'facemenu) | |
13923
35e379a3952e
(facemenu-read-color, list-colors-display)
Richard M. Stallman <rms@gnu.org>
parents:
13495
diff
changeset
|
301 |
19009 | 302 (defcustom facemenu-end-add-face nil |
30092
6d383cf4bb99
Docstrings fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29050
diff
changeset
|
303 "String to insert or function called at end of text to change or nil. |
13923
35e379a3952e
(facemenu-read-color, list-colors-display)
Richard M. Stallman <rms@gnu.org>
parents:
13495
diff
changeset
|
304 This function is passed the FACE to set, and must return a string which is |
19009 | 305 inserted." |
306 :type '(choice (const :tag "None" nil) | |
307 string | |
308 function) | |
309 :group 'facemenu) | |
13923
35e379a3952e
(facemenu-read-color, list-colors-display)
Richard M. Stallman <rms@gnu.org>
parents:
13495
diff
changeset
|
310 |
19009 | 311 (defcustom facemenu-remove-face-function nil |
17505
c2640d101ca9
(facemenu-update): Don't make global bindings here.
Richard M. Stallman <rms@gnu.org>
parents:
17073
diff
changeset
|
312 "When non-nil, this is a function called to remove faces. |
13923
35e379a3952e
(facemenu-read-color, list-colors-display)
Richard M. Stallman <rms@gnu.org>
parents:
13495
diff
changeset
|
313 This function is passed the START and END of text to change. |
30092
6d383cf4bb99
Docstrings fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29050
diff
changeset
|
314 May also be t meaning to use `facemenu-add-face-function'." |
19009 | 315 :type '(choice (const :tag "None" nil) |
316 (const :tag "Use add-face" t) | |
317 function) | |
318 :group 'facemenu) | |
13923
35e379a3952e
(facemenu-read-color, list-colors-display)
Richard M. Stallman <rms@gnu.org>
parents:
13495
diff
changeset
|
319 |
9623
fe1c170fa35a
(facemenu-get-face): Don't add to menu here.
Boris Goldowsky <boris@gnu.org>
parents:
9494
diff
changeset
|
320 ;;; Internal Variables |
fe1c170fa35a
(facemenu-get-face): Don't add to menu here.
Boris Goldowsky <boris@gnu.org>
parents:
9494
diff
changeset
|
321 |
fe1c170fa35a
(facemenu-get-face): Don't add to menu here.
Boris Goldowsky <boris@gnu.org>
parents:
9494
diff
changeset
|
322 (defvar facemenu-color-alist nil |
fe1c170fa35a
(facemenu-get-face): Don't add to menu here.
Boris Goldowsky <boris@gnu.org>
parents:
9494
diff
changeset
|
323 "Alist of colors, used for completion. |
71369
71f07d141fe2
(facemenu-color-alist): Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
68651
diff
changeset
|
324 If this is nil, then the value of (defined-colors) is used.") |
9494
9a4ed505445e
(facemenu-read-color, facemenu-colors): New fn, var.
Richard M. Stallman <rms@gnu.org>
parents:
8953
diff
changeset
|
325 |
8743 | 326 (defun facemenu-update () |
9623
fe1c170fa35a
(facemenu-get-face): Don't add to menu here.
Boris Goldowsky <boris@gnu.org>
parents:
9494
diff
changeset
|
327 "Add or update the \"Face\" menu in the menu bar. |
fe1c170fa35a
(facemenu-get-face): Don't add to menu here.
Boris Goldowsky <boris@gnu.org>
parents:
9494
diff
changeset
|
328 You can call this to update things if you change any of the menu configuration |
fe1c170fa35a
(facemenu-get-face): Don't add to menu here.
Boris Goldowsky <boris@gnu.org>
parents:
9494
diff
changeset
|
329 variables." |
8743 | 330 (interactive) |
9494
9a4ed505445e
(facemenu-read-color, facemenu-colors): New fn, var.
Richard M. Stallman <rms@gnu.org>
parents:
8953
diff
changeset
|
331 |
9623
fe1c170fa35a
(facemenu-get-face): Don't add to menu here.
Boris Goldowsky <boris@gnu.org>
parents:
9494
diff
changeset
|
332 ;; Add each defined face to the menu. |
fe1c170fa35a
(facemenu-get-face): Don't add to menu here.
Boris Goldowsky <boris@gnu.org>
parents:
9494
diff
changeset
|
333 (facemenu-iterate 'facemenu-add-new-face |
fe1c170fa35a
(facemenu-get-face): Don't add to menu here.
Boris Goldowsky <boris@gnu.org>
parents:
9494
diff
changeset
|
334 (facemenu-complete-face-list facemenu-keybindings))) |
9494
9a4ed505445e
(facemenu-read-color, facemenu-colors): New fn, var.
Richard M. Stallman <rms@gnu.org>
parents:
8953
diff
changeset
|
335 |
9a4ed505445e
(facemenu-read-color, facemenu-colors): New fn, var.
Richard M. Stallman <rms@gnu.org>
parents:
8953
diff
changeset
|
336 ;;;###autoload |
8743 | 337 (defun facemenu-set-face (face &optional start end) |
72335
d6694b6039c1
(facemenu-add-face): Pass frame to facemenu-active-faces.
Richard M. Stallman <rms@gnu.org>
parents:
71568
diff
changeset
|
338 "Apply FACE to the region or next character typed. |
9494
9a4ed505445e
(facemenu-read-color, facemenu-colors): New fn, var.
Richard M. Stallman <rms@gnu.org>
parents:
8953
diff
changeset
|
339 |
72335
d6694b6039c1
(facemenu-add-face): Pass frame to facemenu-active-faces.
Richard M. Stallman <rms@gnu.org>
parents:
71568
diff
changeset
|
340 If the region is active (normally true except in Transient |
d6694b6039c1
(facemenu-add-face): Pass frame to facemenu-active-faces.
Richard M. Stallman <rms@gnu.org>
parents:
71568
diff
changeset
|
341 Mark mode) and nonempty, and there is no prefix argument, |
d6694b6039c1
(facemenu-add-face): Pass frame to facemenu-active-faces.
Richard M. Stallman <rms@gnu.org>
parents:
71568
diff
changeset
|
342 this command applies FACE to the region. Otherwise, it applies FACE |
d6694b6039c1
(facemenu-add-face): Pass frame to facemenu-active-faces.
Richard M. Stallman <rms@gnu.org>
parents:
71568
diff
changeset
|
343 to the faces to use for the next character |
d6694b6039c1
(facemenu-add-face): Pass frame to facemenu-active-faces.
Richard M. Stallman <rms@gnu.org>
parents:
71568
diff
changeset
|
344 inserted. (Moving point or switching buffers before typing |
d6694b6039c1
(facemenu-add-face): Pass frame to facemenu-active-faces.
Richard M. Stallman <rms@gnu.org>
parents:
71568
diff
changeset
|
345 a character to insert cancels the specification.) |
12014
e4932082046a
(facemenu-special-menu): Use characters, not symbols.
Karl Heuer <kwzh@gnu.org>
parents:
11830
diff
changeset
|
346 |
72335
d6694b6039c1
(facemenu-add-face): Pass frame to facemenu-active-faces.
Richard M. Stallman <rms@gnu.org>
parents:
71568
diff
changeset
|
347 If FACE is `default', to \"apply\" it means clearing |
d6694b6039c1
(facemenu-add-face): Pass frame to facemenu-active-faces.
Richard M. Stallman <rms@gnu.org>
parents:
71568
diff
changeset
|
348 the list of faces to be used. For any other value of FACE, |
d6694b6039c1
(facemenu-add-face): Pass frame to facemenu-active-faces.
Richard M. Stallman <rms@gnu.org>
parents:
71568
diff
changeset
|
349 to \"apply\" it means putting FACE at the front of the list |
d6694b6039c1
(facemenu-add-face): Pass frame to facemenu-active-faces.
Richard M. Stallman <rms@gnu.org>
parents:
71568
diff
changeset
|
350 of faces to be used, and removing any faces further |
d6694b6039c1
(facemenu-add-face): Pass frame to facemenu-active-faces.
Richard M. Stallman <rms@gnu.org>
parents:
71568
diff
changeset
|
351 along in the list that would be completely overridden by |
d6694b6039c1
(facemenu-add-face): Pass frame to facemenu-active-faces.
Richard M. Stallman <rms@gnu.org>
parents:
71568
diff
changeset
|
352 preceding faces (including FACE). |
12014
e4932082046a
(facemenu-special-menu): Use characters, not symbols.
Karl Heuer <kwzh@gnu.org>
parents:
11830
diff
changeset
|
353 |
72335
d6694b6039c1
(facemenu-add-face): Pass frame to facemenu-active-faces.
Richard M. Stallman <rms@gnu.org>
parents:
71568
diff
changeset
|
354 This command can also add FACE to the menu of faces, |
d6694b6039c1
(facemenu-add-face): Pass frame to facemenu-active-faces.
Richard M. Stallman <rms@gnu.org>
parents:
71568
diff
changeset
|
355 if `facemenu-listed-faces' says to do that." |
40275
113233ecd44a
(facemenu-unlisted-faces): Improve doc strings
Richard M. Stallman <rms@gnu.org>
parents:
35633
diff
changeset
|
356 (interactive (list (progn |
113233ecd44a
(facemenu-unlisted-faces): Improve doc strings
Richard M. Stallman <rms@gnu.org>
parents:
35633
diff
changeset
|
357 (barf-if-buffer-read-only) |
113233ecd44a
(facemenu-unlisted-faces): Improve doc strings
Richard M. Stallman <rms@gnu.org>
parents:
35633
diff
changeset
|
358 (read-face-name "Use face")) |
113233ecd44a
(facemenu-unlisted-faces): Improve doc strings
Richard M. Stallman <rms@gnu.org>
parents:
35633
diff
changeset
|
359 (if (and mark-active (not current-prefix-arg)) |
113233ecd44a
(facemenu-unlisted-faces): Improve doc strings
Richard M. Stallman <rms@gnu.org>
parents:
35633
diff
changeset
|
360 (region-beginning)) |
113233ecd44a
(facemenu-unlisted-faces): Improve doc strings
Richard M. Stallman <rms@gnu.org>
parents:
35633
diff
changeset
|
361 (if (and mark-active (not current-prefix-arg)) |
113233ecd44a
(facemenu-unlisted-faces): Improve doc strings
Richard M. Stallman <rms@gnu.org>
parents:
35633
diff
changeset
|
362 (region-end)))) |
10520
3d30caa4b459
(facemenu-keybindings, facemenu-face-menu):
Richard M. Stallman <rms@gnu.org>
parents:
10238
diff
changeset
|
363 (facemenu-add-new-face face) |
40275
113233ecd44a
(facemenu-unlisted-faces): Improve doc strings
Richard M. Stallman <rms@gnu.org>
parents:
35633
diff
changeset
|
364 (facemenu-add-face face start end)) |
9494
9a4ed505445e
(facemenu-read-color, facemenu-colors): New fn, var.
Richard M. Stallman <rms@gnu.org>
parents:
8953
diff
changeset
|
365 |
9623
fe1c170fa35a
(facemenu-get-face): Don't add to menu here.
Boris Goldowsky <boris@gnu.org>
parents:
9494
diff
changeset
|
366 ;;;###autoload |
9494
9a4ed505445e
(facemenu-read-color, facemenu-colors): New fn, var.
Richard M. Stallman <rms@gnu.org>
parents:
8953
diff
changeset
|
367 (defun facemenu-set-foreground (color &optional start end) |
30092
6d383cf4bb99
Docstrings fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29050
diff
changeset
|
368 "Set the foreground COLOR of the region or next character typed. |
43902
e0e6df854822
(facemenu-add-new-face):
Richard M. Stallman <rms@gnu.org>
parents:
43412
diff
changeset
|
369 This command reads the color in the minibuffer. |
40275
113233ecd44a
(facemenu-unlisted-faces): Improve doc strings
Richard M. Stallman <rms@gnu.org>
parents:
35633
diff
changeset
|
370 |
113233ecd44a
(facemenu-unlisted-faces): Improve doc strings
Richard M. Stallman <rms@gnu.org>
parents:
35633
diff
changeset
|
371 If the region is active (normally true except in Transient Mark mode) |
113233ecd44a
(facemenu-unlisted-faces): Improve doc strings
Richard M. Stallman <rms@gnu.org>
parents:
35633
diff
changeset
|
372 and there is no prefix argument, this command sets the region to the |
113233ecd44a
(facemenu-unlisted-faces): Improve doc strings
Richard M. Stallman <rms@gnu.org>
parents:
35633
diff
changeset
|
373 requested face. |
113233ecd44a
(facemenu-unlisted-faces): Improve doc strings
Richard M. Stallman <rms@gnu.org>
parents:
35633
diff
changeset
|
374 |
113233ecd44a
(facemenu-unlisted-faces): Improve doc strings
Richard M. Stallman <rms@gnu.org>
parents:
35633
diff
changeset
|
375 Otherwise, this command specifies the face for the next character |
113233ecd44a
(facemenu-unlisted-faces): Improve doc strings
Richard M. Stallman <rms@gnu.org>
parents:
35633
diff
changeset
|
376 inserted. Moving point or switching buffers before |
49588
37645a051842
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
46248
diff
changeset
|
377 typing a character to insert cancels the specification." |
40275
113233ecd44a
(facemenu-unlisted-faces): Improve doc strings
Richard M. Stallman <rms@gnu.org>
parents:
35633
diff
changeset
|
378 (interactive (list (progn |
113233ecd44a
(facemenu-unlisted-faces): Improve doc strings
Richard M. Stallman <rms@gnu.org>
parents:
35633
diff
changeset
|
379 (barf-if-buffer-read-only) |
113233ecd44a
(facemenu-unlisted-faces): Improve doc strings
Richard M. Stallman <rms@gnu.org>
parents:
35633
diff
changeset
|
380 (facemenu-read-color "Foreground color: ")) |
113233ecd44a
(facemenu-unlisted-faces): Improve doc strings
Richard M. Stallman <rms@gnu.org>
parents:
35633
diff
changeset
|
381 (if (and mark-active (not current-prefix-arg)) |
113233ecd44a
(facemenu-unlisted-faces): Improve doc strings
Richard M. Stallman <rms@gnu.org>
parents:
35633
diff
changeset
|
382 (region-beginning)) |
113233ecd44a
(facemenu-unlisted-faces): Improve doc strings
Richard M. Stallman <rms@gnu.org>
parents:
35633
diff
changeset
|
383 (if (and mark-active (not current-prefix-arg)) |
113233ecd44a
(facemenu-unlisted-faces): Improve doc strings
Richard M. Stallman <rms@gnu.org>
parents:
35633
diff
changeset
|
384 (region-end)))) |
63897
f8e70842f12b
(facemenu-unlisted-faces): Delete foreground and background color
Lute Kamstra <lute@gnu.org>
parents:
63814
diff
changeset
|
385 (facemenu-set-face-from-menu |
f8e70842f12b
(facemenu-unlisted-faces): Delete foreground and background color
Lute Kamstra <lute@gnu.org>
parents:
63814
diff
changeset
|
386 (facemenu-add-new-color color 'facemenu-foreground-menu) |
f8e70842f12b
(facemenu-unlisted-faces): Delete foreground and background color
Lute Kamstra <lute@gnu.org>
parents:
63814
diff
changeset
|
387 start end)) |
9494
9a4ed505445e
(facemenu-read-color, facemenu-colors): New fn, var.
Richard M. Stallman <rms@gnu.org>
parents:
8953
diff
changeset
|
388 |
9623
fe1c170fa35a
(facemenu-get-face): Don't add to menu here.
Boris Goldowsky <boris@gnu.org>
parents:
9494
diff
changeset
|
389 ;;;###autoload |
9494
9a4ed505445e
(facemenu-read-color, facemenu-colors): New fn, var.
Richard M. Stallman <rms@gnu.org>
parents:
8953
diff
changeset
|
390 (defun facemenu-set-background (color &optional start end) |
30092
6d383cf4bb99
Docstrings fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29050
diff
changeset
|
391 "Set the background COLOR of the region or next character typed. |
43902
e0e6df854822
(facemenu-add-new-face):
Richard M. Stallman <rms@gnu.org>
parents:
43412
diff
changeset
|
392 This command reads the color in the minibuffer. |
40275
113233ecd44a
(facemenu-unlisted-faces): Improve doc strings
Richard M. Stallman <rms@gnu.org>
parents:
35633
diff
changeset
|
393 |
113233ecd44a
(facemenu-unlisted-faces): Improve doc strings
Richard M. Stallman <rms@gnu.org>
parents:
35633
diff
changeset
|
394 If the region is active (normally true except in Transient Mark mode) |
113233ecd44a
(facemenu-unlisted-faces): Improve doc strings
Richard M. Stallman <rms@gnu.org>
parents:
35633
diff
changeset
|
395 and there is no prefix argument, this command sets the region to the |
113233ecd44a
(facemenu-unlisted-faces): Improve doc strings
Richard M. Stallman <rms@gnu.org>
parents:
35633
diff
changeset
|
396 requested face. |
113233ecd44a
(facemenu-unlisted-faces): Improve doc strings
Richard M. Stallman <rms@gnu.org>
parents:
35633
diff
changeset
|
397 |
113233ecd44a
(facemenu-unlisted-faces): Improve doc strings
Richard M. Stallman <rms@gnu.org>
parents:
35633
diff
changeset
|
398 Otherwise, this command specifies the face for the next character |
113233ecd44a
(facemenu-unlisted-faces): Improve doc strings
Richard M. Stallman <rms@gnu.org>
parents:
35633
diff
changeset
|
399 inserted. Moving point or switching buffers before |
49588
37645a051842
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
46248
diff
changeset
|
400 typing a character to insert cancels the specification." |
40275
113233ecd44a
(facemenu-unlisted-faces): Improve doc strings
Richard M. Stallman <rms@gnu.org>
parents:
35633
diff
changeset
|
401 (interactive (list (progn |
113233ecd44a
(facemenu-unlisted-faces): Improve doc strings
Richard M. Stallman <rms@gnu.org>
parents:
35633
diff
changeset
|
402 (barf-if-buffer-read-only) |
113233ecd44a
(facemenu-unlisted-faces): Improve doc strings
Richard M. Stallman <rms@gnu.org>
parents:
35633
diff
changeset
|
403 (facemenu-read-color "Background color: ")) |
113233ecd44a
(facemenu-unlisted-faces): Improve doc strings
Richard M. Stallman <rms@gnu.org>
parents:
35633
diff
changeset
|
404 (if (and mark-active (not current-prefix-arg)) |
113233ecd44a
(facemenu-unlisted-faces): Improve doc strings
Richard M. Stallman <rms@gnu.org>
parents:
35633
diff
changeset
|
405 (region-beginning)) |
113233ecd44a
(facemenu-unlisted-faces): Improve doc strings
Richard M. Stallman <rms@gnu.org>
parents:
35633
diff
changeset
|
406 (if (and mark-active (not current-prefix-arg)) |
113233ecd44a
(facemenu-unlisted-faces): Improve doc strings
Richard M. Stallman <rms@gnu.org>
parents:
35633
diff
changeset
|
407 (region-end)))) |
63897
f8e70842f12b
(facemenu-unlisted-faces): Delete foreground and background color
Lute Kamstra <lute@gnu.org>
parents:
63814
diff
changeset
|
408 (facemenu-set-face-from-menu |
f8e70842f12b
(facemenu-unlisted-faces): Delete foreground and background color
Lute Kamstra <lute@gnu.org>
parents:
63814
diff
changeset
|
409 (facemenu-add-new-color color 'facemenu-background-menu) |
f8e70842f12b
(facemenu-unlisted-faces): Delete foreground and background color
Lute Kamstra <lute@gnu.org>
parents:
63814
diff
changeset
|
410 start end)) |
8743 | 411 |
11091
c968d4c026b7
Doc fix + autoload cookies.
Boris Goldowsky <boris@gnu.org>
parents:
11081
diff
changeset
|
412 ;;;###autoload |
8743 | 413 (defun facemenu-set-face-from-menu (face start end) |
30092
6d383cf4bb99
Docstrings fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29050
diff
changeset
|
414 "Set the FACE of the region or next character typed. |
63897
f8e70842f12b
(facemenu-unlisted-faces): Delete foreground and background color
Lute Kamstra <lute@gnu.org>
parents:
63814
diff
changeset
|
415 This function is designed to be called from a menu; FACE is determined |
f8e70842f12b
(facemenu-unlisted-faces): Delete foreground and background color
Lute Kamstra <lute@gnu.org>
parents:
63814
diff
changeset
|
416 using the event type of the menu entry. If FACE is a symbol whose |
f8e70842f12b
(facemenu-unlisted-faces): Delete foreground and background color
Lute Kamstra <lute@gnu.org>
parents:
63814
diff
changeset
|
417 name starts with \"fg:\" or \"bg:\", then this functions sets the |
f8e70842f12b
(facemenu-unlisted-faces): Delete foreground and background color
Lute Kamstra <lute@gnu.org>
parents:
63814
diff
changeset
|
418 foreground or background to the color specified by the rest of the |
f8e70842f12b
(facemenu-unlisted-faces): Delete foreground and background color
Lute Kamstra <lute@gnu.org>
parents:
63814
diff
changeset
|
419 symbol's name. Any other symbol is considered the name of a face. |
12014
e4932082046a
(facemenu-special-menu): Use characters, not symbols.
Karl Heuer <kwzh@gnu.org>
parents:
11830
diff
changeset
|
420 |
40275
113233ecd44a
(facemenu-unlisted-faces): Improve doc strings
Richard M. Stallman <rms@gnu.org>
parents:
35633
diff
changeset
|
421 If the region is active (normally true except in Transient Mark mode) |
113233ecd44a
(facemenu-unlisted-faces): Improve doc strings
Richard M. Stallman <rms@gnu.org>
parents:
35633
diff
changeset
|
422 and there is no prefix argument, this command sets the region to the |
113233ecd44a
(facemenu-unlisted-faces): Improve doc strings
Richard M. Stallman <rms@gnu.org>
parents:
35633
diff
changeset
|
423 requested face. |
12014
e4932082046a
(facemenu-special-menu): Use characters, not symbols.
Karl Heuer <kwzh@gnu.org>
parents:
11830
diff
changeset
|
424 |
e4932082046a
(facemenu-special-menu): Use characters, not symbols.
Karl Heuer <kwzh@gnu.org>
parents:
11830
diff
changeset
|
425 Otherwise, this command specifies the face for the next character |
63897
f8e70842f12b
(facemenu-unlisted-faces): Delete foreground and background color
Lute Kamstra <lute@gnu.org>
parents:
63814
diff
changeset
|
426 inserted. Moving point or switching buffers before typing a character |
f8e70842f12b
(facemenu-unlisted-faces): Delete foreground and background color
Lute Kamstra <lute@gnu.org>
parents:
63814
diff
changeset
|
427 to insert cancels the specification." |
9494
9a4ed505445e
(facemenu-read-color, facemenu-colors): New fn, var.
Richard M. Stallman <rms@gnu.org>
parents:
8953
diff
changeset
|
428 (interactive (list last-command-event |
12014
e4932082046a
(facemenu-special-menu): Use characters, not symbols.
Karl Heuer <kwzh@gnu.org>
parents:
11830
diff
changeset
|
429 (if (and mark-active (not current-prefix-arg)) |
e4932082046a
(facemenu-special-menu): Use characters, not symbols.
Karl Heuer <kwzh@gnu.org>
parents:
11830
diff
changeset
|
430 (region-beginning)) |
e4932082046a
(facemenu-special-menu): Use characters, not symbols.
Karl Heuer <kwzh@gnu.org>
parents:
11830
diff
changeset
|
431 (if (and mark-active (not current-prefix-arg)) |
e4932082046a
(facemenu-special-menu): Use characters, not symbols.
Karl Heuer <kwzh@gnu.org>
parents:
11830
diff
changeset
|
432 (region-end)))) |
10520
3d30caa4b459
(facemenu-keybindings, facemenu-face-menu):
Richard M. Stallman <rms@gnu.org>
parents:
10238
diff
changeset
|
433 (barf-if-buffer-read-only) |
63897
f8e70842f12b
(facemenu-unlisted-faces): Delete foreground and background color
Lute Kamstra <lute@gnu.org>
parents:
63814
diff
changeset
|
434 (facemenu-add-face |
f8e70842f12b
(facemenu-unlisted-faces): Delete foreground and background color
Lute Kamstra <lute@gnu.org>
parents:
63814
diff
changeset
|
435 (let ((fn (symbol-name face))) |
f8e70842f12b
(facemenu-unlisted-faces): Delete foreground and background color
Lute Kamstra <lute@gnu.org>
parents:
63814
diff
changeset
|
436 (if (string-match "\\`\\([fb]\\)g:\\(.+\\)" fn) |
f8e70842f12b
(facemenu-unlisted-faces): Delete foreground and background color
Lute Kamstra <lute@gnu.org>
parents:
63814
diff
changeset
|
437 (list (list (if (string= (match-string 1 fn) "f") |
f8e70842f12b
(facemenu-unlisted-faces): Delete foreground and background color
Lute Kamstra <lute@gnu.org>
parents:
63814
diff
changeset
|
438 :foreground |
f8e70842f12b
(facemenu-unlisted-faces): Delete foreground and background color
Lute Kamstra <lute@gnu.org>
parents:
63814
diff
changeset
|
439 :background) |
f8e70842f12b
(facemenu-unlisted-faces): Delete foreground and background color
Lute Kamstra <lute@gnu.org>
parents:
63814
diff
changeset
|
440 (match-string 2 fn))) |
f8e70842f12b
(facemenu-unlisted-faces): Delete foreground and background color
Lute Kamstra <lute@gnu.org>
parents:
63814
diff
changeset
|
441 face)) |
f8e70842f12b
(facemenu-unlisted-faces): Delete foreground and background color
Lute Kamstra <lute@gnu.org>
parents:
63814
diff
changeset
|
442 start end)) |
8743 | 443 |
11091
c968d4c026b7
Doc fix + autoload cookies.
Boris Goldowsky <boris@gnu.org>
parents:
11081
diff
changeset
|
444 ;;;###autoload |
8743 | 445 (defun facemenu-set-invisible (start end) |
446 "Make the region invisible. | |
447 This sets the `invisible' text property; it can be undone with | |
12014
e4932082046a
(facemenu-special-menu): Use characters, not symbols.
Karl Heuer <kwzh@gnu.org>
parents:
11830
diff
changeset
|
448 `facemenu-remove-special'." |
8743 | 449 (interactive "r") |
17073
5e66b1087c94
Change put-text-property with constant args to add-text-properties for efficiency. Suggested by Stavros Macrakis <s.macrakis@opengroup.org>
Boris Goldowsky <boris@gnu.org>
parents:
16590
diff
changeset
|
450 (add-text-properties start end '(invisible t))) |
8743 | 451 |
11091
c968d4c026b7
Doc fix + autoload cookies.
Boris Goldowsky <boris@gnu.org>
parents:
11081
diff
changeset
|
452 ;;;###autoload |
8743 | 453 (defun facemenu-set-intangible (start end) |
454 "Make the region intangible: disallow moving into it. | |
455 This sets the `intangible' text property; it can be undone with | |
12014
e4932082046a
(facemenu-special-menu): Use characters, not symbols.
Karl Heuer <kwzh@gnu.org>
parents:
11830
diff
changeset
|
456 `facemenu-remove-special'." |
8743 | 457 (interactive "r") |
17073
5e66b1087c94
Change put-text-property with constant args to add-text-properties for efficiency. Suggested by Stavros Macrakis <s.macrakis@opengroup.org>
Boris Goldowsky <boris@gnu.org>
parents:
16590
diff
changeset
|
458 (add-text-properties start end '(intangible t))) |
8743 | 459 |
11091
c968d4c026b7
Doc fix + autoload cookies.
Boris Goldowsky <boris@gnu.org>
parents:
11081
diff
changeset
|
460 ;;;###autoload |
8743 | 461 (defun facemenu-set-read-only (start end) |
462 "Make the region unmodifiable. | |
463 This sets the `read-only' text property; it can be undone with | |
12014
e4932082046a
(facemenu-special-menu): Use characters, not symbols.
Karl Heuer <kwzh@gnu.org>
parents:
11830
diff
changeset
|
464 `facemenu-remove-special'." |
8743 | 465 (interactive "r") |
17073
5e66b1087c94
Change put-text-property with constant args to add-text-properties for efficiency. Suggested by Stavros Macrakis <s.macrakis@opengroup.org>
Boris Goldowsky <boris@gnu.org>
parents:
16590
diff
changeset
|
466 (add-text-properties start end '(read-only t))) |
8743 | 467 |
11091
c968d4c026b7
Doc fix + autoload cookies.
Boris Goldowsky <boris@gnu.org>
parents:
11081
diff
changeset
|
468 ;;;###autoload |
20443
76ea51acad22
(facemenu-remove-face-props): Renamed from
Karl Heuer <kwzh@gnu.org>
parents:
19686
diff
changeset
|
469 (defun facemenu-remove-face-props (start end) |
76ea51acad22
(facemenu-remove-face-props): Renamed from
Karl Heuer <kwzh@gnu.org>
parents:
19686
diff
changeset
|
470 "Remove `face' and `mouse-face' text properties." |
8743 | 471 (interactive "*r") ; error if buffer is read-only despite the next line. |
472 (let ((inhibit-read-only t)) | |
49588
37645a051842
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
46248
diff
changeset
|
473 (remove-text-properties |
20443
76ea51acad22
(facemenu-remove-face-props): Renamed from
Karl Heuer <kwzh@gnu.org>
parents:
19686
diff
changeset
|
474 start end '(face nil mouse-face nil)))) |
8743 | 475 |
9623
fe1c170fa35a
(facemenu-get-face): Don't add to menu here.
Boris Goldowsky <boris@gnu.org>
parents:
9494
diff
changeset
|
476 ;;;###autoload |
12014
e4932082046a
(facemenu-special-menu): Use characters, not symbols.
Karl Heuer <kwzh@gnu.org>
parents:
11830
diff
changeset
|
477 (defun facemenu-remove-all (start end) |
e4932082046a
(facemenu-special-menu): Use characters, not symbols.
Karl Heuer <kwzh@gnu.org>
parents:
11830
diff
changeset
|
478 "Remove all text properties from the region." |
e4932082046a
(facemenu-special-menu): Use characters, not symbols.
Karl Heuer <kwzh@gnu.org>
parents:
11830
diff
changeset
|
479 (interactive "*r") ; error if buffer is read-only despite the next line. |
e4932082046a
(facemenu-special-menu): Use characters, not symbols.
Karl Heuer <kwzh@gnu.org>
parents:
11830
diff
changeset
|
480 (let ((inhibit-read-only t)) |
e4932082046a
(facemenu-special-menu): Use characters, not symbols.
Karl Heuer <kwzh@gnu.org>
parents:
11830
diff
changeset
|
481 (set-text-properties start end nil))) |
e4932082046a
(facemenu-special-menu): Use characters, not symbols.
Karl Heuer <kwzh@gnu.org>
parents:
11830
diff
changeset
|
482 |
e4932082046a
(facemenu-special-menu): Use characters, not symbols.
Karl Heuer <kwzh@gnu.org>
parents:
11830
diff
changeset
|
483 ;;;###autoload |
e4932082046a
(facemenu-special-menu): Use characters, not symbols.
Karl Heuer <kwzh@gnu.org>
parents:
11830
diff
changeset
|
484 (defun facemenu-remove-special (start end) |
e4932082046a
(facemenu-special-menu): Use characters, not symbols.
Karl Heuer <kwzh@gnu.org>
parents:
11830
diff
changeset
|
485 "Remove all the \"special\" text properties from the region. |
e4932082046a
(facemenu-special-menu): Use characters, not symbols.
Karl Heuer <kwzh@gnu.org>
parents:
11830
diff
changeset
|
486 These special properties include `invisible', `intangible' and `read-only'." |
e4932082046a
(facemenu-special-menu): Use characters, not symbols.
Karl Heuer <kwzh@gnu.org>
parents:
11830
diff
changeset
|
487 (interactive "*r") ; error if buffer is read-only despite the next line. |
e4932082046a
(facemenu-special-menu): Use characters, not symbols.
Karl Heuer <kwzh@gnu.org>
parents:
11830
diff
changeset
|
488 (let ((inhibit-read-only t)) |
49588
37645a051842
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
46248
diff
changeset
|
489 (remove-text-properties |
12014
e4932082046a
(facemenu-special-menu): Use characters, not symbols.
Karl Heuer <kwzh@gnu.org>
parents:
11830
diff
changeset
|
490 start end '(invisible nil intangible nil read-only nil)))) |
44678
dec3101535fc
(list-text-properties-at): Command deleted.
Richard M. Stallman <rms@gnu.org>
parents:
44660
diff
changeset
|
491 |
11081
b651fb9a8216
(list-text-properties-at): New fn.
Boris Goldowsky <boris@gnu.org>
parents:
10814
diff
changeset
|
492 ;;;###autoload |
11372
874b91f4adc4
(facemenu-read-color): Don't ignore PROMPT arg. Make arg optional.
Boris Goldowsky <boris@gnu.org>
parents:
11234
diff
changeset
|
493 (defun facemenu-read-color (&optional prompt) |
9623
fe1c170fa35a
(facemenu-get-face): Don't add to menu here.
Boris Goldowsky <boris@gnu.org>
parents:
9494
diff
changeset
|
494 "Read a color using the minibuffer." |
64211
11c1d62f46ae
(facemenu-read-color): Do case-insensitive matching.
Richard M. Stallman <rms@gnu.org>
parents:
64091
diff
changeset
|
495 (let* ((completion-ignore-case t) |
11c1d62f46ae
(facemenu-read-color): Do case-insensitive matching.
Richard M. Stallman <rms@gnu.org>
parents:
64091
diff
changeset
|
496 (col (completing-read (or prompt "Color: ") |
11c1d62f46ae
(facemenu-read-color): Do case-insensitive matching.
Richard M. Stallman <rms@gnu.org>
parents:
64091
diff
changeset
|
497 (or facemenu-color-alist |
11c1d62f46ae
(facemenu-read-color): Do case-insensitive matching.
Richard M. Stallman <rms@gnu.org>
parents:
64091
diff
changeset
|
498 (defined-colors)) |
11c1d62f46ae
(facemenu-read-color): Do case-insensitive matching.
Richard M. Stallman <rms@gnu.org>
parents:
64091
diff
changeset
|
499 nil t))) |
9623
fe1c170fa35a
(facemenu-get-face): Don't add to menu here.
Boris Goldowsky <boris@gnu.org>
parents:
9494
diff
changeset
|
500 (if (equal "" col) |
fe1c170fa35a
(facemenu-get-face): Don't add to menu here.
Boris Goldowsky <boris@gnu.org>
parents:
9494
diff
changeset
|
501 nil |
fe1c170fa35a
(facemenu-get-face): Don't add to menu here.
Boris Goldowsky <boris@gnu.org>
parents:
9494
diff
changeset
|
502 col))) |
8743 | 503 |
10520
3d30caa4b459
(facemenu-keybindings, facemenu-face-menu):
Richard M. Stallman <rms@gnu.org>
parents:
10238
diff
changeset
|
504 ;;;###autoload |
59482
6b794a66a256
(list-colors-display): Add new arg buffer-name.
Juri Linkov <juri@jurta.org>
parents:
56936
diff
changeset
|
505 (defun list-colors-display (&optional list buffer-name) |
11465
9fa2f8b87890
(list-colors-display): Minor clarification.
Richard M. Stallman <rms@gnu.org>
parents:
11372
diff
changeset
|
506 "Display names of defined colors, and show what they look like. |
9fa2f8b87890
(list-colors-display): Minor clarification.
Richard M. Stallman <rms@gnu.org>
parents:
11372
diff
changeset
|
507 If the optional argument LIST is non-nil, it should be a list of |
59482
6b794a66a256
(list-colors-display): Add new arg buffer-name.
Juri Linkov <juri@jurta.org>
parents:
56936
diff
changeset
|
508 colors to display. Otherwise, this command computes a list of |
6b794a66a256
(list-colors-display): Add new arg buffer-name.
Juri Linkov <juri@jurta.org>
parents:
56936
diff
changeset
|
509 colors that the current display can handle. If the optional |
6b794a66a256
(list-colors-display): Add new arg buffer-name.
Juri Linkov <juri@jurta.org>
parents:
56936
diff
changeset
|
510 argument BUFFER-NAME is nil, it defaults to *Colors*." |
10520
3d30caa4b459
(facemenu-keybindings, facemenu-face-menu):
Richard M. Stallman <rms@gnu.org>
parents:
10238
diff
changeset
|
511 (interactive) |
42948
74d5b26ad460
(list-colors-display): If the argument is nil, don't
Eli Zaretskii <eliz@gnu.org>
parents:
42488
diff
changeset
|
512 (when (and (null list) (> (display-color-cells) 0)) |
59482
6b794a66a256
(list-colors-display): Add new arg buffer-name.
Juri Linkov <juri@jurta.org>
parents:
56936
diff
changeset
|
513 (setq list (list-colors-duplicates (defined-colors))) |
45207
a8c6bd4220a5
(list-colors-display): Don't use `display-color-cells' unless the
Miles Bader <miles@gnu.org>
parents:
45021
diff
changeset
|
514 (when (memq (display-visual-class) '(gray-scale pseudo-color direct-color)) |
a8c6bd4220a5
(list-colors-display): Don't use `display-color-cells' unless the
Miles Bader <miles@gnu.org>
parents:
45021
diff
changeset
|
515 ;; Don't show more than what the display can handle. |
a8c6bd4220a5
(list-colors-display): Don't use `display-color-cells' unless the
Miles Bader <miles@gnu.org>
parents:
45021
diff
changeset
|
516 (let ((lc (nthcdr (1- (display-color-cells)) list))) |
a8c6bd4220a5
(list-colors-display): Don't use `display-color-cells' unless the
Miles Bader <miles@gnu.org>
parents:
45021
diff
changeset
|
517 (if lc |
a8c6bd4220a5
(list-colors-display): Don't use `display-color-cells' unless the
Miles Bader <miles@gnu.org>
parents:
45021
diff
changeset
|
518 (setcdr lc nil))))) |
59482
6b794a66a256
(list-colors-display): Add new arg buffer-name.
Juri Linkov <juri@jurta.org>
parents:
56936
diff
changeset
|
519 (with-output-to-temp-buffer (or buffer-name "*Colors*") |
10520
3d30caa4b459
(facemenu-keybindings, facemenu-face-menu):
Richard M. Stallman <rms@gnu.org>
parents:
10238
diff
changeset
|
520 (save-excursion |
3d30caa4b459
(facemenu-keybindings, facemenu-face-menu):
Richard M. Stallman <rms@gnu.org>
parents:
10238
diff
changeset
|
521 (set-buffer standard-output) |
59482
6b794a66a256
(list-colors-display): Add new arg buffer-name.
Juri Linkov <juri@jurta.org>
parents:
56936
diff
changeset
|
522 (setq truncate-lines t) |
59484
c6ded43591fd
* facemenu.el (list-colors-print): New function created from code
Juri Linkov <juri@jurta.org>
parents:
59482
diff
changeset
|
523 (if temp-buffer-show-function |
c6ded43591fd
* facemenu.el (list-colors-print): New function created from code
Juri Linkov <juri@jurta.org>
parents:
59482
diff
changeset
|
524 (list-colors-print list) |
c6ded43591fd
* facemenu.el (list-colors-print): New function created from code
Juri Linkov <juri@jurta.org>
parents:
59482
diff
changeset
|
525 ;; Call list-colors-print from temp-buffer-show-hook |
c6ded43591fd
* facemenu.el (list-colors-print): New function created from code
Juri Linkov <juri@jurta.org>
parents:
59482
diff
changeset
|
526 ;; to get the right value of window-width in list-colors-print |
c6ded43591fd
* facemenu.el (list-colors-print): New function created from code
Juri Linkov <juri@jurta.org>
parents:
59482
diff
changeset
|
527 ;; after the buffer is displayed. |
c6ded43591fd
* facemenu.el (list-colors-print): New function created from code
Juri Linkov <juri@jurta.org>
parents:
59482
diff
changeset
|
528 (add-hook 'temp-buffer-show-hook |
c6ded43591fd
* facemenu.el (list-colors-print): New function created from code
Juri Linkov <juri@jurta.org>
parents:
59482
diff
changeset
|
529 (lambda () (list-colors-print list)) nil t))))) |
c6ded43591fd
* facemenu.el (list-colors-print): New function created from code
Juri Linkov <juri@jurta.org>
parents:
59482
diff
changeset
|
530 |
c6ded43591fd
* facemenu.el (list-colors-print): New function created from code
Juri Linkov <juri@jurta.org>
parents:
59482
diff
changeset
|
531 (defun list-colors-print (list) |
c6ded43591fd
* facemenu.el (list-colors-print): New function created from code
Juri Linkov <juri@jurta.org>
parents:
59482
diff
changeset
|
532 (dolist (color list) |
c6ded43591fd
* facemenu.el (list-colors-print): New function created from code
Juri Linkov <juri@jurta.org>
parents:
59482
diff
changeset
|
533 (if (consp color) |
c6ded43591fd
* facemenu.el (list-colors-print): New function created from code
Juri Linkov <juri@jurta.org>
parents:
59482
diff
changeset
|
534 (if (cdr color) |
c6ded43591fd
* facemenu.el (list-colors-print): New function created from code
Juri Linkov <juri@jurta.org>
parents:
59482
diff
changeset
|
535 (setq color (sort color (lambda (a b) |
c6ded43591fd
* facemenu.el (list-colors-print): New function created from code
Juri Linkov <juri@jurta.org>
parents:
59482
diff
changeset
|
536 (string< (downcase a) |
c6ded43591fd
* facemenu.el (list-colors-print): New function created from code
Juri Linkov <juri@jurta.org>
parents:
59482
diff
changeset
|
537 (downcase b)))))) |
c6ded43591fd
* facemenu.el (list-colors-print): New function created from code
Juri Linkov <juri@jurta.org>
parents:
59482
diff
changeset
|
538 (setq color (list color))) |
c6ded43591fd
* facemenu.el (list-colors-print): New function created from code
Juri Linkov <juri@jurta.org>
parents:
59482
diff
changeset
|
539 (put-text-property |
c6ded43591fd
* facemenu.el (list-colors-print): New function created from code
Juri Linkov <juri@jurta.org>
parents:
59482
diff
changeset
|
540 (prog1 (point) |
c6ded43591fd
* facemenu.el (list-colors-print): New function created from code
Juri Linkov <juri@jurta.org>
parents:
59482
diff
changeset
|
541 (insert (car color)) |
c6ded43591fd
* facemenu.el (list-colors-print): New function created from code
Juri Linkov <juri@jurta.org>
parents:
59482
diff
changeset
|
542 (indent-to 22)) |
c6ded43591fd
* facemenu.el (list-colors-print): New function created from code
Juri Linkov <juri@jurta.org>
parents:
59482
diff
changeset
|
543 (point) |
79648
f6d3ee769dcf
(list-colors-print): Use :background and :foreground
Richard M. Stallman <rms@gnu.org>
parents:
78236
diff
changeset
|
544 'face (list ':background (car color))) |
59484
c6ded43591fd
* facemenu.el (list-colors-print): New function created from code
Juri Linkov <juri@jurta.org>
parents:
59482
diff
changeset
|
545 (put-text-property |
c6ded43591fd
* facemenu.el (list-colors-print): New function created from code
Juri Linkov <juri@jurta.org>
parents:
59482
diff
changeset
|
546 (prog1 (point) |
60522
66456f4ae924
(list-colors-print): Print #RRGGBB in default face.
Juri Linkov <juri@jurta.org>
parents:
60466
diff
changeset
|
547 (insert " " (if (cdr color) |
66456f4ae924
(list-colors-print): Print #RRGGBB in default face.
Juri Linkov <juri@jurta.org>
parents:
60466
diff
changeset
|
548 (mapconcat 'identity (cdr color) ", ") |
66456f4ae924
(list-colors-print): Print #RRGGBB in default face.
Juri Linkov <juri@jurta.org>
parents:
60466
diff
changeset
|
549 (car color)))) |
66456f4ae924
(list-colors-print): Print #RRGGBB in default face.
Juri Linkov <juri@jurta.org>
parents:
60466
diff
changeset
|
550 (point) |
79648
f6d3ee769dcf
(list-colors-print): Use :background and :foreground
Richard M. Stallman <rms@gnu.org>
parents:
78236
diff
changeset
|
551 'face (list ':foreground (car color))) |
60522
66456f4ae924
(list-colors-print): Print #RRGGBB in default face.
Juri Linkov <juri@jurta.org>
parents:
60466
diff
changeset
|
552 (indent-to (max (- (window-width) 8) 44)) |
66456f4ae924
(list-colors-print): Print #RRGGBB in default face.
Juri Linkov <juri@jurta.org>
parents:
60466
diff
changeset
|
553 (insert (apply 'format "#%02x%02x%02x" |
66456f4ae924
(list-colors-print): Print #RRGGBB in default face.
Juri Linkov <juri@jurta.org>
parents:
60466
diff
changeset
|
554 (mapcar (lambda (c) (lsh c -8)) |
66456f4ae924
(list-colors-print): Print #RRGGBB in default face.
Juri Linkov <juri@jurta.org>
parents:
60466
diff
changeset
|
555 (color-values (car color))))) |
59484
c6ded43591fd
* facemenu.el (list-colors-print): New function created from code
Juri Linkov <juri@jurta.org>
parents:
59482
diff
changeset
|
556 |
60522
66456f4ae924
(list-colors-print): Print #RRGGBB in default face.
Juri Linkov <juri@jurta.org>
parents:
60466
diff
changeset
|
557 (insert "\n")) |
59484
c6ded43591fd
* facemenu.el (list-colors-print): New function created from code
Juri Linkov <juri@jurta.org>
parents:
59482
diff
changeset
|
558 (goto-char (point-min))) |
59482
6b794a66a256
(list-colors-display): Add new arg buffer-name.
Juri Linkov <juri@jurta.org>
parents:
56936
diff
changeset
|
559 |
6b794a66a256
(list-colors-display): Add new arg buffer-name.
Juri Linkov <juri@jurta.org>
parents:
56936
diff
changeset
|
560 (defun list-colors-duplicates (&optional list) |
6b794a66a256
(list-colors-display): Add new arg buffer-name.
Juri Linkov <juri@jurta.org>
parents:
56936
diff
changeset
|
561 "Return a list of colors with grouped duplicate colors. |
6b794a66a256
(list-colors-display): Add new arg buffer-name.
Juri Linkov <juri@jurta.org>
parents:
56936
diff
changeset
|
562 If a color has no duplicates, then the element of the returned list |
6b794a66a256
(list-colors-display): Add new arg buffer-name.
Juri Linkov <juri@jurta.org>
parents:
56936
diff
changeset
|
563 has the form '(COLOR-NAME). The element of the returned list with |
6b794a66a256
(list-colors-display): Add new arg buffer-name.
Juri Linkov <juri@jurta.org>
parents:
56936
diff
changeset
|
564 duplicate colors has the form '(COLOR-NAME DUPLICATE-COLOR-NAME ...). |
6b794a66a256
(list-colors-display): Add new arg buffer-name.
Juri Linkov <juri@jurta.org>
parents:
56936
diff
changeset
|
565 This function uses the predicate `facemenu-color-equal' to compare |
6b794a66a256
(list-colors-display): Add new arg buffer-name.
Juri Linkov <juri@jurta.org>
parents:
56936
diff
changeset
|
566 color names. If the optional argument LIST is non-nil, it should |
6b794a66a256
(list-colors-display): Add new arg buffer-name.
Juri Linkov <juri@jurta.org>
parents:
56936
diff
changeset
|
567 be a list of colors to display. Otherwise, this function uses |
6b794a66a256
(list-colors-display): Add new arg buffer-name.
Juri Linkov <juri@jurta.org>
parents:
56936
diff
changeset
|
568 a list of colors that the current display can handle." |
6b794a66a256
(list-colors-display): Add new arg buffer-name.
Juri Linkov <juri@jurta.org>
parents:
56936
diff
changeset
|
569 (let* ((list (mapcar 'list (or list (defined-colors)))) |
6b794a66a256
(list-colors-display): Add new arg buffer-name.
Juri Linkov <juri@jurta.org>
parents:
56936
diff
changeset
|
570 (l list)) |
6b794a66a256
(list-colors-display): Add new arg buffer-name.
Juri Linkov <juri@jurta.org>
parents:
56936
diff
changeset
|
571 (while (cdr l) |
6b794a66a256
(list-colors-display): Add new arg buffer-name.
Juri Linkov <juri@jurta.org>
parents:
56936
diff
changeset
|
572 (if (and (facemenu-color-equal (car (car l)) (car (car (cdr l)))) |
60522
66456f4ae924
(list-colors-print): Print #RRGGBB in default face.
Juri Linkov <juri@jurta.org>
parents:
60466
diff
changeset
|
573 (not (if (boundp 'w32-default-color-map) |
66456f4ae924
(list-colors-print): Print #RRGGBB in default face.
Juri Linkov <juri@jurta.org>
parents:
60466
diff
changeset
|
574 (not (assoc (car (car l)) w32-default-color-map))))) |
59482
6b794a66a256
(list-colors-display): Add new arg buffer-name.
Juri Linkov <juri@jurta.org>
parents:
56936
diff
changeset
|
575 (progn |
6b794a66a256
(list-colors-display): Add new arg buffer-name.
Juri Linkov <juri@jurta.org>
parents:
56936
diff
changeset
|
576 (setcdr (car l) (cons (car (car (cdr l))) (cdr (car l)))) |
6b794a66a256
(list-colors-display): Add new arg buffer-name.
Juri Linkov <juri@jurta.org>
parents:
56936
diff
changeset
|
577 (setcdr l (cdr (cdr l)))) |
6b794a66a256
(list-colors-display): Add new arg buffer-name.
Juri Linkov <juri@jurta.org>
parents:
56936
diff
changeset
|
578 (setq l (cdr l)))) |
6b794a66a256
(list-colors-display): Add new arg buffer-name.
Juri Linkov <juri@jurta.org>
parents:
56936
diff
changeset
|
579 list)) |
10520
3d30caa4b459
(facemenu-keybindings, facemenu-face-menu):
Richard M. Stallman <rms@gnu.org>
parents:
10238
diff
changeset
|
580 |
3d30caa4b459
(facemenu-keybindings, facemenu-face-menu):
Richard M. Stallman <rms@gnu.org>
parents:
10238
diff
changeset
|
581 (defun facemenu-color-equal (a b) |
3d30caa4b459
(facemenu-keybindings, facemenu-face-menu):
Richard M. Stallman <rms@gnu.org>
parents:
10238
diff
changeset
|
582 "Return t if colors A and B are the same color. |
11465
9fa2f8b87890
(list-colors-display): Minor clarification.
Richard M. Stallman <rms@gnu.org>
parents:
11372
diff
changeset
|
583 A and B should be strings naming colors. |
26736
a0674327c167
Changes for automatic remapping of X colors on terminal frames:
Eli Zaretskii <eliz@gnu.org>
parents:
25278
diff
changeset
|
584 This function queries the display system to find out what the color |
a0674327c167
Changes for automatic remapping of X colors on terminal frames:
Eli Zaretskii <eliz@gnu.org>
parents:
25278
diff
changeset
|
585 names mean. It returns nil if the colors differ or if it can't |
11465
9fa2f8b87890
(list-colors-display): Minor clarification.
Richard M. Stallman <rms@gnu.org>
parents:
11372
diff
changeset
|
586 determine the correct answer." |
10520
3d30caa4b459
(facemenu-keybindings, facemenu-face-menu):
Richard M. Stallman <rms@gnu.org>
parents:
10238
diff
changeset
|
587 (cond ((equal a b) t) |
26736
a0674327c167
Changes for automatic remapping of X colors on terminal frames:
Eli Zaretskii <eliz@gnu.org>
parents:
25278
diff
changeset
|
588 ((equal (color-values a) (color-values b))))) |
10520
3d30caa4b459
(facemenu-keybindings, facemenu-face-menu):
Richard M. Stallman <rms@gnu.org>
parents:
10238
diff
changeset
|
589 |
13923
35e379a3952e
(facemenu-read-color, list-colors-display)
Richard M. Stallman <rms@gnu.org>
parents:
13495
diff
changeset
|
590 (defun facemenu-add-face (face &optional start end) |
9494
9a4ed505445e
(facemenu-read-color, facemenu-colors): New fn, var.
Richard M. Stallman <rms@gnu.org>
parents:
8953
diff
changeset
|
591 "Add FACE to text between START and END. |
30092
6d383cf4bb99
Docstrings fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29050
diff
changeset
|
592 If START is nil or START to END is empty, add FACE to next typed character |
13923
35e379a3952e
(facemenu-read-color, list-colors-display)
Richard M. Stallman <rms@gnu.org>
parents:
13495
diff
changeset
|
593 instead. For each section of that region that has a different face property, |
35e379a3952e
(facemenu-read-color, list-colors-display)
Richard M. Stallman <rms@gnu.org>
parents:
13495
diff
changeset
|
594 FACE will be consed onto it, and other faces that are completely hidden by |
35e379a3952e
(facemenu-read-color, list-colors-display)
Richard M. Stallman <rms@gnu.org>
parents:
13495
diff
changeset
|
595 that will be removed from the list. |
43902
e0e6df854822
(facemenu-add-new-face):
Richard M. Stallman <rms@gnu.org>
parents:
43412
diff
changeset
|
596 If `facemenu-add-face-function' and maybe `facemenu-end-add-face' are non-nil, |
13923
35e379a3952e
(facemenu-read-color, list-colors-display)
Richard M. Stallman <rms@gnu.org>
parents:
13495
diff
changeset
|
597 they are used to set the face information. |
9623
fe1c170fa35a
(facemenu-get-face): Don't add to menu here.
Boris Goldowsky <boris@gnu.org>
parents:
9494
diff
changeset
|
598 |
fe1c170fa35a
(facemenu-get-face): Don't add to menu here.
Boris Goldowsky <boris@gnu.org>
parents:
9494
diff
changeset
|
599 As a special case, if FACE is `default', then the region is left with NO face |
fe1c170fa35a
(facemenu-get-face): Don't add to menu here.
Boris Goldowsky <boris@gnu.org>
parents:
9494
diff
changeset
|
600 text property. Otherwise, selecting the default face would not have any |
13923
35e379a3952e
(facemenu-read-color, list-colors-display)
Richard M. Stallman <rms@gnu.org>
parents:
13495
diff
changeset
|
601 effect. See `facemenu-remove-face-function'." |
35e379a3952e
(facemenu-read-color, list-colors-display)
Richard M. Stallman <rms@gnu.org>
parents:
13495
diff
changeset
|
602 (interactive "*xFace: \nr") |
35e379a3952e
(facemenu-read-color, list-colors-display)
Richard M. Stallman <rms@gnu.org>
parents:
13495
diff
changeset
|
603 (if (and (eq face 'default) |
35e379a3952e
(facemenu-read-color, list-colors-display)
Richard M. Stallman <rms@gnu.org>
parents:
13495
diff
changeset
|
604 (not (eq facemenu-remove-face-function t))) |
35e379a3952e
(facemenu-read-color, list-colors-display)
Richard M. Stallman <rms@gnu.org>
parents:
13495
diff
changeset
|
605 (if facemenu-remove-face-function |
35e379a3952e
(facemenu-read-color, list-colors-display)
Richard M. Stallman <rms@gnu.org>
parents:
13495
diff
changeset
|
606 (funcall facemenu-remove-face-function start end) |
14154
e16dc69d909a
(facemenu-add-face): Adding default to no region
Richard M. Stallman <rms@gnu.org>
parents:
13923
diff
changeset
|
607 (if (and start (< start end)) |
e16dc69d909a
(facemenu-add-face): Adding default to no region
Richard M. Stallman <rms@gnu.org>
parents:
13923
diff
changeset
|
608 (remove-text-properties start end '(face default)) |
e16dc69d909a
(facemenu-add-face): Adding default to no region
Richard M. Stallman <rms@gnu.org>
parents:
13923
diff
changeset
|
609 (setq self-insert-face 'default |
e16dc69d909a
(facemenu-add-face): Adding default to no region
Richard M. Stallman <rms@gnu.org>
parents:
13923
diff
changeset
|
610 self-insert-face-command this-command))) |
13923
35e379a3952e
(facemenu-read-color, list-colors-display)
Richard M. Stallman <rms@gnu.org>
parents:
13495
diff
changeset
|
611 (if facemenu-add-face-function |
35e379a3952e
(facemenu-read-color, list-colors-display)
Richard M. Stallman <rms@gnu.org>
parents:
13495
diff
changeset
|
612 (save-excursion |
35e379a3952e
(facemenu-read-color, list-colors-display)
Richard M. Stallman <rms@gnu.org>
parents:
13495
diff
changeset
|
613 (if end (goto-char end)) |
35e379a3952e
(facemenu-read-color, list-colors-display)
Richard M. Stallman <rms@gnu.org>
parents:
13495
diff
changeset
|
614 (save-excursion |
35e379a3952e
(facemenu-read-color, list-colors-display)
Richard M. Stallman <rms@gnu.org>
parents:
13495
diff
changeset
|
615 (if start (goto-char start)) |
35e379a3952e
(facemenu-read-color, list-colors-display)
Richard M. Stallman <rms@gnu.org>
parents:
13495
diff
changeset
|
616 (insert-before-markers |
35e379a3952e
(facemenu-read-color, list-colors-display)
Richard M. Stallman <rms@gnu.org>
parents:
13495
diff
changeset
|
617 (funcall facemenu-add-face-function face end))) |
35e379a3952e
(facemenu-read-color, list-colors-display)
Richard M. Stallman <rms@gnu.org>
parents:
13495
diff
changeset
|
618 (if facemenu-end-add-face |
35e379a3952e
(facemenu-read-color, list-colors-display)
Richard M. Stallman <rms@gnu.org>
parents:
13495
diff
changeset
|
619 (insert (if (stringp facemenu-end-add-face) |
35e379a3952e
(facemenu-read-color, list-colors-display)
Richard M. Stallman <rms@gnu.org>
parents:
13495
diff
changeset
|
620 facemenu-end-add-face |
35e379a3952e
(facemenu-read-color, list-colors-display)
Richard M. Stallman <rms@gnu.org>
parents:
13495
diff
changeset
|
621 (funcall facemenu-end-add-face face))))) |
35e379a3952e
(facemenu-read-color, list-colors-display)
Richard M. Stallman <rms@gnu.org>
parents:
13495
diff
changeset
|
622 (if (and start (< start end)) |
35e379a3952e
(facemenu-read-color, list-colors-display)
Richard M. Stallman <rms@gnu.org>
parents:
13495
diff
changeset
|
623 (let ((part-start start) part-end) |
35e379a3952e
(facemenu-read-color, list-colors-display)
Richard M. Stallman <rms@gnu.org>
parents:
13495
diff
changeset
|
624 (while (not (= part-start end)) |
35e379a3952e
(facemenu-read-color, list-colors-display)
Richard M. Stallman <rms@gnu.org>
parents:
13495
diff
changeset
|
625 (setq part-end (next-single-property-change part-start 'face |
35e379a3952e
(facemenu-read-color, list-colors-display)
Richard M. Stallman <rms@gnu.org>
parents:
13495
diff
changeset
|
626 nil end)) |
35e379a3952e
(facemenu-read-color, list-colors-display)
Richard M. Stallman <rms@gnu.org>
parents:
13495
diff
changeset
|
627 (let ((prev (get-text-property part-start 'face))) |
35e379a3952e
(facemenu-read-color, list-colors-display)
Richard M. Stallman <rms@gnu.org>
parents:
13495
diff
changeset
|
628 (put-text-property part-start part-end 'face |
35e379a3952e
(facemenu-read-color, list-colors-display)
Richard M. Stallman <rms@gnu.org>
parents:
13495
diff
changeset
|
629 (if (null prev) |
35e379a3952e
(facemenu-read-color, list-colors-display)
Richard M. Stallman <rms@gnu.org>
parents:
13495
diff
changeset
|
630 face |
35e379a3952e
(facemenu-read-color, list-colors-display)
Richard M. Stallman <rms@gnu.org>
parents:
13495
diff
changeset
|
631 (facemenu-active-faces |
35e379a3952e
(facemenu-read-color, list-colors-display)
Richard M. Stallman <rms@gnu.org>
parents:
13495
diff
changeset
|
632 (cons face |
35e379a3952e
(facemenu-read-color, list-colors-display)
Richard M. Stallman <rms@gnu.org>
parents:
13495
diff
changeset
|
633 (if (listp prev) |
35e379a3952e
(facemenu-read-color, list-colors-display)
Richard M. Stallman <rms@gnu.org>
parents:
13495
diff
changeset
|
634 prev |
72335
d6694b6039c1
(facemenu-add-face): Pass frame to facemenu-active-faces.
Richard M. Stallman <rms@gnu.org>
parents:
71568
diff
changeset
|
635 (list prev))) |
d6694b6039c1
(facemenu-add-face): Pass frame to facemenu-active-faces.
Richard M. Stallman <rms@gnu.org>
parents:
71568
diff
changeset
|
636 ;; Specify the selected frame |
d6694b6039c1
(facemenu-add-face): Pass frame to facemenu-active-faces.
Richard M. Stallman <rms@gnu.org>
parents:
71568
diff
changeset
|
637 ;; because nil would mean to use |
d6694b6039c1
(facemenu-add-face): Pass frame to facemenu-active-faces.
Richard M. Stallman <rms@gnu.org>
parents:
71568
diff
changeset
|
638 ;; the new-frame default settings, |
d6694b6039c1
(facemenu-add-face): Pass frame to facemenu-active-faces.
Richard M. Stallman <rms@gnu.org>
parents:
71568
diff
changeset
|
639 ;; and those are usually nil. |
d6694b6039c1
(facemenu-add-face): Pass frame to facemenu-active-faces.
Richard M. Stallman <rms@gnu.org>
parents:
71568
diff
changeset
|
640 (selected-frame))))) |
13923
35e379a3952e
(facemenu-read-color, list-colors-display)
Richard M. Stallman <rms@gnu.org>
parents:
13495
diff
changeset
|
641 (setq part-start part-end))) |
35e379a3952e
(facemenu-read-color, list-colors-display)
Richard M. Stallman <rms@gnu.org>
parents:
13495
diff
changeset
|
642 (setq self-insert-face (if (eq last-command self-insert-face-command) |
35e379a3952e
(facemenu-read-color, list-colors-display)
Richard M. Stallman <rms@gnu.org>
parents:
13495
diff
changeset
|
643 (cons face (if (listp self-insert-face) |
35e379a3952e
(facemenu-read-color, list-colors-display)
Richard M. Stallman <rms@gnu.org>
parents:
13495
diff
changeset
|
644 self-insert-face |
35e379a3952e
(facemenu-read-color, list-colors-display)
Richard M. Stallman <rms@gnu.org>
parents:
13495
diff
changeset
|
645 (list self-insert-face))) |
35e379a3952e
(facemenu-read-color, list-colors-display)
Richard M. Stallman <rms@gnu.org>
parents:
13495
diff
changeset
|
646 face) |
63814
db398a23f0d0
(facemenu-add-face): Warn when font-lock is active.
Richard M. Stallman <rms@gnu.org>
parents:
63792
diff
changeset
|
647 self-insert-face-command this-command)))) |
db398a23f0d0
(facemenu-add-face): Warn when font-lock is active.
Richard M. Stallman <rms@gnu.org>
parents:
63792
diff
changeset
|
648 (unless (facemenu-enable-faces-p) |
db398a23f0d0
(facemenu-add-face): Warn when font-lock is active.
Richard M. Stallman <rms@gnu.org>
parents:
63792
diff
changeset
|
649 (message "Font-lock mode will override any faces you set in this buffer"))) |
9494
9a4ed505445e
(facemenu-read-color, facemenu-colors): New fn, var.
Richard M. Stallman <rms@gnu.org>
parents:
8953
diff
changeset
|
650 |
13495
fcfb5f397b49
(facemenu-active-faces): Replaces function
Karl Heuer <kwzh@gnu.org>
parents:
13433
diff
changeset
|
651 (defun facemenu-active-faces (face-list &optional frame) |
fcfb5f397b49
(facemenu-active-faces): Replaces function
Karl Heuer <kwzh@gnu.org>
parents:
13433
diff
changeset
|
652 "Return from FACE-LIST those faces that would be used for display. |
fcfb5f397b49
(facemenu-active-faces): Replaces function
Karl Heuer <kwzh@gnu.org>
parents:
13433
diff
changeset
|
653 This means each face attribute is not specified in a face earlier in FACE-LIST |
fcfb5f397b49
(facemenu-active-faces): Replaces function
Karl Heuer <kwzh@gnu.org>
parents:
13433
diff
changeset
|
654 and such a face is therefore active when used to display text. |
fcfb5f397b49
(facemenu-active-faces): Replaces function
Karl Heuer <kwzh@gnu.org>
parents:
13433
diff
changeset
|
655 If the optional argument FRAME is given, use the faces in that frame; otherwise |
fcfb5f397b49
(facemenu-active-faces): Replaces function
Karl Heuer <kwzh@gnu.org>
parents:
13433
diff
changeset
|
656 use the selected frame. If t, then the global, non-frame faces are used." |
40275
113233ecd44a
(facemenu-unlisted-faces): Improve doc strings
Richard M. Stallman <rms@gnu.org>
parents:
35633
diff
changeset
|
657 (let* ((mask-atts (copy-sequence |
113233ecd44a
(facemenu-unlisted-faces): Improve doc strings
Richard M. Stallman <rms@gnu.org>
parents:
35633
diff
changeset
|
658 (if (consp (car face-list)) |
42488
cbf9d3debb0a
(facemenu-active-faces):
Richard M. Stallman <rms@gnu.org>
parents:
41799
diff
changeset
|
659 (face-attributes-as-vector (car face-list)) |
40275
113233ecd44a
(facemenu-unlisted-faces): Improve doc strings
Richard M. Stallman <rms@gnu.org>
parents:
35633
diff
changeset
|
660 (or (internal-lisp-face-p (car face-list) frame) |
113233ecd44a
(facemenu-unlisted-faces): Improve doc strings
Richard M. Stallman <rms@gnu.org>
parents:
35633
diff
changeset
|
661 (check-face (car face-list)))))) |
13495
fcfb5f397b49
(facemenu-active-faces): Replaces function
Karl Heuer <kwzh@gnu.org>
parents:
13433
diff
changeset
|
662 (active-list (list (car face-list))) |
fcfb5f397b49
(facemenu-active-faces): Replaces function
Karl Heuer <kwzh@gnu.org>
parents:
13433
diff
changeset
|
663 (face-list (cdr face-list)) |
fcfb5f397b49
(facemenu-active-faces): Replaces function
Karl Heuer <kwzh@gnu.org>
parents:
13433
diff
changeset
|
664 (mask-len (length mask-atts))) |
fcfb5f397b49
(facemenu-active-faces): Replaces function
Karl Heuer <kwzh@gnu.org>
parents:
13433
diff
changeset
|
665 (while face-list |
40275
113233ecd44a
(facemenu-unlisted-faces): Improve doc strings
Richard M. Stallman <rms@gnu.org>
parents:
35633
diff
changeset
|
666 (if (let ((face-atts |
113233ecd44a
(facemenu-unlisted-faces): Improve doc strings
Richard M. Stallman <rms@gnu.org>
parents:
35633
diff
changeset
|
667 (if (consp (car face-list)) |
42488
cbf9d3debb0a
(facemenu-active-faces):
Richard M. Stallman <rms@gnu.org>
parents:
41799
diff
changeset
|
668 (face-attributes-as-vector (car face-list)) |
40275
113233ecd44a
(facemenu-unlisted-faces): Improve doc strings
Richard M. Stallman <rms@gnu.org>
parents:
35633
diff
changeset
|
669 (or (internal-lisp-face-p (car face-list) frame) |
113233ecd44a
(facemenu-unlisted-faces): Improve doc strings
Richard M. Stallman <rms@gnu.org>
parents:
35633
diff
changeset
|
670 (check-face (car face-list))))) |
113233ecd44a
(facemenu-unlisted-faces): Improve doc strings
Richard M. Stallman <rms@gnu.org>
parents:
35633
diff
changeset
|
671 (i mask-len) |
113233ecd44a
(facemenu-unlisted-faces): Improve doc strings
Richard M. Stallman <rms@gnu.org>
parents:
35633
diff
changeset
|
672 (useful nil)) |
56936
6257efe5587a
(facemenu-active-faces): Change condition of inner `while' loop to
Luc Teirlinck <teirllm@auburn.edu>
parents:
55705
diff
changeset
|
673 (while (>= (setq i (1- i)) 0) |
40275
113233ecd44a
(facemenu-unlisted-faces): Improve doc strings
Richard M. Stallman <rms@gnu.org>
parents:
35633
diff
changeset
|
674 (and (not (memq (aref face-atts i) '(nil unspecified))) |
113233ecd44a
(facemenu-unlisted-faces): Improve doc strings
Richard M. Stallman <rms@gnu.org>
parents:
35633
diff
changeset
|
675 (memq (aref mask-atts i) '(nil unspecified)) |
13495
fcfb5f397b49
(facemenu-active-faces): Replaces function
Karl Heuer <kwzh@gnu.org>
parents:
13433
diff
changeset
|
676 (aset mask-atts i (setq useful t)))) |
fcfb5f397b49
(facemenu-active-faces): Replaces function
Karl Heuer <kwzh@gnu.org>
parents:
13433
diff
changeset
|
677 useful) |
fcfb5f397b49
(facemenu-active-faces): Replaces function
Karl Heuer <kwzh@gnu.org>
parents:
13433
diff
changeset
|
678 (setq active-list (cons (car face-list) active-list))) |
fcfb5f397b49
(facemenu-active-faces): Replaces function
Karl Heuer <kwzh@gnu.org>
parents:
13433
diff
changeset
|
679 (setq face-list (cdr face-list))) |
fcfb5f397b49
(facemenu-active-faces): Replaces function
Karl Heuer <kwzh@gnu.org>
parents:
13433
diff
changeset
|
680 (nreverse active-list))) |
9494
9a4ed505445e
(facemenu-read-color, facemenu-colors): New fn, var.
Richard M. Stallman <rms@gnu.org>
parents:
8953
diff
changeset
|
681 |
44611
e4a2909015d3
(facemenu-add-new-face): Use this only for faces. Delete arg MENU.
Richard M. Stallman <rms@gnu.org>
parents:
44593
diff
changeset
|
682 (defun facemenu-add-new-face (face) |
72335
d6694b6039c1
(facemenu-add-face): Pass frame to facemenu-active-faces.
Richard M. Stallman <rms@gnu.org>
parents:
71568
diff
changeset
|
683 "Add FACE (a face) to the Face menu if `facemenu-listed-faces' says so. |
d6694b6039c1
(facemenu-add-face): Pass frame to facemenu-active-faces.
Richard M. Stallman <rms@gnu.org>
parents:
71568
diff
changeset
|
684 This is called whenever you create a new face, and at other times." |
40275
113233ecd44a
(facemenu-unlisted-faces): Improve doc strings
Richard M. Stallman <rms@gnu.org>
parents:
35633
diff
changeset
|
685 (let* (name |
113233ecd44a
(facemenu-unlisted-faces): Improve doc strings
Richard M. Stallman <rms@gnu.org>
parents:
35633
diff
changeset
|
686 symbol |
44611
e4a2909015d3
(facemenu-add-new-face): Use this only for faces. Delete arg MENU.
Richard M. Stallman <rms@gnu.org>
parents:
44593
diff
changeset
|
687 menu docstring |
e4a2909015d3
(facemenu-add-new-face): Use this only for faces. Delete arg MENU.
Richard M. Stallman <rms@gnu.org>
parents:
44593
diff
changeset
|
688 (key (cdr (assoc face facemenu-keybindings))) |
10520
3d30caa4b459
(facemenu-keybindings, facemenu-face-menu):
Richard M. Stallman <rms@gnu.org>
parents:
10238
diff
changeset
|
689 function menu-val) |
44611
e4a2909015d3
(facemenu-add-new-face): Use this only for faces. Delete arg MENU.
Richard M. Stallman <rms@gnu.org>
parents:
44593
diff
changeset
|
690 (if (symbolp face) |
e4a2909015d3
(facemenu-add-new-face): Use this only for faces. Delete arg MENU.
Richard M. Stallman <rms@gnu.org>
parents:
44593
diff
changeset
|
691 (setq name (symbol-name face) |
e4a2909015d3
(facemenu-add-new-face): Use this only for faces. Delete arg MENU.
Richard M. Stallman <rms@gnu.org>
parents:
44593
diff
changeset
|
692 symbol face) |
e4a2909015d3
(facemenu-add-new-face): Use this only for faces. Delete arg MENU.
Richard M. Stallman <rms@gnu.org>
parents:
44593
diff
changeset
|
693 (setq name face |
40280
e14f2ec78074
(facemenu-add-new-face): Fix variable names.
Miles Bader <miles@gnu.org>
parents:
40275
diff
changeset
|
694 symbol (intern name))) |
44611
e4a2909015d3
(facemenu-add-new-face): Use this only for faces. Delete arg MENU.
Richard M. Stallman <rms@gnu.org>
parents:
44593
diff
changeset
|
695 (setq menu 'facemenu-face-menu) |
e4a2909015d3
(facemenu-add-new-face): Use this only for faces. Delete arg MENU.
Richard M. Stallman <rms@gnu.org>
parents:
44593
diff
changeset
|
696 (setq docstring |
74281
0c96941203c0
(facemenu-add-new-face): Improve doc strings of constructed commands.
Richard M. Stallman <rms@gnu.org>
parents:
73412
diff
changeset
|
697 (format "Select face `%s' for subsequent insertion. |
0c96941203c0
(facemenu-add-new-face): Improve doc strings of constructed commands.
Richard M. Stallman <rms@gnu.org>
parents:
73412
diff
changeset
|
698 If the mark is active and there is no prefix argument, |
0c96941203c0
(facemenu-add-new-face): Improve doc strings of constructed commands.
Richard M. Stallman <rms@gnu.org>
parents:
73412
diff
changeset
|
699 apply face `%s' to the region instead. |
0c96941203c0
(facemenu-add-new-face): Improve doc strings of constructed commands.
Richard M. Stallman <rms@gnu.org>
parents:
73412
diff
changeset
|
700 This command was defined by `facemenu-add-new-face'." |
0c96941203c0
(facemenu-add-new-face): Improve doc strings of constructed commands.
Richard M. Stallman <rms@gnu.org>
parents:
73412
diff
changeset
|
701 name name)) |
71568
8d6af1c1c365
* facemenu.el (facemenu-listed-faces): New var.
Chong Yidong <cyd@stupidchicken.com>
parents:
71369
diff
changeset
|
702 (cond ((facemenu-iterate ; check if equivalent face is already in the menu |
8d6af1c1c365
* facemenu.el (facemenu-listed-faces): New var.
Chong Yidong <cyd@stupidchicken.com>
parents:
71369
diff
changeset
|
703 (lambda (m) (and (listp m) |
8d6af1c1c365
* facemenu.el (facemenu-listed-faces): New var.
Chong Yidong <cyd@stupidchicken.com>
parents:
71369
diff
changeset
|
704 (symbolp (car m)) |
73412
fb5c7e2b2689
(facemenu-add-new-face): Defend against symbol that isn't a face name.
Richard M. Stallman <rms@gnu.org>
parents:
72338
diff
changeset
|
705 ;; Avoid error in face-equal |
fb5c7e2b2689
(facemenu-add-new-face): Defend against symbol that isn't a face name.
Richard M. Stallman <rms@gnu.org>
parents:
72338
diff
changeset
|
706 ;; when a non-face is erroneously present. |
fb5c7e2b2689
(facemenu-add-new-face): Defend against symbol that isn't a face name.
Richard M. Stallman <rms@gnu.org>
parents:
72338
diff
changeset
|
707 (facep (car m)) |
71568
8d6af1c1c365
* facemenu.el (facemenu-listed-faces): New var.
Chong Yidong <cyd@stupidchicken.com>
parents:
71369
diff
changeset
|
708 (face-equal (car m) symbol))) |
8d6af1c1c365
* facemenu.el (facemenu-listed-faces): New var.
Chong Yidong <cyd@stupidchicken.com>
parents:
71369
diff
changeset
|
709 (cdr (symbol-function menu)))) |
8d6af1c1c365
* facemenu.el (facemenu-listed-faces): New var.
Chong Yidong <cyd@stupidchicken.com>
parents:
71369
diff
changeset
|
710 ;; Faces with a keyboard equivalent. These go at the front. |
8d6af1c1c365
* facemenu.el (facemenu-listed-faces): New var.
Chong Yidong <cyd@stupidchicken.com>
parents:
71369
diff
changeset
|
711 (key |
10520
3d30caa4b459
(facemenu-keybindings, facemenu-face-menu):
Richard M. Stallman <rms@gnu.org>
parents:
10238
diff
changeset
|
712 (setq function (intern (concat "facemenu-set-" name))) |
3d30caa4b459
(facemenu-keybindings, facemenu-face-menu):
Richard M. Stallman <rms@gnu.org>
parents:
10238
diff
changeset
|
713 (fset function |
17555
6e2928cff18e
(facemenu-add-new-face): Rewrite to give each
Richard M. Stallman <rms@gnu.org>
parents:
17505
diff
changeset
|
714 `(lambda () |
6e2928cff18e
(facemenu-add-new-face): Rewrite to give each
Richard M. Stallman <rms@gnu.org>
parents:
17505
diff
changeset
|
715 ,docstring |
6e2928cff18e
(facemenu-add-new-face): Rewrite to give each
Richard M. Stallman <rms@gnu.org>
parents:
17505
diff
changeset
|
716 (interactive) |
43902
e0e6df854822
(facemenu-add-new-face):
Richard M. Stallman <rms@gnu.org>
parents:
43412
diff
changeset
|
717 (facemenu-set-face |
e0e6df854822
(facemenu-add-new-face):
Richard M. Stallman <rms@gnu.org>
parents:
43412
diff
changeset
|
718 (quote ,symbol) |
e0e6df854822
(facemenu-add-new-face):
Richard M. Stallman <rms@gnu.org>
parents:
43412
diff
changeset
|
719 (if (and mark-active (not current-prefix-arg)) |
e0e6df854822
(facemenu-add-new-face):
Richard M. Stallman <rms@gnu.org>
parents:
43412
diff
changeset
|
720 (region-beginning)) |
e0e6df854822
(facemenu-add-new-face):
Richard M. Stallman <rms@gnu.org>
parents:
43412
diff
changeset
|
721 (if (and mark-active (not current-prefix-arg)) |
e0e6df854822
(facemenu-add-new-face):
Richard M. Stallman <rms@gnu.org>
parents:
43412
diff
changeset
|
722 (region-end))))) |
10520
3d30caa4b459
(facemenu-keybindings, facemenu-face-menu):
Richard M. Stallman <rms@gnu.org>
parents:
10238
diff
changeset
|
723 (define-key 'facemenu-keymap key (cons name function)) |
3d30caa4b459
(facemenu-keybindings, facemenu-face-menu):
Richard M. Stallman <rms@gnu.org>
parents:
10238
diff
changeset
|
724 (define-key menu key (cons name function))) |
71568
8d6af1c1c365
* facemenu.el (facemenu-listed-faces): New var.
Chong Yidong <cyd@stupidchicken.com>
parents:
71369
diff
changeset
|
725 ;; Faces with no keyboard equivalent. Figure out where to put it: |
8d6af1c1c365
* facemenu.el (facemenu-listed-faces): New var.
Chong Yidong <cyd@stupidchicken.com>
parents:
71369
diff
changeset
|
726 ((or (eq t facemenu-listed-faces) |
8d6af1c1c365
* facemenu.el (facemenu-listed-faces): New var.
Chong Yidong <cyd@stupidchicken.com>
parents:
71369
diff
changeset
|
727 (memq symbol facemenu-listed-faces)) |
40275
113233ecd44a
(facemenu-unlisted-faces): Improve doc strings
Richard M. Stallman <rms@gnu.org>
parents:
35633
diff
changeset
|
728 (setq key (vector symbol) |
10520
3d30caa4b459
(facemenu-keybindings, facemenu-face-menu):
Richard M. Stallman <rms@gnu.org>
parents:
10238
diff
changeset
|
729 function 'facemenu-set-face-from-menu |
3d30caa4b459
(facemenu-keybindings, facemenu-face-menu):
Richard M. Stallman <rms@gnu.org>
parents:
10238
diff
changeset
|
730 menu-val (symbol-function menu)) |
3d30caa4b459
(facemenu-keybindings, facemenu-face-menu):
Richard M. Stallman <rms@gnu.org>
parents:
10238
diff
changeset
|
731 (if (and facemenu-new-faces-at-end |
71568
8d6af1c1c365
* facemenu.el (facemenu-listed-faces): New var.
Chong Yidong <cyd@stupidchicken.com>
parents:
71369
diff
changeset
|
732 (> (length menu-val) 3)) |
10520
3d30caa4b459
(facemenu-keybindings, facemenu-face-menu):
Richard M. Stallman <rms@gnu.org>
parents:
10238
diff
changeset
|
733 (define-key-after menu-val key (cons name function) |
3d30caa4b459
(facemenu-keybindings, facemenu-face-menu):
Richard M. Stallman <rms@gnu.org>
parents:
10238
diff
changeset
|
734 (car (nth (- (length menu-val) 3) menu-val))) |
3d30caa4b459
(facemenu-keybindings, facemenu-face-menu):
Richard M. Stallman <rms@gnu.org>
parents:
10238
diff
changeset
|
735 (define-key menu key (cons name function)))))) |
3d30caa4b459
(facemenu-keybindings, facemenu-face-menu):
Richard M. Stallman <rms@gnu.org>
parents:
10238
diff
changeset
|
736 nil) ; Return nil for facemenu-iterate |
9623
fe1c170fa35a
(facemenu-get-face): Don't add to menu here.
Boris Goldowsky <boris@gnu.org>
parents:
9494
diff
changeset
|
737 |
63792
8e5d2e4fa77a
(facemenu-unlisted-faces): Add foreground and background color faces.
Lute Kamstra <lute@gnu.org>
parents:
63769
diff
changeset
|
738 (defun facemenu-add-new-color (color menu) |
44611
e4a2909015d3
(facemenu-add-new-face): Use this only for faces. Delete arg MENU.
Richard M. Stallman <rms@gnu.org>
parents:
44593
diff
changeset
|
739 "Add COLOR (a color name string) to the appropriate Face menu. |
63792
8e5d2e4fa77a
(facemenu-unlisted-faces): Add foreground and background color faces.
Lute Kamstra <lute@gnu.org>
parents:
63769
diff
changeset
|
740 MENU should be `facemenu-foreground-menu' or `facemenu-background-menu'. |
63897
f8e70842f12b
(facemenu-unlisted-faces): Delete foreground and background color
Lute Kamstra <lute@gnu.org>
parents:
63814
diff
changeset
|
741 Return the event type (a symbol) of the added menu entry. |
44611
e4a2909015d3
(facemenu-add-new-face): Use this only for faces. Delete arg MENU.
Richard M. Stallman <rms@gnu.org>
parents:
44593
diff
changeset
|
742 |
e4a2909015d3
(facemenu-add-new-face): Use this only for faces. Delete arg MENU.
Richard M. Stallman <rms@gnu.org>
parents:
44593
diff
changeset
|
743 This is called whenever you use a new color." |
63792
8e5d2e4fa77a
(facemenu-unlisted-faces): Add foreground and background color faces.
Lute Kamstra <lute@gnu.org>
parents:
63769
diff
changeset
|
744 (let (symbol docstring) |
8e5d2e4fa77a
(facemenu-unlisted-faces): Add foreground and background color faces.
Lute Kamstra <lute@gnu.org>
parents:
63769
diff
changeset
|
745 (unless (color-defined-p color) |
8e5d2e4fa77a
(facemenu-unlisted-faces): Add foreground and background color faces.
Lute Kamstra <lute@gnu.org>
parents:
63769
diff
changeset
|
746 (error "Color `%s' undefined" color)) |
44611
e4a2909015d3
(facemenu-add-new-face): Use this only for faces. Delete arg MENU.
Richard M. Stallman <rms@gnu.org>
parents:
44593
diff
changeset
|
747 (cond ((eq menu 'facemenu-foreground-menu) |
e4a2909015d3
(facemenu-add-new-face): Use this only for faces. Delete arg MENU.
Richard M. Stallman <rms@gnu.org>
parents:
44593
diff
changeset
|
748 (setq docstring |
e4a2909015d3
(facemenu-add-new-face): Use this only for faces. Delete arg MENU.
Richard M. Stallman <rms@gnu.org>
parents:
44593
diff
changeset
|
749 (format "Select foreground color %s for subsequent insertion." |
63792
8e5d2e4fa77a
(facemenu-unlisted-faces): Add foreground and background color faces.
Lute Kamstra <lute@gnu.org>
parents:
63769
diff
changeset
|
750 color) |
63897
f8e70842f12b
(facemenu-unlisted-faces): Delete foreground and background color
Lute Kamstra <lute@gnu.org>
parents:
63814
diff
changeset
|
751 symbol (intern (concat "fg:" color)))) |
44611
e4a2909015d3
(facemenu-add-new-face): Use this only for faces. Delete arg MENU.
Richard M. Stallman <rms@gnu.org>
parents:
44593
diff
changeset
|
752 ((eq menu 'facemenu-background-menu) |
e4a2909015d3
(facemenu-add-new-face): Use this only for faces. Delete arg MENU.
Richard M. Stallman <rms@gnu.org>
parents:
44593
diff
changeset
|
753 (setq docstring |
e4a2909015d3
(facemenu-add-new-face): Use this only for faces. Delete arg MENU.
Richard M. Stallman <rms@gnu.org>
parents:
44593
diff
changeset
|
754 (format "Select background color %s for subsequent insertion." |
63792
8e5d2e4fa77a
(facemenu-unlisted-faces): Add foreground and background color faces.
Lute Kamstra <lute@gnu.org>
parents:
63769
diff
changeset
|
755 color) |
63897
f8e70842f12b
(facemenu-unlisted-faces): Delete foreground and background color
Lute Kamstra <lute@gnu.org>
parents:
63814
diff
changeset
|
756 symbol (intern (concat "bg:" color)))) |
63792
8e5d2e4fa77a
(facemenu-unlisted-faces): Add foreground and background color faces.
Lute Kamstra <lute@gnu.org>
parents:
63769
diff
changeset
|
757 (t (error "MENU should be `facemenu-foreground-menu' or `facemenu-background-menu'"))) |
63897
f8e70842f12b
(facemenu-unlisted-faces): Delete foreground and background color
Lute Kamstra <lute@gnu.org>
parents:
63814
diff
changeset
|
758 (unless (facemenu-iterate ; Check if color is already in the menu. |
f8e70842f12b
(facemenu-unlisted-faces): Delete foreground and background color
Lute Kamstra <lute@gnu.org>
parents:
63814
diff
changeset
|
759 (lambda (m) (and (listp m) |
f8e70842f12b
(facemenu-unlisted-faces): Delete foreground and background color
Lute Kamstra <lute@gnu.org>
parents:
63814
diff
changeset
|
760 (eq (car m) symbol))) |
f8e70842f12b
(facemenu-unlisted-faces): Delete foreground and background color
Lute Kamstra <lute@gnu.org>
parents:
63814
diff
changeset
|
761 (cdr (symbol-function menu))) |
f8e70842f12b
(facemenu-unlisted-faces): Delete foreground and background color
Lute Kamstra <lute@gnu.org>
parents:
63814
diff
changeset
|
762 ;; Color is not in the menu. Figure out where to put it. |
f8e70842f12b
(facemenu-unlisted-faces): Delete foreground and background color
Lute Kamstra <lute@gnu.org>
parents:
63814
diff
changeset
|
763 (let ((key (vector symbol)) |
f8e70842f12b
(facemenu-unlisted-faces): Delete foreground and background color
Lute Kamstra <lute@gnu.org>
parents:
63814
diff
changeset
|
764 (function 'facemenu-set-face-from-menu) |
f8e70842f12b
(facemenu-unlisted-faces): Delete foreground and background color
Lute Kamstra <lute@gnu.org>
parents:
63814
diff
changeset
|
765 (menu-val (symbol-function menu))) |
f8e70842f12b
(facemenu-unlisted-faces): Delete foreground and background color
Lute Kamstra <lute@gnu.org>
parents:
63814
diff
changeset
|
766 (if (and facemenu-new-faces-at-end |
f8e70842f12b
(facemenu-unlisted-faces): Delete foreground and background color
Lute Kamstra <lute@gnu.org>
parents:
63814
diff
changeset
|
767 (> (length menu-val) 3)) |
f8e70842f12b
(facemenu-unlisted-faces): Delete foreground and background color
Lute Kamstra <lute@gnu.org>
parents:
63814
diff
changeset
|
768 (define-key-after menu-val key (cons color function) |
f8e70842f12b
(facemenu-unlisted-faces): Delete foreground and background color
Lute Kamstra <lute@gnu.org>
parents:
63814
diff
changeset
|
769 (car (nth (- (length menu-val) 3) menu-val))) |
f8e70842f12b
(facemenu-unlisted-faces): Delete foreground and background color
Lute Kamstra <lute@gnu.org>
parents:
63814
diff
changeset
|
770 (define-key menu key (cons color function))))) |
63792
8e5d2e4fa77a
(facemenu-unlisted-faces): Add foreground and background color faces.
Lute Kamstra <lute@gnu.org>
parents:
63769
diff
changeset
|
771 symbol)) |
44611
e4a2909015d3
(facemenu-add-new-face): Use this only for faces. Delete arg MENU.
Richard M. Stallman <rms@gnu.org>
parents:
44593
diff
changeset
|
772 |
9623
fe1c170fa35a
(facemenu-get-face): Don't add to menu here.
Boris Goldowsky <boris@gnu.org>
parents:
9494
diff
changeset
|
773 (defun facemenu-complete-face-list (&optional oldlist) |
15358
91b8056dcd35
(facemenu-complete-face-list): Doc fix.
Karl Heuer <kwzh@gnu.org>
parents:
14901
diff
changeset
|
774 "Return list of all faces that look different. |
49588
37645a051842
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
46248
diff
changeset
|
775 Starts with given ALIST of faces, and adds elements only if they display |
9623
fe1c170fa35a
(facemenu-get-face): Don't add to menu here.
Boris Goldowsky <boris@gnu.org>
parents:
9494
diff
changeset
|
776 differently from any face already on the list. |
49588
37645a051842
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
46248
diff
changeset
|
777 The faces on ALIST will end up at the end of the returned list, in reverse |
9623
fe1c170fa35a
(facemenu-get-face): Don't add to menu here.
Boris Goldowsky <boris@gnu.org>
parents:
9494
diff
changeset
|
778 order." |
fe1c170fa35a
(facemenu-get-face): Don't add to menu here.
Boris Goldowsky <boris@gnu.org>
parents:
9494
diff
changeset
|
779 (let ((list (nreverse (mapcar 'car oldlist)))) |
49588
37645a051842
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
46248
diff
changeset
|
780 (facemenu-iterate |
37645a051842
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
46248
diff
changeset
|
781 (lambda (new-face) |
9623
fe1c170fa35a
(facemenu-get-face): Don't add to menu here.
Boris Goldowsky <boris@gnu.org>
parents:
9494
diff
changeset
|
782 (if (not (memq new-face list)) |
fe1c170fa35a
(facemenu-get-face): Don't add to menu here.
Boris Goldowsky <boris@gnu.org>
parents:
9494
diff
changeset
|
783 (setq list (cons new-face list))) |
fe1c170fa35a
(facemenu-get-face): Don't add to menu here.
Boris Goldowsky <boris@gnu.org>
parents:
9494
diff
changeset
|
784 nil) |
fe1c170fa35a
(facemenu-get-face): Don't add to menu here.
Boris Goldowsky <boris@gnu.org>
parents:
9494
diff
changeset
|
785 (nreverse (face-list))) |
fe1c170fa35a
(facemenu-get-face): Don't add to menu here.
Boris Goldowsky <boris@gnu.org>
parents:
9494
diff
changeset
|
786 list)) |
fe1c170fa35a
(facemenu-get-face): Don't add to menu here.
Boris Goldowsky <boris@gnu.org>
parents:
9494
diff
changeset
|
787 |
30092
6d383cf4bb99
Docstrings fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29050
diff
changeset
|
788 (defun facemenu-iterate (func list) |
8743 | 789 "Apply FUNC to each element of LIST until one returns non-nil. |
790 Returns the non-nil value it found, or nil if all were nil." | |
30092
6d383cf4bb99
Docstrings fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29050
diff
changeset
|
791 (while (and list (not (funcall func (car list)))) |
6d383cf4bb99
Docstrings fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29050
diff
changeset
|
792 (setq list (cdr list))) |
6d383cf4bb99
Docstrings fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29050
diff
changeset
|
793 (car list)) |
8743 | 794 |
795 (facemenu-update) | |
796 | |
46248
345d4d775bf0
Move `provide' to the end.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
45869
diff
changeset
|
797 (provide 'facemenu) |
52401 | 798 |
799 ;;; arch-tag: 85f6d02b-9085-420e-b651-0678f0e9c7eb | |
8743 | 800 ;;; facemenu.el ends here |