Mercurial > emacs
annotate lisp/faces.el @ 110410:f2e111723c3a
Merge changes made in Gnus trunk.
Reimplement nnimap, and do tweaks to the rest of the code to support that.
* gnus-int.el (gnus-finish-retrieve-group-infos)
(gnus-retrieve-group-data-early): New functions.
* gnus-range.el (gnus-range-nconcat): New function.
* gnus-start.el (gnus-get-unread-articles): Support early retrieval of
data.
(gnus-read-active-for-groups): Support finishing the early retrieval of
data.
* gnus-sum.el (gnus-summary-move-article): Pass the move-to group name
if the move is internal, so that nnimap can do fast internal moves.
* gnus.el (gnus-article-special-mark-lists): Add uid/active tuples, for
nnimap usage.
* nnimap.el: Rewritten.
* nnmail.el (nnmail-inhibit-default-split-group): New internal variable
to allow the mail splitting to not return a default group. This is
useful for nnimap, which will leave unmatched mail in the inbox.
* utf7.el (utf7-encode): Autoload.
Implement shell connection.
* nnimap.el (nnimap-open-shell-stream): New function.
(nnimap-open-connection): Use it.
Get the number of lines by using BODYSTRUCTURE.
(nnimap-transform-headers): Get the number of lines in each message.
(nnimap-retrieve-headers): Query for BODYSTRUCTURE so that we get the
number of lines.
Not all servers return UIDNEXT. Work past this problem.
Remove junk from end of file.
Fix typo in "bogus" section.
Make capabilties be case-insensitive.
Require cl when compiling.
Don't bug out if the LIST command doesn't have any parameters.
2010-09-17 Knut Anders Hatlen <kahatlen@gmail.com> (tiny change)
* nnimap.el (nnimap-get-groups): Don't bug out if the LIST command
doesn't have any parameters.
(mm-text-html-renderer): Document gnus-article-html.
2010-09-17 Julien Danjou <julien@danjou.info> (tiny fix)
* mm-decode.el (mm-text-html-renderer): Document gnus-article-html.
* dgnushack.el: Define netrc-credentials.
If the user doesn't have a /etc/services, supply some sensible port defaults.
Have `unseen-or-unread' select an unread unseen article first.
(nntp-open-server): Return whether the open was successful or not.
Throughout all files, replace (save-excursion (set-buffer ...)) with (with-current-buffer ... ).
Save result so that it doesn't say "failed" all the time.
Add ~/.authinfo to the default, since that's probably most useful for users.
Don't use the "finish" method when we're reading from the agent.
Add some more nnimap-relevant agent stuff to nnagent.el.
* nnimap.el (nnimap-with-process-buffer): Removed.
Revert one line that was changed by mistake in the last checkin.
(nnimap-open-connection): Don't error out when we can't make a connection
nnimap-related changes to avoid bugging out if we can't contact a server.
* gnus-start.el (gnus-get-unread-articles): Don't try to scan groups
from methods that are denied.
* nnimap.el (nnimap-possibly-change-group): Return nil if we can't log
in.
(nnimap-finish-retrieve-group-infos): Make sure we're not waiting for
nothing.
* gnus-sum.el (gnus-select-newsgroup): Indent.
author | Katsumi Yamaoka <yamaoka@jpl.org> |
---|---|
date | Sat, 18 Sep 2010 10:02:19 +0000 |
parents | 280c8ae2476d |
children | 515d80e174ba |
rev | line source |
---|---|
25012 | 1 ;;; faces.el --- Lisp faces |
2456 | 2 |
64762
41bb365f41c4
Update years in copyright notice; nfc.
Thien-Thi Nguyen <ttn@gnuvola.org>
parents:
64724
diff
changeset
|
3 ;; Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, |
106815 | 4 ;; 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 |
104752
fcbe482879e0
(describe-face): Adjust the output format to be more like
Glenn Morris <rgm@gnu.org>
parents:
104258
diff
changeset
|
5 ;; Free Software Foundation, Inc. |
2456 | 6 |
38697
a19197c6442f
Keyword added and FSF specified as Maintainer.
Pavel Janík <Pavel@Janik.cz>
parents:
38233
diff
changeset
|
7 ;; Maintainer: FSF |
45078 | 8 ;; Keywords: internal |
110015
280c8ae2476d
Add "Package:" file headers to denote built-in packages.
Chong Yidong <cyd@stupidchicken.com>
parents:
109749
diff
changeset
|
9 ;; Package: emacs |
38697
a19197c6442f
Keyword added and FSF specified as Maintainer.
Pavel Janík <Pavel@Janik.cz>
parents:
38233
diff
changeset
|
10 |
2456 | 11 ;; This file is part of GNU Emacs. |
12 | |
94678
ee5932bf781d
Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents:
94054
diff
changeset
|
13 ;; GNU Emacs is free software: you can redistribute it and/or modify |
2456 | 14 ;; it under the terms of the GNU General Public License as published by |
94678
ee5932bf781d
Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents:
94054
diff
changeset
|
15 ;; the Free Software Foundation, either version 3 of the License, or |
ee5932bf781d
Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents:
94054
diff
changeset
|
16 ;; (at your option) any later version. |
2456 | 17 |
18 ;; GNU Emacs is distributed in the hope that it will be useful, | |
19 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of | |
20 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
21 ;; GNU General Public License for more details. | |
22 | |
23 ;; You should have received a copy of the GNU General Public License | |
94678
ee5932bf781d
Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents:
94054
diff
changeset
|
24 ;; along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. |
2456 | 25 |
26 ;;; Commentary: | |
27 | |
28 ;;; Code: | |
29 | |
10107
2af74ff52cd0
At compile time, discard any defsubr definitions
Richard M. Stallman <rms@gnu.org>
parents:
10105
diff
changeset
|
30 (eval-when-compile |
92948
73a01bf5cb80
* faces.el (xw-defined-colors):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
92717
diff
changeset
|
31 (require 'cl)) |
73a01bf5cb80
* faces.el (xw-defined-colors):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
92717
diff
changeset
|
32 |
73a01bf5cb80
* faces.el (xw-defined-colors):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
92717
diff
changeset
|
33 (declare-function xw-defined-colors "term/x-win" (&optional frame)) |
2456 | 34 |
65289
f6a81af3abe8
(help-xref-stack-item): Add defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
65084
diff
changeset
|
35 (defvar help-xref-stack-item) |
96435
414b3d1e76df
(face-name-history): New variable.
Juri Linkov <juri@jurta.org>
parents:
96398
diff
changeset
|
36 |
414b3d1e76df
(face-name-history): New variable.
Juri Linkov <juri@jurta.org>
parents:
96398
diff
changeset
|
37 (defvar face-name-history nil |
414b3d1e76df
(face-name-history): New variable.
Juri Linkov <juri@jurta.org>
parents:
96398
diff
changeset
|
38 "History list for some commands that read face names. |
414b3d1e76df
(face-name-history): New variable.
Juri Linkov <juri@jurta.org>
parents:
96398
diff
changeset
|
39 Maximum length of the history list is determined by the value |
414b3d1e76df
(face-name-history): New variable.
Juri Linkov <juri@jurta.org>
parents:
96398
diff
changeset
|
40 of `history-length', which see.") |
414b3d1e76df
(face-name-history): New variable.
Juri Linkov <juri@jurta.org>
parents:
96398
diff
changeset
|
41 |
2744
f4fc0c4c76f9
Re-arranged stuff to put defsubst accessors at the top
Jim Blandy <jimb@redhat.com>
parents:
2715
diff
changeset
|
42 |
25012 | 43 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
44 ;;; Font selection. | |
45 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | |
2456 | 46 |
25012 | 47 (defgroup font-selection nil |
48 "Influencing face font selection." | |
49 :group 'faces) | |
2456 | 50 |
12562
a9b08e50d6ec
(x-create-frame-with-faces): Set background-mode
Karl Heuer <kwzh@gnu.org>
parents:
12475
diff
changeset
|
51 |
25012 | 52 (defcustom face-font-selection-order |
53 '(:width :height :weight :slant) | |
100171 | 54 "A list specifying how face font selection chooses fonts. |
25012 | 55 Each of the four symbols `:width', `:height', `:weight', and `:slant' |
56 must appear once in the list, and the list must not contain any other | |
79031
7a1822d578cf
(face-font-selection-order): Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
79026
diff
changeset
|
57 elements. Font selection first tries to find a best matching font |
79026
ebc0c510ff84
(face-font-selection-order): Doc fix.
Juanma Barranquero <lekktu@gmail.com>
parents:
78374
diff
changeset
|
58 for those face attributes that appear before in the list. For |
25012 | 59 example, if `:slant' appears before `:height', font selection first |
60 tries to find a font with a suitable slant, even if this results in | |
61 a font height that isn't optimal." | |
48713
a91fa6973510
(face-font-selection-order)
Andreas Schwab <schwab@suse.de>
parents:
48522
diff
changeset
|
62 :tag "Font selection order" |
30306
7a694e8efd12
(face-font-selection-order)
Gerd Moellmann <gerd@gnu.org>
parents:
30188
diff
changeset
|
63 :type '(list symbol symbol symbol symbol) |
25012 | 64 :group 'font-selection |
65 :set #'(lambda (symbol value) | |
66 (set-default symbol value) | |
67 (internal-set-font-selection-order value))) | |
17522
209c61e51bd0
(frame-set-background-mode): New function.
Richard M. Stallman <rms@gnu.org>
parents:
17386
diff
changeset
|
68 |
33371
8259eb8d96c2
(face-font-registry-alternatives): New user-option.
Gerd Moellmann <gerd@gnu.org>
parents:
33008
diff
changeset
|
69 |
96247
002173686f70
(face-font-family-alternatives, variable-pitch): Use
Andreas Schwab <schwab@suse.de>
parents:
96241
diff
changeset
|
70 ;; In the absence of Fontconfig support, Monospace and Sans Serif are |
96241
514c1dae72db
(face-font-family-alternatives, variable-pitch): Change "Sans" to the
Chong Yidong <cyd@stupidchicken.com>
parents:
96169
diff
changeset
|
71 ;; unavailable, and we fall back on the courier and helv families, |
514c1dae72db
(face-font-family-alternatives, variable-pitch): Change "Sans" to the
Chong Yidong <cyd@stupidchicken.com>
parents:
96169
diff
changeset
|
72 ;; which are generally available. |
25012 | 73 (defcustom face-font-family-alternatives |
105870
26baacb565b0
* textmodes/tex-mode.el (tex-alt-dvi-print-command)
Dan Nicolaescu <dann@ics.uci.edu>
parents:
105772
diff
changeset
|
74 (mapcar (lambda (arg) (mapcar 'purecopy arg)) |
96169
abc9f7184a8c
(fixed-pitch): Use "Monospace" family.
Chong Yidong <cyd@stupidchicken.com>
parents:
96079
diff
changeset
|
75 '(("Monospace" "courier" "fixed") |
99144
b7eb74a4d86b
* faces.el (face-font-family-alternatives): Add "CMU Typewriter Text"
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
98801
diff
changeset
|
76 ("courier" "CMU Typewriter Text" "fixed") |
96247
002173686f70
(face-font-family-alternatives, variable-pitch): Use
Andreas Schwab <schwab@suse.de>
parents:
96241
diff
changeset
|
77 ("Sans Serif" "helv" "helvetica" "arial" "fixed") |
105870
26baacb565b0
* textmodes/tex-mode.el (tex-alt-dvi-print-command)
Dan Nicolaescu <dann@ics.uci.edu>
parents:
105772
diff
changeset
|
78 ("helv" "helvetica" "arial" "fixed"))) |
100171 | 79 "Alist of alternative font family names. |
42705 | 80 Each element has the form (FAMILY ALTERNATIVE1 ALTERNATIVE2 ...). |
25012 | 81 If fonts of family FAMILY can't be loaded, try ALTERNATIVE1, then |
82 ALTERNATIVE2 etc." | |
48713
a91fa6973510
(face-font-selection-order)
Andreas Schwab <schwab@suse.de>
parents:
48522
diff
changeset
|
83 :tag "Alternative font families to try" |
30306
7a694e8efd12
(face-font-selection-order)
Gerd Moellmann <gerd@gnu.org>
parents:
30188
diff
changeset
|
84 :type '(repeat (repeat string)) |
25012 | 85 :group 'font-selection |
86 :set #'(lambda (symbol value) | |
87 (set-default symbol value) | |
88 (internal-set-alternative-font-family-alist value))) | |
13725 | 89 |
25012 | 90 |
33371
8259eb8d96c2
(face-font-registry-alternatives): New user-option.
Gerd Moellmann <gerd@gnu.org>
parents:
33008
diff
changeset
|
91 ;; This is defined originally in xfaces.c. |
8259eb8d96c2
(face-font-registry-alternatives): New user-option.
Gerd Moellmann <gerd@gnu.org>
parents:
33008
diff
changeset
|
92 (defcustom face-font-registry-alternatives |
105870
26baacb565b0
* textmodes/tex-mode.el (tex-alt-dvi-print-command)
Dan Nicolaescu <dann@ics.uci.edu>
parents:
105772
diff
changeset
|
93 (mapcar (lambda (arg) (mapcar 'purecopy arg)) |
39549
044b46ec5fff
(face-font-registry-alternatives) [windows-nt]: Make
Andrew Innes <andrewi@gnu.org>
parents:
38697
diff
changeset
|
94 (if (eq system-type 'windows-nt) |
42969
bdcf2b5f4ae2
(face-font-registry-alternatives) [windows-nt]: Add
Jason Rumney <jasonr@gnu.org>
parents:
42705
diff
changeset
|
95 '(("iso8859-1" "ms-oemlatin") |
90682
df64e21eebd0
(face-font-registry-alternatives): Add gb18030.
Kenichi Handa <handa@m17n.org>
parents:
90650
diff
changeset
|
96 ("gb2312.1980" "gb2312" "gbk" "gb18030") |
39549
044b46ec5fff
(face-font-registry-alternatives) [windows-nt]: Make
Andrew Innes <andrewi@gnu.org>
parents:
38697
diff
changeset
|
97 ("jisx0208.1990" "jisx0208.1983" "jisx0208.1978") |
044b46ec5fff
(face-font-registry-alternatives) [windows-nt]: Make
Andrew Innes <andrewi@gnu.org>
parents:
38697
diff
changeset
|
98 ("ksc5601.1989" "ksx1001.1992" "ksc5601.1987") |
044b46ec5fff
(face-font-registry-alternatives) [windows-nt]: Make
Andrew Innes <andrewi@gnu.org>
parents:
38697
diff
changeset
|
99 ("muletibetan-2" "muletibetan-0")) |
90682
df64e21eebd0
(face-font-registry-alternatives): Add gb18030.
Kenichi Handa <handa@m17n.org>
parents:
90650
diff
changeset
|
100 '(("gb2312.1980" "gb2312.80&gb8565.88" "gbk" "gb18030") |
39549
044b46ec5fff
(face-font-registry-alternatives) [windows-nt]: Make
Andrew Innes <andrewi@gnu.org>
parents:
38697
diff
changeset
|
101 ("jisx0208.1990" "jisx0208.1983" "jisx0208.1978") |
044b46ec5fff
(face-font-registry-alternatives) [windows-nt]: Make
Andrew Innes <andrewi@gnu.org>
parents:
38697
diff
changeset
|
102 ("ksc5601.1989" "ksx1001.1992" "ksc5601.1987") |
105870
26baacb565b0
* textmodes/tex-mode.el (tex-alt-dvi-print-command)
Dan Nicolaescu <dann@ics.uci.edu>
parents:
105772
diff
changeset
|
103 ("muletibetan-2" "muletibetan-0")))) |
100171 | 104 "Alist of alternative font registry names. |
42705 | 105 Each element has the form (REGISTRY ALTERNATIVE1 ALTERNATIVE2 ...). |
34162
08b928780fd1
(face-font-registry-alternatives): Add entries for CJK
Kenichi Handa <handa@m17n.org>
parents:
34018
diff
changeset
|
106 If fonts of registry REGISTRY can be loaded, font selection |
08b928780fd1
(face-font-registry-alternatives): Add entries for CJK
Kenichi Handa <handa@m17n.org>
parents:
34018
diff
changeset
|
107 tries to find a best matching font among all fonts of registry |
08b928780fd1
(face-font-registry-alternatives): Add entries for CJK
Kenichi Handa <handa@m17n.org>
parents:
34018
diff
changeset
|
108 REGISTRY, ALTERNATIVE1, ALTERNATIVE2, and etc." |
48713
a91fa6973510
(face-font-selection-order)
Andreas Schwab <schwab@suse.de>
parents:
48522
diff
changeset
|
109 :tag "Alternative font registries to try" |
33371
8259eb8d96c2
(face-font-registry-alternatives): New user-option.
Gerd Moellmann <gerd@gnu.org>
parents:
33008
diff
changeset
|
110 :type '(repeat (repeat string)) |
33419
21ac2c51ac59
(face-font-registry-alternatives): Add :version.
Dave Love <fx@gnu.org>
parents:
33371
diff
changeset
|
111 :version "21.1" |
33371
8259eb8d96c2
(face-font-registry-alternatives): New user-option.
Gerd Moellmann <gerd@gnu.org>
parents:
33008
diff
changeset
|
112 :group 'font-selection |
8259eb8d96c2
(face-font-registry-alternatives): New user-option.
Gerd Moellmann <gerd@gnu.org>
parents:
33008
diff
changeset
|
113 :set #'(lambda (symbol value) |
8259eb8d96c2
(face-font-registry-alternatives): New user-option.
Gerd Moellmann <gerd@gnu.org>
parents:
33008
diff
changeset
|
114 (set-default symbol value) |
8259eb8d96c2
(face-font-registry-alternatives): New user-option.
Gerd Moellmann <gerd@gnu.org>
parents:
33008
diff
changeset
|
115 (internal-set-alternative-font-registry-alist value))) |
8259eb8d96c2
(face-font-registry-alternatives): New user-option.
Gerd Moellmann <gerd@gnu.org>
parents:
33008
diff
changeset
|
116 |
2744
f4fc0c4c76f9
Re-arranged stuff to put defsubst accessors at the top
Jim Blandy <jimb@redhat.com>
parents:
2715
diff
changeset
|
117 |
25012 | 118 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
119 ;;; Creation, copying. | |
120 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | |
2744
f4fc0c4c76f9
Re-arranged stuff to put defsubst accessors at the top
Jim Blandy <jimb@redhat.com>
parents:
2715
diff
changeset
|
121 |
3925
f286657c098e
* faces.el (global-face-data): Doc fix.
Jim Blandy <jimb@redhat.com>
parents:
3911
diff
changeset
|
122 |
2744
f4fc0c4c76f9
Re-arranged stuff to put defsubst accessors at the top
Jim Blandy <jimb@redhat.com>
parents:
2715
diff
changeset
|
123 (defun face-list () |
25012 | 124 "Return a list of all defined face names." |
125 (mapcar #'car face-new-frame-defaults)) | |
126 | |
127 | |
128 ;;; ### If not frame-local initialize by what X resources? | |
129 | |
130 (defun make-face (face &optional no-init-from-resources) | |
131 "Define a new face with name FACE, a symbol. | |
132 NO-INIT-FROM-RESOURCES non-nil means don't initialize frame-local | |
133 variants of FACE from X resources. (X resources recognized are found | |
134 in the global variable `face-x-resources'.) If FACE is already known | |
135 as a face, leave it unmodified. Value is FACE." | |
96435
414b3d1e76df
(face-name-history): New variable.
Juri Linkov <juri@jurta.org>
parents:
96398
diff
changeset
|
136 (interactive (list (read-from-minibuffer |
414b3d1e76df
(face-name-history): New variable.
Juri Linkov <juri@jurta.org>
parents:
96398
diff
changeset
|
137 "Make face: " nil nil t 'face-name-history))) |
25012 | 138 (unless (facep face) |
139 ;; Make frame-local faces (this also makes the global one). | |
140 (dolist (frame (frame-list)) | |
141 (internal-make-lisp-face face frame)) | |
142 ;; Add the face to the face menu. | |
143 (when (fboundp 'facemenu-add-new-face) | |
144 (facemenu-add-new-face face)) | |
145 ;; Define frame-local faces for all frames from X resources. | |
146 (unless no-init-from-resources | |
147 (make-face-x-resource-internal face))) | |
148 face) | |
149 | |
150 | |
151 (defun make-empty-face (face) | |
152 "Define a new, empty face with name FACE. | |
153 If the face already exists, it is left unmodified. Value is FACE." | |
96435
414b3d1e76df
(face-name-history): New variable.
Juri Linkov <juri@jurta.org>
parents:
96398
diff
changeset
|
154 (interactive (list (read-from-minibuffer |
414b3d1e76df
(face-name-history): New variable.
Juri Linkov <juri@jurta.org>
parents:
96398
diff
changeset
|
155 "Make empty face: " nil nil t 'face-name-history))) |
25012 | 156 (make-face face 'no-init-from-resources)) |
157 | |
158 | |
159 (defun copy-face (old-face new-face &optional frame new-frame) | |
160 "Define a face just like OLD-FACE, with name NEW-FACE. | |
161 | |
162 If NEW-FACE already exists as a face, it is modified to be like | |
163 OLD-FACE. If it doesn't already exist, it is created. | |
164 | |
47258
86c1fc3c48f5
(copy-face): Fix spacing.
Juanma Barranquero <lekktu@gmail.com>
parents:
46267
diff
changeset
|
165 If the optional argument FRAME is given as a frame, NEW-FACE is |
25012 | 166 changed on FRAME only. |
167 If FRAME is t, the frame-independent default specification for OLD-FACE | |
168 is copied to NEW-FACE. | |
169 If FRAME is nil, copying is done for the frame-independent defaults | |
170 and for each existing frame. | |
171 | |
172 If the optional fourth argument NEW-FRAME is given, | |
173 copy the information from face OLD-FACE on frame FRAME | |
79615
c70a8429c7d8
(copy-face): Create the new face explicitly if it does not exist already.
Richard M. Stallman <rms@gnu.org>
parents:
79354
diff
changeset
|
174 to NEW-FACE on frame NEW-FRAME. In this case, FRAME may not be nil." |
25012 | 175 (let ((inhibit-quit t)) |
176 (if (null frame) | |
177 (progn | |
79615
c70a8429c7d8
(copy-face): Create the new face explicitly if it does not exist already.
Richard M. Stallman <rms@gnu.org>
parents:
79354
diff
changeset
|
178 (when new-frame |
c70a8429c7d8
(copy-face): Create the new face explicitly if it does not exist already.
Richard M. Stallman <rms@gnu.org>
parents:
79354
diff
changeset
|
179 (error "Copying face %s from all frames to one frame" |
c70a8429c7d8
(copy-face): Create the new face explicitly if it does not exist already.
Richard M. Stallman <rms@gnu.org>
parents:
79354
diff
changeset
|
180 old-face)) |
c70a8429c7d8
(copy-face): Create the new face explicitly if it does not exist already.
Richard M. Stallman <rms@gnu.org>
parents:
79354
diff
changeset
|
181 (make-empty-face new-face) |
25012 | 182 (dolist (frame (frame-list)) |
183 (copy-face old-face new-face frame)) | |
184 (copy-face old-face new-face t)) | |
79615
c70a8429c7d8
(copy-face): Create the new face explicitly if it does not exist already.
Richard M. Stallman <rms@gnu.org>
parents:
79354
diff
changeset
|
185 (make-empty-face new-face) |
25012 | 186 (internal-copy-lisp-face old-face new-face frame new-frame)) |
187 new-face)) | |
188 | |
189 | |
190 | |
191 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | |
192 ;;; Obsolete functions | |
193 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | |
194 | |
195 ;; The functions in this section are defined because Lisp packages use | |
196 ;; them, despite the prefix `internal-' suggesting that they are | |
28840 | 197 ;; private to the face implementation. |
2744
f4fc0c4c76f9
Re-arranged stuff to put defsubst accessors at the top
Jim Blandy <jimb@redhat.com>
parents:
2715
diff
changeset
|
198 |
f4fc0c4c76f9
Re-arranged stuff to put defsubst accessors at the top
Jim Blandy <jimb@redhat.com>
parents:
2715
diff
changeset
|
199 (defun internal-find-face (name &optional frame) |
25012 | 200 "Retrieve the face named NAME. |
201 Return nil if there is no such face. | |
75579
5e69c78ab3f4
(internal-find-face, internal-get-face): Doc fixes.
Juanma Barranquero <lekktu@gmail.com>
parents:
75566
diff
changeset
|
202 If NAME is already a face, it is simply returned. |
5e69c78ab3f4
(internal-find-face, internal-get-face): Doc fixes.
Juanma Barranquero <lekktu@gmail.com>
parents:
75566
diff
changeset
|
203 The optional argument FRAME is ignored." |
25012 | 204 (facep name)) |
29354
4ed4a700358b
Update calls to make-obsolete with a WHEN argument.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
28907
diff
changeset
|
205 (make-obsolete 'internal-find-face 'facep "21.1") |
25012 | 206 |
2744
f4fc0c4c76f9
Re-arranged stuff to put defsubst accessors at the top
Jim Blandy <jimb@redhat.com>
parents:
2715
diff
changeset
|
207 |
f4fc0c4c76f9
Re-arranged stuff to put defsubst accessors at the top
Jim Blandy <jimb@redhat.com>
parents:
2715
diff
changeset
|
208 (defun internal-get-face (name &optional frame) |
f4fc0c4c76f9
Re-arranged stuff to put defsubst accessors at the top
Jim Blandy <jimb@redhat.com>
parents:
2715
diff
changeset
|
209 "Retrieve the face named NAME; error if there is none. |
75579
5e69c78ab3f4
(internal-find-face, internal-get-face): Doc fixes.
Juanma Barranquero <lekktu@gmail.com>
parents:
75566
diff
changeset
|
210 If NAME is already a face, it is simply returned. |
5e69c78ab3f4
(internal-find-face, internal-get-face): Doc fixes.
Juanma Barranquero <lekktu@gmail.com>
parents:
75566
diff
changeset
|
211 The optional argument FRAME is ignored." |
40351
a44d4a7dd8de
(internal-get-face): Use facep instead of the obsolete
Eli Zaretskii <eliz@gnu.org>
parents:
39830
diff
changeset
|
212 (or (facep name) |
25012 | 213 (check-face name))) |
46053
ef0684c3e07b
(frame-update-faces): Fix obsolescence declaration.
Juanma Barranquero <lekktu@gmail.com>
parents:
46041
diff
changeset
|
214 (make-obsolete 'internal-get-face "see `facep' and `check-face'." "21.1") |
2744
f4fc0c4c76f9
Re-arranged stuff to put defsubst accessors at the top
Jim Blandy <jimb@redhat.com>
parents:
2715
diff
changeset
|
215 |
25012 | 216 |
217 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | |
218 ;;; Predicates, type checks. | |
219 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | |
220 | |
221 (defun facep (face) | |
79651 | 222 "Return non-nil if FACE is a face name; nil otherwise. |
223 A face name can be a string or a symbol." | |
25012 | 224 (internal-lisp-face-p face)) |
225 | |
226 | |
227 (defun check-face (face) | |
228 "Signal an error if FACE doesn't name a face. | |
229 Value is FACE." | |
230 (unless (facep face) | |
231 (error "Not a face: %s" face)) | |
232 face) | |
2744
f4fc0c4c76f9
Re-arranged stuff to put defsubst accessors at the top
Jim Blandy <jimb@redhat.com>
parents:
2715
diff
changeset
|
233 |
f4fc0c4c76f9
Re-arranged stuff to put defsubst accessors at the top
Jim Blandy <jimb@redhat.com>
parents:
2715
diff
changeset
|
234 |
25012 | 235 ;; The ID returned is not to be confused with the internally used IDs |
236 ;; of realized faces. The ID assigned to Lisp faces is used to | |
237 ;; support faces in display table entries. | |
17386
b251c8820860
(make-face): New arg no-resources.
Richard M. Stallman <rms@gnu.org>
parents:
17173
diff
changeset
|
238 |
25012 | 239 (defun face-id (face &optional frame) |
46267
cd9282aa1d8a
(face-id): Fix typo.
Juanma Barranquero <lekktu@gmail.com>
parents:
46146
diff
changeset
|
240 "Return the internal ID of face with name FACE. |
81148
afd58ab52ea7
(face-id): If the argument is a face alias, return the ID of the target face.
Juanma Barranquero <lekktu@gmail.com>
parents:
76731
diff
changeset
|
241 If FACE is a face-alias, return the ID of the target face. |
60495 | 242 The optional argument FRAME is ignored, since the internal face ID |
243 of a face name is the same for all frames." | |
25012 | 244 (check-face face) |
81148
afd58ab52ea7
(face-id): If the argument is a face alias, return the ID of the target face.
Juanma Barranquero <lekktu@gmail.com>
parents:
76731
diff
changeset
|
245 (or (get face 'face) |
afd58ab52ea7
(face-id): If the argument is a face alias, return the ID of the target face.
Juanma Barranquero <lekktu@gmail.com>
parents:
76731
diff
changeset
|
246 (face-id (get face 'face-alias)))) |
2456 | 247 |
248 (defun face-equal (face1 face2 &optional frame) | |
25012 | 249 "Non-nil if faces FACE1 and FACE2 are equal. |
250 Faces are considered equal if all their attributes are equal. | |
62968
88922a349851
(face-equal): Improve argument/docstring consistency.
Juanma Barranquero <lekktu@gmail.com>
parents:
62947
diff
changeset
|
251 If the optional argument FRAME is given, report on FACE1 and FACE2 in that frame. |
88922a349851
(face-equal): Improve argument/docstring consistency.
Juanma Barranquero <lekktu@gmail.com>
parents:
62947
diff
changeset
|
252 If FRAME is t, report on the defaults for FACE1 and FACE2 (for new frames). |
25012 | 253 If FRAME is omitted or nil, use the selected frame." |
254 (internal-lisp-face-equal-p face1 face2 frame)) | |
255 | |
2456 | 256 |
257 (defun face-differs-from-default-p (face &optional frame) | |
55899
4592654cd2e9
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-369
Miles Bader <miles@gnu.org>
parents:
55898
diff
changeset
|
258 "Return non-nil if FACE displays differently from the default face. |
25012 | 259 If the optional argument FRAME is given, report on face FACE in that frame. |
260 If FRAME is t, report on the defaults for face FACE (for new frames). | |
55899
4592654cd2e9
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-369
Miles Bader <miles@gnu.org>
parents:
55898
diff
changeset
|
261 If FRAME is omitted or nil, use the selected frame." |
55902
084530cb1b2f
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-372
Miles Bader <miles@gnu.org>
parents:
55901
diff
changeset
|
262 (let ((attrs |
87494
26eb0118cbc6
(face-all-attributes): New function.
Richard M. Stallman <rms@gnu.org>
parents:
87483
diff
changeset
|
263 (delq :inherit (mapcar 'car face-attribute-name-alist))) |
55902
084530cb1b2f
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-372
Miles Bader <miles@gnu.org>
parents:
55901
diff
changeset
|
264 (differs nil)) |
084530cb1b2f
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-372
Miles Bader <miles@gnu.org>
parents:
55901
diff
changeset
|
265 (while (and attrs (not differs)) |
084530cb1b2f
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-372
Miles Bader <miles@gnu.org>
parents:
55901
diff
changeset
|
266 (let* ((attr (pop attrs)) |
084530cb1b2f
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-372
Miles Bader <miles@gnu.org>
parents:
55901
diff
changeset
|
267 (attr-val (face-attribute face attr frame t))) |
084530cb1b2f
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-372
Miles Bader <miles@gnu.org>
parents:
55901
diff
changeset
|
268 (when (and |
084530cb1b2f
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-372
Miles Bader <miles@gnu.org>
parents:
55901
diff
changeset
|
269 (not (eq attr-val 'unspecified)) |
084530cb1b2f
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-372
Miles Bader <miles@gnu.org>
parents:
55901
diff
changeset
|
270 (display-supports-face-attributes-p (list attr attr-val) |
084530cb1b2f
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-372
Miles Bader <miles@gnu.org>
parents:
55901
diff
changeset
|
271 frame)) |
084530cb1b2f
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-372
Miles Bader <miles@gnu.org>
parents:
55901
diff
changeset
|
272 (setq differs attr)))) |
084530cb1b2f
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-372
Miles Bader <miles@gnu.org>
parents:
55901
diff
changeset
|
273 differs)) |
10379
f9d713e8c77c
(face-nontrivial-p): New function.
Richard M. Stallman <rms@gnu.org>
parents:
10375
diff
changeset
|
274 |
2456 | 275 |
10379
f9d713e8c77c
(face-nontrivial-p): New function.
Richard M. Stallman <rms@gnu.org>
parents:
10375
diff
changeset
|
276 (defun face-nontrivial-p (face &optional frame) |
f9d713e8c77c
(face-nontrivial-p): New function.
Richard M. Stallman <rms@gnu.org>
parents:
10375
diff
changeset
|
277 "True if face FACE has some non-nil attribute. |
25012 | 278 If the optional argument FRAME is given, report on face FACE in that frame. |
279 If FRAME is t, report on the defaults for face FACE (for new frames). | |
280 If FRAME is omitted or nil, use the selected frame." | |
281 (not (internal-lisp-face-empty-p face frame))) | |
282 | |
283 | |
284 | |
285 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | |
286 ;;; Setting face attributes from X resources. | |
287 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | |
288 | |
289 (defcustom face-x-resources | |
105870
26baacb565b0
* textmodes/tex-mode.el (tex-alt-dvi-print-command)
Dan Nicolaescu <dann@ics.uci.edu>
parents:
105772
diff
changeset
|
290 (mapcar |
26baacb565b0
* textmodes/tex-mode.el (tex-alt-dvi-print-command)
Dan Nicolaescu <dann@ics.uci.edu>
parents:
105772
diff
changeset
|
291 (lambda (arg) |
26baacb565b0
* textmodes/tex-mode.el (tex-alt-dvi-print-command)
Dan Nicolaescu <dann@ics.uci.edu>
parents:
105772
diff
changeset
|
292 ;; FIXME; can we purecopy some of the conses too? |
26baacb565b0
* textmodes/tex-mode.el (tex-alt-dvi-print-command)
Dan Nicolaescu <dann@ics.uci.edu>
parents:
105772
diff
changeset
|
293 (cons (car arg) |
26baacb565b0
* textmodes/tex-mode.el (tex-alt-dvi-print-command)
Dan Nicolaescu <dann@ics.uci.edu>
parents:
105772
diff
changeset
|
294 (cons (purecopy (car (cdr arg))) (purecopy (cdr (cdr arg)))))) |
25012 | 295 '((:family (".attributeFamily" . "Face.AttributeFamily")) |
95862
afdd781501c8
(set-face-attribute): Parse "FOUNDRY-FAMILY" form here.
Kenichi Handa <handa@m17n.org>
parents:
95841
diff
changeset
|
296 (:foundry (".attributeFoundry" . "Face.AttributeFoundry")) |
25012 | 297 (:width (".attributeWidth" . "Face.AttributeWidth")) |
298 (:height (".attributeHeight" . "Face.AttributeHeight")) | |
299 (:weight (".attributeWeight" . "Face.AttributeWeight")) | |
300 (:slant (".attributeSlant" . "Face.AttributeSlant")) | |
301 (:foreground (".attributeForeground" . "Face.AttributeForeground")) | |
302 (:background (".attributeBackground" . "Face.AttributeBackground")) | |
303 (:overline (".attributeOverline" . "Face.AttributeOverline")) | |
304 (:strike-through (".attributeStrikeThrough" . "Face.AttributeStrikeThrough")) | |
305 (:box (".attributeBox" . "Face.AttributeBox")) | |
306 (:underline (".attributeUnderline" . "Face.AttributeUnderline")) | |
307 (:inverse-video (".attributeInverse" . "Face.AttributeInverse")) | |
308 (:stipple | |
309 (".attributeStipple" . "Face.AttributeStipple") | |
310 (".attributeBackgroundPixmap" . "Face.AttributeBackgroundPixmap")) | |
311 (:bold (".attributeBold" . "Face.AttributeBold")) | |
312 (:italic (".attributeItalic" . "Face.AttributeItalic")) | |
31193
a15c5cb8ec71
(face-x-resources): Add entry for :inherit.
Miles Bader <miles@gnu.org>
parents:
31190
diff
changeset
|
313 (:font (".attributeFont" . "Face.AttributeFont")) |
105870
26baacb565b0
* textmodes/tex-mode.el (tex-alt-dvi-print-command)
Dan Nicolaescu <dann@ics.uci.edu>
parents:
105772
diff
changeset
|
314 (:inherit (".attributeInherit" . "Face.AttributeInherit")))) |
100171 | 315 "List of X resources and classes for face attributes. |
25012 | 316 Each element has the form (ATTRIBUTE ENTRY1 ENTRY2...) where ATTRIBUTE is |
317 the name of a face attribute, and each ENTRY is a cons of the form | |
39830
aed9c3afb7ed
(describe-face): Call help-setup-xref earlier.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
39799
diff
changeset
|
318 \(RESOURCE . CLASS) with RESOURCE being the resource and CLASS being the |
25012 | 319 X resource class for the attribute." |
31528
a461cad7a942
(face-x-resources): Make custom type more specific.
Dave Love <fx@gnu.org>
parents:
31500
diff
changeset
|
320 :type '(repeat (cons symbol (repeat (cons string string)))) |
25012 | 321 :group 'faces) |
322 | |
323 | |
95841
b4e36ff621b3
Add some compiler declarations, for builds without X.
Glenn Morris <rgm@gnu.org>
parents:
95787
diff
changeset
|
324 (declare-function internal-face-x-get-resource "xfaces.c" |
b4e36ff621b3
Add some compiler declarations, for builds without X.
Glenn Morris <rgm@gnu.org>
parents:
95787
diff
changeset
|
325 (resource class frame)) |
b4e36ff621b3
Add some compiler declarations, for builds without X.
Glenn Morris <rgm@gnu.org>
parents:
95787
diff
changeset
|
326 |
b4e36ff621b3
Add some compiler declarations, for builds without X.
Glenn Morris <rgm@gnu.org>
parents:
95787
diff
changeset
|
327 (declare-function internal-set-lisp-face-attribute-from-resource "xfaces.c" |
b4e36ff621b3
Add some compiler declarations, for builds without X.
Glenn Morris <rgm@gnu.org>
parents:
95787
diff
changeset
|
328 (face attr value &optional frame)) |
b4e36ff621b3
Add some compiler declarations, for builds without X.
Glenn Morris <rgm@gnu.org>
parents:
95787
diff
changeset
|
329 |
25012 | 330 (defun set-face-attribute-from-resource (face attribute resource class frame) |
331 "Set FACE's ATTRIBUTE from X resource RESOURCE, class CLASS on FRAME. | |
332 Value is the attribute value specified by the resource, or nil | |
333 if not present. This function displays a message if the resource | |
334 specifies an invalid attribute." | |
335 (let* ((face-name (face-name face)) | |
336 (value (internal-face-x-get-resource (concat face-name resource) | |
337 class frame))) | |
338 (when value | |
339 (condition-case () | |
340 (internal-set-lisp-face-attribute-from-resource | |
341 face attribute (downcase value) frame) | |
342 (error | |
343 (message "Face %s, frame %s: invalid attribute %s %s from X resource" | |
344 face-name frame attribute value)))) | |
345 value)) | |
346 | |
347 | |
348 (defun set-face-attributes-from-resources (face frame) | |
349 "Set attributes of FACE from X resources for FRAME." | |
102609
56f3fbbbd88c
set-face-attributes-from-resources, face-set-after-frame-default:
David Reitter <david.reitter@gmail.com>
parents:
101149
diff
changeset
|
350 (when (memq (framep frame) '(x w32)) |
25012 | 351 (dolist (definition face-x-resources) |
352 (let ((attribute (car definition))) | |
353 (dolist (entry (cdr definition)) | |
354 (set-face-attribute-from-resource face attribute (car entry) | |
355 (cdr entry) frame)))))) | |
37943 | 356 |
357 | |
25012 | 358 (defun make-face-x-resource-internal (face &optional frame) |
359 "Fill frame-local FACE on FRAME from X resources. | |
360 FRAME nil or not specified means do it for all frames." | |
361 (if (null frame) | |
362 (dolist (frame (frame-list)) | |
363 (set-face-attributes-from-resources face frame)) | |
364 (set-face-attributes-from-resources face frame))) | |
365 | |
366 | |
367 | |
368 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | |
369 ;;; Retrieving face attributes. | |
370 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | |
371 | |
372 (defun face-name (face) | |
373 "Return the name of face FACE." | |
374 (symbol-name (check-face face))) | |
375 | |
376 | |
87494
26eb0118cbc6
(face-all-attributes): New function.
Richard M. Stallman <rms@gnu.org>
parents:
87483
diff
changeset
|
377 (defun face-all-attributes (face &optional frame) |
26eb0118cbc6
(face-all-attributes): New function.
Richard M. Stallman <rms@gnu.org>
parents:
87483
diff
changeset
|
378 "Return an alist stating the attributes of FACE. |
26eb0118cbc6
(face-all-attributes): New function.
Richard M. Stallman <rms@gnu.org>
parents:
87483
diff
changeset
|
379 Each element of the result has the form (ATTR-NAME . ATTR-VALUE). |
109598
ec823851a46c
* faces.el (face-all-attributes): Improved documentation (Bug#6767).
Jan D <jan.h.d@swipnet.se>
parents:
109109
diff
changeset
|
380 If FRAME is omitted or nil the value describes the default attributes, |
87494
26eb0118cbc6
(face-all-attributes): New function.
Richard M. Stallman <rms@gnu.org>
parents:
87483
diff
changeset
|
381 but if you specify FRAME, the value describes the attributes |
26eb0118cbc6
(face-all-attributes): New function.
Richard M. Stallman <rms@gnu.org>
parents:
87483
diff
changeset
|
382 of FACE on FRAME." |
87502
a6788888f377
(face-all-attributes): If FRAME is nil, return defaults.
Richard M. Stallman <rms@gnu.org>
parents:
87494
diff
changeset
|
383 (mapcar (lambda (pair) |
a6788888f377
(face-all-attributes): If FRAME is nil, return defaults.
Richard M. Stallman <rms@gnu.org>
parents:
87494
diff
changeset
|
384 (let ((attr (car pair))) |
a6788888f377
(face-all-attributes): If FRAME is nil, return defaults.
Richard M. Stallman <rms@gnu.org>
parents:
87494
diff
changeset
|
385 (cons attr (face-attribute face attr (or frame t))))) |
87494
26eb0118cbc6
(face-all-attributes): New function.
Richard M. Stallman <rms@gnu.org>
parents:
87483
diff
changeset
|
386 face-attribute-name-alist)) |
26eb0118cbc6
(face-all-attributes): New function.
Richard M. Stallman <rms@gnu.org>
parents:
87483
diff
changeset
|
387 |
40399
3e67855bb4bf
(face-attribute): Add INHERIT argument, consider face inheritance if non-nil.
Miles Bader <miles@gnu.org>
parents:
40351
diff
changeset
|
388 (defun face-attribute (face attribute &optional frame inherit) |
25012 | 389 "Return the value of FACE's ATTRIBUTE on FRAME. |
390 If the optional argument FRAME is given, report on face FACE in that frame. | |
391 If FRAME is t, report on the defaults for face FACE (for new frames). | |
40399
3e67855bb4bf
(face-attribute): Add INHERIT argument, consider face inheritance if non-nil.
Miles Bader <miles@gnu.org>
parents:
40351
diff
changeset
|
392 If FRAME is omitted or nil, use the selected frame. |
3e67855bb4bf
(face-attribute): Add INHERIT argument, consider face inheritance if non-nil.
Miles Bader <miles@gnu.org>
parents:
40351
diff
changeset
|
393 |
67049
580816de789f
* faces.el: Revert 2005-11-17 change. :ignore-defface is now
Chong Yidong <cyd@stupidchicken.com>
parents:
66975
diff
changeset
|
394 If INHERIT is nil, only attributes directly defined by FACE are considered, |
580816de789f
* faces.el: Revert 2005-11-17 change. :ignore-defface is now
Chong Yidong <cyd@stupidchicken.com>
parents:
66975
diff
changeset
|
395 so the return value may be `unspecified', or a relative value. |
40399
3e67855bb4bf
(face-attribute): Add INHERIT argument, consider face inheritance if non-nil.
Miles Bader <miles@gnu.org>
parents:
40351
diff
changeset
|
396 If INHERIT is non-nil, FACE's definition of ATTRIBUTE is merged with the |
3e67855bb4bf
(face-attribute): Add INHERIT argument, consider face inheritance if non-nil.
Miles Bader <miles@gnu.org>
parents:
40351
diff
changeset
|
397 faces specified by its `:inherit' attribute; however the return value |
67049
580816de789f
* faces.el: Revert 2005-11-17 change. :ignore-defface is now
Chong Yidong <cyd@stupidchicken.com>
parents:
66975
diff
changeset
|
398 may still be `unspecified' or relative. |
40399
3e67855bb4bf
(face-attribute): Add INHERIT argument, consider face inheritance if non-nil.
Miles Bader <miles@gnu.org>
parents:
40351
diff
changeset
|
399 If INHERIT is a face or a list of faces, then the result is further merged |
3e67855bb4bf
(face-attribute): Add INHERIT argument, consider face inheritance if non-nil.
Miles Bader <miles@gnu.org>
parents:
40351
diff
changeset
|
400 with that face (or faces), until it becomes specified and absolute. |
3e67855bb4bf
(face-attribute): Add INHERIT argument, consider face inheritance if non-nil.
Miles Bader <miles@gnu.org>
parents:
40351
diff
changeset
|
401 |
3e67855bb4bf
(face-attribute): Add INHERIT argument, consider face inheritance if non-nil.
Miles Bader <miles@gnu.org>
parents:
40351
diff
changeset
|
402 To ensure that the return value is always specified and absolute, use a |
3e67855bb4bf
(face-attribute): Add INHERIT argument, consider face inheritance if non-nil.
Miles Bader <miles@gnu.org>
parents:
40351
diff
changeset
|
403 value of `default' for INHERIT; this will resolve any unspecified or |
3e67855bb4bf
(face-attribute): Add INHERIT argument, consider face inheritance if non-nil.
Miles Bader <miles@gnu.org>
parents:
40351
diff
changeset
|
404 relative values by merging with the `default' face (which is always |
3e67855bb4bf
(face-attribute): Add INHERIT argument, consider face inheritance if non-nil.
Miles Bader <miles@gnu.org>
parents:
40351
diff
changeset
|
405 completely specified)." |
3e67855bb4bf
(face-attribute): Add INHERIT argument, consider face inheritance if non-nil.
Miles Bader <miles@gnu.org>
parents:
40351
diff
changeset
|
406 (let ((value (internal-get-lisp-face-attribute face attribute frame))) |
3e67855bb4bf
(face-attribute): Add INHERIT argument, consider face inheritance if non-nil.
Miles Bader <miles@gnu.org>
parents:
40351
diff
changeset
|
407 (when (and inherit (face-attribute-relative-p attribute value)) |
3e67855bb4bf
(face-attribute): Add INHERIT argument, consider face inheritance if non-nil.
Miles Bader <miles@gnu.org>
parents:
40351
diff
changeset
|
408 ;; VALUE is relative, so merge with inherited faces |
3e67855bb4bf
(face-attribute): Add INHERIT argument, consider face inheritance if non-nil.
Miles Bader <miles@gnu.org>
parents:
40351
diff
changeset
|
409 (let ((inh-from (face-attribute face :inherit frame))) |
3e67855bb4bf
(face-attribute): Add INHERIT argument, consider face inheritance if non-nil.
Miles Bader <miles@gnu.org>
parents:
40351
diff
changeset
|
410 (unless (or (null inh-from) (eq inh-from 'unspecified)) |
66596
56a63119fa20
(face-attribute): Handle the case where a face inherits from
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
66360
diff
changeset
|
411 (condition-case nil |
56a63119fa20
(face-attribute): Handle the case where a face inherits from
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
66360
diff
changeset
|
412 (setq value |
56a63119fa20
(face-attribute): Handle the case where a face inherits from
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
66360
diff
changeset
|
413 (face-attribute-merged-with attribute value inh-from frame)) |
56a63119fa20
(face-attribute): Handle the case where a face inherits from
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
66360
diff
changeset
|
414 ;; The `inherit' attribute may point to non existent faces. |
56a63119fa20
(face-attribute): Handle the case where a face inherits from
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
66360
diff
changeset
|
415 (error nil))))) |
40399
3e67855bb4bf
(face-attribute): Add INHERIT argument, consider face inheritance if non-nil.
Miles Bader <miles@gnu.org>
parents:
40351
diff
changeset
|
416 (when (and inherit |
3e67855bb4bf
(face-attribute): Add INHERIT argument, consider face inheritance if non-nil.
Miles Bader <miles@gnu.org>
parents:
40351
diff
changeset
|
417 (not (eq inherit t)) |
3e67855bb4bf
(face-attribute): Add INHERIT argument, consider face inheritance if non-nil.
Miles Bader <miles@gnu.org>
parents:
40351
diff
changeset
|
418 (face-attribute-relative-p attribute value)) |
43711
d15360503e4e
(face-spec-choose): Allow `t' to appear before the end.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
43550
diff
changeset
|
419 ;; We should merge with INHERIT as well |
40399
3e67855bb4bf
(face-attribute): Add INHERIT argument, consider face inheritance if non-nil.
Miles Bader <miles@gnu.org>
parents:
40351
diff
changeset
|
420 (setq value (face-attribute-merged-with attribute value inherit frame))) |
3e67855bb4bf
(face-attribute): Add INHERIT argument, consider face inheritance if non-nil.
Miles Bader <miles@gnu.org>
parents:
40351
diff
changeset
|
421 value)) |
3e67855bb4bf
(face-attribute): Add INHERIT argument, consider face inheritance if non-nil.
Miles Bader <miles@gnu.org>
parents:
40351
diff
changeset
|
422 |
3e67855bb4bf
(face-attribute): Add INHERIT argument, consider face inheritance if non-nil.
Miles Bader <miles@gnu.org>
parents:
40351
diff
changeset
|
423 (defun face-attribute-merged-with (attribute value faces &optional frame) |
3e67855bb4bf
(face-attribute): Add INHERIT argument, consider face inheritance if non-nil.
Miles Bader <miles@gnu.org>
parents:
40351
diff
changeset
|
424 "Merges ATTRIBUTE, initially VALUE, with faces from FACES until absolute. |
3e67855bb4bf
(face-attribute): Add INHERIT argument, consider face inheritance if non-nil.
Miles Bader <miles@gnu.org>
parents:
40351
diff
changeset
|
425 FACES may be either a single face or a list of faces. |
64539
c94d5f576885
(describe-face): "?\ " -> "?\s".
Juanma Barranquero <lekktu@gmail.com>
parents:
64497
diff
changeset
|
426 \[This is an internal function.]" |
40399
3e67855bb4bf
(face-attribute): Add INHERIT argument, consider face inheritance if non-nil.
Miles Bader <miles@gnu.org>
parents:
40351
diff
changeset
|
427 (cond ((not (face-attribute-relative-p attribute value)) |
3e67855bb4bf
(face-attribute): Add INHERIT argument, consider face inheritance if non-nil.
Miles Bader <miles@gnu.org>
parents:
40351
diff
changeset
|
428 value) |
3e67855bb4bf
(face-attribute): Add INHERIT argument, consider face inheritance if non-nil.
Miles Bader <miles@gnu.org>
parents:
40351
diff
changeset
|
429 ((null faces) |
3e67855bb4bf
(face-attribute): Add INHERIT argument, consider face inheritance if non-nil.
Miles Bader <miles@gnu.org>
parents:
40351
diff
changeset
|
430 value) |
3e67855bb4bf
(face-attribute): Add INHERIT argument, consider face inheritance if non-nil.
Miles Bader <miles@gnu.org>
parents:
40351
diff
changeset
|
431 ((consp faces) |
3e67855bb4bf
(face-attribute): Add INHERIT argument, consider face inheritance if non-nil.
Miles Bader <miles@gnu.org>
parents:
40351
diff
changeset
|
432 (face-attribute-merged-with |
3e67855bb4bf
(face-attribute): Add INHERIT argument, consider face inheritance if non-nil.
Miles Bader <miles@gnu.org>
parents:
40351
diff
changeset
|
433 attribute |
3e67855bb4bf
(face-attribute): Add INHERIT argument, consider face inheritance if non-nil.
Miles Bader <miles@gnu.org>
parents:
40351
diff
changeset
|
434 (face-attribute-merged-with attribute value (car faces) frame) |
3e67855bb4bf
(face-attribute): Add INHERIT argument, consider face inheritance if non-nil.
Miles Bader <miles@gnu.org>
parents:
40351
diff
changeset
|
435 (cdr faces) |
3e67855bb4bf
(face-attribute): Add INHERIT argument, consider face inheritance if non-nil.
Miles Bader <miles@gnu.org>
parents:
40351
diff
changeset
|
436 frame)) |
3e67855bb4bf
(face-attribute): Add INHERIT argument, consider face inheritance if non-nil.
Miles Bader <miles@gnu.org>
parents:
40351
diff
changeset
|
437 (t |
3e67855bb4bf
(face-attribute): Add INHERIT argument, consider face inheritance if non-nil.
Miles Bader <miles@gnu.org>
parents:
40351
diff
changeset
|
438 (merge-face-attribute attribute |
3e67855bb4bf
(face-attribute): Add INHERIT argument, consider face inheritance if non-nil.
Miles Bader <miles@gnu.org>
parents:
40351
diff
changeset
|
439 value |
3e67855bb4bf
(face-attribute): Add INHERIT argument, consider face inheritance if non-nil.
Miles Bader <miles@gnu.org>
parents:
40351
diff
changeset
|
440 (face-attribute faces attribute frame t))))) |
25012 | 441 |
442 | |
40399
3e67855bb4bf
(face-attribute): Add INHERIT argument, consider face inheritance if non-nil.
Miles Bader <miles@gnu.org>
parents:
40351
diff
changeset
|
443 (defmacro face-attribute-specified-or (value &rest body) |
3e67855bb4bf
(face-attribute): Add INHERIT argument, consider face inheritance if non-nil.
Miles Bader <miles@gnu.org>
parents:
40351
diff
changeset
|
444 "Return VALUE, unless it's `unspecified', in which case evaluate BODY and return the result." |
3e67855bb4bf
(face-attribute): Add INHERIT argument, consider face inheritance if non-nil.
Miles Bader <miles@gnu.org>
parents:
40351
diff
changeset
|
445 (let ((temp (make-symbol "value"))) |
3e67855bb4bf
(face-attribute): Add INHERIT argument, consider face inheritance if non-nil.
Miles Bader <miles@gnu.org>
parents:
40351
diff
changeset
|
446 `(let ((,temp ,value)) |
3e67855bb4bf
(face-attribute): Add INHERIT argument, consider face inheritance if non-nil.
Miles Bader <miles@gnu.org>
parents:
40351
diff
changeset
|
447 (if (not (eq ,temp 'unspecified)) |
3e67855bb4bf
(face-attribute): Add INHERIT argument, consider face inheritance if non-nil.
Miles Bader <miles@gnu.org>
parents:
40351
diff
changeset
|
448 ,temp |
3e67855bb4bf
(face-attribute): Add INHERIT argument, consider face inheritance if non-nil.
Miles Bader <miles@gnu.org>
parents:
40351
diff
changeset
|
449 ,@body)))) |
3e67855bb4bf
(face-attribute): Add INHERIT argument, consider face inheritance if non-nil.
Miles Bader <miles@gnu.org>
parents:
40351
diff
changeset
|
450 |
3e67855bb4bf
(face-attribute): Add INHERIT argument, consider face inheritance if non-nil.
Miles Bader <miles@gnu.org>
parents:
40351
diff
changeset
|
451 (defun face-foreground (face &optional frame inherit) |
25012 | 452 "Return the foreground color name of FACE, or nil if unspecified. |
453 If the optional argument FRAME is given, report on face FACE in that frame. | |
454 If FRAME is t, report on the defaults for face FACE (for new frames). | |
40399
3e67855bb4bf
(face-attribute): Add INHERIT argument, consider face inheritance if non-nil.
Miles Bader <miles@gnu.org>
parents:
40351
diff
changeset
|
455 If FRAME is omitted or nil, use the selected frame. |
25012 | 456 |
40399
3e67855bb4bf
(face-attribute): Add INHERIT argument, consider face inheritance if non-nil.
Miles Bader <miles@gnu.org>
parents:
40351
diff
changeset
|
457 If INHERIT is nil, only a foreground color directly defined by FACE is |
3e67855bb4bf
(face-attribute): Add INHERIT argument, consider face inheritance if non-nil.
Miles Bader <miles@gnu.org>
parents:
40351
diff
changeset
|
458 considered, so the return value may be nil. |
3e67855bb4bf
(face-attribute): Add INHERIT argument, consider face inheritance if non-nil.
Miles Bader <miles@gnu.org>
parents:
40351
diff
changeset
|
459 If INHERIT is t, and FACE doesn't define a foreground color, then any |
3e67855bb4bf
(face-attribute): Add INHERIT argument, consider face inheritance if non-nil.
Miles Bader <miles@gnu.org>
parents:
40351
diff
changeset
|
460 foreground color that FACE inherits through its `:inherit' attribute |
3e67855bb4bf
(face-attribute): Add INHERIT argument, consider face inheritance if non-nil.
Miles Bader <miles@gnu.org>
parents:
40351
diff
changeset
|
461 is considered as well; however the return value may still be nil. |
3e67855bb4bf
(face-attribute): Add INHERIT argument, consider face inheritance if non-nil.
Miles Bader <miles@gnu.org>
parents:
40351
diff
changeset
|
462 If INHERIT is a face or a list of faces, then it is used to try to |
3e67855bb4bf
(face-attribute): Add INHERIT argument, consider face inheritance if non-nil.
Miles Bader <miles@gnu.org>
parents:
40351
diff
changeset
|
463 resolve an unspecified foreground color. |
25012 | 464 |
40399
3e67855bb4bf
(face-attribute): Add INHERIT argument, consider face inheritance if non-nil.
Miles Bader <miles@gnu.org>
parents:
40351
diff
changeset
|
465 To ensure that a valid color is always returned, use a value of |
3e67855bb4bf
(face-attribute): Add INHERIT argument, consider face inheritance if non-nil.
Miles Bader <miles@gnu.org>
parents:
40351
diff
changeset
|
466 `default' for INHERIT; this will resolve any unspecified values by |
3e67855bb4bf
(face-attribute): Add INHERIT argument, consider face inheritance if non-nil.
Miles Bader <miles@gnu.org>
parents:
40351
diff
changeset
|
467 merging with the `default' face (which is always completely specified)." |
3e67855bb4bf
(face-attribute): Add INHERIT argument, consider face inheritance if non-nil.
Miles Bader <miles@gnu.org>
parents:
40351
diff
changeset
|
468 (face-attribute-specified-or (face-attribute face :foreground frame inherit) |
3e67855bb4bf
(face-attribute): Add INHERIT argument, consider face inheritance if non-nil.
Miles Bader <miles@gnu.org>
parents:
40351
diff
changeset
|
469 nil)) |
3e67855bb4bf
(face-attribute): Add INHERIT argument, consider face inheritance if non-nil.
Miles Bader <miles@gnu.org>
parents:
40351
diff
changeset
|
470 |
3e67855bb4bf
(face-attribute): Add INHERIT argument, consider face inheritance if non-nil.
Miles Bader <miles@gnu.org>
parents:
40351
diff
changeset
|
471 (defun face-background (face &optional frame inherit) |
25012 | 472 "Return the background color name of FACE, or nil if unspecified. |
473 If the optional argument FRAME is given, report on face FACE in that frame. | |
474 If FRAME is t, report on the defaults for face FACE (for new frames). | |
40399
3e67855bb4bf
(face-attribute): Add INHERIT argument, consider face inheritance if non-nil.
Miles Bader <miles@gnu.org>
parents:
40351
diff
changeset
|
475 If FRAME is omitted or nil, use the selected frame. |
25012 | 476 |
40399
3e67855bb4bf
(face-attribute): Add INHERIT argument, consider face inheritance if non-nil.
Miles Bader <miles@gnu.org>
parents:
40351
diff
changeset
|
477 If INHERIT is nil, only a background color directly defined by FACE is |
3e67855bb4bf
(face-attribute): Add INHERIT argument, consider face inheritance if non-nil.
Miles Bader <miles@gnu.org>
parents:
40351
diff
changeset
|
478 considered, so the return value may be nil. |
3e67855bb4bf
(face-attribute): Add INHERIT argument, consider face inheritance if non-nil.
Miles Bader <miles@gnu.org>
parents:
40351
diff
changeset
|
479 If INHERIT is t, and FACE doesn't define a background color, then any |
3e67855bb4bf
(face-attribute): Add INHERIT argument, consider face inheritance if non-nil.
Miles Bader <miles@gnu.org>
parents:
40351
diff
changeset
|
480 background color that FACE inherits through its `:inherit' attribute |
3e67855bb4bf
(face-attribute): Add INHERIT argument, consider face inheritance if non-nil.
Miles Bader <miles@gnu.org>
parents:
40351
diff
changeset
|
481 is considered as well; however the return value may still be nil. |
3e67855bb4bf
(face-attribute): Add INHERIT argument, consider face inheritance if non-nil.
Miles Bader <miles@gnu.org>
parents:
40351
diff
changeset
|
482 If INHERIT is a face or a list of faces, then it is used to try to |
3e67855bb4bf
(face-attribute): Add INHERIT argument, consider face inheritance if non-nil.
Miles Bader <miles@gnu.org>
parents:
40351
diff
changeset
|
483 resolve an unspecified background color. |
25012 | 484 |
40399
3e67855bb4bf
(face-attribute): Add INHERIT argument, consider face inheritance if non-nil.
Miles Bader <miles@gnu.org>
parents:
40351
diff
changeset
|
485 To ensure that a valid color is always returned, use a value of |
3e67855bb4bf
(face-attribute): Add INHERIT argument, consider face inheritance if non-nil.
Miles Bader <miles@gnu.org>
parents:
40351
diff
changeset
|
486 `default' for INHERIT; this will resolve any unspecified values by |
3e67855bb4bf
(face-attribute): Add INHERIT argument, consider face inheritance if non-nil.
Miles Bader <miles@gnu.org>
parents:
40351
diff
changeset
|
487 merging with the `default' face (which is always completely specified)." |
3e67855bb4bf
(face-attribute): Add INHERIT argument, consider face inheritance if non-nil.
Miles Bader <miles@gnu.org>
parents:
40351
diff
changeset
|
488 (face-attribute-specified-or (face-attribute face :background frame inherit) |
3e67855bb4bf
(face-attribute): Add INHERIT argument, consider face inheritance if non-nil.
Miles Bader <miles@gnu.org>
parents:
40351
diff
changeset
|
489 nil)) |
3e67855bb4bf
(face-attribute): Add INHERIT argument, consider face inheritance if non-nil.
Miles Bader <miles@gnu.org>
parents:
40351
diff
changeset
|
490 |
3e67855bb4bf
(face-attribute): Add INHERIT argument, consider face inheritance if non-nil.
Miles Bader <miles@gnu.org>
parents:
40351
diff
changeset
|
491 (defun face-stipple (face &optional frame inherit) |
25012 | 492 "Return the stipple pixmap name of FACE, or nil if unspecified. |
493 If the optional argument FRAME is given, report on face FACE in that frame. | |
494 If FRAME is t, report on the defaults for face FACE (for new frames). | |
40399
3e67855bb4bf
(face-attribute): Add INHERIT argument, consider face inheritance if non-nil.
Miles Bader <miles@gnu.org>
parents:
40351
diff
changeset
|
495 If FRAME is omitted or nil, use the selected frame. |
3e67855bb4bf
(face-attribute): Add INHERIT argument, consider face inheritance if non-nil.
Miles Bader <miles@gnu.org>
parents:
40351
diff
changeset
|
496 |
3e67855bb4bf
(face-attribute): Add INHERIT argument, consider face inheritance if non-nil.
Miles Bader <miles@gnu.org>
parents:
40351
diff
changeset
|
497 If INHERIT is nil, only a stipple directly defined by FACE is |
3e67855bb4bf
(face-attribute): Add INHERIT argument, consider face inheritance if non-nil.
Miles Bader <miles@gnu.org>
parents:
40351
diff
changeset
|
498 considered, so the return value may be nil. |
3e67855bb4bf
(face-attribute): Add INHERIT argument, consider face inheritance if non-nil.
Miles Bader <miles@gnu.org>
parents:
40351
diff
changeset
|
499 If INHERIT is t, and FACE doesn't define a stipple, then any stipple |
3e67855bb4bf
(face-attribute): Add INHERIT argument, consider face inheritance if non-nil.
Miles Bader <miles@gnu.org>
parents:
40351
diff
changeset
|
500 that FACE inherits through its `:inherit' attribute is considered as |
3e67855bb4bf
(face-attribute): Add INHERIT argument, consider face inheritance if non-nil.
Miles Bader <miles@gnu.org>
parents:
40351
diff
changeset
|
501 well; however the return value may still be nil. |
3e67855bb4bf
(face-attribute): Add INHERIT argument, consider face inheritance if non-nil.
Miles Bader <miles@gnu.org>
parents:
40351
diff
changeset
|
502 If INHERIT is a face or a list of faces, then it is used to try to |
3e67855bb4bf
(face-attribute): Add INHERIT argument, consider face inheritance if non-nil.
Miles Bader <miles@gnu.org>
parents:
40351
diff
changeset
|
503 resolve an unspecified stipple. |
3e67855bb4bf
(face-attribute): Add INHERIT argument, consider face inheritance if non-nil.
Miles Bader <miles@gnu.org>
parents:
40351
diff
changeset
|
504 |
3e67855bb4bf
(face-attribute): Add INHERIT argument, consider face inheritance if non-nil.
Miles Bader <miles@gnu.org>
parents:
40351
diff
changeset
|
505 To ensure that a valid stipple or nil is always returned, use a value of |
3e67855bb4bf
(face-attribute): Add INHERIT argument, consider face inheritance if non-nil.
Miles Bader <miles@gnu.org>
parents:
40351
diff
changeset
|
506 `default' for INHERIT; this will resolve any unspecified values by merging |
3e67855bb4bf
(face-attribute): Add INHERIT argument, consider face inheritance if non-nil.
Miles Bader <miles@gnu.org>
parents:
40351
diff
changeset
|
507 with the `default' face (which is always completely specified)." |
3e67855bb4bf
(face-attribute): Add INHERIT argument, consider face inheritance if non-nil.
Miles Bader <miles@gnu.org>
parents:
40351
diff
changeset
|
508 (face-attribute-specified-or (face-attribute face :stipple frame inherit) |
3e67855bb4bf
(face-attribute): Add INHERIT argument, consider face inheritance if non-nil.
Miles Bader <miles@gnu.org>
parents:
40351
diff
changeset
|
509 nil)) |
25012 | 510 |
511 | |
512 (defalias 'face-background-pixmap 'face-stipple) | |
513 | |
514 | |
515 (defun face-underline-p (face &optional frame) | |
516 "Return non-nil if FACE is underlined. | |
517 If the optional argument FRAME is given, report on face FACE in that frame. | |
518 If FRAME is t, report on the defaults for face FACE (for new frames). | |
519 If FRAME is omitted or nil, use the selected frame." | |
520 (eq (face-attribute face :underline frame) t)) | |
521 | |
522 | |
523 (defun face-inverse-video-p (face &optional frame) | |
524 "Return non-nil if FACE is in inverse video on FRAME. | |
525 If the optional argument FRAME is given, report on face FACE in that frame. | |
526 If FRAME is t, report on the defaults for face FACE (for new frames). | |
527 If FRAME is omitted or nil, use the selected frame." | |
528 (eq (face-attribute face :inverse-video frame) t)) | |
529 | |
530 | |
531 (defun face-bold-p (face &optional frame) | |
532 "Return non-nil if the font of FACE is bold on FRAME. | |
533 If the optional argument FRAME is given, report on face FACE in that frame. | |
534 If FRAME is t, report on the defaults for face FACE (for new frames). | |
535 If FRAME is omitted or nil, use the selected frame. | |
536 Use `face-attribute' for finer control." | |
537 (let ((bold (face-attribute face :weight frame))) | |
25561
67c224f5cc1a
(face-bold-p): Don't return t if face has lighter
Gerd Moellmann <gerd@gnu.org>
parents:
25545
diff
changeset
|
538 (memq bold '(semi-bold bold extra-bold ultra-bold)))) |
25012 | 539 |
540 | |
541 (defun face-italic-p (face &optional frame) | |
542 "Return non-nil if the font of FACE is italic on FRAME. | |
543 If the optional argument FRAME is given, report on face FACE in that frame. | |
544 If FRAME is t, report on the defaults for face FACE (for new frames). | |
545 If FRAME is omitted or nil, use the selected frame. | |
546 Use `face-attribute' for finer control." | |
547 (let ((italic (face-attribute face :slant frame))) | |
25616
4dbea85f5af0
(face-italic-p): Return t only for values `italic'
Gerd Moellmann <gerd@gnu.org>
parents:
25588
diff
changeset
|
548 (memq italic '(italic oblique)))) |
37943 | 549 |
25012 | 550 |
551 | |
552 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | |
553 ;;; Face documentation. | |
554 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | |
555 | |
556 (defun face-documentation (face) | |
63660
47c90f7c23df
(face-documentation, set-face-attribute)
Glenn Morris <rgm@gnu.org>
parents:
63650
diff
changeset
|
557 "Get the documentation string for FACE. |
47c90f7c23df
(face-documentation, set-face-attribute)
Glenn Morris <rgm@gnu.org>
parents:
63650
diff
changeset
|
558 If FACE is a face-alias, get the documentation for the target face." |
47c90f7c23df
(face-documentation, set-face-attribute)
Glenn Morris <rgm@gnu.org>
parents:
63650
diff
changeset
|
559 (let ((alias (get face 'face-alias)) |
47c90f7c23df
(face-documentation, set-face-attribute)
Glenn Morris <rgm@gnu.org>
parents:
63650
diff
changeset
|
560 doc) |
47c90f7c23df
(face-documentation, set-face-attribute)
Glenn Morris <rgm@gnu.org>
parents:
63650
diff
changeset
|
561 (if alias |
47c90f7c23df
(face-documentation, set-face-attribute)
Glenn Morris <rgm@gnu.org>
parents:
63650
diff
changeset
|
562 (progn |
47c90f7c23df
(face-documentation, set-face-attribute)
Glenn Morris <rgm@gnu.org>
parents:
63650
diff
changeset
|
563 (setq doc (get alias 'face-documentation)) |
104752
fcbe482879e0
(describe-face): Adjust the output format to be more like
Glenn Morris <rgm@gnu.org>
parents:
104258
diff
changeset
|
564 (format "%s is an alias for the face `%s'.%s" face alias |
63660
47c90f7c23df
(face-documentation, set-face-attribute)
Glenn Morris <rgm@gnu.org>
parents:
63650
diff
changeset
|
565 (if doc (format "\n%s" doc) |
47c90f7c23df
(face-documentation, set-face-attribute)
Glenn Morris <rgm@gnu.org>
parents:
63650
diff
changeset
|
566 ""))) |
47c90f7c23df
(face-documentation, set-face-attribute)
Glenn Morris <rgm@gnu.org>
parents:
63650
diff
changeset
|
567 (get face 'face-documentation)))) |
25012 | 568 |
569 | |
570 (defun set-face-documentation (face string) | |
571 "Set the documentation string for FACE to STRING." | |
26927
27d6c0e07ea8
(set-face-attribute): Purecopy the attributes set.
Dave Love <fx@gnu.org>
parents:
26902
diff
changeset
|
572 ;; Perhaps the text should go in DOC. |
26657
b5c0d55411ad
(set-face-documentation): Purecopy STRING.
Dave Love <fx@gnu.org>
parents:
26353
diff
changeset
|
573 (put face 'face-documentation (purecopy string))) |
25012 | 574 |
575 | |
576 (defalias 'face-doc-string 'face-documentation) | |
577 (defalias 'set-face-doc-string 'set-face-documentation) | |
578 | |
579 | |
580 | |
581 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | |
582 ;; Setting face attributes. | |
583 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | |
584 | |
585 | |
586 (defun set-face-attribute (face frame &rest args) | |
587 "Set attributes of FACE on FRAME from ARGS. | |
588 | |
589 FRAME nil means change attributes on all frames. FRAME t means change | |
590 the default for new frames (this is done automatically each time an | |
591 attribute is changed on all frames). | |
592 | |
593 ARGS must come in pairs ATTRIBUTE VALUE. ATTRIBUTE must be a valid | |
107532 | 594 face attribute name. All attributes can be set to `unspecified'; |
67049
580816de789f
* faces.el: Revert 2005-11-17 change. :ignore-defface is now
Chong Yidong <cyd@stupidchicken.com>
parents:
66975
diff
changeset
|
595 this fact is not further mentioned below. |
25012 | 596 |
597 The following attributes are recognized: | |
598 | |
599 `:family' | |
600 | |
96292
fcffe32b9669
(set-face-attribute): Doc fix.
Chong Yidong <cyd@stupidchicken.com>
parents:
96247
diff
changeset
|
601 VALUE must be a string specifying the font family, e.g. ``monospace'', |
25012 | 602 or a fontset alias name. If a font family is specified, wild-cards `*' |
603 and `?' are allowed. | |
604 | |
95862
afdd781501c8
(set-face-attribute): Parse "FOUNDRY-FAMILY" form here.
Kenichi Handa <handa@m17n.org>
parents:
95841
diff
changeset
|
605 `:foundry' |
afdd781501c8
(set-face-attribute): Parse "FOUNDRY-FAMILY" form here.
Kenichi Handa <handa@m17n.org>
parents:
95841
diff
changeset
|
606 |
afdd781501c8
(set-face-attribute): Parse "FOUNDRY-FAMILY" form here.
Kenichi Handa <handa@m17n.org>
parents:
95841
diff
changeset
|
607 VALUE must be a string specifying the font foundry, |
afdd781501c8
(set-face-attribute): Parse "FOUNDRY-FAMILY" form here.
Kenichi Handa <handa@m17n.org>
parents:
95841
diff
changeset
|
608 e.g. ``adobe''. If a font foundry is specified, wild-cards `*' |
afdd781501c8
(set-face-attribute): Parse "FOUNDRY-FAMILY" form here.
Kenichi Handa <handa@m17n.org>
parents:
95841
diff
changeset
|
609 and `?' are allowed. |
afdd781501c8
(set-face-attribute): Parse "FOUNDRY-FAMILY" form here.
Kenichi Handa <handa@m17n.org>
parents:
95841
diff
changeset
|
610 |
25012 | 611 `:width' |
612 | |
613 VALUE specifies the relative proportionate width of the font to use. | |
614 It must be one of the symbols `ultra-condensed', `extra-condensed', | |
615 `condensed', `semi-condensed', `normal', `semi-expanded', `expanded', | |
616 `extra-expanded', or `ultra-expanded'. | |
617 | |
618 `:height' | |
619 | |
31190 | 620 VALUE must be either an integer specifying the height of the font to use |
621 in 1/10 pt, a floating point number specifying the amount by which to | |
622 scale any underlying face, or a function, which is called with the old | |
623 height (from the underlying face), and should return the new height. | |
25012 | 624 |
625 `:weight' | |
626 | |
627 VALUE specifies the weight of the font to use. It must be one of the | |
628 symbols `ultra-bold', `extra-bold', `bold', `semi-bold', `normal', | |
629 `semi-light', `light', `extra-light', `ultra-light'. | |
630 | |
631 `:slant' | |
632 | |
633 VALUE specifies the slant of the font to use. It must be one of the | |
634 symbols `italic', `oblique', `normal', `reverse-italic', or | |
635 `reverse-oblique'. | |
636 | |
637 `:foreground', `:background' | |
638 | |
639 VALUE must be a color name, a string. | |
640 | |
641 `:underline' | |
642 | |
643 VALUE specifies whether characters in FACE should be underlined. If | |
644 VALUE is t, underline with foreground color of the face. If VALUE is | |
645 a string, underline with that color. If VALUE is nil, explicitly | |
646 don't underline. | |
647 | |
648 `:overline' | |
649 | |
650 VALUE specifies whether characters in FACE should be overlined. If | |
651 VALUE is t, overline with foreground color of the face. If VALUE is a | |
652 string, overline with that color. If VALUE is nil, explicitly don't | |
653 overline. | |
654 | |
655 `:strike-through' | |
656 | |
657 VALUE specifies whether characters in FACE should be drawn with a line | |
658 striking through them. If VALUE is t, use the foreground color of the | |
659 face. If VALUE is a string, strike-through with that color. If VALUE | |
660 is nil, explicitly don't strike through. | |
661 | |
662 `:box' | |
663 | |
664 VALUE specifies whether characters in FACE should have a box drawn | |
665 around them. If VALUE is nil, explicitly don't draw boxes. If | |
666 VALUE is t, draw a box with lines of width 1 in the foreground color | |
667 of the face. If VALUE is a string, the string must be a color name, | |
668 and the box is drawn in that color with a line width of 1. Otherwise, | |
669 VALUE must be a property list of the form `(:line-width WIDTH | |
670 :color COLOR :style STYLE)'. If a keyword/value pair is missing from | |
671 the property list, a default value will be used for the value, as | |
672 specified below. WIDTH specifies the width of the lines to draw; it | |
36009
3f009240cc7d
(set-face-attribute): Describe the case of a negative
Kenichi Handa <handa@m17n.org>
parents:
34682
diff
changeset
|
673 defaults to 1. If WIDTH is negative, the absolute value is the width |
3f009240cc7d
(set-face-attribute): Describe the case of a negative
Kenichi Handa <handa@m17n.org>
parents:
34682
diff
changeset
|
674 of the lines, and draw top/bottom lines inside the characters area, |
3f009240cc7d
(set-face-attribute): Describe the case of a negative
Kenichi Handa <handa@m17n.org>
parents:
34682
diff
changeset
|
675 not around it. COLOR is the name of the color to draw in, default is |
25012 | 676 the foreground color of the face for simple boxes, and the background |
677 color of the face for 3D boxes. STYLE specifies whether a 3D box | |
678 should be draw. If STYLE is `released-button', draw a box looking | |
679 like a released 3D button. If STYLE is `pressed-button' draw a box | |
680 that appears like a pressed button. If STYLE is nil, the default if | |
681 the property list doesn't contain a style specification, draw a 2D | |
682 box. | |
683 | |
684 `:inverse-video' | |
685 | |
686 VALUE specifies whether characters in FACE should be displayed in | |
28840 | 687 inverse video. VALUE must be one of t or nil. |
25012 | 688 |
689 `:stipple' | |
690 | |
691 If VALUE is a string, it must be the name of a file of pixmap data. | |
692 The directories listed in the `x-bitmap-file-path' variable are | |
693 searched. Alternatively, VALUE may be a list of the form (WIDTH | |
694 HEIGHT DATA) where WIDTH and HEIGHT are the size in pixels, and DATA | |
695 is a string containing the raw bits of the bitmap. VALUE nil means | |
696 explicitly don't use a stipple pattern. | |
697 | |
95862
afdd781501c8
(set-face-attribute): Parse "FOUNDRY-FAMILY" form here.
Kenichi Handa <handa@m17n.org>
parents:
95841
diff
changeset
|
698 For convenience, attributes `:family', `:foundry', `:width', |
afdd781501c8
(set-face-attribute): Parse "FOUNDRY-FAMILY" form here.
Kenichi Handa <handa@m17n.org>
parents:
95841
diff
changeset
|
699 `:height', `:weight', and `:slant' may also be set in one step |
afdd781501c8
(set-face-attribute): Parse "FOUNDRY-FAMILY" form here.
Kenichi Handa <handa@m17n.org>
parents:
95841
diff
changeset
|
700 from an X font name: |
25012 | 701 |
702 `:font' | |
703 | |
704 Set font-related face attributes from VALUE. VALUE must be a valid | |
705 XLFD font name. If it is a font name pattern, the first matching font | |
706 will be used. | |
707 | |
708 For compatibility with Emacs 20, keywords `:bold' and `:italic' can | |
709 be used to specify that a bold or italic font should be used. VALUE | |
31190 | 710 must be t or nil in that case. A value of `unspecified' is not allowed. |
711 | |
712 `:inherit' | |
713 | |
714 VALUE is the name of a face from which to inherit attributes, or a list | |
715 of face names. Attributes from inherited faces are merged into the face | |
716 like an underlying face would be, with higher priority than underlying faces." | |
98728
a962df9a86fb
(set-face-attribute): Set family and foundry before other attributes.
Chong Yidong <cyd@stupidchicken.com>
parents:
98659
diff
changeset
|
717 (setq args (purecopy args)) |
a962df9a86fb
(set-face-attribute): Set family and foundry before other attributes.
Chong Yidong <cyd@stupidchicken.com>
parents:
98659
diff
changeset
|
718 (let ((where (if (null frame) 0 frame)) |
a962df9a86fb
(set-face-attribute): Set family and foundry before other attributes.
Chong Yidong <cyd@stupidchicken.com>
parents:
98659
diff
changeset
|
719 (spec args) |
a962df9a86fb
(set-face-attribute): Set family and foundry before other attributes.
Chong Yidong <cyd@stupidchicken.com>
parents:
98659
diff
changeset
|
720 family foundry) |
51280
c2efaecb5d8f
(set-face-attribute): Set face-modified prop to t
Richard M. Stallman <rms@gnu.org>
parents:
51248
diff
changeset
|
721 ;; If we set the new-frame defaults, this face is modified outside Custom. |
c2efaecb5d8f
(set-face-attribute): Set face-modified prop to t
Richard M. Stallman <rms@gnu.org>
parents:
51248
diff
changeset
|
722 (if (memq where '(0 t)) |
63660
47c90f7c23df
(face-documentation, set-face-attribute)
Glenn Morris <rgm@gnu.org>
parents:
63650
diff
changeset
|
723 (put (or (get face 'face-alias) face) 'face-modified t)) |
98728
a962df9a86fb
(set-face-attribute): Set family and foundry before other attributes.
Chong Yidong <cyd@stupidchicken.com>
parents:
98659
diff
changeset
|
724 ;; If family and/or foundry are specified, set it first. Certain |
a962df9a86fb
(set-face-attribute): Set family and foundry before other attributes.
Chong Yidong <cyd@stupidchicken.com>
parents:
98659
diff
changeset
|
725 ;; face attributes, e.g. :weight semi-condensed, are not supported |
a962df9a86fb
(set-face-attribute): Set family and foundry before other attributes.
Chong Yidong <cyd@stupidchicken.com>
parents:
98659
diff
changeset
|
726 ;; in every font. See bug#1127. |
a962df9a86fb
(set-face-attribute): Set family and foundry before other attributes.
Chong Yidong <cyd@stupidchicken.com>
parents:
98659
diff
changeset
|
727 (while spec |
a962df9a86fb
(set-face-attribute): Set family and foundry before other attributes.
Chong Yidong <cyd@stupidchicken.com>
parents:
98659
diff
changeset
|
728 (cond ((eq (car spec) :family) |
a962df9a86fb
(set-face-attribute): Set family and foundry before other attributes.
Chong Yidong <cyd@stupidchicken.com>
parents:
98659
diff
changeset
|
729 (setq family (cadr spec))) |
a962df9a86fb
(set-face-attribute): Set family and foundry before other attributes.
Chong Yidong <cyd@stupidchicken.com>
parents:
98659
diff
changeset
|
730 ((eq (car spec) :foundry) |
a962df9a86fb
(set-face-attribute): Set family and foundry before other attributes.
Chong Yidong <cyd@stupidchicken.com>
parents:
98659
diff
changeset
|
731 (setq foundry (cadr spec)))) |
a962df9a86fb
(set-face-attribute): Set family and foundry before other attributes.
Chong Yidong <cyd@stupidchicken.com>
parents:
98659
diff
changeset
|
732 (setq spec (cddr spec))) |
a962df9a86fb
(set-face-attribute): Set family and foundry before other attributes.
Chong Yidong <cyd@stupidchicken.com>
parents:
98659
diff
changeset
|
733 (when (or family foundry) |
a962df9a86fb
(set-face-attribute): Set family and foundry before other attributes.
Chong Yidong <cyd@stupidchicken.com>
parents:
98659
diff
changeset
|
734 (when (and (stringp family) |
a962df9a86fb
(set-face-attribute): Set family and foundry before other attributes.
Chong Yidong <cyd@stupidchicken.com>
parents:
98659
diff
changeset
|
735 (string-match "\\([^-]*\\)-\\([^-]*\\)" family)) |
a962df9a86fb
(set-face-attribute): Set family and foundry before other attributes.
Chong Yidong <cyd@stupidchicken.com>
parents:
98659
diff
changeset
|
736 (unless foundry |
103252
a0a7029a23d0
(set-face-attribute): Fix handling of :family "FOUNDRY-FAMILY".
Kenichi Handa <handa@m17n.org>
parents:
103168
diff
changeset
|
737 (setq foundry (match-string 1 family))) |
a0a7029a23d0
(set-face-attribute): Fix handling of :family "FOUNDRY-FAMILY".
Kenichi Handa <handa@m17n.org>
parents:
103168
diff
changeset
|
738 (setq family (match-string 2 family))) |
107102
3554839df1fc
Fix setting family and foundry in set-face-attribute (Bug#5536).
Chong Yidong <cyd@stupidchicken.com>
parents:
106815
diff
changeset
|
739 (when (or (stringp family) (eq family 'unspecified)) |
98728
a962df9a86fb
(set-face-attribute): Set family and foundry before other attributes.
Chong Yidong <cyd@stupidchicken.com>
parents:
98659
diff
changeset
|
740 (internal-set-lisp-face-attribute face :family (purecopy family) |
a962df9a86fb
(set-face-attribute): Set family and foundry before other attributes.
Chong Yidong <cyd@stupidchicken.com>
parents:
98659
diff
changeset
|
741 where)) |
107102
3554839df1fc
Fix setting family and foundry in set-face-attribute (Bug#5536).
Chong Yidong <cyd@stupidchicken.com>
parents:
106815
diff
changeset
|
742 (when (or (stringp foundry) (eq foundry 'unspecified)) |
98728
a962df9a86fb
(set-face-attribute): Set family and foundry before other attributes.
Chong Yidong <cyd@stupidchicken.com>
parents:
98659
diff
changeset
|
743 (internal-set-lisp-face-attribute face :foundry (purecopy foundry) |
a962df9a86fb
(set-face-attribute): Set family and foundry before other attributes.
Chong Yidong <cyd@stupidchicken.com>
parents:
98659
diff
changeset
|
744 where))) |
31439
d7a98f35b441
(set-face-attribute): Simplify by calling
Gerd Moellmann <gerd@gnu.org>
parents:
31401
diff
changeset
|
745 (while args |
98728
a962df9a86fb
(set-face-attribute): Set family and foundry before other attributes.
Chong Yidong <cyd@stupidchicken.com>
parents:
98659
diff
changeset
|
746 (unless (memq (car args) '(:family :foundry)) |
96398
36c91bfee166
(inhibit-face-set-after-frame-default): Var deleted.
Chong Yidong <cyd@stupidchicken.com>
parents:
96292
diff
changeset
|
747 (internal-set-lisp-face-attribute face (car args) |
36c91bfee166
(inhibit-face-set-after-frame-default): Var deleted.
Chong Yidong <cyd@stupidchicken.com>
parents:
96292
diff
changeset
|
748 (purecopy (cadr args)) |
36c91bfee166
(inhibit-face-set-after-frame-default): Var deleted.
Chong Yidong <cyd@stupidchicken.com>
parents:
96292
diff
changeset
|
749 where)) |
98728
a962df9a86fb
(set-face-attribute): Set family and foundry before other attributes.
Chong Yidong <cyd@stupidchicken.com>
parents:
98659
diff
changeset
|
750 (setq args (cddr args))))) |
25012 | 751 |
26337
6bf33b333eb2
(make-face-bold, make-face-unbold, make-face-italic)
Gerd Moellmann <gerd@gnu.org>
parents:
25947
diff
changeset
|
752 (defun make-face-bold (face &optional frame noerror) |
25012 | 753 "Make the font of FACE be bold, if possible. |
754 FRAME nil or not specified means change face on all frames. | |
26337
6bf33b333eb2
(make-face-bold, make-face-unbold, make-face-italic)
Gerd Moellmann <gerd@gnu.org>
parents:
25947
diff
changeset
|
755 Argument NOERROR is ignored and retained for compatibility. |
25012 | 756 Use `set-face-attribute' for finer control of the font weight." |
40456 | 757 (interactive (list (read-face-name "Make which face bold"))) |
25012 | 758 (set-face-attribute face frame :weight 'bold)) |
759 | |
760 | |
26337
6bf33b333eb2
(make-face-bold, make-face-unbold, make-face-italic)
Gerd Moellmann <gerd@gnu.org>
parents:
25947
diff
changeset
|
761 (defun make-face-unbold (face &optional frame noerror) |
25012 | 762 "Make the font of FACE be non-bold, if possible. |
26337
6bf33b333eb2
(make-face-bold, make-face-unbold, make-face-italic)
Gerd Moellmann <gerd@gnu.org>
parents:
25947
diff
changeset
|
763 FRAME nil or not specified means change face on all frames. |
6bf33b333eb2
(make-face-bold, make-face-unbold, make-face-italic)
Gerd Moellmann <gerd@gnu.org>
parents:
25947
diff
changeset
|
764 Argument NOERROR is ignored and retained for compatibility." |
40456 | 765 (interactive (list (read-face-name "Make which face non-bold"))) |
25012 | 766 (set-face-attribute face frame :weight 'normal)) |
767 | |
37943 | 768 |
26337
6bf33b333eb2
(make-face-bold, make-face-unbold, make-face-italic)
Gerd Moellmann <gerd@gnu.org>
parents:
25947
diff
changeset
|
769 (defun make-face-italic (face &optional frame noerror) |
25012 | 770 "Make the font of FACE be italic, if possible. |
771 FRAME nil or not specified means change face on all frames. | |
26337
6bf33b333eb2
(make-face-bold, make-face-unbold, make-face-italic)
Gerd Moellmann <gerd@gnu.org>
parents:
25947
diff
changeset
|
772 Argument NOERROR is ignored and retained for compatibility. |
25012 | 773 Use `set-face-attribute' for finer control of the font slant." |
40456 | 774 (interactive (list (read-face-name "Make which face italic"))) |
25012 | 775 (set-face-attribute face frame :slant 'italic)) |
776 | |
777 | |
26337
6bf33b333eb2
(make-face-bold, make-face-unbold, make-face-italic)
Gerd Moellmann <gerd@gnu.org>
parents:
25947
diff
changeset
|
778 (defun make-face-unitalic (face &optional frame noerror) |
25012 | 779 "Make the font of FACE be non-italic, if possible. |
28840 | 780 FRAME nil or not specified means change face on all frames. |
781 Argument NOERROR is ignored and retained for compatibility." | |
40456 | 782 (interactive (list (read-face-name "Make which face non-italic"))) |
25012 | 783 (set-face-attribute face frame :slant 'normal)) |
784 | |
37943 | 785 |
26337
6bf33b333eb2
(make-face-bold, make-face-unbold, make-face-italic)
Gerd Moellmann <gerd@gnu.org>
parents:
25947
diff
changeset
|
786 (defun make-face-bold-italic (face &optional frame noerror) |
25012 | 787 "Make the font of FACE be bold and italic, if possible. |
788 FRAME nil or not specified means change face on all frames. | |
26337
6bf33b333eb2
(make-face-bold, make-face-unbold, make-face-italic)
Gerd Moellmann <gerd@gnu.org>
parents:
25947
diff
changeset
|
789 Argument NOERROR is ignored and retained for compatibility. |
25012 | 790 Use `set-face-attribute' for finer control of font weight and slant." |
40456 | 791 (interactive (list (read-face-name "Make which face bold-italic"))) |
25012 | 792 (set-face-attribute face frame :weight 'bold :slant 'italic)) |
793 | |
794 | |
795 (defun set-face-font (face font &optional frame) | |
796 "Change font-related attributes of FACE to those of FONT (a string). | |
797 FRAME nil or not specified means change face on all frames. | |
95862
afdd781501c8
(set-face-attribute): Parse "FOUNDRY-FAMILY" form here.
Kenichi Handa <handa@m17n.org>
parents:
95841
diff
changeset
|
798 This sets the attributes `:family', `:foundry', `:width', |
afdd781501c8
(set-face-attribute): Parse "FOUNDRY-FAMILY" form here.
Kenichi Handa <handa@m17n.org>
parents:
95841
diff
changeset
|
799 `:height', `:weight', and `:slant'. When called interactively, |
afdd781501c8
(set-face-attribute): Parse "FOUNDRY-FAMILY" form here.
Kenichi Handa <handa@m17n.org>
parents:
95841
diff
changeset
|
800 prompt for the face and font." |
25012 | 801 (interactive (read-face-and-attribute :font)) |
802 (set-face-attribute face frame :font font)) | |
803 | |
804 | |
805 ;; Implementation note: Emulating gray background colors with a | |
806 ;; stipple pattern is now part of the face realization process, and is | |
807 ;; done in C depending on the frame on which the face is realized. | |
808 | |
809 (defun set-face-background (face color &optional frame) | |
810 "Change the background color of face FACE to COLOR (a string). | |
811 FRAME nil or not specified means change face on all frames. | |
59281
95516eef1d5b
(set-face-background, set-face-foreground): Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
59262
diff
changeset
|
812 COLOR can be a system-defined color name (see `list-colors-display') |
95516eef1d5b
(set-face-background, set-face-foreground): Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
59262
diff
changeset
|
813 or a hex spec of the form #RRGGBB. |
95516eef1d5b
(set-face-background, set-face-foreground): Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
59262
diff
changeset
|
814 When called interactively, prompts for the face and color." |
25012 | 815 (interactive (read-face-and-attribute :background)) |
36060
d9b4d1370073
(set-face-background, set-face-foreground)
Miles Bader <miles@gnu.org>
parents:
36035
diff
changeset
|
816 (set-face-attribute face frame :background (or color 'unspecified))) |
25012 | 817 |
818 | |
819 (defun set-face-foreground (face color &optional frame) | |
820 "Change the foreground color of face FACE to COLOR (a string). | |
821 FRAME nil or not specified means change face on all frames. | |
59281
95516eef1d5b
(set-face-background, set-face-foreground): Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
59262
diff
changeset
|
822 COLOR can be a system-defined color name (see `list-colors-display') |
95516eef1d5b
(set-face-background, set-face-foreground): Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
59262
diff
changeset
|
823 or a hex spec of the form #RRGGBB. |
95516eef1d5b
(set-face-background, set-face-foreground): Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
59262
diff
changeset
|
824 When called interactively, prompts for the face and color." |
25012 | 825 (interactive (read-face-and-attribute :foreground)) |
36060
d9b4d1370073
(set-face-background, set-face-foreground)
Miles Bader <miles@gnu.org>
parents:
36035
diff
changeset
|
826 (set-face-attribute face frame :foreground (or color 'unspecified))) |
25012 | 827 |
828 | |
829 (defun set-face-stipple (face stipple &optional frame) | |
830 "Change the stipple pixmap of face FACE to STIPPLE. | |
831 FRAME nil or not specified means change face on all frames. | |
28840 | 832 STIPPLE should be a string, the name of a file of pixmap data. |
25012 | 833 The directories listed in the `x-bitmap-file-path' variable are searched. |
834 | |
835 Alternatively, STIPPLE may be a list of the form (WIDTH HEIGHT DATA) | |
836 where WIDTH and HEIGHT are the size in pixels, | |
837 and DATA is a string, containing the raw bits of the bitmap." | |
838 (interactive (read-face-and-attribute :stipple)) | |
36060
d9b4d1370073
(set-face-background, set-face-foreground)
Miles Bader <miles@gnu.org>
parents:
36035
diff
changeset
|
839 (set-face-attribute face frame :stipple (or stipple 'unspecified))) |
25012 | 840 |
841 | |
75591
a0f90fb2d33d
(set-face-underline-p, modify-face): Rename arg UNDERLINE-P
Juanma Barranquero <lekktu@gmail.com>
parents:
75579
diff
changeset
|
842 (defun set-face-underline-p (face underline &optional frame) |
25012 | 843 "Specify whether face FACE is underlined. |
844 UNDERLINE nil means FACE explicitly doesn't underline. | |
845 UNDERLINE non-nil means FACE explicitly does underlining | |
846 with the same of the foreground color. | |
847 If UNDERLINE is a string, underline with the color named UNDERLINE. | |
848 FRAME nil or not specified means change face on all frames. | |
849 Use `set-face-attribute' to ``unspecify'' underlining." | |
850 (interactive | |
851 (let ((list (read-face-and-attribute :underline))) | |
852 (list (car list) (eq (car (cdr list)) t)))) | |
75591
a0f90fb2d33d
(set-face-underline-p, modify-face): Rename arg UNDERLINE-P
Juanma Barranquero <lekktu@gmail.com>
parents:
75579
diff
changeset
|
853 (set-face-attribute face frame :underline underline)) |
25012 | 854 |
65068
6606e83775f0
(set-face-underline): Delete this duplicate function
Juri Linkov <juri@jurta.org>
parents:
64762
diff
changeset
|
855 (define-obsolete-function-alias 'set-face-underline |
6606e83775f0
(set-face-underline): Delete this duplicate function
Juri Linkov <juri@jurta.org>
parents:
64762
diff
changeset
|
856 'set-face-underline-p "22.1") |
25012 | 857 |
858 | |
859 (defun set-face-inverse-video-p (face inverse-video-p &optional frame) | |
860 "Specify whether face FACE is in inverse video. | |
861 INVERSE-VIDEO-P non-nil means FACE displays explicitly in inverse video. | |
862 INVERSE-VIDEO-P nil means FACE explicitly is not in inverse video. | |
863 FRAME nil or not specified means change face on all frames. | |
864 Use `set-face-attribute' to ``unspecify'' the inverse video attribute." | |
865 (interactive | |
866 (let ((list (read-face-and-attribute :inverse-video))) | |
867 (list (car list) (eq (car (cdr list)) t)))) | |
868 (set-face-attribute face frame :inverse-video inverse-video-p)) | |
869 | |
870 | |
871 (defun set-face-bold-p (face bold-p &optional frame) | |
872 "Specify whether face FACE is bold. | |
873 BOLD-P non-nil means FACE should explicitly display bold. | |
874 BOLD-P nil means FACE should explicitly display non-bold. | |
875 FRAME nil or not specified means change face on all frames. | |
876 Use `set-face-attribute' or `modify-face' for finer control." | |
877 (if (null bold-p) | |
878 (make-face-unbold face frame) | |
879 (make-face-bold face frame))) | |
880 | |
881 | |
882 (defun set-face-italic-p (face italic-p &optional frame) | |
883 "Specify whether face FACE is italic. | |
884 ITALIC-P non-nil means FACE should explicitly display italic. | |
885 ITALIC-P nil means FACE should explicitly display non-italic. | |
886 FRAME nil or not specified means change face on all frames. | |
887 Use `set-face-attribute' or `modify-face' for finer control." | |
888 (if (null italic-p) | |
889 (make-face-unitalic face frame) | |
890 (make-face-italic face frame))) | |
891 | |
892 | |
893 (defalias 'set-face-background-pixmap 'set-face-stipple) | |
10379
f9d713e8c77c
(face-nontrivial-p): New function.
Richard M. Stallman <rms@gnu.org>
parents:
10375
diff
changeset
|
894 |
2456 | 895 |
896 (defun invert-face (face &optional frame) | |
25012 | 897 "Swap the foreground and background colors of FACE. |
40454
ce83eda9592d
(invert-face): Check for 'unspecified, not for nil,
Eli Zaretskii <eliz@gnu.org>
parents:
40399
diff
changeset
|
898 If FRAME is omitted or nil, it means change face on all frames. |
25012 | 899 If FACE specifies neither foreground nor background color, |
900 set its foreground and background to the background and foreground | |
901 of the default face. Value is FACE." | |
40456 | 902 (interactive (list (read-face-name "Invert face"))) |
25012 | 903 (let ((fg (face-attribute face :foreground frame)) |
904 (bg (face-attribute face :background frame))) | |
40454
ce83eda9592d
(invert-face): Check for 'unspecified, not for nil,
Eli Zaretskii <eliz@gnu.org>
parents:
40399
diff
changeset
|
905 (if (not (and (eq fg 'unspecified) (eq bg 'unspecified))) |
25012 | 906 (set-face-attribute face frame :foreground bg :background fg) |
907 (set-face-attribute face frame | |
908 :foreground | |
909 (face-attribute 'default :background frame) | |
910 :background | |
911 (face-attribute 'default :foreground frame)))) | |
2456 | 912 face) |
913 | |
25012 | 914 |
915 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | |
916 ;;; Interactively modifying faces. | |
917 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | |
2456 | 918 |
109109
d5e4b1b34988
* lisp/faces.el (read-face-name): Rename arg `string-describing-default'
Juri Linkov <juri@jurta.org>
parents:
109089
diff
changeset
|
919 (defun read-face-name (prompt &optional default multiple) |
44886
fe167023fdf0
(read-face-name): New defaulting features.
Richard M. Stallman <rms@gnu.org>
parents:
44590
diff
changeset
|
920 "Read a face, defaulting to the face or faces on the char after point. |
71521
1109575a2873
* help-mode.el (help-xref-symbol-regexp): Add property as a keyword
Nick Roberts <nickrob@snap.net.nz>
parents:
71231
diff
changeset
|
921 If it has the property `read-face-name', that overrides the `face' property. |
71591
defa6bf31164
(read-face-name): Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
71521
diff
changeset
|
922 PROMPT should be a string that describes what the caller will do with the face; |
defa6bf31164
(read-face-name): Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
71521
diff
changeset
|
923 it should not end in a space. |
109109
d5e4b1b34988
* lisp/faces.el (read-face-name): Rename arg `string-describing-default'
Juri Linkov <juri@jurta.org>
parents:
109089
diff
changeset
|
924 The optional argument DEFAULT provides the value to display in the |
d5e4b1b34988
* lisp/faces.el (read-face-name): Rename arg `string-describing-default'
Juri Linkov <juri@jurta.org>
parents:
109089
diff
changeset
|
925 minibuffer prompt that is returned if the user just types RET |
d5e4b1b34988
* lisp/faces.el (read-face-name): Rename arg `string-describing-default'
Juri Linkov <juri@jurta.org>
parents:
109089
diff
changeset
|
926 unless DEFAULT is a string (in which case nil is returned). |
44886
fe167023fdf0
(read-face-name): New defaulting features.
Richard M. Stallman <rms@gnu.org>
parents:
44590
diff
changeset
|
927 If MULTIPLE is non-nil, return a list of faces (possibly only one). |
fe167023fdf0
(read-face-name): New defaulting features.
Richard M. Stallman <rms@gnu.org>
parents:
44590
diff
changeset
|
928 Otherwise, return a single face." |
fe167023fdf0
(read-face-name): New defaulting features.
Richard M. Stallman <rms@gnu.org>
parents:
44590
diff
changeset
|
929 (let ((faceprop (or (get-char-property (point) 'read-face-name) |
fe167023fdf0
(read-face-name): New defaulting features.
Richard M. Stallman <rms@gnu.org>
parents:
44590
diff
changeset
|
930 (get-char-property (point) 'face))) |
63382
9cbfa983c1cf
(read-face-name): Use complete-in-turn complete non-aliases
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
63311
diff
changeset
|
931 (aliasfaces nil) |
9cbfa983c1cf
(read-face-name): Use complete-in-turn complete non-aliases
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
63311
diff
changeset
|
932 (nonaliasfaces nil) |
44886
fe167023fdf0
(read-face-name): New defaulting features.
Richard M. Stallman <rms@gnu.org>
parents:
44590
diff
changeset
|
933 faces) |
63984
37ff9b4c3659
(read-face-name): Put the code for getting a face name
Juri Linkov <juri@jurta.org>
parents:
63881
diff
changeset
|
934 ;; Try to get a face name from the buffer. |
37ff9b4c3659
(read-face-name): Put the code for getting a face name
Juri Linkov <juri@jurta.org>
parents:
63881
diff
changeset
|
935 (if (memq (intern-soft (thing-at-point 'symbol)) (face-list)) |
37ff9b4c3659
(read-face-name): Put the code for getting a face name
Juri Linkov <juri@jurta.org>
parents:
63881
diff
changeset
|
936 (setq faces (list (intern-soft (thing-at-point 'symbol))))) |
37ff9b4c3659
(read-face-name): Put the code for getting a face name
Juri Linkov <juri@jurta.org>
parents:
63881
diff
changeset
|
937 ;; Add the named faces that the `face' property uses. |
59262
c9bf2e1b7e1a
(read-face-name): Don't treat an attribute spec as a list of faces.
Richard M. Stallman <rms@gnu.org>
parents:
59077
diff
changeset
|
938 (if (and (listp faceprop) |
c9bf2e1b7e1a
(read-face-name): Don't treat an attribute spec as a list of faces.
Richard M. Stallman <rms@gnu.org>
parents:
59077
diff
changeset
|
939 ;; Don't treat an attribute spec as a list of faces. |
c9bf2e1b7e1a
(read-face-name): Don't treat an attribute spec as a list of faces.
Richard M. Stallman <rms@gnu.org>
parents:
59077
diff
changeset
|
940 (not (keywordp (car faceprop))) |
c9bf2e1b7e1a
(read-face-name): Don't treat an attribute spec as a list of faces.
Richard M. Stallman <rms@gnu.org>
parents:
59077
diff
changeset
|
941 (not (memq (car faceprop) '(foreground-color background-color)))) |
44886
fe167023fdf0
(read-face-name): New defaulting features.
Richard M. Stallman <rms@gnu.org>
parents:
44590
diff
changeset
|
942 (dolist (f faceprop) |
fe167023fdf0
(read-face-name): New defaulting features.
Richard M. Stallman <rms@gnu.org>
parents:
44590
diff
changeset
|
943 (if (symbolp f) |
fe167023fdf0
(read-face-name): New defaulting features.
Richard M. Stallman <rms@gnu.org>
parents:
44590
diff
changeset
|
944 (push f faces))) |
fe167023fdf0
(read-face-name): New defaulting features.
Richard M. Stallman <rms@gnu.org>
parents:
44590
diff
changeset
|
945 (if (symbolp faceprop) |
59262
c9bf2e1b7e1a
(read-face-name): Don't treat an attribute spec as a list of faces.
Richard M. Stallman <rms@gnu.org>
parents:
59077
diff
changeset
|
946 (push faceprop faces))) |
64724
719375653e09
(read-face-name): Delete duplicate faces.
Juri Linkov <juri@jurta.org>
parents:
64539
diff
changeset
|
947 (delete-dups faces) |
44886
fe167023fdf0
(read-face-name): New defaulting features.
Richard M. Stallman <rms@gnu.org>
parents:
44590
diff
changeset
|
948 |
63382
9cbfa983c1cf
(read-face-name): Use complete-in-turn complete non-aliases
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
63311
diff
changeset
|
949 ;; Build up the completion tables. |
9cbfa983c1cf
(read-face-name): Use complete-in-turn complete non-aliases
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
63311
diff
changeset
|
950 (mapatoms (lambda (s) |
9cbfa983c1cf
(read-face-name): Use complete-in-turn complete non-aliases
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
63311
diff
changeset
|
951 (if (custom-facep s) |
9cbfa983c1cf
(read-face-name): Use complete-in-turn complete non-aliases
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
63311
diff
changeset
|
952 (if (get s 'face-alias) |
9cbfa983c1cf
(read-face-name): Use complete-in-turn complete non-aliases
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
63311
diff
changeset
|
953 (push (symbol-name s) aliasfaces) |
9cbfa983c1cf
(read-face-name): Use complete-in-turn complete non-aliases
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
63311
diff
changeset
|
954 (push (symbol-name s) nonaliasfaces))))) |
9cbfa983c1cf
(read-face-name): Use complete-in-turn complete non-aliases
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
63311
diff
changeset
|
955 |
44886
fe167023fdf0
(read-face-name): New defaulting features.
Richard M. Stallman <rms@gnu.org>
parents:
44590
diff
changeset
|
956 ;; If we only want one, and the default is more than one, |
fe167023fdf0
(read-face-name): New defaulting features.
Richard M. Stallman <rms@gnu.org>
parents:
44590
diff
changeset
|
957 ;; discard the unwanted ones now. |
fe167023fdf0
(read-face-name): New defaulting features.
Richard M. Stallman <rms@gnu.org>
parents:
44590
diff
changeset
|
958 (unless multiple |
fe167023fdf0
(read-face-name): New defaulting features.
Richard M. Stallman <rms@gnu.org>
parents:
44590
diff
changeset
|
959 (if faces |
fe167023fdf0
(read-face-name): New defaulting features.
Richard M. Stallman <rms@gnu.org>
parents:
44590
diff
changeset
|
960 (setq faces (list (car faces))))) |
63984
37ff9b4c3659
(read-face-name): Put the code for getting a face name
Juri Linkov <juri@jurta.org>
parents:
63881
diff
changeset
|
961 (require 'crm) |
44886
fe167023fdf0
(read-face-name): New defaulting features.
Richard M. Stallman <rms@gnu.org>
parents:
44590
diff
changeset
|
962 (let* ((input |
fe167023fdf0
(read-face-name): New defaulting features.
Richard M. Stallman <rms@gnu.org>
parents:
44590
diff
changeset
|
963 ;; Read the input. |
63984
37ff9b4c3659
(read-face-name): Put the code for getting a face name
Juri Linkov <juri@jurta.org>
parents:
63881
diff
changeset
|
964 (completing-read-multiple |
109109
d5e4b1b34988
* lisp/faces.el (read-face-name): Rename arg `string-describing-default'
Juri Linkov <juri@jurta.org>
parents:
109089
diff
changeset
|
965 (if (or faces default) |
d5e4b1b34988
* lisp/faces.el (read-face-name): Rename arg `string-describing-default'
Juri Linkov <juri@jurta.org>
parents:
109089
diff
changeset
|
966 (format "%s (default `%s'): " prompt |
63984
37ff9b4c3659
(read-face-name): Put the code for getting a face name
Juri Linkov <juri@jurta.org>
parents:
63881
diff
changeset
|
967 (if faces (mapconcat 'symbol-name faces ",") |
109109
d5e4b1b34988
* lisp/faces.el (read-face-name): Rename arg `string-describing-default'
Juri Linkov <juri@jurta.org>
parents:
109089
diff
changeset
|
968 default)) |
44896
fc1fdc78c3eb
(read-face-name): Format the prompt correctly when there's no default.
Miles Bader <miles@gnu.org>
parents:
44892
diff
changeset
|
969 (format "%s: " prompt)) |
94054
41482de59a50
(read-face-name): Use `completion-table-in-turn', not `complete-in-turn'.
Juanma Barranquero <lekktu@gmail.com>
parents:
93834
diff
changeset
|
970 (completion-table-in-turn nonaliasfaces aliasfaces) |
96435
414b3d1e76df
(face-name-history): New variable.
Juri Linkov <juri@jurta.org>
parents:
96398
diff
changeset
|
971 nil t nil 'face-name-history |
63984
37ff9b4c3659
(read-face-name): Put the code for getting a face name
Juri Linkov <juri@jurta.org>
parents:
63881
diff
changeset
|
972 (if faces (mapconcat 'symbol-name faces ",")))) |
44886
fe167023fdf0
(read-face-name): New defaulting features.
Richard M. Stallman <rms@gnu.org>
parents:
44590
diff
changeset
|
973 ;; Canonicalize the output. |
fe167023fdf0
(read-face-name): New defaulting features.
Richard M. Stallman <rms@gnu.org>
parents:
44590
diff
changeset
|
974 (output |
63984
37ff9b4c3659
(read-face-name): Put the code for getting a face name
Juri Linkov <juri@jurta.org>
parents:
63881
diff
changeset
|
975 (cond ((or (equal input "") (equal input '(""))) |
109109
d5e4b1b34988
* lisp/faces.el (read-face-name): Rename arg `string-describing-default'
Juri Linkov <juri@jurta.org>
parents:
109089
diff
changeset
|
976 (or faces (unless (stringp default) default))) |
63984
37ff9b4c3659
(read-face-name): Put the code for getting a face name
Juri Linkov <juri@jurta.org>
parents:
63881
diff
changeset
|
977 ((stringp input) |
37ff9b4c3659
(read-face-name): Put the code for getting a face name
Juri Linkov <juri@jurta.org>
parents:
63881
diff
changeset
|
978 (mapcar 'intern (split-string input ", *" t))) |
37ff9b4c3659
(read-face-name): Put the code for getting a face name
Juri Linkov <juri@jurta.org>
parents:
63881
diff
changeset
|
979 ((listp input) |
37ff9b4c3659
(read-face-name): Put the code for getting a face name
Juri Linkov <juri@jurta.org>
parents:
63881
diff
changeset
|
980 (mapcar 'intern input)) |
37ff9b4c3659
(read-face-name): Put the code for getting a face name
Juri Linkov <juri@jurta.org>
parents:
63881
diff
changeset
|
981 (input)))) |
44886
fe167023fdf0
(read-face-name): New defaulting features.
Richard M. Stallman <rms@gnu.org>
parents:
44590
diff
changeset
|
982 ;; Return either a list of faces or just one face. |
fe167023fdf0
(read-face-name): New defaulting features.
Richard M. Stallman <rms@gnu.org>
parents:
44590
diff
changeset
|
983 (if multiple |
fe167023fdf0
(read-face-name): New defaulting features.
Richard M. Stallman <rms@gnu.org>
parents:
44590
diff
changeset
|
984 output |
fe167023fdf0
(read-face-name): New defaulting features.
Richard M. Stallman <rms@gnu.org>
parents:
44590
diff
changeset
|
985 (car output))))) |
fe167023fdf0
(read-face-name): New defaulting features.
Richard M. Stallman <rms@gnu.org>
parents:
44590
diff
changeset
|
986 |
95841
b4e36ff621b3
Add some compiler declarations, for builds without X.
Glenn Morris <rgm@gnu.org>
parents:
95787
diff
changeset
|
987 ;; Not defined without X, but behind window-system test. |
b4e36ff621b3
Add some compiler declarations, for builds without X.
Glenn Morris <rgm@gnu.org>
parents:
95787
diff
changeset
|
988 (defvar x-bitmap-file-path) |
44886
fe167023fdf0
(read-face-name): New defaulting features.
Richard M. Stallman <rms@gnu.org>
parents:
44590
diff
changeset
|
989 |
25012 | 990 (defun face-valid-attribute-values (attribute &optional frame) |
991 "Return valid values for face attribute ATTRIBUTE. | |
992 The optional argument FRAME is used to determine available fonts | |
107532 | 993 and colors. If it is nil or not specified, the selected frame is used. |
994 Value is an alist of (NAME . VALUE) if ATTRIBUTE expects a value out | |
995 of a set of discrete values. Value is `integerp' if ATTRIBUTE expects | |
25012 | 996 an integer value." |
37943 | 997 (let ((valid |
998 (case attribute | |
999 (:family | |
83004
7900111db01c
Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents:
52401
diff
changeset
|
1000 (if (window-system frame) |
101025
18e1be1514e1
(face-valid-attribute-values): Use string as value for :family
Chong Yidong <cyd@stupidchicken.com>
parents:
100908
diff
changeset
|
1001 (mapcar (lambda (x) (cons x x)) |
94956
442dd15b3a1d
(font-weight-table, font-slant-table)
Kenichi Handa <handa@m17n.org>
parents:
94678
diff
changeset
|
1002 (font-family-list)) |
37943 | 1003 ;; Only one font on TTYs. |
1004 (list (cons "default" "default")))) | |
95862
afdd781501c8
(set-face-attribute): Parse "FOUNDRY-FAMILY" form here.
Kenichi Handa <handa@m17n.org>
parents:
95841
diff
changeset
|
1005 (:foundry |
afdd781501c8
(set-face-attribute): Parse "FOUNDRY-FAMILY" form here.
Kenichi Handa <handa@m17n.org>
parents:
95841
diff
changeset
|
1006 (list nil)) |
94956
442dd15b3a1d
(font-weight-table, font-slant-table)
Kenichi Handa <handa@m17n.org>
parents:
94678
diff
changeset
|
1007 (:width |
97325
85f30f831ede
(face-valid-attribute-values): Fix handling the value
Kenichi Handa <handa@m17n.org>
parents:
97048
diff
changeset
|
1008 (mapcar #'(lambda (x) (cons (symbol-name (aref x 1)) (aref x 1))) |
94956
442dd15b3a1d
(font-weight-table, font-slant-table)
Kenichi Handa <handa@m17n.org>
parents:
94678
diff
changeset
|
1009 font-width-table)) |
442dd15b3a1d
(font-weight-table, font-slant-table)
Kenichi Handa <handa@m17n.org>
parents:
94678
diff
changeset
|
1010 (:weight |
97325
85f30f831ede
(face-valid-attribute-values): Fix handling the value
Kenichi Handa <handa@m17n.org>
parents:
97048
diff
changeset
|
1011 (mapcar #'(lambda (x) (cons (symbol-name (aref x 1)) (aref x 1))) |
94956
442dd15b3a1d
(font-weight-table, font-slant-table)
Kenichi Handa <handa@m17n.org>
parents:
94678
diff
changeset
|
1012 font-weight-table)) |
442dd15b3a1d
(font-weight-table, font-slant-table)
Kenichi Handa <handa@m17n.org>
parents:
94678
diff
changeset
|
1013 (:slant |
97325
85f30f831ede
(face-valid-attribute-values): Fix handling the value
Kenichi Handa <handa@m17n.org>
parents:
97048
diff
changeset
|
1014 (mapcar #'(lambda (x) (cons (symbol-name (aref x 1)) (aref x 1))) |
94956
442dd15b3a1d
(font-weight-table, font-slant-table)
Kenichi Handa <handa@m17n.org>
parents:
94678
diff
changeset
|
1015 font-slant-table)) |
442dd15b3a1d
(font-weight-table, font-slant-table)
Kenichi Handa <handa@m17n.org>
parents:
94678
diff
changeset
|
1016 (:inverse-video |
442dd15b3a1d
(font-weight-table, font-slant-table)
Kenichi Handa <handa@m17n.org>
parents:
94678
diff
changeset
|
1017 (mapcar #'(lambda (x) (cons (symbol-name x) x)) |
442dd15b3a1d
(font-weight-table, font-slant-table)
Kenichi Handa <handa@m17n.org>
parents:
94678
diff
changeset
|
1018 (internal-lisp-face-attribute-values attribute))) |
37943 | 1019 ((:underline :overline :strike-through :box) |
83004
7900111db01c
Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents:
52401
diff
changeset
|
1020 (if (window-system frame) |
37943 | 1021 (nconc (mapcar #'(lambda (x) (cons (symbol-name x) x)) |
1022 (internal-lisp-face-attribute-values attribute)) | |
1023 (mapcar #'(lambda (c) (cons c c)) | |
75703
374c5b932d28
(face-valid-attribute-values): Use `defined-colors',
Juanma Barranquero <lekktu@gmail.com>
parents:
75696
diff
changeset
|
1024 (defined-colors frame))) |
37943 | 1025 (mapcar #'(lambda (x) (cons (symbol-name x) x)) |
1026 (internal-lisp-face-attribute-values attribute)))) | |
1027 ((:foreground :background) | |
1028 (mapcar #'(lambda (c) (cons c c)) | |
1029 (defined-colors frame))) | |
1030 ((:height) | |
1031 'integerp) | |
1032 (:stipple | |
101149
9076b03251f0
(face-valid-attribute-values): No stipple on w32. (Bug#884)
Jason Rumney <jasonr@gnu.org>
parents:
101128
diff
changeset
|
1033 (and (memq (window-system frame) '(x ns)) ; No stipple on w32 |
37943 | 1034 (mapcar #'list |
1035 (apply #'nconc | |
1036 (mapcar (lambda (dir) | |
1037 (and (file-readable-p dir) | |
1038 (file-directory-p dir) | |
1039 (directory-files dir))) | |
1040 x-bitmap-file-path))))) | |
1041 (:inherit | |
1042 (cons '("none" . nil) | |
1043 (mapcar #'(lambda (c) (cons (symbol-name c) c)) | |
1044 (face-list)))) | |
1045 (t | |
1046 (error "Internal error"))))) | |
31190 | 1047 (if (and (listp valid) (not (memq attribute '(:inherit)))) |
25245
ef080d2576f9
(face-valid-attribute-values): Return an alist for
Gerd Moellmann <gerd@gnu.org>
parents:
25210
diff
changeset
|
1048 (nconc (list (cons "unspecified" 'unspecified)) valid) |
ef080d2576f9
(face-valid-attribute-values): Return an alist for
Gerd Moellmann <gerd@gnu.org>
parents:
25210
diff
changeset
|
1049 valid))) |
25012 | 1050 |
1051 | |
105950
e411fa8e0abf
* progmodes/grep.el (grep-regexp-alist):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
105870
diff
changeset
|
1052 (defconst face-attribute-name-alist |
25012 | 1053 '((:family . "font family") |
95862
afdd781501c8
(set-face-attribute): Parse "FOUNDRY-FAMILY" form here.
Kenichi Handa <handa@m17n.org>
parents:
95841
diff
changeset
|
1054 (:foundry . "font foundry") |
25012 | 1055 (:width . "character set width") |
1056 (:height . "height in 1/10 pt") | |
1057 (:weight . "weight") | |
1058 (:slant . "slant") | |
1059 (:underline . "underline") | |
1060 (:overline . "overline") | |
1061 (:strike-through . "strike-through") | |
1062 (:box . "box") | |
1063 (:inverse-video . "inverse-video display") | |
1064 (:foreground . "foreground color") | |
1065 (:background . "background color") | |
31190 | 1066 (:stipple . "background stipple") |
1067 (:inherit . "inheritance")) | |
25012 | 1068 "An alist of descriptive names for face attributes. |
1069 Each element has the form (ATTRIBUTE-NAME . DESCRIPTION) where | |
1070 ATTRIBUTE-NAME is a face attribute name (a keyword symbol), and | |
1071 DESCRIPTION is a descriptive name for ATTRIBUTE-NAME.") | |
1072 | |
1073 | |
1074 (defun face-descriptive-attribute-name (attribute) | |
1075 "Return a descriptive name for ATTRIBUTE." | |
1076 (cdr (assq attribute face-attribute-name-alist))) | |
1077 | |
1078 | |
1079 (defun face-read-string (face default name &optional completion-alist) | |
1080 "Interactively read a face attribute string value. | |
31190 | 1081 FACE is the face whose attribute is read. If non-nil, DEFAULT is the |
1082 default string to return if no new value is entered. NAME is a | |
1083 descriptive name of the attribute for prompting. COMPLETION-ALIST is an | |
1084 alist of valid values, if non-nil. | |
25012 | 1085 |
31190 | 1086 Entering nothing accepts the default string DEFAULT. |
25012 | 1087 Value is the new attribute value." |
31190 | 1088 ;; Capitalize NAME (we don't use `capitalize' because that capitalizes |
1089 ;; each word in a string separately). | |
1090 (setq name (concat (upcase (substring name 0 1)) (substring name 1))) | |
25012 | 1091 (let* ((completion-ignore-case t) |
1092 (value (completing-read | |
1093 (if default | |
31190 | 1094 (format "%s for face `%s' (default %s): " |
1095 name face default) | |
1096 (format "%s for face `%s': " name face)) | |
66959
35ab5e34fdf5
(face-read-string): Set the default value arg of completing-read.
Juri Linkov <juri@jurta.org>
parents:
66717
diff
changeset
|
1097 completion-alist nil nil nil nil default))) |
25245
ef080d2576f9
(face-valid-attribute-values): Return an alist for
Gerd Moellmann <gerd@gnu.org>
parents:
25210
diff
changeset
|
1098 (if (equal value "") default value))) |
25012 | 1099 |
1100 | |
1101 (defun face-read-integer (face default name) | |
1102 "Interactively read an integer face attribute value. | |
1103 FACE is the face whose attribute is read. DEFAULT is the default | |
1104 value to return if no new value is entered. NAME is a descriptive | |
1105 name of the attribute for prompting. Value is the new attribute value." | |
25245
ef080d2576f9
(face-valid-attribute-values): Return an alist for
Gerd Moellmann <gerd@gnu.org>
parents:
25210
diff
changeset
|
1106 (let ((new-value |
ef080d2576f9
(face-valid-attribute-values): Return an alist for
Gerd Moellmann <gerd@gnu.org>
parents:
25210
diff
changeset
|
1107 (face-read-string face |
31190 | 1108 (format "%s" default) |
25245
ef080d2576f9
(face-valid-attribute-values): Return an alist for
Gerd Moellmann <gerd@gnu.org>
parents:
25210
diff
changeset
|
1109 name |
ef080d2576f9
(face-valid-attribute-values): Return an alist for
Gerd Moellmann <gerd@gnu.org>
parents:
25210
diff
changeset
|
1110 (list (cons "unspecified" 'unspecified))))) |
31190 | 1111 (cond ((equal new-value "unspecified") |
1112 'unspecified) | |
1113 ((member new-value '("unspecified-fg" "unspecified-bg")) | |
1114 new-value) | |
1115 (t | |
62402
a7e02ef1e3d6
Replace `string-to-int' by `string-to-number'.
Juanma Barranquero <lekktu@gmail.com>
parents:
62386
diff
changeset
|
1116 (string-to-number new-value))))) |
25012 | 1117 |
1118 | |
1119 (defun read-face-attribute (face attribute &optional frame) | |
1120 "Interactively read a new value for FACE's ATTRIBUTE. | |
1121 Optional argument FRAME nil or unspecified means read an attribute value | |
1122 of a global face. Value is the new attribute value." | |
1123 (let* ((old-value (face-attribute face attribute frame)) | |
1124 (attribute-name (face-descriptive-attribute-name attribute)) | |
1125 (valid (face-valid-attribute-values attribute frame)) | |
1126 new-value) | |
1127 ;; Represent complex attribute values as strings by printing them | |
1128 ;; out. Stipple can be a vector; (WIDTH HEIGHT DATA). Box can be | |
1129 ;; a list `(:width WIDTH :color COLOR)' or `(:width WIDTH :shadow | |
1130 ;; SHADOW)'. | |
1131 (when (and (or (eq attribute :stipple) | |
1132 (eq attribute :box)) | |
1133 (or (consp old-value) | |
1134 (vectorp old-value))) | |
1135 (setq old-value (prin1-to-string old-value))) | |
1136 (cond ((listp valid) | |
31190 | 1137 (let ((default |
1138 (or (car (rassoc old-value valid)) | |
1139 (format "%s" old-value)))) | |
1140 (setq new-value | |
1141 (face-read-string face default attribute-name valid)) | |
1142 (if (equal new-value default) | |
1143 ;; Nothing changed, so don't bother with all the stuff | |
1144 ;; below. In particular, this avoids a non-tty color | |
1145 ;; from being canonicalized for a tty when the user | |
1146 ;; just uses the default. | |
1147 (setq new-value old-value) | |
1148 ;; Terminal frames can support colors that don't appear | |
1149 ;; explicitly in VALID, using color approximation code | |
1150 ;; in tty-colors.el. | |
34585
1e66e14d9695
(read-face-attribute): If there's no entry for the user's input in
Miles Bader <miles@gnu.org>
parents:
34246
diff
changeset
|
1151 (when (and (memq attribute '(:foreground :background)) |
97043
9592c50233ab
Remove support for Mac Carbon.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
96675
diff
changeset
|
1152 (not (memq (window-system frame) '(x w32 ns))) |
34585
1e66e14d9695
(read-face-attribute): If there's no entry for the user's input in
Miles Bader <miles@gnu.org>
parents:
34246
diff
changeset
|
1153 (not (member new-value |
1e66e14d9695
(read-face-attribute): If there's no entry for the user's input in
Miles Bader <miles@gnu.org>
parents:
34246
diff
changeset
|
1154 '("unspecified" |
1e66e14d9695
(read-face-attribute): If there's no entry for the user's input in
Miles Bader <miles@gnu.org>
parents:
34246
diff
changeset
|
1155 "unspecified-fg" "unspecified-bg")))) |
34587 | 1156 (setq new-value (car (tty-color-desc new-value frame)))) |
34585
1e66e14d9695
(read-face-attribute): If there's no entry for the user's input in
Miles Bader <miles@gnu.org>
parents:
34246
diff
changeset
|
1157 (when (assoc new-value valid) |
1e66e14d9695
(read-face-attribute): If there's no entry for the user's input in
Miles Bader <miles@gnu.org>
parents:
34246
diff
changeset
|
1158 (setq new-value (cdr (assoc new-value valid))))))) |
25012 | 1159 ((eq valid 'integerp) |
1160 (setq new-value (face-read-integer face old-value attribute-name))) | |
1161 (t (error "Internal error"))) | |
1162 ;; Convert stipple and box value text we read back to a list or | |
1163 ;; vector if it looks like one. This makes the assumption that a | |
1164 ;; pixmap file name won't start with an open-paren. | |
1165 (when (and (or (eq attribute :stipple) | |
1166 (eq attribute :box)) | |
1167 (stringp new-value) | |
1168 (string-match "^[[(]" new-value)) | |
1169 (setq new-value (read new-value))) | |
1170 new-value)) | |
1171 | |
95841
b4e36ff621b3
Add some compiler declarations, for builds without X.
Glenn Morris <rgm@gnu.org>
parents:
95787
diff
changeset
|
1172 (declare-function fontset-list "fontset.c" ()) |
b4e36ff621b3
Add some compiler declarations, for builds without X.
Glenn Morris <rgm@gnu.org>
parents:
95787
diff
changeset
|
1173 (declare-function x-list-fonts "xfaces.c" |
b4e36ff621b3
Add some compiler declarations, for builds without X.
Glenn Morris <rgm@gnu.org>
parents:
95787
diff
changeset
|
1174 (pattern &optional face frame maximum width)) |
25012 | 1175 |
1176 (defun read-face-font (face &optional frame) | |
1177 "Read the name of a font for FACE on FRAME. | |
64539
c94d5f576885
(describe-face): "?\ " -> "?\s".
Juanma Barranquero <lekktu@gmail.com>
parents:
64497
diff
changeset
|
1178 If optional argument FRAME is nil or omitted, use the selected frame." |
25012 | 1179 (let ((completion-ignore-case t)) |
31197
39d437913f44
(read-face-font, read-face-and-attribute): Tweak prompts.
Miles Bader <miles@gnu.org>
parents:
31193
diff
changeset
|
1180 (completing-read (format "Set font attributes of face `%s' from font: " face) |
89909 | 1181 (append (fontset-list) (x-list-fonts "*" nil frame))))) |
25012 | 1182 |
1183 | |
1184 (defun read-all-face-attributes (face &optional frame) | |
1185 "Interactively read all attributes for FACE. | |
64539
c94d5f576885
(describe-face): "?\ " -> "?\s".
Juanma Barranquero <lekktu@gmail.com>
parents:
64497
diff
changeset
|
1186 If optional argument FRAME is nil or omitted, use the selected frame. |
25012 | 1187 Value is a property list of attribute names and new values." |
1188 (let (result) | |
1189 (dolist (attribute face-attribute-name-alist result) | |
1190 (setq result (cons (car attribute) | |
1191 (cons (read-face-attribute face (car attribute) frame) | |
1192 result)))))) | |
1193 | |
37467
342409bb6b91
(modify-face): Add compatibility for non-interactive use.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
37294
diff
changeset
|
1194 (defun modify-face (&optional face foreground background stipple |
75591
a0f90fb2d33d
(set-face-underline-p, modify-face): Rename arg UNDERLINE-P
Juanma Barranquero <lekktu@gmail.com>
parents:
75579
diff
changeset
|
1195 bold-p italic-p underline inverse-p frame) |
25012 | 1196 "Modify attributes of faces interactively. |
1197 If optional argument FRAME is nil or omitted, modify the face used | |
37467
342409bb6b91
(modify-face): Add compatibility for non-interactive use.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
37294
diff
changeset
|
1198 for newly created frame, i.e. the global face. |
342409bb6b91
(modify-face): Add compatibility for non-interactive use.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
37294
diff
changeset
|
1199 For non-interactive use, `set-face-attribute' is preferred. |
64539
c94d5f576885
(describe-face): "?\ " -> "?\s".
Juanma Barranquero <lekktu@gmail.com>
parents:
64497
diff
changeset
|
1200 When called from Lisp, if FACE is nil, all arguments but FRAME are ignored |
37467
342409bb6b91
(modify-face): Add compatibility for non-interactive use.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
37294
diff
changeset
|
1201 and the face and its settings are obtained by querying the user." |
25012 | 1202 (interactive) |
37467
342409bb6b91
(modify-face): Add compatibility for non-interactive use.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
37294
diff
changeset
|
1203 (if face |
342409bb6b91
(modify-face): Add compatibility for non-interactive use.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
37294
diff
changeset
|
1204 (set-face-attribute face frame |
342409bb6b91
(modify-face): Add compatibility for non-interactive use.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
37294
diff
changeset
|
1205 :foreground (or foreground 'unspecified) |
342409bb6b91
(modify-face): Add compatibility for non-interactive use.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
37294
diff
changeset
|
1206 :background (or background 'unspecified) |
342409bb6b91
(modify-face): Add compatibility for non-interactive use.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
37294
diff
changeset
|
1207 :stipple stipple |
342409bb6b91
(modify-face): Add compatibility for non-interactive use.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
37294
diff
changeset
|
1208 :bold bold-p |
342409bb6b91
(modify-face): Add compatibility for non-interactive use.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
37294
diff
changeset
|
1209 :italic italic-p |
75591
a0f90fb2d33d
(set-face-underline-p, modify-face): Rename arg UNDERLINE-P
Juanma Barranquero <lekktu@gmail.com>
parents:
75579
diff
changeset
|
1210 :underline underline |
37467
342409bb6b91
(modify-face): Add compatibility for non-interactive use.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
37294
diff
changeset
|
1211 :inverse-video inverse-p) |
342409bb6b91
(modify-face): Add compatibility for non-interactive use.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
37294
diff
changeset
|
1212 (setq face (read-face-name "Modify face")) |
25012 | 1213 (apply #'set-face-attribute face frame |
1214 (read-all-face-attributes face frame)))) | |
1215 | |
1216 (defun read-face-and-attribute (attribute &optional frame) | |
1217 "Read face name and face attribute value. | |
1218 ATTRIBUTE is the attribute whose new value is read. | |
1219 FRAME nil or unspecified means read attribute value of global face. | |
1220 Value is a list (FACE NEW-VALUE) where FACE is the face read | |
37467
342409bb6b91
(modify-face): Add compatibility for non-interactive use.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
37294
diff
changeset
|
1221 \(a symbol), and NEW-VALUE is value read." |
25012 | 1222 (cond ((eq attribute :font) |
31197
39d437913f44
(read-face-font, read-face-and-attribute): Tweak prompts.
Miles Bader <miles@gnu.org>
parents:
31193
diff
changeset
|
1223 (let* ((prompt "Set font-related attributes of face") |
25012 | 1224 (face (read-face-name prompt)) |
1225 (font (read-face-font face frame))) | |
1226 (list face font))) | |
1227 (t | |
1228 (let* ((attribute-name (face-descriptive-attribute-name attribute)) | |
31190 | 1229 (prompt (format "Set %s of face" attribute-name)) |
25012 | 1230 (face (read-face-name prompt)) |
1231 (new-value (read-face-attribute face attribute frame))) | |
1232 (list face new-value))))) | |
1233 | |
1234 | |
1235 | |
1236 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | |
1237 ;;; Listing faces. | |
1238 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | |
1239 | |
105950
e411fa8e0abf
* progmodes/grep.el (grep-regexp-alist):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
105870
diff
changeset
|
1240 (defconst list-faces-sample-text |
25012 | 1241 "abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ" |
1242 "*Text string to display as the sample text for `list-faces-display'.") | |
1243 | |
1244 | |
1245 ;; The name list-faces would be more consistent, but let's avoid a | |
1246 ;; conflict with Lucid, which uses that name differently. | |
1247 | |
48914
bb52f186fa1e
(help-xref-stack): Add defvar to avoid warning.
Richard M. Stallman <rms@gnu.org>
parents:
48713
diff
changeset
|
1248 (defvar help-xref-stack) |
59872
d7da3e10bfef
(list-faces-display): Add optional argument.
Richard M. Stallman <rms@gnu.org>
parents:
59281
diff
changeset
|
1249 (defun list-faces-display (&optional regexp) |
25012 | 1250 "List all faces, using the same sample text in each. |
1251 The sample text is a string that comes from the variable | |
59872
d7da3e10bfef
(list-faces-display): Add optional argument.
Richard M. Stallman <rms@gnu.org>
parents:
59281
diff
changeset
|
1252 `list-faces-sample-text'. |
d7da3e10bfef
(list-faces-display): Add optional argument.
Richard M. Stallman <rms@gnu.org>
parents:
59281
diff
changeset
|
1253 |
d7da3e10bfef
(list-faces-display): Add optional argument.
Richard M. Stallman <rms@gnu.org>
parents:
59281
diff
changeset
|
1254 If REGEXP is non-nil, list only those faces with names matching |
d7da3e10bfef
(list-faces-display): Add optional argument.
Richard M. Stallman <rms@gnu.org>
parents:
59281
diff
changeset
|
1255 this regular expression. When called interactively with a prefix |
d7da3e10bfef
(list-faces-display): Add optional argument.
Richard M. Stallman <rms@gnu.org>
parents:
59281
diff
changeset
|
1256 arg, prompt for a regular expression." |
d7da3e10bfef
(list-faces-display): Add optional argument.
Richard M. Stallman <rms@gnu.org>
parents:
59281
diff
changeset
|
1257 (interactive (list (and current-prefix-arg |
96435
414b3d1e76df
(face-name-history): New variable.
Juri Linkov <juri@jurta.org>
parents:
96398
diff
changeset
|
1258 (read-regexp "List faces matching regexp")))) |
62947
2a5dbdf6d22a
(list-faces-display): Improve the formatting by computing the maximum length
Juanma Barranquero <lekktu@gmail.com>
parents:
62922
diff
changeset
|
1259 (let ((all-faces (zerop (length regexp))) |
25012 | 1260 (frame (selected-frame)) |
62947
2a5dbdf6d22a
(list-faces-display): Improve the formatting by computing the maximum length
Juanma Barranquero <lekktu@gmail.com>
parents:
62922
diff
changeset
|
1261 (max-length 0) |
2a5dbdf6d22a
(list-faces-display): Improve the formatting by computing the maximum length
Juanma Barranquero <lekktu@gmail.com>
parents:
62922
diff
changeset
|
1262 faces line-format |
27716
a3d981ee3185
Don't require custom. Add more specific :groups to various deffaces.
Dave Love <fx@gnu.org>
parents:
27571
diff
changeset
|
1263 disp-frame window face-name) |
62947
2a5dbdf6d22a
(list-faces-display): Improve the formatting by computing the maximum length
Juanma Barranquero <lekktu@gmail.com>
parents:
62922
diff
changeset
|
1264 ;; We filter and take the max length in one pass |
2a5dbdf6d22a
(list-faces-display): Improve the formatting by computing the maximum length
Juanma Barranquero <lekktu@gmail.com>
parents:
62922
diff
changeset
|
1265 (setq faces |
2a5dbdf6d22a
(list-faces-display): Improve the formatting by computing the maximum length
Juanma Barranquero <lekktu@gmail.com>
parents:
62922
diff
changeset
|
1266 (delq nil |
2a5dbdf6d22a
(list-faces-display): Improve the formatting by computing the maximum length
Juanma Barranquero <lekktu@gmail.com>
parents:
62922
diff
changeset
|
1267 (mapcar (lambda (f) |
2a5dbdf6d22a
(list-faces-display): Improve the formatting by computing the maximum length
Juanma Barranquero <lekktu@gmail.com>
parents:
62922
diff
changeset
|
1268 (let ((s (symbol-name f))) |
2a5dbdf6d22a
(list-faces-display): Improve the formatting by computing the maximum length
Juanma Barranquero <lekktu@gmail.com>
parents:
62922
diff
changeset
|
1269 (when (or all-faces (string-match regexp s)) |
2a5dbdf6d22a
(list-faces-display): Improve the formatting by computing the maximum length
Juanma Barranquero <lekktu@gmail.com>
parents:
62922
diff
changeset
|
1270 (setq max-length (max (length s) max-length)) |
2a5dbdf6d22a
(list-faces-display): Improve the formatting by computing the maximum length
Juanma Barranquero <lekktu@gmail.com>
parents:
62922
diff
changeset
|
1271 f))) |
2a5dbdf6d22a
(list-faces-display): Improve the formatting by computing the maximum length
Juanma Barranquero <lekktu@gmail.com>
parents:
62922
diff
changeset
|
1272 (sort (face-list) #'string-lessp)))) |
2a5dbdf6d22a
(list-faces-display): Improve the formatting by computing the maximum length
Juanma Barranquero <lekktu@gmail.com>
parents:
62922
diff
changeset
|
1273 (unless faces |
2a5dbdf6d22a
(list-faces-display): Improve the formatting by computing the maximum length
Juanma Barranquero <lekktu@gmail.com>
parents:
62922
diff
changeset
|
1274 (error "No faces matching \"%s\"" regexp)) |
2a5dbdf6d22a
(list-faces-display): Improve the formatting by computing the maximum length
Juanma Barranquero <lekktu@gmail.com>
parents:
62922
diff
changeset
|
1275 (setq max-length (1+ max-length) |
2a5dbdf6d22a
(list-faces-display): Improve the formatting by computing the maximum length
Juanma Barranquero <lekktu@gmail.com>
parents:
62922
diff
changeset
|
1276 line-format (format "%%-%ds" max-length)) |
86010
d42c1cd75af4
(list-faces-display, describe-face):
Martin Rudalics <rudalics@gmx.at>
parents:
85996
diff
changeset
|
1277 (with-help-window "*Faces*" |
105994
009383a57ce8
* x-dnd.el (x-dnd-maybe-call-test-function):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
105954
diff
changeset
|
1278 (with-current-buffer standard-output |
25012 | 1279 (setq truncate-lines t) |
27716
a3d981ee3185
Don't require custom. Add more specific :groups to various deffaces.
Dave Love <fx@gnu.org>
parents:
27571
diff
changeset
|
1280 (insert |
a3d981ee3185
Don't require custom. Add more specific :groups to various deffaces.
Dave Love <fx@gnu.org>
parents:
27571
diff
changeset
|
1281 (substitute-command-keys |
a3d981ee3185
Don't require custom. Add more specific :groups to various deffaces.
Dave Love <fx@gnu.org>
parents:
27571
diff
changeset
|
1282 (concat |
a3d981ee3185
Don't require custom. Add more specific :groups to various deffaces.
Dave Love <fx@gnu.org>
parents:
27571
diff
changeset
|
1283 "Use " |
27736
b4d0a1247b35
(list-faces-display): Use display-mouse-p, not window-system.
Eli Zaretskii <eliz@gnu.org>
parents:
27716
diff
changeset
|
1284 (if (display-mouse-p) "\\[help-follow-mouse] or ") |
27831
05cce359cbf0
(list-faces-display): Fix header typo.
Dave Love <fx@gnu.org>
parents:
27736
diff
changeset
|
1285 "\\[help-follow] on a face name to customize it\n" |
43550
fc7733c201af
(list-faces-display): Fix typo.
Juanma Barranquero <lekktu@gmail.com>
parents:
43392
diff
changeset
|
1286 "or on its sample text for a description of the face.\n\n"))) |
27716
a3d981ee3185
Don't require custom. Add more specific :groups to various deffaces.
Dave Love <fx@gnu.org>
parents:
27571
diff
changeset
|
1287 (setq help-xref-stack nil) |
59872
d7da3e10bfef
(list-faces-display): Add optional argument.
Richard M. Stallman <rms@gnu.org>
parents:
59281
diff
changeset
|
1288 (dolist (face faces) |
27716
a3d981ee3185
Don't require custom. Add more specific :groups to various deffaces.
Dave Love <fx@gnu.org>
parents:
27571
diff
changeset
|
1289 (setq face-name (symbol-name face)) |
62947
2a5dbdf6d22a
(list-faces-display): Improve the formatting by computing the maximum length
Juanma Barranquero <lekktu@gmail.com>
parents:
62922
diff
changeset
|
1290 (insert (format line-format face-name)) |
27716
a3d981ee3185
Don't require custom. Add more specific :groups to various deffaces.
Dave Love <fx@gnu.org>
parents:
27571
diff
changeset
|
1291 ;; Hyperlink to a customization buffer for the face. Using |
a3d981ee3185
Don't require custom. Add more specific :groups to various deffaces.
Dave Love <fx@gnu.org>
parents:
27571
diff
changeset
|
1292 ;; the help xref mechanism may not be the best way. |
a3d981ee3185
Don't require custom. Add more specific :groups to various deffaces.
Dave Love <fx@gnu.org>
parents:
27571
diff
changeset
|
1293 (save-excursion |
a3d981ee3185
Don't require custom. Add more specific :groups to various deffaces.
Dave Love <fx@gnu.org>
parents:
27571
diff
changeset
|
1294 (save-match-data |
a3d981ee3185
Don't require custom. Add more specific :groups to various deffaces.
Dave Love <fx@gnu.org>
parents:
27571
diff
changeset
|
1295 (search-backward face-name) |
62534
bf6a0cd0e835
(list-faces-display): Make back button respect optional regexp arg.
Nick Roberts <nickrob@snap.net.nz>
parents:
62498
diff
changeset
|
1296 (setq help-xref-stack-item `(list-faces-display ,regexp)) |
44886
fe167023fdf0
(read-face-name): New defaulting features.
Richard M. Stallman <rms@gnu.org>
parents:
44590
diff
changeset
|
1297 (help-xref-button 0 'help-customize-face face))) |
fe167023fdf0
(read-face-name): New defaulting features.
Richard M. Stallman <rms@gnu.org>
parents:
44590
diff
changeset
|
1298 (let ((beg (point)) |
fe167023fdf0
(read-face-name): New defaulting features.
Richard M. Stallman <rms@gnu.org>
parents:
44590
diff
changeset
|
1299 (line-beg (line-beginning-position))) |
25012 | 1300 (insert list-faces-sample-text) |
27716
a3d981ee3185
Don't require custom. Add more specific :groups to various deffaces.
Dave Love <fx@gnu.org>
parents:
27571
diff
changeset
|
1301 ;; Hyperlink to a help buffer for the face. |
a3d981ee3185
Don't require custom. Add more specific :groups to various deffaces.
Dave Love <fx@gnu.org>
parents:
27571
diff
changeset
|
1302 (save-excursion |
a3d981ee3185
Don't require custom. Add more specific :groups to various deffaces.
Dave Love <fx@gnu.org>
parents:
27571
diff
changeset
|
1303 (save-match-data |
a3d981ee3185
Don't require custom. Add more specific :groups to various deffaces.
Dave Love <fx@gnu.org>
parents:
27571
diff
changeset
|
1304 (search-backward list-faces-sample-text) |
39799
99f30ac48ec0
(list-faces-display, describe-face): Fix args to `help-xref-button'.
Miles Bader <miles@gnu.org>
parents:
39549
diff
changeset
|
1305 (help-xref-button 0 'help-face face))) |
25012 | 1306 (insert "\n") |
1307 (put-text-property beg (1- (point)) 'face face) | |
44886
fe167023fdf0
(read-face-name): New defaulting features.
Richard M. Stallman <rms@gnu.org>
parents:
44590
diff
changeset
|
1308 ;; Make all face commands default to the proper face |
fe167023fdf0
(read-face-name): New defaulting features.
Richard M. Stallman <rms@gnu.org>
parents:
44590
diff
changeset
|
1309 ;; anywhere in the line. |
fe167023fdf0
(read-face-name): New defaulting features.
Richard M. Stallman <rms@gnu.org>
parents:
44590
diff
changeset
|
1310 (put-text-property line-beg (1- (point)) 'read-face-name face) |
25012 | 1311 ;; If the sample text has multiple lines, line up all of them. |
1312 (goto-char beg) | |
1313 (forward-line 1) | |
1314 (while (not (eobp)) | |
62947
2a5dbdf6d22a
(list-faces-display): Improve the formatting by computing the maximum length
Juanma Barranquero <lekktu@gmail.com>
parents:
62922
diff
changeset
|
1315 (insert-char ?\s max-length) |
25012 | 1316 (forward-line 1)))) |
86010
d42c1cd75af4
(list-faces-display, describe-face):
Martin Rudalics <rudalics@gmx.at>
parents:
85996
diff
changeset
|
1317 (goto-char (point-min)))) |
25012 | 1318 ;; If the *Faces* buffer appears in a different frame, |
1319 ;; copy all the face definitions from FRAME, | |
1320 ;; so that the display will reflect the frame that was selected. | |
1321 (setq window (get-buffer-window (get-buffer "*Faces*") t)) | |
1322 (setq disp-frame (if window (window-frame window) | |
1323 (car (frame-list)))) | |
1324 (or (eq frame disp-frame) | |
1325 (let ((faces (face-list))) | |
1326 (while faces | |
1327 (copy-face (car faces) (car faces) frame disp-frame) | |
1328 (setq faces (cdr faces))))))) | |
1329 | |
59872
d7da3e10bfef
(list-faces-display): Add optional argument.
Richard M. Stallman <rms@gnu.org>
parents:
59281
diff
changeset
|
1330 |
25012 | 1331 (defun describe-face (face &optional frame) |
1332 "Display the properties of face FACE on FRAME. | |
45314
d752ae89321a
(describe-face): Fix typo.
Juanma Barranquero <lekktu@gmail.com>
parents:
45255
diff
changeset
|
1333 Interactively, FACE defaults to the faces of the character after point |
44886
fe167023fdf0
(read-face-name): New defaulting features.
Richard M. Stallman <rms@gnu.org>
parents:
44590
diff
changeset
|
1334 and FRAME defaults to the selected frame. |
fe167023fdf0
(read-face-name): New defaulting features.
Richard M. Stallman <rms@gnu.org>
parents:
44590
diff
changeset
|
1335 |
25012 | 1336 If the optional argument FRAME is given, report on face FACE in that frame. |
1337 If FRAME is t, report on the defaults for face FACE (for new frames). | |
1338 If FRAME is omitted or nil, use the selected frame." | |
109109
d5e4b1b34988
* lisp/faces.el (read-face-name): Rename arg `string-describing-default'
Juri Linkov <juri@jurta.org>
parents:
109089
diff
changeset
|
1339 (interactive (list (read-face-name "Describe face" 'default t))) |
25012 | 1340 (let* ((attrs '((:family . "Family") |
95862
afdd781501c8
(set-face-attribute): Parse "FOUNDRY-FAMILY" form here.
Kenichi Handa <handa@m17n.org>
parents:
95841
diff
changeset
|
1341 (:foundry . "Foundry") |
25012 | 1342 (:width . "Width") |
1343 (:height . "Height") | |
1344 (:weight . "Weight") | |
1345 (:slant . "Slant") | |
1346 (:foreground . "Foreground") | |
1347 (:background . "Background") | |
1348 (:underline . "Underline") | |
1349 (:overline . "Overline") | |
1350 (:strike-through . "Strike-through") | |
1351 (:box . "Box") | |
1352 (:inverse-video . "Inverse") | |
28214
73c16c6e401e
(read-face-font): Fix TABLE arg to completing-read.
Kenichi Handa <handa@m17n.org>
parents:
27928
diff
changeset
|
1353 (:stipple . "Stipple") |
89129
ed1d9d1cfc71
(describe-face): Describe :fontset property too.
Kenichi Handa <handa@m17n.org>
parents:
43550
diff
changeset
|
1354 (:font . "Font") |
ed1d9d1cfc71
(describe-face): Describe :fontset property too.
Kenichi Handa <handa@m17n.org>
parents:
43550
diff
changeset
|
1355 (:fontset . "Fontset") |
31179
354c781f2864
(describe-face): Add support for :inherit attribute.
Miles Bader <miles@gnu.org>
parents:
30971
diff
changeset
|
1356 (:inherit . "Inherit"))) |
25012 | 1357 (max-width (apply #'max (mapcar #'(lambda (x) (length (cdr x))) |
1358 attrs)))) | |
105372
bd2966850aac
Use `called-interactively-p' instead of `interactive-p'.
Juanma Barranquero <lekktu@gmail.com>
parents:
105230
diff
changeset
|
1359 (help-setup-xref (list #'describe-face face) |
bd2966850aac
Use `called-interactively-p' instead of `interactive-p'.
Juanma Barranquero <lekktu@gmail.com>
parents:
105230
diff
changeset
|
1360 (called-interactively-p 'interactive)) |
44886
fe167023fdf0
(read-face-name): New defaulting features.
Richard M. Stallman <rms@gnu.org>
parents:
44590
diff
changeset
|
1361 (unless face |
fe167023fdf0
(read-face-name): New defaulting features.
Richard M. Stallman <rms@gnu.org>
parents:
44590
diff
changeset
|
1362 (setq face 'default)) |
fe167023fdf0
(read-face-name): New defaulting features.
Richard M. Stallman <rms@gnu.org>
parents:
44590
diff
changeset
|
1363 (if (not (listp face)) |
fe167023fdf0
(read-face-name): New defaulting features.
Richard M. Stallman <rms@gnu.org>
parents:
44590
diff
changeset
|
1364 (setq face (list face))) |
86010
d42c1cd75af4
(list-faces-display, describe-face):
Martin Rudalics <rudalics@gmx.at>
parents:
85996
diff
changeset
|
1365 (with-help-window (help-buffer) |
105994
009383a57ce8
* x-dnd.el (x-dnd-maybe-call-test-function):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
105954
diff
changeset
|
1366 (with-current-buffer standard-output |
44886
fe167023fdf0
(read-face-name): New defaulting features.
Richard M. Stallman <rms@gnu.org>
parents:
44590
diff
changeset
|
1367 (dolist (f face) |
85297
01f68ac2fb98
(describe-face): Allow handling a string as the face name.
Juri Linkov <juri@jurta.org>
parents:
85272
diff
changeset
|
1368 (if (stringp f) (setq f (intern f))) |
101128
311f898c790b
(describe-face): Ignore anonymous faces.
Chong Yidong <cyd@stupidchicken.com>
parents:
101054
diff
changeset
|
1369 ;; We may get called for anonymous faces (i.e., faces |
311f898c790b
(describe-face): Ignore anonymous faces.
Chong Yidong <cyd@stupidchicken.com>
parents:
101054
diff
changeset
|
1370 ;; expressed using prop-value plists). Those can't be |
311f898c790b
(describe-face): Ignore anonymous faces.
Chong Yidong <cyd@stupidchicken.com>
parents:
101054
diff
changeset
|
1371 ;; usefully customized, so ignore them. |
311f898c790b
(describe-face): Ignore anonymous faces.
Chong Yidong <cyd@stupidchicken.com>
parents:
101054
diff
changeset
|
1372 (when (symbolp f) |
311f898c790b
(describe-face): Ignore anonymous faces.
Chong Yidong <cyd@stupidchicken.com>
parents:
101054
diff
changeset
|
1373 (insert "Face: " (symbol-name f)) |
311f898c790b
(describe-face): Ignore anonymous faces.
Chong Yidong <cyd@stupidchicken.com>
parents:
101054
diff
changeset
|
1374 (if (not (facep f)) |
311f898c790b
(describe-face): Ignore anonymous faces.
Chong Yidong <cyd@stupidchicken.com>
parents:
101054
diff
changeset
|
1375 (insert " undefined face.\n") |
311f898c790b
(describe-face): Ignore anonymous faces.
Chong Yidong <cyd@stupidchicken.com>
parents:
101054
diff
changeset
|
1376 (let ((customize-label "customize this face") |
311f898c790b
(describe-face): Ignore anonymous faces.
Chong Yidong <cyd@stupidchicken.com>
parents:
101054
diff
changeset
|
1377 file-name) |
311f898c790b
(describe-face): Ignore anonymous faces.
Chong Yidong <cyd@stupidchicken.com>
parents:
101054
diff
changeset
|
1378 (insert (concat " (" (propertize "sample" 'font-lock-face f) ")")) |
311f898c790b
(describe-face): Ignore anonymous faces.
Chong Yidong <cyd@stupidchicken.com>
parents:
101054
diff
changeset
|
1379 (princ (concat " (" customize-label ")\n")) |
104752
fcbe482879e0
(describe-face): Adjust the output format to be more like
Glenn Morris <rgm@gnu.org>
parents:
104258
diff
changeset
|
1380 ;; FIXME not sure how much of this belongs here, and |
fcbe482879e0
(describe-face): Adjust the output format to be more like
Glenn Morris <rgm@gnu.org>
parents:
104258
diff
changeset
|
1381 ;; how much in `face-documentation'. The latter is |
fcbe482879e0
(describe-face): Adjust the output format to be more like
Glenn Morris <rgm@gnu.org>
parents:
104258
diff
changeset
|
1382 ;; not used much, but needs to return nil for |
fcbe482879e0
(describe-face): Adjust the output format to be more like
Glenn Morris <rgm@gnu.org>
parents:
104258
diff
changeset
|
1383 ;; undocumented faces. |
fcbe482879e0
(describe-face): Adjust the output format to be more like
Glenn Morris <rgm@gnu.org>
parents:
104258
diff
changeset
|
1384 (let ((alias (get f 'face-alias)) |
fcbe482879e0
(describe-face): Adjust the output format to be more like
Glenn Morris <rgm@gnu.org>
parents:
104258
diff
changeset
|
1385 (face f) |
fcbe482879e0
(describe-face): Adjust the output format to be more like
Glenn Morris <rgm@gnu.org>
parents:
104258
diff
changeset
|
1386 obsolete) |
fcbe482879e0
(describe-face): Adjust the output format to be more like
Glenn Morris <rgm@gnu.org>
parents:
104258
diff
changeset
|
1387 (when alias |
fcbe482879e0
(describe-face): Adjust the output format to be more like
Glenn Morris <rgm@gnu.org>
parents:
104258
diff
changeset
|
1388 (setq face alias) |
fcbe482879e0
(describe-face): Adjust the output format to be more like
Glenn Morris <rgm@gnu.org>
parents:
104258
diff
changeset
|
1389 (insert |
fcbe482879e0
(describe-face): Adjust the output format to be more like
Glenn Morris <rgm@gnu.org>
parents:
104258
diff
changeset
|
1390 (format "\n %s is an alias for the face `%s'.\n%s" |
fcbe482879e0
(describe-face): Adjust the output format to be more like
Glenn Morris <rgm@gnu.org>
parents:
104258
diff
changeset
|
1391 f alias |
fcbe482879e0
(describe-face): Adjust the output format to be more like
Glenn Morris <rgm@gnu.org>
parents:
104258
diff
changeset
|
1392 (if (setq obsolete (get f 'obsolete-face)) |
fcbe482879e0
(describe-face): Adjust the output format to be more like
Glenn Morris <rgm@gnu.org>
parents:
104258
diff
changeset
|
1393 (format " This face is obsolete%s; use `%s' instead.\n" |
fcbe482879e0
(describe-face): Adjust the output format to be more like
Glenn Morris <rgm@gnu.org>
parents:
104258
diff
changeset
|
1394 (if (stringp obsolete) |
fcbe482879e0
(describe-face): Adjust the output format to be more like
Glenn Morris <rgm@gnu.org>
parents:
104258
diff
changeset
|
1395 (format " since %s" obsolete) |
fcbe482879e0
(describe-face): Adjust the output format to be more like
Glenn Morris <rgm@gnu.org>
parents:
104258
diff
changeset
|
1396 "") |
fcbe482879e0
(describe-face): Adjust the output format to be more like
Glenn Morris <rgm@gnu.org>
parents:
104258
diff
changeset
|
1397 alias) |
fcbe482879e0
(describe-face): Adjust the output format to be more like
Glenn Morris <rgm@gnu.org>
parents:
104258
diff
changeset
|
1398 "")))) |
fcbe482879e0
(describe-face): Adjust the output format to be more like
Glenn Morris <rgm@gnu.org>
parents:
104258
diff
changeset
|
1399 (insert "\nDocumentation:\n" |
fcbe482879e0
(describe-face): Adjust the output format to be more like
Glenn Morris <rgm@gnu.org>
parents:
104258
diff
changeset
|
1400 (or (face-documentation face) |
fcbe482879e0
(describe-face): Adjust the output format to be more like
Glenn Morris <rgm@gnu.org>
parents:
104258
diff
changeset
|
1401 "Not documented as a face.") |
fcbe482879e0
(describe-face): Adjust the output format to be more like
Glenn Morris <rgm@gnu.org>
parents:
104258
diff
changeset
|
1402 "\n\n")) |
101128
311f898c790b
(describe-face): Ignore anonymous faces.
Chong Yidong <cyd@stupidchicken.com>
parents:
101054
diff
changeset
|
1403 (with-current-buffer standard-output |
311f898c790b
(describe-face): Ignore anonymous faces.
Chong Yidong <cyd@stupidchicken.com>
parents:
101054
diff
changeset
|
1404 (save-excursion |
311f898c790b
(describe-face): Ignore anonymous faces.
Chong Yidong <cyd@stupidchicken.com>
parents:
101054
diff
changeset
|
1405 (re-search-backward |
311f898c790b
(describe-face): Ignore anonymous faces.
Chong Yidong <cyd@stupidchicken.com>
parents:
101054
diff
changeset
|
1406 (concat "\\(" customize-label "\\)") nil t) |
311f898c790b
(describe-face): Ignore anonymous faces.
Chong Yidong <cyd@stupidchicken.com>
parents:
101054
diff
changeset
|
1407 (help-xref-button 1 'help-customize-face f))) |
311f898c790b
(describe-face): Ignore anonymous faces.
Chong Yidong <cyd@stupidchicken.com>
parents:
101054
diff
changeset
|
1408 (setq file-name (find-lisp-object-file-name f 'defface)) |
311f898c790b
(describe-face): Ignore anonymous faces.
Chong Yidong <cyd@stupidchicken.com>
parents:
101054
diff
changeset
|
1409 (when file-name |
311f898c790b
(describe-face): Ignore anonymous faces.
Chong Yidong <cyd@stupidchicken.com>
parents:
101054
diff
changeset
|
1410 (princ "Defined in `") |
311f898c790b
(describe-face): Ignore anonymous faces.
Chong Yidong <cyd@stupidchicken.com>
parents:
101054
diff
changeset
|
1411 (princ (file-name-nondirectory file-name)) |
311f898c790b
(describe-face): Ignore anonymous faces.
Chong Yidong <cyd@stupidchicken.com>
parents:
101054
diff
changeset
|
1412 (princ "'") |
311f898c790b
(describe-face): Ignore anonymous faces.
Chong Yidong <cyd@stupidchicken.com>
parents:
101054
diff
changeset
|
1413 ;; Make a hyperlink to the library. |
311f898c790b
(describe-face): Ignore anonymous faces.
Chong Yidong <cyd@stupidchicken.com>
parents:
101054
diff
changeset
|
1414 (save-excursion |
311f898c790b
(describe-face): Ignore anonymous faces.
Chong Yidong <cyd@stupidchicken.com>
parents:
101054
diff
changeset
|
1415 (re-search-backward "`\\([^`']+\\)'" nil t) |
311f898c790b
(describe-face): Ignore anonymous faces.
Chong Yidong <cyd@stupidchicken.com>
parents:
101054
diff
changeset
|
1416 (help-xref-button 1 'help-face-def f file-name)) |
311f898c790b
(describe-face): Ignore anonymous faces.
Chong Yidong <cyd@stupidchicken.com>
parents:
101054
diff
changeset
|
1417 (princ ".") |
311f898c790b
(describe-face): Ignore anonymous faces.
Chong Yidong <cyd@stupidchicken.com>
parents:
101054
diff
changeset
|
1418 (terpri) |
311f898c790b
(describe-face): Ignore anonymous faces.
Chong Yidong <cyd@stupidchicken.com>
parents:
101054
diff
changeset
|
1419 (terpri)) |
311f898c790b
(describe-face): Ignore anonymous faces.
Chong Yidong <cyd@stupidchicken.com>
parents:
101054
diff
changeset
|
1420 (dolist (a attrs) |
311f898c790b
(describe-face): Ignore anonymous faces.
Chong Yidong <cyd@stupidchicken.com>
parents:
101054
diff
changeset
|
1421 (let ((attr (face-attribute f (car a) frame))) |
311f898c790b
(describe-face): Ignore anonymous faces.
Chong Yidong <cyd@stupidchicken.com>
parents:
101054
diff
changeset
|
1422 (insert (make-string (- max-width (length (cdr a))) ?\s) |
311f898c790b
(describe-face): Ignore anonymous faces.
Chong Yidong <cyd@stupidchicken.com>
parents:
101054
diff
changeset
|
1423 (cdr a) ": " (format "%s" attr)) |
311f898c790b
(describe-face): Ignore anonymous faces.
Chong Yidong <cyd@stupidchicken.com>
parents:
101054
diff
changeset
|
1424 (if (and (eq (car a) :inherit) |
311f898c790b
(describe-face): Ignore anonymous faces.
Chong Yidong <cyd@stupidchicken.com>
parents:
101054
diff
changeset
|
1425 (not (eq attr 'unspecified))) |
311f898c790b
(describe-face): Ignore anonymous faces.
Chong Yidong <cyd@stupidchicken.com>
parents:
101054
diff
changeset
|
1426 ;; Make a hyperlink to the parent face. |
311f898c790b
(describe-face): Ignore anonymous faces.
Chong Yidong <cyd@stupidchicken.com>
parents:
101054
diff
changeset
|
1427 (save-excursion |
311f898c790b
(describe-face): Ignore anonymous faces.
Chong Yidong <cyd@stupidchicken.com>
parents:
101054
diff
changeset
|
1428 (re-search-backward ": \\([^:]+\\)" nil t) |
311f898c790b
(describe-face): Ignore anonymous faces.
Chong Yidong <cyd@stupidchicken.com>
parents:
101054
diff
changeset
|
1429 (help-xref-button 1 'help-face attr))) |
311f898c790b
(describe-face): Ignore anonymous faces.
Chong Yidong <cyd@stupidchicken.com>
parents:
101054
diff
changeset
|
1430 (insert "\n"))))) |
311f898c790b
(describe-face): Ignore anonymous faces.
Chong Yidong <cyd@stupidchicken.com>
parents:
101054
diff
changeset
|
1431 (terpri))))))) |
39799
99f30ac48ec0
(list-faces-display, describe-face): Fix args to `help-xref-button'.
Miles Bader <miles@gnu.org>
parents:
39549
diff
changeset
|
1432 |
2456 | 1433 |
25012 | 1434 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
1435 ;;; Face specifications (defface). | |
1436 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | |
1437 | |
1438 ;; Parameter FRAME Is kept for call compatibility to with previous | |
1439 ;; face implementation. | |
1440 | |
1441 (defun face-attr-construct (face &optional frame) | |
64539
c94d5f576885
(describe-face): "?\ " -> "?\s".
Juanma Barranquero <lekktu@gmail.com>
parents:
64497
diff
changeset
|
1442 "Return a `defface'-style attribute list for FACE on FRAME. |
25012 | 1443 Value is a property list of pairs ATTRIBUTE VALUE for all specified |
1444 face attributes of FACE where ATTRIBUTE is the attribute name and | |
1445 VALUE is the specified value of that attribute." | |
1446 (let (result) | |
1447 (dolist (entry face-attribute-name-alist result) | |
1448 (let* ((attribute (car entry)) | |
1449 (value (face-attribute face attribute))) | |
1450 (unless (eq value 'unspecified) | |
1451 (setq result (nconc (list attribute value) result))))))) | |
37943 | 1452 |
25012 | 1453 |
1454 (defun face-spec-set-match-display (display frame) | |
1455 "Non-nil if DISPLAY matches FRAME. | |
1456 DISPLAY is part of a spec such as can be used in `defface'. | |
1457 If FRAME is nil, the current FRAME is used." | |
1458 (let* ((conjuncts display) | |
1459 conjunct req options | |
1460 ;; t means we have succeeded against all the conjuncts in | |
1461 ;; DISPLAY that have been tested so far. | |
1462 (match t)) | |
1463 (if (eq conjuncts t) | |
1464 (setq conjuncts nil)) | |
1465 (while (and conjuncts match) | |
1466 (setq conjunct (car conjuncts) | |
1467 conjuncts (cdr conjuncts) | |
1468 req (car conjunct) | |
1469 options (cdr conjunct) | |
1470 match (cond ((eq req 'type) | |
83004
7900111db01c
Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents:
52401
diff
changeset
|
1471 (or (memq (window-system frame) options) |
33447
45961172564e
(face-spec-set-match-display): Revert the change from
Eli Zaretskii <eliz@gnu.org>
parents:
33419
diff
changeset
|
1472 ;; FIXME: This should be revisited to use |
45961172564e
(face-spec-set-match-display): Revert the change from
Eli Zaretskii <eliz@gnu.org>
parents:
33419
diff
changeset
|
1473 ;; display-graphic-p, provided that the |
45961172564e
(face-spec-set-match-display): Revert the change from
Eli Zaretskii <eliz@gnu.org>
parents:
33419
diff
changeset
|
1474 ;; color selection depends on the number |
45961172564e
(face-spec-set-match-display): Revert the change from
Eli Zaretskii <eliz@gnu.org>
parents:
33419
diff
changeset
|
1475 ;; of supported colors, and all defface's |
45961172564e
(face-spec-set-match-display): Revert the change from
Eli Zaretskii <eliz@gnu.org>
parents:
33419
diff
changeset
|
1476 ;; are changed to look at number of colors |
45961172564e
(face-spec-set-match-display): Revert the change from
Eli Zaretskii <eliz@gnu.org>
parents:
33419
diff
changeset
|
1477 ;; instead of (type graphic) etc. |
83004
7900111db01c
Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents:
52401
diff
changeset
|
1478 (and (null (window-system frame)) |
33447
45961172564e
(face-spec-set-match-display): Revert the change from
Eli Zaretskii <eliz@gnu.org>
parents:
33419
diff
changeset
|
1479 (memq 'tty options)) |
25887
099a3776ff00
(face-spec-set-match-display): Recognize `type' of
Gerd Moellmann <gerd@gnu.org>
parents:
25814
diff
changeset
|
1480 (and (memq 'motif options) |
099a3776ff00
(face-spec-set-match-display): Recognize `type' of
Gerd Moellmann <gerd@gnu.org>
parents:
25814
diff
changeset
|
1481 (featurep 'motif)) |
55545
70c4138d3b8d
* custom.el (defface): Document that type can have value gtk.
Jan Djärv <jan.h.d@swipnet.se>
parents:
54574
diff
changeset
|
1482 (and (memq 'gtk options) |
70c4138d3b8d
* custom.el (defface): Document that type can have value gtk.
Jan Djärv <jan.h.d@swipnet.se>
parents:
54574
diff
changeset
|
1483 (featurep 'gtk)) |
25887
099a3776ff00
(face-spec-set-match-display): Recognize `type' of
Gerd Moellmann <gerd@gnu.org>
parents:
25814
diff
changeset
|
1484 (and (memq 'lucid options) |
099a3776ff00
(face-spec-set-match-display): Recognize `type' of
Gerd Moellmann <gerd@gnu.org>
parents:
25814
diff
changeset
|
1485 (featurep 'x-toolkit) |
55545
70c4138d3b8d
* custom.el (defface): Document that type can have value gtk.
Jan Djärv <jan.h.d@swipnet.se>
parents:
54574
diff
changeset
|
1486 (not (featurep 'motif)) |
70c4138d3b8d
* custom.el (defface): Document that type can have value gtk.
Jan Djärv <jan.h.d@swipnet.se>
parents:
54574
diff
changeset
|
1487 (not (featurep 'gtk))) |
25887
099a3776ff00
(face-spec-set-match-display): Recognize `type' of
Gerd Moellmann <gerd@gnu.org>
parents:
25814
diff
changeset
|
1488 (and (memq 'x-toolkit options) |
099a3776ff00
(face-spec-set-match-display): Recognize `type' of
Gerd Moellmann <gerd@gnu.org>
parents:
25814
diff
changeset
|
1489 (featurep 'x-toolkit)))) |
54151
9a5c3b661a40
(face-spec-set-match-display): Add a new attribute, `min-colors'.
Eli Zaretskii <eliz@gnu.org>
parents:
52401
diff
changeset
|
1490 ((eq req 'min-colors) |
9a5c3b661a40
(face-spec-set-match-display): Add a new attribute, `min-colors'.
Eli Zaretskii <eliz@gnu.org>
parents:
52401
diff
changeset
|
1491 (>= (display-color-cells frame) (car options))) |
25012 | 1492 ((eq req 'class) |
1493 (memq (frame-parameter frame 'display-type) options)) | |
1494 ((eq req 'background) | |
1495 (memq (frame-parameter frame 'background-mode) | |
1496 options)) | |
45722
c553d91619aa
(display-supports-face-attributes-p): Work correctly if DISPLAY is a frame.
Miles Bader <miles@gnu.org>
parents:
45717
diff
changeset
|
1497 ((eq req 'supports) |
c553d91619aa
(display-supports-face-attributes-p): Work correctly if DISPLAY is a frame.
Miles Bader <miles@gnu.org>
parents:
45717
diff
changeset
|
1498 (display-supports-face-attributes-p options frame)) |
28840 | 1499 (t (error "Unknown req `%S' with options `%S'" |
25012 | 1500 req options))))) |
1501 match)) | |
1502 | |
1503 | |
1504 (defun face-spec-choose (spec &optional frame) | |
32758
a0ca98ed466a
(face-user-default-spec, face-default-spec): New functions.
Miles Bader <miles@gnu.org>
parents:
32756
diff
changeset
|
1505 "Choose the proper attributes for FRAME, out of SPEC. |
a0ca98ed466a
(face-user-default-spec, face-default-spec): New functions.
Miles Bader <miles@gnu.org>
parents:
32756
diff
changeset
|
1506 If SPEC is nil, return nil." |
25012 | 1507 (unless frame |
1508 (setq frame (selected-frame))) | |
1509 (let ((tail spec) | |
58935
95bb6b9a27a3
(header-line, mode-line-inactive, tool-bar):
Richard M. Stallman <rms@gnu.org>
parents:
58851
diff
changeset
|
1510 result defaults) |
25012 | 1511 (while tail |
32940
80681aca0859
(face-spec-choose): Change syntax so that the list of attribute-value
Miles Bader <miles@gnu.org>
parents:
32801
diff
changeset
|
1512 (let* ((entry (pop tail)) |
80681aca0859
(face-spec-choose): Change syntax so that the list of attribute-value
Miles Bader <miles@gnu.org>
parents:
32801
diff
changeset
|
1513 (display (car entry)) |
58935
95bb6b9a27a3
(header-line, mode-line-inactive, tool-bar):
Richard M. Stallman <rms@gnu.org>
parents:
58851
diff
changeset
|
1514 (attrs (cdr entry)) |
95bb6b9a27a3
(header-line, mode-line-inactive, tool-bar):
Richard M. Stallman <rms@gnu.org>
parents:
58851
diff
changeset
|
1515 thisval) |
95bb6b9a27a3
(header-line, mode-line-inactive, tool-bar):
Richard M. Stallman <rms@gnu.org>
parents:
58851
diff
changeset
|
1516 ;; Get the attributes as actually specified by this alternative. |
95bb6b9a27a3
(header-line, mode-line-inactive, tool-bar):
Richard M. Stallman <rms@gnu.org>
parents:
58851
diff
changeset
|
1517 (setq thisval |
95bb6b9a27a3
(header-line, mode-line-inactive, tool-bar):
Richard M. Stallman <rms@gnu.org>
parents:
58851
diff
changeset
|
1518 (if (null (cdr attrs)) ;; was (listp (car attrs)) |
95bb6b9a27a3
(header-line, mode-line-inactive, tool-bar):
Richard M. Stallman <rms@gnu.org>
parents:
58851
diff
changeset
|
1519 ;; Old-style entry, the attribute list is the |
95bb6b9a27a3
(header-line, mode-line-inactive, tool-bar):
Richard M. Stallman <rms@gnu.org>
parents:
58851
diff
changeset
|
1520 ;; first element. |
95bb6b9a27a3
(header-line, mode-line-inactive, tool-bar):
Richard M. Stallman <rms@gnu.org>
parents:
58851
diff
changeset
|
1521 (car attrs) |
95bb6b9a27a3
(header-line, mode-line-inactive, tool-bar):
Richard M. Stallman <rms@gnu.org>
parents:
58851
diff
changeset
|
1522 attrs)) |
95bb6b9a27a3
(header-line, mode-line-inactive, tool-bar):
Richard M. Stallman <rms@gnu.org>
parents:
58851
diff
changeset
|
1523 |
95bb6b9a27a3
(header-line, mode-line-inactive, tool-bar):
Richard M. Stallman <rms@gnu.org>
parents:
58851
diff
changeset
|
1524 ;; If the condition is `default', that sets the default |
95bb6b9a27a3
(header-line, mode-line-inactive, tool-bar):
Richard M. Stallman <rms@gnu.org>
parents:
58851
diff
changeset
|
1525 ;; for following conditions. |
95bb6b9a27a3
(header-line, mode-line-inactive, tool-bar):
Richard M. Stallman <rms@gnu.org>
parents:
58851
diff
changeset
|
1526 (if (eq display 'default) |
95bb6b9a27a3
(header-line, mode-line-inactive, tool-bar):
Richard M. Stallman <rms@gnu.org>
parents:
58851
diff
changeset
|
1527 (setq defaults thisval) |
95bb6b9a27a3
(header-line, mode-line-inactive, tool-bar):
Richard M. Stallman <rms@gnu.org>
parents:
58851
diff
changeset
|
1528 ;; Otherwise, if it matches, use it. |
95bb6b9a27a3
(header-line, mode-line-inactive, tool-bar):
Richard M. Stallman <rms@gnu.org>
parents:
58851
diff
changeset
|
1529 (when (face-spec-set-match-display display frame) |
95bb6b9a27a3
(header-line, mode-line-inactive, tool-bar):
Richard M. Stallman <rms@gnu.org>
parents:
58851
diff
changeset
|
1530 (setq result thisval) |
43711
d15360503e4e
(face-spec-choose): Allow `t' to appear before the end.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
43550
diff
changeset
|
1531 (setq tail nil))))) |
58935
95bb6b9a27a3
(header-line, mode-line-inactive, tool-bar):
Richard M. Stallman <rms@gnu.org>
parents:
58851
diff
changeset
|
1532 (if defaults (append result defaults) result))) |
25012 | 1533 |
1534 | |
1535 (defun face-spec-reset-face (face &optional frame) | |
1536 "Reset all attributes of FACE on FRAME to unspecified." | |
31401
0b8165a82e34
(set-face-attribute, face-spec-reset-face)
Gerd Moellmann <gerd@gnu.org>
parents:
31197
diff
changeset
|
1537 (let ((attrs face-attribute-name-alist)) |
25012 | 1538 (while attrs |
1539 (let ((attr-and-name (car attrs))) | |
31401
0b8165a82e34
(set-face-attribute, face-spec-reset-face)
Gerd Moellmann <gerd@gnu.org>
parents:
31197
diff
changeset
|
1540 (set-face-attribute face frame (car attr-and-name) 'unspecified)) |
0b8165a82e34
(set-face-attribute, face-spec-reset-face)
Gerd Moellmann <gerd@gnu.org>
parents:
31197
diff
changeset
|
1541 (setq attrs (cdr attrs))))) |
25012 | 1542 |
1543 | |
87483
bdb419612503
(face-spec-set): Third arg is now FOR-DEFFACE.
Richard M. Stallman <rms@gnu.org>
parents:
87453
diff
changeset
|
1544 (defun face-spec-set (face spec &optional for-defface) |
92446
43421f91b96e
(face-spec-set): Fix typos in docstring.
Juanma Barranquero <lekktu@gmail.com>
parents:
92115
diff
changeset
|
1545 "Set FACE's face spec, which controls its appearance, to SPEC. |
87483
bdb419612503
(face-spec-set): Third arg is now FOR-DEFFACE.
Richard M. Stallman <rms@gnu.org>
parents:
87453
diff
changeset
|
1546 If FOR-DEFFACE is t, set the base spec, the one that `defface' |
bdb419612503
(face-spec-set): Third arg is now FOR-DEFFACE.
Richard M. Stallman <rms@gnu.org>
parents:
87453
diff
changeset
|
1547 and Custom set. (In that case, the caller must put it in the |
bdb419612503
(face-spec-set): Third arg is now FOR-DEFFACE.
Richard M. Stallman <rms@gnu.org>
parents:
87453
diff
changeset
|
1548 appropriate property, because that depends on the caller.) |
bdb419612503
(face-spec-set): Third arg is now FOR-DEFFACE.
Richard M. Stallman <rms@gnu.org>
parents:
87453
diff
changeset
|
1549 If FOR-DEFFACE is nil, set the overriding spec (and store it |
bdb419612503
(face-spec-set): Third arg is now FOR-DEFFACE.
Richard M. Stallman <rms@gnu.org>
parents:
87453
diff
changeset
|
1550 in the `face-override-spec' property of FACE). |
bdb419612503
(face-spec-set): Third arg is now FOR-DEFFACE.
Richard M. Stallman <rms@gnu.org>
parents:
87453
diff
changeset
|
1551 |
bdb419612503
(face-spec-set): Third arg is now FOR-DEFFACE.
Richard M. Stallman <rms@gnu.org>
parents:
87453
diff
changeset
|
1552 The appearance of FACE is controlled by the base spec, |
bdb419612503
(face-spec-set): Third arg is now FOR-DEFFACE.
Richard M. Stallman <rms@gnu.org>
parents:
87453
diff
changeset
|
1553 by any custom theme specs on top of that, and by the |
92446
43421f91b96e
(face-spec-set): Fix typos in docstring.
Juanma Barranquero <lekktu@gmail.com>
parents:
92115
diff
changeset
|
1554 overriding spec on top of all the rest. |
87483
bdb419612503
(face-spec-set): Third arg is now FOR-DEFFACE.
Richard M. Stallman <rms@gnu.org>
parents:
87453
diff
changeset
|
1555 |
bdb419612503
(face-spec-set): Third arg is now FOR-DEFFACE.
Richard M. Stallman <rms@gnu.org>
parents:
87453
diff
changeset
|
1556 FOR-DEFFACE can also be a frame, in which case we set the |
bdb419612503
(face-spec-set): Third arg is now FOR-DEFFACE.
Richard M. Stallman <rms@gnu.org>
parents:
87453
diff
changeset
|
1557 frame-specific attributes of FACE for that frame based on SPEC. |
bdb419612503
(face-spec-set): Third arg is now FOR-DEFFACE.
Richard M. Stallman <rms@gnu.org>
parents:
87453
diff
changeset
|
1558 That usage is deprecated. |
bdb419612503
(face-spec-set): Third arg is now FOR-DEFFACE.
Richard M. Stallman <rms@gnu.org>
parents:
87453
diff
changeset
|
1559 |
bdb419612503
(face-spec-set): Third arg is now FOR-DEFFACE.
Richard M. Stallman <rms@gnu.org>
parents:
87453
diff
changeset
|
1560 See `defface' for information about the format and meaning of SPEC." |
bdb419612503
(face-spec-set): Third arg is now FOR-DEFFACE.
Richard M. Stallman <rms@gnu.org>
parents:
87453
diff
changeset
|
1561 (if (framep for-defface) |
bdb419612503
(face-spec-set): Third arg is now FOR-DEFFACE.
Richard M. Stallman <rms@gnu.org>
parents:
87453
diff
changeset
|
1562 ;; Handle the deprecated case where third arg is a frame. |
bdb419612503
(face-spec-set): Third arg is now FOR-DEFFACE.
Richard M. Stallman <rms@gnu.org>
parents:
87453
diff
changeset
|
1563 (face-spec-set-2 face for-defface spec) |
bdb419612503
(face-spec-set): Third arg is now FOR-DEFFACE.
Richard M. Stallman <rms@gnu.org>
parents:
87453
diff
changeset
|
1564 (if for-defface |
bdb419612503
(face-spec-set): Third arg is now FOR-DEFFACE.
Richard M. Stallman <rms@gnu.org>
parents:
87453
diff
changeset
|
1565 ;; When we reset the face based on its custom spec, then it is |
bdb419612503
(face-spec-set): Third arg is now FOR-DEFFACE.
Richard M. Stallman <rms@gnu.org>
parents:
87453
diff
changeset
|
1566 ;; unmodified as far as Custom is concerned. |
bdb419612503
(face-spec-set): Third arg is now FOR-DEFFACE.
Richard M. Stallman <rms@gnu.org>
parents:
87453
diff
changeset
|
1567 (put (or (get face 'face-alias) face) 'face-modified nil) |
bdb419612503
(face-spec-set): Third arg is now FOR-DEFFACE.
Richard M. Stallman <rms@gnu.org>
parents:
87453
diff
changeset
|
1568 ;; When we change a face based on a spec from outside custom, |
bdb419612503
(face-spec-set): Third arg is now FOR-DEFFACE.
Richard M. Stallman <rms@gnu.org>
parents:
87453
diff
changeset
|
1569 ;; record it for future frames. |
bdb419612503
(face-spec-set): Third arg is now FOR-DEFFACE.
Richard M. Stallman <rms@gnu.org>
parents:
87453
diff
changeset
|
1570 (put (or (get face 'face-alias) face) 'face-override-spec spec)) |
bdb419612503
(face-spec-set): Third arg is now FOR-DEFFACE.
Richard M. Stallman <rms@gnu.org>
parents:
87453
diff
changeset
|
1571 ;; Reset each frame according to the rules implied by all its specs. |
bdb419612503
(face-spec-set): Third arg is now FOR-DEFFACE.
Richard M. Stallman <rms@gnu.org>
parents:
87453
diff
changeset
|
1572 (dolist (frame (frame-list)) |
bdb419612503
(face-spec-set): Third arg is now FOR-DEFFACE.
Richard M. Stallman <rms@gnu.org>
parents:
87453
diff
changeset
|
1573 (face-spec-recalc face frame)))) |
bdb419612503
(face-spec-set): Third arg is now FOR-DEFFACE.
Richard M. Stallman <rms@gnu.org>
parents:
87453
diff
changeset
|
1574 |
bdb419612503
(face-spec-set): Third arg is now FOR-DEFFACE.
Richard M. Stallman <rms@gnu.org>
parents:
87453
diff
changeset
|
1575 (defun face-spec-recalc (face frame) |
bdb419612503
(face-spec-set): Third arg is now FOR-DEFFACE.
Richard M. Stallman <rms@gnu.org>
parents:
87453
diff
changeset
|
1576 "Reset the face attributes of FACE on FRAME according to its specs. |
bdb419612503
(face-spec-set): Third arg is now FOR-DEFFACE.
Richard M. Stallman <rms@gnu.org>
parents:
87453
diff
changeset
|
1577 This applies the defface/custom spec first, then the custom theme specs, |
bdb419612503
(face-spec-set): Third arg is now FOR-DEFFACE.
Richard M. Stallman <rms@gnu.org>
parents:
87453
diff
changeset
|
1578 then the override spec." |
bdb419612503
(face-spec-set): Third arg is now FOR-DEFFACE.
Richard M. Stallman <rms@gnu.org>
parents:
87453
diff
changeset
|
1579 (face-spec-reset-face face frame) |
bdb419612503
(face-spec-set): Third arg is now FOR-DEFFACE.
Richard M. Stallman <rms@gnu.org>
parents:
87453
diff
changeset
|
1580 (let ((face-sym (or (get face 'face-alias) face))) |
95787
09e6bd8a641a
(face-spec-recalc): When the face is set using Customize, avoid
Chong Yidong <cyd@stupidchicken.com>
parents:
95184
diff
changeset
|
1581 (or (get face 'customized-face) |
09e6bd8a641a
(face-spec-recalc): When the face is set using Customize, avoid
Chong Yidong <cyd@stupidchicken.com>
parents:
95184
diff
changeset
|
1582 (get face 'saved-face) |
09e6bd8a641a
(face-spec-recalc): When the face is set using Customize, avoid
Chong Yidong <cyd@stupidchicken.com>
parents:
95184
diff
changeset
|
1583 (face-spec-set-2 face frame (face-default-spec face))) |
87483
bdb419612503
(face-spec-set): Third arg is now FOR-DEFFACE.
Richard M. Stallman <rms@gnu.org>
parents:
87453
diff
changeset
|
1584 (let ((theme-faces (reverse (get face-sym 'theme-face)))) |
bdb419612503
(face-spec-set): Third arg is now FOR-DEFFACE.
Richard M. Stallman <rms@gnu.org>
parents:
87453
diff
changeset
|
1585 (dolist (spec theme-faces) |
bdb419612503
(face-spec-set): Third arg is now FOR-DEFFACE.
Richard M. Stallman <rms@gnu.org>
parents:
87453
diff
changeset
|
1586 (face-spec-set-2 face frame (cadr spec)))) |
bdb419612503
(face-spec-set): Third arg is now FOR-DEFFACE.
Richard M. Stallman <rms@gnu.org>
parents:
87453
diff
changeset
|
1587 (face-spec-set-2 face frame (get face-sym 'face-override-spec)))) |
bdb419612503
(face-spec-set): Third arg is now FOR-DEFFACE.
Richard M. Stallman <rms@gnu.org>
parents:
87453
diff
changeset
|
1588 |
bdb419612503
(face-spec-set): Third arg is now FOR-DEFFACE.
Richard M. Stallman <rms@gnu.org>
parents:
87453
diff
changeset
|
1589 (defun face-spec-set-2 (face frame spec) |
bdb419612503
(face-spec-set): Third arg is now FOR-DEFFACE.
Richard M. Stallman <rms@gnu.org>
parents:
87453
diff
changeset
|
1590 "Set the face attributes of FACE on FRAME according to SPEC." |
98801
72d21af5dec4
(face-spec-set-2): Don't pass invalid attributes to set-face-attribute.
Chong Yidong <cyd@stupidchicken.com>
parents:
98728
diff
changeset
|
1591 (let* ((spec (face-spec-choose spec frame)) |
72d21af5dec4
(face-spec-set-2): Don't pass invalid attributes to set-face-attribute.
Chong Yidong <cyd@stupidchicken.com>
parents:
98728
diff
changeset
|
1592 attrs) |
72d21af5dec4
(face-spec-set-2): Don't pass invalid attributes to set-face-attribute.
Chong Yidong <cyd@stupidchicken.com>
parents:
98728
diff
changeset
|
1593 (while spec |
72d21af5dec4
(face-spec-set-2): Don't pass invalid attributes to set-face-attribute.
Chong Yidong <cyd@stupidchicken.com>
parents:
98728
diff
changeset
|
1594 (when (assq (car spec) face-x-resources) |
72d21af5dec4
(face-spec-set-2): Don't pass invalid attributes to set-face-attribute.
Chong Yidong <cyd@stupidchicken.com>
parents:
98728
diff
changeset
|
1595 (push (car spec) attrs) |
72d21af5dec4
(face-spec-set-2): Don't pass invalid attributes to set-face-attribute.
Chong Yidong <cyd@stupidchicken.com>
parents:
98728
diff
changeset
|
1596 (push (cadr spec) attrs)) |
72d21af5dec4
(face-spec-set-2): Don't pass invalid attributes to set-face-attribute.
Chong Yidong <cyd@stupidchicken.com>
parents:
98728
diff
changeset
|
1597 (setq spec (cddr spec))) |
72d21af5dec4
(face-spec-set-2): Don't pass invalid attributes to set-face-attribute.
Chong Yidong <cyd@stupidchicken.com>
parents:
98728
diff
changeset
|
1598 (apply 'set-face-attribute face frame (nreverse attrs)))) |
25012 | 1599 |
1600 (defun face-attr-match-p (face attrs &optional frame) | |
30971 | 1601 "Return t if attributes of FACE match values in plist ATTRS. |
25012 | 1602 Optional parameter FRAME is the frame whose definition of FACE |
1603 is used. If nil or omitted, use the selected frame." | |
1604 (unless frame | |
1605 (setq frame (selected-frame))) | |
1606 (let ((list face-attribute-name-alist) | |
1607 (match t)) | |
1608 (while (and match (not (null list))) | |
1609 (let* ((attr (car (car list))) | |
30971 | 1610 (specified-value |
1611 (if (plist-member attrs attr) | |
1612 (plist-get attrs attr) | |
1613 'unspecified)) | |
25012 | 1614 (value-now (face-attribute face attr frame))) |
30971 | 1615 (setq match (equal specified-value value-now)) |
25012 | 1616 (setq list (cdr list)))) |
1617 match)) | |
1618 | |
1619 (defun face-spec-match-p (face spec &optional frame) | |
1620 "Return t if FACE, on FRAME, matches what SPEC says it should look like." | |
1621 (face-attr-match-p face (face-spec-choose spec frame) frame)) | |
1622 | |
32795
975cc2648ee4
(face-default-spec, face-user-default-spec): Make defsubsts.
Miles Bader <miles@gnu.org>
parents:
32758
diff
changeset
|
1623 (defsubst face-default-spec (face) |
975cc2648ee4
(face-default-spec, face-user-default-spec): Make defsubsts.
Miles Bader <miles@gnu.org>
parents:
32758
diff
changeset
|
1624 "Return the default face-spec for FACE, ignoring any user customization. |
975cc2648ee4
(face-default-spec, face-user-default-spec): Make defsubsts.
Miles Bader <miles@gnu.org>
parents:
32758
diff
changeset
|
1625 If there is no default for FACE, return nil." |
975cc2648ee4
(face-default-spec, face-user-default-spec): Make defsubsts.
Miles Bader <miles@gnu.org>
parents:
32758
diff
changeset
|
1626 (get face 'face-defface-spec)) |
975cc2648ee4
(face-default-spec, face-user-default-spec): Make defsubsts.
Miles Bader <miles@gnu.org>
parents:
32758
diff
changeset
|
1627 |
975cc2648ee4
(face-default-spec, face-user-default-spec): Make defsubsts.
Miles Bader <miles@gnu.org>
parents:
32758
diff
changeset
|
1628 (defsubst face-user-default-spec (face) |
32758
a0ca98ed466a
(face-user-default-spec, face-default-spec): New functions.
Miles Bader <miles@gnu.org>
parents:
32756
diff
changeset
|
1629 "Return the user's customized face-spec for FACE, or the default if none. |
37467
342409bb6b91
(modify-face): Add compatibility for non-interactive use.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
37294
diff
changeset
|
1630 If there is neither a user setting nor a default for FACE, return nil." |
63637
de897c139738
(face-user-default-spec): Try getting `customized-face' prior to `saved-face'.
Juri Linkov <juri@jurta.org>
parents:
63594
diff
changeset
|
1631 (or (get face 'customized-face) |
de897c139738
(face-user-default-spec): Try getting `customized-face' prior to `saved-face'.
Juri Linkov <juri@jurta.org>
parents:
63594
diff
changeset
|
1632 (get face 'saved-face) |
32795
975cc2648ee4
(face-default-spec, face-user-default-spec): Make defsubsts.
Miles Bader <miles@gnu.org>
parents:
32758
diff
changeset
|
1633 (face-default-spec face))) |
25012 | 1634 |
1635 | |
1636 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | |
26736
a0674327c167
Changes for automatic remapping of X colors on terminal frames:
Eli Zaretskii <eliz@gnu.org>
parents:
26657
diff
changeset
|
1637 ;;; Frame-type independent color support. |
a0674327c167
Changes for automatic remapping of X colors on terminal frames:
Eli Zaretskii <eliz@gnu.org>
parents:
26657
diff
changeset
|
1638 ;;; We keep the old x-* names as aliases for back-compatibility. |
a0674327c167
Changes for automatic remapping of X colors on terminal frames:
Eli Zaretskii <eliz@gnu.org>
parents:
26657
diff
changeset
|
1639 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
a0674327c167
Changes for automatic remapping of X colors on terminal frames:
Eli Zaretskii <eliz@gnu.org>
parents:
26657
diff
changeset
|
1640 |
a0674327c167
Changes for automatic remapping of X colors on terminal frames:
Eli Zaretskii <eliz@gnu.org>
parents:
26657
diff
changeset
|
1641 (defun defined-colors (&optional frame) |
a0674327c167
Changes for automatic remapping of X colors on terminal frames:
Eli Zaretskii <eliz@gnu.org>
parents:
26657
diff
changeset
|
1642 "Return a list of colors supported for a particular frame. |
a0674327c167
Changes for automatic remapping of X colors on terminal frames:
Eli Zaretskii <eliz@gnu.org>
parents:
26657
diff
changeset
|
1643 The argument FRAME specifies which frame to try. |
a0674327c167
Changes for automatic remapping of X colors on terminal frames:
Eli Zaretskii <eliz@gnu.org>
parents:
26657
diff
changeset
|
1644 The value may be different for frames on different display types. |
71231
f91f3db3c52a
(defined-colors): Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
70178
diff
changeset
|
1645 If FRAME doesn't support colors, the value is nil. |
f91f3db3c52a
(defined-colors): Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
70178
diff
changeset
|
1646 If FRAME is nil, that stands for the selected frame." |
97043
9592c50233ab
Remove support for Mac Carbon.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
96675
diff
changeset
|
1647 (if (memq (framep (or frame (selected-frame))) '(x w32 ns)) |
26736
a0674327c167
Changes for automatic remapping of X colors on terminal frames:
Eli Zaretskii <eliz@gnu.org>
parents:
26657
diff
changeset
|
1648 (xw-defined-colors frame) |
27090
52e469fb402a
(read-face-attribute, defined-colors, color-defined-p):
Eli Zaretskii <eliz@gnu.org>
parents:
26927
diff
changeset
|
1649 (mapcar 'car (tty-color-alist frame)))) |
26736
a0674327c167
Changes for automatic remapping of X colors on terminal frames:
Eli Zaretskii <eliz@gnu.org>
parents:
26657
diff
changeset
|
1650 (defalias 'x-defined-colors 'defined-colors) |
a0674327c167
Changes for automatic remapping of X colors on terminal frames:
Eli Zaretskii <eliz@gnu.org>
parents:
26657
diff
changeset
|
1651 |
95841
b4e36ff621b3
Add some compiler declarations, for builds without X.
Glenn Morris <rgm@gnu.org>
parents:
95787
diff
changeset
|
1652 (declare-function xw-color-defined-p "xfns.c" (color &optional frame)) |
b4e36ff621b3
Add some compiler declarations, for builds without X.
Glenn Morris <rgm@gnu.org>
parents:
95787
diff
changeset
|
1653 |
26736
a0674327c167
Changes for automatic remapping of X colors on terminal frames:
Eli Zaretskii <eliz@gnu.org>
parents:
26657
diff
changeset
|
1654 (defun color-defined-p (color &optional frame) |
a0674327c167
Changes for automatic remapping of X colors on terminal frames:
Eli Zaretskii <eliz@gnu.org>
parents:
26657
diff
changeset
|
1655 "Return non-nil if color COLOR is supported on frame FRAME. |
a0674327c167
Changes for automatic remapping of X colors on terminal frames:
Eli Zaretskii <eliz@gnu.org>
parents:
26657
diff
changeset
|
1656 If FRAME is omitted or nil, use the selected frame. |
27117
6838a53d4992
(face-read-integer, read-face-attribute)
Eli Zaretskii <eliz@gnu.org>
parents:
27090
diff
changeset
|
1657 If COLOR is the symbol `unspecified' or one of the strings |
6838a53d4992
(face-read-integer, read-face-attribute)
Eli Zaretskii <eliz@gnu.org>
parents:
27090
diff
changeset
|
1658 \"unspecified-fg\" or \"unspecified-bg\", the value is nil." |
32734
92b46ad86f6a
(color-values, color-defined-p): Use `member', not
Miles Bader <miles@gnu.org>
parents:
32649
diff
changeset
|
1659 (if (member color '(unspecified "unspecified-bg" "unspecified-fg")) |
26736
a0674327c167
Changes for automatic remapping of X colors on terminal frames:
Eli Zaretskii <eliz@gnu.org>
parents:
26657
diff
changeset
|
1660 nil |
97043
9592c50233ab
Remove support for Mac Carbon.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
96675
diff
changeset
|
1661 (if (member (framep (or frame (selected-frame))) '(x w32 ns)) |
26736
a0674327c167
Changes for automatic remapping of X colors on terminal frames:
Eli Zaretskii <eliz@gnu.org>
parents:
26657
diff
changeset
|
1662 (xw-color-defined-p color frame) |
27090
52e469fb402a
(read-face-attribute, defined-colors, color-defined-p):
Eli Zaretskii <eliz@gnu.org>
parents:
26927
diff
changeset
|
1663 (numberp (tty-color-translate color frame))))) |
26736
a0674327c167
Changes for automatic remapping of X colors on terminal frames:
Eli Zaretskii <eliz@gnu.org>
parents:
26657
diff
changeset
|
1664 (defalias 'x-color-defined-p 'color-defined-p) |
a0674327c167
Changes for automatic remapping of X colors on terminal frames:
Eli Zaretskii <eliz@gnu.org>
parents:
26657
diff
changeset
|
1665 |
95841
b4e36ff621b3
Add some compiler declarations, for builds without X.
Glenn Morris <rgm@gnu.org>
parents:
95787
diff
changeset
|
1666 (declare-function xw-color-values "xfns.c" (color &optional frame)) |
b4e36ff621b3
Add some compiler declarations, for builds without X.
Glenn Morris <rgm@gnu.org>
parents:
95787
diff
changeset
|
1667 |
26736
a0674327c167
Changes for automatic remapping of X colors on terminal frames:
Eli Zaretskii <eliz@gnu.org>
parents:
26657
diff
changeset
|
1668 (defun color-values (color &optional frame) |
a0674327c167
Changes for automatic remapping of X colors on terminal frames:
Eli Zaretskii <eliz@gnu.org>
parents:
26657
diff
changeset
|
1669 "Return a description of the color named COLOR on frame FRAME. |
75884
ab51c2b6faf8
(color-values): Revert changes to docstring from 2007-01-31 and 2000-09-07.
Juanma Barranquero <lekktu@gmail.com>
parents:
75705
diff
changeset
|
1670 The value is a list of integer RGB values--(RED GREEN BLUE). |
ab51c2b6faf8
(color-values): Revert changes to docstring from 2007-01-31 and 2000-09-07.
Juanma Barranquero <lekktu@gmail.com>
parents:
75705
diff
changeset
|
1671 These values appear to range from 0 to 65280 or 65535, depending |
ab51c2b6faf8
(color-values): Revert changes to docstring from 2007-01-31 and 2000-09-07.
Juanma Barranquero <lekktu@gmail.com>
parents:
75705
diff
changeset
|
1672 on the system; white is \(65280 65280 65280\) or \(65535 65535 65535\). |
26736
a0674327c167
Changes for automatic remapping of X colors on terminal frames:
Eli Zaretskii <eliz@gnu.org>
parents:
26657
diff
changeset
|
1673 If FRAME is omitted or nil, use the selected frame. |
a0674327c167
Changes for automatic remapping of X colors on terminal frames:
Eli Zaretskii <eliz@gnu.org>
parents:
26657
diff
changeset
|
1674 If FRAME cannot display COLOR, the value is nil. |
27117
6838a53d4992
(face-read-integer, read-face-attribute)
Eli Zaretskii <eliz@gnu.org>
parents:
27090
diff
changeset
|
1675 If COLOR is the symbol `unspecified' or one of the strings |
6838a53d4992
(face-read-integer, read-face-attribute)
Eli Zaretskii <eliz@gnu.org>
parents:
27090
diff
changeset
|
1676 \"unspecified-fg\" or \"unspecified-bg\", the value is nil." |
32734
92b46ad86f6a
(color-values, color-defined-p): Use `member', not
Miles Bader <miles@gnu.org>
parents:
32649
diff
changeset
|
1677 (if (member color '(unspecified "unspecified-fg" "unspecified-bg")) |
26736
a0674327c167
Changes for automatic remapping of X colors on terminal frames:
Eli Zaretskii <eliz@gnu.org>
parents:
26657
diff
changeset
|
1678 nil |
97043
9592c50233ab
Remove support for Mac Carbon.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
96675
diff
changeset
|
1679 (if (memq (framep (or frame (selected-frame))) '(x w32 ns)) |
26736
a0674327c167
Changes for automatic remapping of X colors on terminal frames:
Eli Zaretskii <eliz@gnu.org>
parents:
26657
diff
changeset
|
1680 (xw-color-values color frame) |
a0674327c167
Changes for automatic remapping of X colors on terminal frames:
Eli Zaretskii <eliz@gnu.org>
parents:
26657
diff
changeset
|
1681 (tty-color-values color frame)))) |
a0674327c167
Changes for automatic remapping of X colors on terminal frames:
Eli Zaretskii <eliz@gnu.org>
parents:
26657
diff
changeset
|
1682 (defalias 'x-color-values 'color-values) |
a0674327c167
Changes for automatic remapping of X colors on terminal frames:
Eli Zaretskii <eliz@gnu.org>
parents:
26657
diff
changeset
|
1683 |
95841
b4e36ff621b3
Add some compiler declarations, for builds without X.
Glenn Morris <rgm@gnu.org>
parents:
95787
diff
changeset
|
1684 (declare-function xw-display-color-p "xfns.c" (&optional terminal)) |
b4e36ff621b3
Add some compiler declarations, for builds without X.
Glenn Morris <rgm@gnu.org>
parents:
95787
diff
changeset
|
1685 |
26736
a0674327c167
Changes for automatic remapping of X colors on terminal frames:
Eli Zaretskii <eliz@gnu.org>
parents:
26657
diff
changeset
|
1686 (defun display-color-p (&optional display) |
a0674327c167
Changes for automatic remapping of X colors on terminal frames:
Eli Zaretskii <eliz@gnu.org>
parents:
26657
diff
changeset
|
1687 "Return t if DISPLAY supports color. |
a0674327c167
Changes for automatic remapping of X colors on terminal frames:
Eli Zaretskii <eliz@gnu.org>
parents:
26657
diff
changeset
|
1688 The optional argument DISPLAY specifies which display to ask about. |
a0674327c167
Changes for automatic remapping of X colors on terminal frames:
Eli Zaretskii <eliz@gnu.org>
parents:
26657
diff
changeset
|
1689 DISPLAY should be either a frame or a display name (a string). |
a0674327c167
Changes for automatic remapping of X colors on terminal frames:
Eli Zaretskii <eliz@gnu.org>
parents:
26657
diff
changeset
|
1690 If omitted or nil, that stands for the selected frame's display." |
97043
9592c50233ab
Remove support for Mac Carbon.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
96675
diff
changeset
|
1691 (if (memq (framep-on-display display) '(x w32 ns)) |
27571
4a4f7f602836
(display-color-p): Use framep-on-display.
Eli Zaretskii <eliz@gnu.org>
parents:
27117
diff
changeset
|
1692 (xw-display-color-p display) |
4a4f7f602836
(display-color-p): Use framep-on-display.
Eli Zaretskii <eliz@gnu.org>
parents:
27117
diff
changeset
|
1693 (tty-display-color-p display))) |
26736
a0674327c167
Changes for automatic remapping of X colors on terminal frames:
Eli Zaretskii <eliz@gnu.org>
parents:
26657
diff
changeset
|
1694 (defalias 'x-display-color-p 'display-color-p) |
a0674327c167
Changes for automatic remapping of X colors on terminal frames:
Eli Zaretskii <eliz@gnu.org>
parents:
26657
diff
changeset
|
1695 |
95841
b4e36ff621b3
Add some compiler declarations, for builds without X.
Glenn Morris <rgm@gnu.org>
parents:
95787
diff
changeset
|
1696 (declare-function x-display-grayscale-p "xfns.c" (&optional terminal)) |
b4e36ff621b3
Add some compiler declarations, for builds without X.
Glenn Morris <rgm@gnu.org>
parents:
95787
diff
changeset
|
1697 |
27571
4a4f7f602836
(display-color-p): Use framep-on-display.
Eli Zaretskii <eliz@gnu.org>
parents:
27117
diff
changeset
|
1698 (defun display-grayscale-p (&optional display) |
4a4f7f602836
(display-color-p): Use framep-on-display.
Eli Zaretskii <eliz@gnu.org>
parents:
27117
diff
changeset
|
1699 "Return non-nil if frames on DISPLAY can display shades of gray." |
4a4f7f602836
(display-color-p): Use framep-on-display.
Eli Zaretskii <eliz@gnu.org>
parents:
27117
diff
changeset
|
1700 (let ((frame-type (framep-on-display display))) |
4a4f7f602836
(display-color-p): Use framep-on-display.
Eli Zaretskii <eliz@gnu.org>
parents:
27117
diff
changeset
|
1701 (cond |
97043
9592c50233ab
Remove support for Mac Carbon.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
96675
diff
changeset
|
1702 ((memq frame-type '(x w32 ns)) |
27571
4a4f7f602836
(display-color-p): Use framep-on-display.
Eli Zaretskii <eliz@gnu.org>
parents:
27117
diff
changeset
|
1703 (x-display-grayscale-p display)) |
4a4f7f602836
(display-color-p): Use framep-on-display.
Eli Zaretskii <eliz@gnu.org>
parents:
27117
diff
changeset
|
1704 (t |
4a4f7f602836
(display-color-p): Use framep-on-display.
Eli Zaretskii <eliz@gnu.org>
parents:
27117
diff
changeset
|
1705 (> (tty-color-gray-shades display) 2))))) |
4a4f7f602836
(display-color-p): Use framep-on-display.
Eli Zaretskii <eliz@gnu.org>
parents:
27117
diff
changeset
|
1706 |
85758
674b001d26e1
(read-color): New function.
Richard M. Stallman <rms@gnu.org>
parents:
85415
diff
changeset
|
1707 (defun read-color (&optional prompt convert-to-RGB-p allow-empty-name-p msg-p) |
674b001d26e1
(read-color): New function.
Richard M. Stallman <rms@gnu.org>
parents:
85415
diff
changeset
|
1708 "Read a color name or RGB hex value: #RRRRGGGGBBBB. |
674b001d26e1
(read-color): New function.
Richard M. Stallman <rms@gnu.org>
parents:
85415
diff
changeset
|
1709 Completion is available for color names, but not for RGB hex strings. |
674b001d26e1
(read-color): New function.
Richard M. Stallman <rms@gnu.org>
parents:
85415
diff
changeset
|
1710 If the user inputs an RGB hex string, it must have the form |
674b001d26e1
(read-color): New function.
Richard M. Stallman <rms@gnu.org>
parents:
85415
diff
changeset
|
1711 #XXXXXXXXXXXX or XXXXXXXXXXXX, where each X is a hex digit. The |
674b001d26e1
(read-color): New function.
Richard M. Stallman <rms@gnu.org>
parents:
85415
diff
changeset
|
1712 number of Xs must be a multiple of 3, with the same number of Xs for |
674b001d26e1
(read-color): New function.
Richard M. Stallman <rms@gnu.org>
parents:
85415
diff
changeset
|
1713 each of red, green, and blue. The order is red, green, blue. |
674b001d26e1
(read-color): New function.
Richard M. Stallman <rms@gnu.org>
parents:
85415
diff
changeset
|
1714 |
674b001d26e1
(read-color): New function.
Richard M. Stallman <rms@gnu.org>
parents:
85415
diff
changeset
|
1715 In addition to standard color names and RGB hex values, the following |
674b001d26e1
(read-color): New function.
Richard M. Stallman <rms@gnu.org>
parents:
85415
diff
changeset
|
1716 are available as color candidates. In each case, the corresponding |
674b001d26e1
(read-color): New function.
Richard M. Stallman <rms@gnu.org>
parents:
85415
diff
changeset
|
1717 color is used. |
674b001d26e1
(read-color): New function.
Richard M. Stallman <rms@gnu.org>
parents:
85415
diff
changeset
|
1718 |
674b001d26e1
(read-color): New function.
Richard M. Stallman <rms@gnu.org>
parents:
85415
diff
changeset
|
1719 * `foreground at point' - foreground under the cursor |
674b001d26e1
(read-color): New function.
Richard M. Stallman <rms@gnu.org>
parents:
85415
diff
changeset
|
1720 * `background at point' - background under the cursor |
674b001d26e1
(read-color): New function.
Richard M. Stallman <rms@gnu.org>
parents:
85415
diff
changeset
|
1721 |
674b001d26e1
(read-color): New function.
Richard M. Stallman <rms@gnu.org>
parents:
85415
diff
changeset
|
1722 Checks input to be sure it represents a valid color. If not, raises |
674b001d26e1
(read-color): New function.
Richard M. Stallman <rms@gnu.org>
parents:
85415
diff
changeset
|
1723 an error (but see exception for empty input with non-nil |
674b001d26e1
(read-color): New function.
Richard M. Stallman <rms@gnu.org>
parents:
85415
diff
changeset
|
1724 ALLOW-EMPTY-NAME-P). |
674b001d26e1
(read-color): New function.
Richard M. Stallman <rms@gnu.org>
parents:
85415
diff
changeset
|
1725 |
674b001d26e1
(read-color): New function.
Richard M. Stallman <rms@gnu.org>
parents:
85415
diff
changeset
|
1726 Optional arg PROMPT is the prompt; if nil, uses a default prompt. |
674b001d26e1
(read-color): New function.
Richard M. Stallman <rms@gnu.org>
parents:
85415
diff
changeset
|
1727 |
674b001d26e1
(read-color): New function.
Richard M. Stallman <rms@gnu.org>
parents:
85415
diff
changeset
|
1728 Interactively, or with optional arg CONVERT-TO-RGB-P non-nil, converts |
674b001d26e1
(read-color): New function.
Richard M. Stallman <rms@gnu.org>
parents:
85415
diff
changeset
|
1729 an input color name to an RGB hex string. Returns the RGB hex string. |
674b001d26e1
(read-color): New function.
Richard M. Stallman <rms@gnu.org>
parents:
85415
diff
changeset
|
1730 |
674b001d26e1
(read-color): New function.
Richard M. Stallman <rms@gnu.org>
parents:
85415
diff
changeset
|
1731 Optional arg ALLOW-EMPTY-NAME-P controls what happens if the user |
674b001d26e1
(read-color): New function.
Richard M. Stallman <rms@gnu.org>
parents:
85415
diff
changeset
|
1732 enters an empty color name (that is, just hits `RET'). If non-nil, |
674b001d26e1
(read-color): New function.
Richard M. Stallman <rms@gnu.org>
parents:
85415
diff
changeset
|
1733 then returns an empty color name, \"\". If nil, then raises an error. |
674b001d26e1
(read-color): New function.
Richard M. Stallman <rms@gnu.org>
parents:
85415
diff
changeset
|
1734 Programs must test for \"\" if ALLOW-EMPTY-NAME-P is non-nil. They |
674b001d26e1
(read-color): New function.
Richard M. Stallman <rms@gnu.org>
parents:
85415
diff
changeset
|
1735 can then perform an appropriate action in case of empty input. |
674b001d26e1
(read-color): New function.
Richard M. Stallman <rms@gnu.org>
parents:
85415
diff
changeset
|
1736 |
674b001d26e1
(read-color): New function.
Richard M. Stallman <rms@gnu.org>
parents:
85415
diff
changeset
|
1737 Interactively, or with optional arg MSG-P non-nil, echoes the color in |
674b001d26e1
(read-color): New function.
Richard M. Stallman <rms@gnu.org>
parents:
85415
diff
changeset
|
1738 a message." |
674b001d26e1
(read-color): New function.
Richard M. Stallman <rms@gnu.org>
parents:
85415
diff
changeset
|
1739 (interactive "i\np\ni\np") ; Always convert to RGB interactively. |
674b001d26e1
(read-color): New function.
Richard M. Stallman <rms@gnu.org>
parents:
85415
diff
changeset
|
1740 (let* ((completion-ignore-case t) |
674b001d26e1
(read-color): New function.
Richard M. Stallman <rms@gnu.org>
parents:
85415
diff
changeset
|
1741 (colors (append '("foreground at point" "background at point") |
674b001d26e1
(read-color): New function.
Richard M. Stallman <rms@gnu.org>
parents:
85415
diff
changeset
|
1742 (defined-colors))) |
674b001d26e1
(read-color): New function.
Richard M. Stallman <rms@gnu.org>
parents:
85415
diff
changeset
|
1743 (color (completing-read (or prompt "Color (name or #R+G+B+): ") |
674b001d26e1
(read-color): New function.
Richard M. Stallman <rms@gnu.org>
parents:
85415
diff
changeset
|
1744 colors)) |
674b001d26e1
(read-color): New function.
Richard M. Stallman <rms@gnu.org>
parents:
85415
diff
changeset
|
1745 hex-string) |
674b001d26e1
(read-color): New function.
Richard M. Stallman <rms@gnu.org>
parents:
85415
diff
changeset
|
1746 (cond ((string= "foreground at point" color) |
674b001d26e1
(read-color): New function.
Richard M. Stallman <rms@gnu.org>
parents:
85415
diff
changeset
|
1747 (setq color (foreground-color-at-point))) |
674b001d26e1
(read-color): New function.
Richard M. Stallman <rms@gnu.org>
parents:
85415
diff
changeset
|
1748 ((string= "background at point" color) |
674b001d26e1
(read-color): New function.
Richard M. Stallman <rms@gnu.org>
parents:
85415
diff
changeset
|
1749 (setq color (background-color-at-point)))) |
674b001d26e1
(read-color): New function.
Richard M. Stallman <rms@gnu.org>
parents:
85415
diff
changeset
|
1750 (unless color |
674b001d26e1
(read-color): New function.
Richard M. Stallman <rms@gnu.org>
parents:
85415
diff
changeset
|
1751 (setq color "")) |
674b001d26e1
(read-color): New function.
Richard M. Stallman <rms@gnu.org>
parents:
85415
diff
changeset
|
1752 (setq hex-string |
674b001d26e1
(read-color): New function.
Richard M. Stallman <rms@gnu.org>
parents:
85415
diff
changeset
|
1753 (string-match "^#?\\([a-fA-F0-9][a-fA-F0-9][a-fA-F0-9]\\)+$" color)) |
674b001d26e1
(read-color): New function.
Richard M. Stallman <rms@gnu.org>
parents:
85415
diff
changeset
|
1754 (if (and allow-empty-name-p (string= "" color)) |
674b001d26e1
(read-color): New function.
Richard M. Stallman <rms@gnu.org>
parents:
85415
diff
changeset
|
1755 "" |
674b001d26e1
(read-color): New function.
Richard M. Stallman <rms@gnu.org>
parents:
85415
diff
changeset
|
1756 (when (and hex-string (not (eq (aref color 0) ?#))) |
674b001d26e1
(read-color): New function.
Richard M. Stallman <rms@gnu.org>
parents:
85415
diff
changeset
|
1757 (setq color (concat "#" color))) ; No #; add it. |
674b001d26e1
(read-color): New function.
Richard M. Stallman <rms@gnu.org>
parents:
85415
diff
changeset
|
1758 (unless hex-string |
674b001d26e1
(read-color): New function.
Richard M. Stallman <rms@gnu.org>
parents:
85415
diff
changeset
|
1759 (when (or (string= "" color) (not (test-completion color colors))) |
674b001d26e1
(read-color): New function.
Richard M. Stallman <rms@gnu.org>
parents:
85415
diff
changeset
|
1760 (error "No such color: %S" color)) |
674b001d26e1
(read-color): New function.
Richard M. Stallman <rms@gnu.org>
parents:
85415
diff
changeset
|
1761 (when convert-to-RGB-p |
674b001d26e1
(read-color): New function.
Richard M. Stallman <rms@gnu.org>
parents:
85415
diff
changeset
|
1762 (let ((components (x-color-values color))) |
674b001d26e1
(read-color): New function.
Richard M. Stallman <rms@gnu.org>
parents:
85415
diff
changeset
|
1763 (unless components (error "No such color: %S" color)) |
674b001d26e1
(read-color): New function.
Richard M. Stallman <rms@gnu.org>
parents:
85415
diff
changeset
|
1764 (unless (string-match "^#\\([a-fA-F0-9][a-fA-F0-9][a-fA-F0-9]\\)+$" color) |
674b001d26e1
(read-color): New function.
Richard M. Stallman <rms@gnu.org>
parents:
85415
diff
changeset
|
1765 (setq color (format "#%04X%04X%04X" |
674b001d26e1
(read-color): New function.
Richard M. Stallman <rms@gnu.org>
parents:
85415
diff
changeset
|
1766 (logand 65535 (nth 0 components)) |
674b001d26e1
(read-color): New function.
Richard M. Stallman <rms@gnu.org>
parents:
85415
diff
changeset
|
1767 (logand 65535 (nth 1 components)) |
674b001d26e1
(read-color): New function.
Richard M. Stallman <rms@gnu.org>
parents:
85415
diff
changeset
|
1768 (logand 65535 (nth 2 components)))))))) |
674b001d26e1
(read-color): New function.
Richard M. Stallman <rms@gnu.org>
parents:
85415
diff
changeset
|
1769 (when msg-p (message "Color: `%s'" color)) |
674b001d26e1
(read-color): New function.
Richard M. Stallman <rms@gnu.org>
parents:
85415
diff
changeset
|
1770 color))) |
674b001d26e1
(read-color): New function.
Richard M. Stallman <rms@gnu.org>
parents:
85415
diff
changeset
|
1771 |
674b001d26e1
(read-color): New function.
Richard M. Stallman <rms@gnu.org>
parents:
85415
diff
changeset
|
1772 ;; Commented out because I decided it is better to include the |
674b001d26e1
(read-color): New function.
Richard M. Stallman <rms@gnu.org>
parents:
85415
diff
changeset
|
1773 ;; duplicates in read-color's completion list. |
674b001d26e1
(read-color): New function.
Richard M. Stallman <rms@gnu.org>
parents:
85415
diff
changeset
|
1774 |
674b001d26e1
(read-color): New function.
Richard M. Stallman <rms@gnu.org>
parents:
85415
diff
changeset
|
1775 ;; (defun defined-colors-without-duplicates () |
674b001d26e1
(read-color): New function.
Richard M. Stallman <rms@gnu.org>
parents:
85415
diff
changeset
|
1776 ;; "Return the list of defined colors, without the no-space versions. |
674b001d26e1
(read-color): New function.
Richard M. Stallman <rms@gnu.org>
parents:
85415
diff
changeset
|
1777 ;; For each color name, we keep the variant that DOES have spaces." |
674b001d26e1
(read-color): New function.
Richard M. Stallman <rms@gnu.org>
parents:
85415
diff
changeset
|
1778 ;; (let ((result (copy-sequence (defined-colors))) |
674b001d26e1
(read-color): New function.
Richard M. Stallman <rms@gnu.org>
parents:
85415
diff
changeset
|
1779 ;; to-be-rejected) |
674b001d26e1
(read-color): New function.
Richard M. Stallman <rms@gnu.org>
parents:
85415
diff
changeset
|
1780 ;; (save-match-data |
674b001d26e1
(read-color): New function.
Richard M. Stallman <rms@gnu.org>
parents:
85415
diff
changeset
|
1781 ;; (dolist (this result) |
674b001d26e1
(read-color): New function.
Richard M. Stallman <rms@gnu.org>
parents:
85415
diff
changeset
|
1782 ;; (if (string-match " " this) |
92115
b4b2ac0c80f8
(font-weight-table): Fix value of `semi-light'.
Juanma Barranquero <lekktu@gmail.com>
parents:
92112
diff
changeset
|
1783 ;; (push (replace-regexp-in-string " " "" |
85758
674b001d26e1
(read-color): New function.
Richard M. Stallman <rms@gnu.org>
parents:
85415
diff
changeset
|
1784 ;; this) |
674b001d26e1
(read-color): New function.
Richard M. Stallman <rms@gnu.org>
parents:
85415
diff
changeset
|
1785 ;; to-be-rejected))) |
674b001d26e1
(read-color): New function.
Richard M. Stallman <rms@gnu.org>
parents:
85415
diff
changeset
|
1786 ;; (dolist (elt to-be-rejected) |
674b001d26e1
(read-color): New function.
Richard M. Stallman <rms@gnu.org>
parents:
85415
diff
changeset
|
1787 ;; (let ((as-found (car (member-ignore-case elt result)))) |
674b001d26e1
(read-color): New function.
Richard M. Stallman <rms@gnu.org>
parents:
85415
diff
changeset
|
1788 ;; (setq result (delete as-found result))))) |
674b001d26e1
(read-color): New function.
Richard M. Stallman <rms@gnu.org>
parents:
85415
diff
changeset
|
1789 ;; result)) |
674b001d26e1
(read-color): New function.
Richard M. Stallman <rms@gnu.org>
parents:
85415
diff
changeset
|
1790 |
674b001d26e1
(read-color): New function.
Richard M. Stallman <rms@gnu.org>
parents:
85415
diff
changeset
|
1791 (defun face-at-point () |
674b001d26e1
(read-color): New function.
Richard M. Stallman <rms@gnu.org>
parents:
85415
diff
changeset
|
1792 "Return the face of the character after point. |
674b001d26e1
(read-color): New function.
Richard M. Stallman <rms@gnu.org>
parents:
85415
diff
changeset
|
1793 If it has more than one face, return the first one. |
674b001d26e1
(read-color): New function.
Richard M. Stallman <rms@gnu.org>
parents:
85415
diff
changeset
|
1794 Return nil if it has no specified face." |
674b001d26e1
(read-color): New function.
Richard M. Stallman <rms@gnu.org>
parents:
85415
diff
changeset
|
1795 (let* ((faceprop (or (get-char-property (point) 'read-face-name) |
674b001d26e1
(read-color): New function.
Richard M. Stallman <rms@gnu.org>
parents:
85415
diff
changeset
|
1796 (get-char-property (point) 'face) |
674b001d26e1
(read-color): New function.
Richard M. Stallman <rms@gnu.org>
parents:
85415
diff
changeset
|
1797 'default)) |
674b001d26e1
(read-color): New function.
Richard M. Stallman <rms@gnu.org>
parents:
85415
diff
changeset
|
1798 (face (cond ((symbolp faceprop) faceprop) |
674b001d26e1
(read-color): New function.
Richard M. Stallman <rms@gnu.org>
parents:
85415
diff
changeset
|
1799 ;; List of faces (don't treat an attribute spec). |
674b001d26e1
(read-color): New function.
Richard M. Stallman <rms@gnu.org>
parents:
85415
diff
changeset
|
1800 ;; Just use the first face. |
674b001d26e1
(read-color): New function.
Richard M. Stallman <rms@gnu.org>
parents:
85415
diff
changeset
|
1801 ((and (consp faceprop) (not (keywordp (car faceprop))) |
674b001d26e1
(read-color): New function.
Richard M. Stallman <rms@gnu.org>
parents:
85415
diff
changeset
|
1802 (not (memq (car faceprop) |
674b001d26e1
(read-color): New function.
Richard M. Stallman <rms@gnu.org>
parents:
85415
diff
changeset
|
1803 '(foreground-color background-color)))) |
674b001d26e1
(read-color): New function.
Richard M. Stallman <rms@gnu.org>
parents:
85415
diff
changeset
|
1804 (car faceprop)) |
674b001d26e1
(read-color): New function.
Richard M. Stallman <rms@gnu.org>
parents:
85415
diff
changeset
|
1805 (t nil)))) ; Invalid face value. |
674b001d26e1
(read-color): New function.
Richard M. Stallman <rms@gnu.org>
parents:
85415
diff
changeset
|
1806 (if (facep face) face nil))) |
674b001d26e1
(read-color): New function.
Richard M. Stallman <rms@gnu.org>
parents:
85415
diff
changeset
|
1807 |
674b001d26e1
(read-color): New function.
Richard M. Stallman <rms@gnu.org>
parents:
85415
diff
changeset
|
1808 (defun foreground-color-at-point () |
674b001d26e1
(read-color): New function.
Richard M. Stallman <rms@gnu.org>
parents:
85415
diff
changeset
|
1809 "Return the foreground color of the character after point." |
674b001d26e1
(read-color): New function.
Richard M. Stallman <rms@gnu.org>
parents:
85415
diff
changeset
|
1810 ;; `face-at-point' alone is not sufficient. It only gets named faces. |
674b001d26e1
(read-color): New function.
Richard M. Stallman <rms@gnu.org>
parents:
85415
diff
changeset
|
1811 ;; Need also pick up any face properties that are not associated with named faces. |
674b001d26e1
(read-color): New function.
Richard M. Stallman <rms@gnu.org>
parents:
85415
diff
changeset
|
1812 (let ((face (or (face-at-point) |
674b001d26e1
(read-color): New function.
Richard M. Stallman <rms@gnu.org>
parents:
85415
diff
changeset
|
1813 (get-char-property (point) 'read-face-name) |
674b001d26e1
(read-color): New function.
Richard M. Stallman <rms@gnu.org>
parents:
85415
diff
changeset
|
1814 (get-char-property (point) 'face)))) |
674b001d26e1
(read-color): New function.
Richard M. Stallman <rms@gnu.org>
parents:
85415
diff
changeset
|
1815 (cond ((and face (symbolp face)) |
674b001d26e1
(read-color): New function.
Richard M. Stallman <rms@gnu.org>
parents:
85415
diff
changeset
|
1816 (let ((value (face-foreground face nil 'default))) |
674b001d26e1
(read-color): New function.
Richard M. Stallman <rms@gnu.org>
parents:
85415
diff
changeset
|
1817 (if (member value '("unspecified-fg" "unspecified-bg")) |
674b001d26e1
(read-color): New function.
Richard M. Stallman <rms@gnu.org>
parents:
85415
diff
changeset
|
1818 nil |
674b001d26e1
(read-color): New function.
Richard M. Stallman <rms@gnu.org>
parents:
85415
diff
changeset
|
1819 value))) |
674b001d26e1
(read-color): New function.
Richard M. Stallman <rms@gnu.org>
parents:
85415
diff
changeset
|
1820 ((consp face) |
674b001d26e1
(read-color): New function.
Richard M. Stallman <rms@gnu.org>
parents:
85415
diff
changeset
|
1821 (cond ((memq 'foreground-color face) (cdr (memq 'foreground-color face))) |
674b001d26e1
(read-color): New function.
Richard M. Stallman <rms@gnu.org>
parents:
85415
diff
changeset
|
1822 ((memq ':foreground face) (cadr (memq ':foreground face))))) |
674b001d26e1
(read-color): New function.
Richard M. Stallman <rms@gnu.org>
parents:
85415
diff
changeset
|
1823 (t nil)))) ; Invalid face value. |
674b001d26e1
(read-color): New function.
Richard M. Stallman <rms@gnu.org>
parents:
85415
diff
changeset
|
1824 |
674b001d26e1
(read-color): New function.
Richard M. Stallman <rms@gnu.org>
parents:
85415
diff
changeset
|
1825 (defun background-color-at-point () |
674b001d26e1
(read-color): New function.
Richard M. Stallman <rms@gnu.org>
parents:
85415
diff
changeset
|
1826 "Return the background color of the character after point." |
674b001d26e1
(read-color): New function.
Richard M. Stallman <rms@gnu.org>
parents:
85415
diff
changeset
|
1827 ;; `face-at-point' alone is not sufficient. It only gets named faces. |
674b001d26e1
(read-color): New function.
Richard M. Stallman <rms@gnu.org>
parents:
85415
diff
changeset
|
1828 ;; Need also pick up any face properties that are not associated with named faces. |
674b001d26e1
(read-color): New function.
Richard M. Stallman <rms@gnu.org>
parents:
85415
diff
changeset
|
1829 (let ((face (or (face-at-point) |
674b001d26e1
(read-color): New function.
Richard M. Stallman <rms@gnu.org>
parents:
85415
diff
changeset
|
1830 (get-char-property (point) 'read-face-name) |
674b001d26e1
(read-color): New function.
Richard M. Stallman <rms@gnu.org>
parents:
85415
diff
changeset
|
1831 (get-char-property (point) 'face)))) |
674b001d26e1
(read-color): New function.
Richard M. Stallman <rms@gnu.org>
parents:
85415
diff
changeset
|
1832 (cond ((and face (symbolp face)) |
674b001d26e1
(read-color): New function.
Richard M. Stallman <rms@gnu.org>
parents:
85415
diff
changeset
|
1833 (let ((value (face-background face nil 'default))) |
674b001d26e1
(read-color): New function.
Richard M. Stallman <rms@gnu.org>
parents:
85415
diff
changeset
|
1834 (if (member value '("unspecified-fg" "unspecified-bg")) |
674b001d26e1
(read-color): New function.
Richard M. Stallman <rms@gnu.org>
parents:
85415
diff
changeset
|
1835 nil |
674b001d26e1
(read-color): New function.
Richard M. Stallman <rms@gnu.org>
parents:
85415
diff
changeset
|
1836 value))) |
674b001d26e1
(read-color): New function.
Richard M. Stallman <rms@gnu.org>
parents:
85415
diff
changeset
|
1837 ((consp face) |
674b001d26e1
(read-color): New function.
Richard M. Stallman <rms@gnu.org>
parents:
85415
diff
changeset
|
1838 (cond ((memq 'background-color face) (cdr (memq 'background-color face))) |
674b001d26e1
(read-color): New function.
Richard M. Stallman <rms@gnu.org>
parents:
85415
diff
changeset
|
1839 ((memq ':background face) (cadr (memq ':background face))))) |
674b001d26e1
(read-color): New function.
Richard M. Stallman <rms@gnu.org>
parents:
85415
diff
changeset
|
1840 (t nil)))) ; Invalid face value. |
26736
a0674327c167
Changes for automatic remapping of X colors on terminal frames:
Eli Zaretskii <eliz@gnu.org>
parents:
26657
diff
changeset
|
1841 |
a0674327c167
Changes for automatic remapping of X colors on terminal frames:
Eli Zaretskii <eliz@gnu.org>
parents:
26657
diff
changeset
|
1842 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
25012 | 1843 ;;; Background mode. |
1844 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | |
1845 | |
1846 (defcustom frame-background-mode nil | |
100171 | 1847 "The brightness of the background. |
63637
de897c139738
(face-user-default-spec): Try getting `customized-face' prior to `saved-face'.
Juri Linkov <juri@jurta.org>
parents:
63594
diff
changeset
|
1848 Set this to the symbol `dark' if your background color is dark, |
67503
71e68cea180c
(frame-background-mode): Replace `choice-item' keywords
Juri Linkov <juri@jurta.org>
parents:
67049
diff
changeset
|
1849 `light' if your background is light, or nil (automatic by default) |
71e68cea180c
(frame-background-mode): Replace `choice-item' keywords
Juri Linkov <juri@jurta.org>
parents:
67049
diff
changeset
|
1850 if you want Emacs to examine the brightness for you. Don't set this |
71e68cea180c
(frame-background-mode): Replace `choice-item' keywords
Juri Linkov <juri@jurta.org>
parents:
67049
diff
changeset
|
1851 variable with `setq'; this won't have the expected effect." |
25012 | 1852 :group 'faces |
1853 :set #'(lambda (var value) | |
29769
18a16ab69699
(frame-background-mode): Use set-default, not set, in setter.
Dave Love <fx@gnu.org>
parents:
29354
diff
changeset
|
1854 (set-default var value) |
31528
a461cad7a942
(face-x-resources): Make custom type more specific.
Dave Love <fx@gnu.org>
parents:
31500
diff
changeset
|
1855 (mapc 'frame-set-background-mode (frame-list))) |
25012 | 1856 :initialize 'custom-initialize-changed |
67503
71e68cea180c
(frame-background-mode): Replace `choice-item' keywords
Juri Linkov <juri@jurta.org>
parents:
67049
diff
changeset
|
1857 :type '(choice (const dark) |
71e68cea180c
(frame-background-mode): Replace `choice-item' keywords
Juri Linkov <juri@jurta.org>
parents:
67049
diff
changeset
|
1858 (const light) |
71e68cea180c
(frame-background-mode): Replace `choice-item' keywords
Juri Linkov <juri@jurta.org>
parents:
67049
diff
changeset
|
1859 (const :tag "automatic" nil))) |
25012 | 1860 |
1861 | |
95841
b4e36ff621b3
Add some compiler declarations, for builds without X.
Glenn Morris <rgm@gnu.org>
parents:
95787
diff
changeset
|
1862 (declare-function x-get-resource "frame.c" |
b4e36ff621b3
Add some compiler declarations, for builds without X.
Glenn Morris <rgm@gnu.org>
parents:
95787
diff
changeset
|
1863 (attribute class &optional component subclass)) |
b4e36ff621b3
Add some compiler declarations, for builds without X.
Glenn Morris <rgm@gnu.org>
parents:
95787
diff
changeset
|
1864 |
98469
b47418363c13
(inhibit-frame-set-background-mode): New var.
Chong Yidong <cyd@stupidchicken.com>
parents:
98320
diff
changeset
|
1865 (defvar inhibit-frame-set-background-mode nil) |
b47418363c13
(inhibit-frame-set-background-mode): New var.
Chong Yidong <cyd@stupidchicken.com>
parents:
98320
diff
changeset
|
1866 |
25012 | 1867 (defun frame-set-background-mode (frame) |
32649
47bf921bccd5
(frame-set-background-mode): `unspecified' &c are symbols, not strings.
Miles Bader <miles@gnu.org>
parents:
32641
diff
changeset
|
1868 "Set up display-dependent faces on FRAME. |
47bf921bccd5
(frame-set-background-mode): `unspecified' &c are symbols, not strings.
Miles Bader <miles@gnu.org>
parents:
32641
diff
changeset
|
1869 Display-dependent faces are those which have different definitions |
47bf921bccd5
(frame-set-background-mode): `unspecified' &c are symbols, not strings.
Miles Bader <miles@gnu.org>
parents:
32641
diff
changeset
|
1870 according to the `background-mode' and `display-type' frame parameters." |
98469
b47418363c13
(inhibit-frame-set-background-mode): New var.
Chong Yidong <cyd@stupidchicken.com>
parents:
98320
diff
changeset
|
1871 (unless inhibit-frame-set-background-mode |
b47418363c13
(inhibit-frame-set-background-mode): New var.
Chong Yidong <cyd@stupidchicken.com>
parents:
98320
diff
changeset
|
1872 (let* ((bg-resource |
b47418363c13
(inhibit-frame-set-background-mode): New var.
Chong Yidong <cyd@stupidchicken.com>
parents:
98320
diff
changeset
|
1873 (and (window-system frame) |
b47418363c13
(inhibit-frame-set-background-mode): New var.
Chong Yidong <cyd@stupidchicken.com>
parents:
98320
diff
changeset
|
1874 (x-get-resource "backgroundMode" "BackgroundMode"))) |
b47418363c13
(inhibit-frame-set-background-mode): New var.
Chong Yidong <cyd@stupidchicken.com>
parents:
98320
diff
changeset
|
1875 (bg-color (frame-parameter frame 'background-color)) |
b47418363c13
(inhibit-frame-set-background-mode): New var.
Chong Yidong <cyd@stupidchicken.com>
parents:
98320
diff
changeset
|
1876 (terminal-bg-mode (terminal-parameter frame 'background-mode)) |
b47418363c13
(inhibit-frame-set-background-mode): New var.
Chong Yidong <cyd@stupidchicken.com>
parents:
98320
diff
changeset
|
1877 (tty-type (tty-type frame)) |
102949
8567720fb081
(frame-set-background-mode): Window system frames
Jason Rumney <jasonr@gnu.org>
parents:
102609
diff
changeset
|
1878 (default-bg-mode |
8567720fb081
(frame-set-background-mode): Window system frames
Jason Rumney <jasonr@gnu.org>
parents:
102609
diff
changeset
|
1879 (if (or (window-system frame) |
8567720fb081
(frame-set-background-mode): Window system frames
Jason Rumney <jasonr@gnu.org>
parents:
102609
diff
changeset
|
1880 (and tty-type |
8567720fb081
(frame-set-background-mode): Window system frames
Jason Rumney <jasonr@gnu.org>
parents:
102609
diff
changeset
|
1881 (string-match "^\\(xterm\\|\\rxvt\\|dtterm\\|eterm\\)" |
8567720fb081
(frame-set-background-mode): Window system frames
Jason Rumney <jasonr@gnu.org>
parents:
102609
diff
changeset
|
1882 tty-type))) |
8567720fb081
(frame-set-background-mode): Window system frames
Jason Rumney <jasonr@gnu.org>
parents:
102609
diff
changeset
|
1883 'light |
8567720fb081
(frame-set-background-mode): Window system frames
Jason Rumney <jasonr@gnu.org>
parents:
102609
diff
changeset
|
1884 'dark)) |
8567720fb081
(frame-set-background-mode): Window system frames
Jason Rumney <jasonr@gnu.org>
parents:
102609
diff
changeset
|
1885 (non-default-bg-mode (if (eq default-bg-mode 'light) 'dark 'light)) |
98469
b47418363c13
(inhibit-frame-set-background-mode): New var.
Chong Yidong <cyd@stupidchicken.com>
parents:
98320
diff
changeset
|
1886 (bg-mode |
b47418363c13
(inhibit-frame-set-background-mode): New var.
Chong Yidong <cyd@stupidchicken.com>
parents:
98320
diff
changeset
|
1887 (cond (frame-background-mode) |
b47418363c13
(inhibit-frame-set-background-mode): New var.
Chong Yidong <cyd@stupidchicken.com>
parents:
98320
diff
changeset
|
1888 (bg-resource (intern (downcase bg-resource))) |
b47418363c13
(inhibit-frame-set-background-mode): New var.
Chong Yidong <cyd@stupidchicken.com>
parents:
98320
diff
changeset
|
1889 (terminal-bg-mode) |
b47418363c13
(inhibit-frame-set-background-mode): New var.
Chong Yidong <cyd@stupidchicken.com>
parents:
98320
diff
changeset
|
1890 ((equal bg-color "unspecified-fg") ; inverted colors |
102949
8567720fb081
(frame-set-background-mode): Window system frames
Jason Rumney <jasonr@gnu.org>
parents:
102609
diff
changeset
|
1891 non-default-bg-mode) |
8567720fb081
(frame-set-background-mode): Window system frames
Jason Rumney <jasonr@gnu.org>
parents:
102609
diff
changeset
|
1892 ((not (color-values bg-color frame)) |
8567720fb081
(frame-set-background-mode): Window system frames
Jason Rumney <jasonr@gnu.org>
parents:
102609
diff
changeset
|
1893 default-bg-mode) |
98469
b47418363c13
(inhibit-frame-set-background-mode): New var.
Chong Yidong <cyd@stupidchicken.com>
parents:
98320
diff
changeset
|
1894 ((>= (apply '+ (color-values bg-color frame)) |
b47418363c13
(inhibit-frame-set-background-mode): New var.
Chong Yidong <cyd@stupidchicken.com>
parents:
98320
diff
changeset
|
1895 ;; Just looking at the screen, colors whose |
b47418363c13
(inhibit-frame-set-background-mode): New var.
Chong Yidong <cyd@stupidchicken.com>
parents:
98320
diff
changeset
|
1896 ;; values add up to .6 of the white total |
b47418363c13
(inhibit-frame-set-background-mode): New var.
Chong Yidong <cyd@stupidchicken.com>
parents:
98320
diff
changeset
|
1897 ;; still look dark to me. |
b47418363c13
(inhibit-frame-set-background-mode): New var.
Chong Yidong <cyd@stupidchicken.com>
parents:
98320
diff
changeset
|
1898 (* (apply '+ (color-values "white" frame)) .6)) |
b47418363c13
(inhibit-frame-set-background-mode): New var.
Chong Yidong <cyd@stupidchicken.com>
parents:
98320
diff
changeset
|
1899 'light) |
b47418363c13
(inhibit-frame-set-background-mode): New var.
Chong Yidong <cyd@stupidchicken.com>
parents:
98320
diff
changeset
|
1900 (t 'dark))) |
b47418363c13
(inhibit-frame-set-background-mode): New var.
Chong Yidong <cyd@stupidchicken.com>
parents:
98320
diff
changeset
|
1901 (display-type |
b47418363c13
(inhibit-frame-set-background-mode): New var.
Chong Yidong <cyd@stupidchicken.com>
parents:
98320
diff
changeset
|
1902 (cond ((null (window-system frame)) |
b47418363c13
(inhibit-frame-set-background-mode): New var.
Chong Yidong <cyd@stupidchicken.com>
parents:
98320
diff
changeset
|
1903 (if (tty-display-color-p frame) 'color 'mono)) |
b47418363c13
(inhibit-frame-set-background-mode): New var.
Chong Yidong <cyd@stupidchicken.com>
parents:
98320
diff
changeset
|
1904 ((display-color-p frame) |
b47418363c13
(inhibit-frame-set-background-mode): New var.
Chong Yidong <cyd@stupidchicken.com>
parents:
98320
diff
changeset
|
1905 'color) |
b47418363c13
(inhibit-frame-set-background-mode): New var.
Chong Yidong <cyd@stupidchicken.com>
parents:
98320
diff
changeset
|
1906 ((x-display-grayscale-p frame) |
b47418363c13
(inhibit-frame-set-background-mode): New var.
Chong Yidong <cyd@stupidchicken.com>
parents:
98320
diff
changeset
|
1907 'grayscale) |
b47418363c13
(inhibit-frame-set-background-mode): New var.
Chong Yidong <cyd@stupidchicken.com>
parents:
98320
diff
changeset
|
1908 (t 'mono))) |
b47418363c13
(inhibit-frame-set-background-mode): New var.
Chong Yidong <cyd@stupidchicken.com>
parents:
98320
diff
changeset
|
1909 (old-bg-mode |
b47418363c13
(inhibit-frame-set-background-mode): New var.
Chong Yidong <cyd@stupidchicken.com>
parents:
98320
diff
changeset
|
1910 (frame-parameter frame 'background-mode)) |
b47418363c13
(inhibit-frame-set-background-mode): New var.
Chong Yidong <cyd@stupidchicken.com>
parents:
98320
diff
changeset
|
1911 (old-display-type |
b47418363c13
(inhibit-frame-set-background-mode): New var.
Chong Yidong <cyd@stupidchicken.com>
parents:
98320
diff
changeset
|
1912 (frame-parameter frame 'display-type))) |
32376 | 1913 |
98469
b47418363c13
(inhibit-frame-set-background-mode): New var.
Chong Yidong <cyd@stupidchicken.com>
parents:
98320
diff
changeset
|
1914 (unless (and (eq bg-mode old-bg-mode) (eq display-type old-display-type)) |
b47418363c13
(inhibit-frame-set-background-mode): New var.
Chong Yidong <cyd@stupidchicken.com>
parents:
98320
diff
changeset
|
1915 (let ((locally-modified-faces nil) |
b47418363c13
(inhibit-frame-set-background-mode): New var.
Chong Yidong <cyd@stupidchicken.com>
parents:
98320
diff
changeset
|
1916 ;; Prevent face-spec-recalc from calling this function |
b47418363c13
(inhibit-frame-set-background-mode): New var.
Chong Yidong <cyd@stupidchicken.com>
parents:
98320
diff
changeset
|
1917 ;; again, resulting in a loop (bug#911). |
b47418363c13
(inhibit-frame-set-background-mode): New var.
Chong Yidong <cyd@stupidchicken.com>
parents:
98320
diff
changeset
|
1918 (inhibit-frame-set-background-mode t)) |
b47418363c13
(inhibit-frame-set-background-mode): New var.
Chong Yidong <cyd@stupidchicken.com>
parents:
98320
diff
changeset
|
1919 ;; Before modifying the frame parameters, collect a list of |
b47418363c13
(inhibit-frame-set-background-mode): New var.
Chong Yidong <cyd@stupidchicken.com>
parents:
98320
diff
changeset
|
1920 ;; faces that don't match what their face-spec says they |
b47418363c13
(inhibit-frame-set-background-mode): New var.
Chong Yidong <cyd@stupidchicken.com>
parents:
98320
diff
changeset
|
1921 ;; should look like. We then avoid changing these faces |
b47418363c13
(inhibit-frame-set-background-mode): New var.
Chong Yidong <cyd@stupidchicken.com>
parents:
98320
diff
changeset
|
1922 ;; below. These are the faces whose attributes were |
b47418363c13
(inhibit-frame-set-background-mode): New var.
Chong Yidong <cyd@stupidchicken.com>
parents:
98320
diff
changeset
|
1923 ;; modified on FRAME. We use a negative list on the |
b47418363c13
(inhibit-frame-set-background-mode): New var.
Chong Yidong <cyd@stupidchicken.com>
parents:
98320
diff
changeset
|
1924 ;; assumption that most faces will be unmodified, so we can |
b47418363c13
(inhibit-frame-set-background-mode): New var.
Chong Yidong <cyd@stupidchicken.com>
parents:
98320
diff
changeset
|
1925 ;; avoid consing in the common case. |
b47418363c13
(inhibit-frame-set-background-mode): New var.
Chong Yidong <cyd@stupidchicken.com>
parents:
98320
diff
changeset
|
1926 (dolist (face (face-list)) |
b47418363c13
(inhibit-frame-set-background-mode): New var.
Chong Yidong <cyd@stupidchicken.com>
parents:
98320
diff
changeset
|
1927 (and (not (get face 'face-override-spec)) |
b47418363c13
(inhibit-frame-set-background-mode): New var.
Chong Yidong <cyd@stupidchicken.com>
parents:
98320
diff
changeset
|
1928 (not (face-spec-match-p face |
b47418363c13
(inhibit-frame-set-background-mode): New var.
Chong Yidong <cyd@stupidchicken.com>
parents:
98320
diff
changeset
|
1929 (face-user-default-spec face) |
b47418363c13
(inhibit-frame-set-background-mode): New var.
Chong Yidong <cyd@stupidchicken.com>
parents:
98320
diff
changeset
|
1930 (selected-frame))) |
b47418363c13
(inhibit-frame-set-background-mode): New var.
Chong Yidong <cyd@stupidchicken.com>
parents:
98320
diff
changeset
|
1931 (push face locally-modified-faces))) |
b47418363c13
(inhibit-frame-set-background-mode): New var.
Chong Yidong <cyd@stupidchicken.com>
parents:
98320
diff
changeset
|
1932 ;; Now change to the new frame parameters |
b47418363c13
(inhibit-frame-set-background-mode): New var.
Chong Yidong <cyd@stupidchicken.com>
parents:
98320
diff
changeset
|
1933 (modify-frame-parameters frame |
b47418363c13
(inhibit-frame-set-background-mode): New var.
Chong Yidong <cyd@stupidchicken.com>
parents:
98320
diff
changeset
|
1934 (list (cons 'background-mode bg-mode) |
b47418363c13
(inhibit-frame-set-background-mode): New var.
Chong Yidong <cyd@stupidchicken.com>
parents:
98320
diff
changeset
|
1935 (cons 'display-type display-type))) |
b47418363c13
(inhibit-frame-set-background-mode): New var.
Chong Yidong <cyd@stupidchicken.com>
parents:
98320
diff
changeset
|
1936 ;; For all named faces, choose face specs matching the new frame |
b47418363c13
(inhibit-frame-set-background-mode): New var.
Chong Yidong <cyd@stupidchicken.com>
parents:
98320
diff
changeset
|
1937 ;; parameters, unless they have been locally modified. |
b47418363c13
(inhibit-frame-set-background-mode): New var.
Chong Yidong <cyd@stupidchicken.com>
parents:
98320
diff
changeset
|
1938 (dolist (face (face-list)) |
b47418363c13
(inhibit-frame-set-background-mode): New var.
Chong Yidong <cyd@stupidchicken.com>
parents:
98320
diff
changeset
|
1939 (unless (memq face locally-modified-faces) |
b47418363c13
(inhibit-frame-set-background-mode): New var.
Chong Yidong <cyd@stupidchicken.com>
parents:
98320
diff
changeset
|
1940 (face-spec-recalc face frame)))))))) |
25012 | 1941 |
1942 | |
1943 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | |
1944 ;;; Frame creation. | |
1945 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | |
1946 | |
95841
b4e36ff621b3
Add some compiler declarations, for builds without X.
Glenn Morris <rgm@gnu.org>
parents:
95787
diff
changeset
|
1947 (declare-function x-parse-geometry "frame.c" (string)) |
b4e36ff621b3
Add some compiler declarations, for builds without X.
Glenn Morris <rgm@gnu.org>
parents:
95787
diff
changeset
|
1948 |
25012 | 1949 (defun x-handle-named-frame-geometry (parameters) |
1950 "Add geometry parameters for a named frame to parameter list PARAMETERS. | |
1951 Value is the new parameter list." | |
103604
5883b0a08647
* faces.el (x-handle-named-frame-geometry): Ensure that we have
Chong Yidong <cyd@stupidchicken.com>
parents:
103252
diff
changeset
|
1952 ;; Note that `x-resource-name' has a global meaning. |
109089
bd58a72bb9bb
Fix application of default-frame-alist (Bug#5378).
Chong Yidong <cyd@stupidchicken.com>
parents:
107532
diff
changeset
|
1953 (let ((x-resource-name (cdr (assq 'name parameters)))) |
103604
5883b0a08647
* faces.el (x-handle-named-frame-geometry): Ensure that we have
Chong Yidong <cyd@stupidchicken.com>
parents:
103252
diff
changeset
|
1954 (when x-resource-name |
5883b0a08647
* faces.el (x-handle-named-frame-geometry): Ensure that we have
Chong Yidong <cyd@stupidchicken.com>
parents:
103252
diff
changeset
|
1955 ;; Before checking X resources, we must have an X connection. |
5883b0a08647
* faces.el (x-handle-named-frame-geometry): Ensure that we have
Chong Yidong <cyd@stupidchicken.com>
parents:
103252
diff
changeset
|
1956 (or (window-system) |
5883b0a08647
* faces.el (x-handle-named-frame-geometry): Ensure that we have
Chong Yidong <cyd@stupidchicken.com>
parents:
103252
diff
changeset
|
1957 (x-display-list) |
5883b0a08647
* faces.el (x-handle-named-frame-geometry): Ensure that we have
Chong Yidong <cyd@stupidchicken.com>
parents:
103252
diff
changeset
|
1958 (x-open-connection (or (cdr (assq 'display parameters)) |
5883b0a08647
* faces.el (x-handle-named-frame-geometry): Ensure that we have
Chong Yidong <cyd@stupidchicken.com>
parents:
103252
diff
changeset
|
1959 x-display-name))) |
5883b0a08647
* faces.el (x-handle-named-frame-geometry): Ensure that we have
Chong Yidong <cyd@stupidchicken.com>
parents:
103252
diff
changeset
|
1960 (let (res-geometry parsed) |
5883b0a08647
* faces.el (x-handle-named-frame-geometry): Ensure that we have
Chong Yidong <cyd@stupidchicken.com>
parents:
103252
diff
changeset
|
1961 (and (setq res-geometry (x-get-resource "geometry" "Geometry")) |
5883b0a08647
* faces.el (x-handle-named-frame-geometry): Ensure that we have
Chong Yidong <cyd@stupidchicken.com>
parents:
103252
diff
changeset
|
1962 (setq parsed (x-parse-geometry res-geometry)) |
5883b0a08647
* faces.el (x-handle-named-frame-geometry): Ensure that we have
Chong Yidong <cyd@stupidchicken.com>
parents:
103252
diff
changeset
|
1963 (setq parameters |
109089
bd58a72bb9bb
Fix application of default-frame-alist (Bug#5378).
Chong Yidong <cyd@stupidchicken.com>
parents:
107532
diff
changeset
|
1964 (append parameters parsed |
103604
5883b0a08647
* faces.el (x-handle-named-frame-geometry): Ensure that we have
Chong Yidong <cyd@stupidchicken.com>
parents:
103252
diff
changeset
|
1965 ;; If the resource specifies a position, |
5883b0a08647
* faces.el (x-handle-named-frame-geometry): Ensure that we have
Chong Yidong <cyd@stupidchicken.com>
parents:
103252
diff
changeset
|
1966 ;; take note of that. |
5883b0a08647
* faces.el (x-handle-named-frame-geometry): Ensure that we have
Chong Yidong <cyd@stupidchicken.com>
parents:
103252
diff
changeset
|
1967 (if (or (assq 'top parsed) (assq 'left parsed)) |
5883b0a08647
* faces.el (x-handle-named-frame-geometry): Ensure that we have
Chong Yidong <cyd@stupidchicken.com>
parents:
103252
diff
changeset
|
1968 '((user-position . t) (user-size . t))))))))) |
5883b0a08647
* faces.el (x-handle-named-frame-geometry): Ensure that we have
Chong Yidong <cyd@stupidchicken.com>
parents:
103252
diff
changeset
|
1969 parameters) |
25012 | 1970 |
1971 | |
1972 (defun x-handle-reverse-video (frame parameters) | |
1973 "Handle the reverse-video frame parameter and X resource. | |
1974 `x-create-frame' does not handle this one." | |
1975 (when (cdr (or (assq 'reverse parameters) | |
1976 (let ((resource (x-get-resource "reverseVideo" | |
1977 "ReverseVideo"))) | |
1978 (if resource | |
1979 (cons nil (member (downcase resource) | |
1980 '("on" "true"))))))) | |
1981 (let* ((params (frame-parameters frame)) | |
1982 (bg (cdr (assq 'foreground-color params))) | |
1983 (fg (cdr (assq 'background-color params)))) | |
1984 (modify-frame-parameters frame | |
1985 (list (cons 'foreground-color fg) | |
1986 (cons 'background-color bg))) | |
1987 (if (equal bg (cdr (assq 'border-color params))) | |
1988 (modify-frame-parameters frame | |
1989 (list (cons 'border-color fg)))) | |
1990 (if (equal bg (cdr (assq 'mouse-color params))) | |
1991 (modify-frame-parameters frame | |
1992 (list (cons 'mouse-color fg)))) | |
1993 (if (equal bg (cdr (assq 'cursor-color params))) | |
1994 (modify-frame-parameters frame | |
1995 (list (cons 'cursor-color fg))))))) | |
1996 | |
95841
b4e36ff621b3
Add some compiler declarations, for builds without X.
Glenn Morris <rgm@gnu.org>
parents:
95787
diff
changeset
|
1997 (declare-function x-create-frame "xfns.c" (parms)) |
b4e36ff621b3
Add some compiler declarations, for builds without X.
Glenn Morris <rgm@gnu.org>
parents:
95787
diff
changeset
|
1998 (declare-function x-setup-function-keys "term/x-win" (frame)) |
25012 | 1999 |
2000 (defun x-create-frame-with-faces (&optional parameters) | |
109089
bd58a72bb9bb
Fix application of default-frame-alist (Bug#5378).
Chong Yidong <cyd@stupidchicken.com>
parents:
107532
diff
changeset
|
2001 "Create and return a frame with frame parameters PARAMETERS. |
bd58a72bb9bb
Fix application of default-frame-alist (Bug#5378).
Chong Yidong <cyd@stupidchicken.com>
parents:
107532
diff
changeset
|
2002 If PARAMETERS specify a frame name, handle X geometry resources |
bd58a72bb9bb
Fix application of default-frame-alist (Bug#5378).
Chong Yidong <cyd@stupidchicken.com>
parents:
107532
diff
changeset
|
2003 for that name. If PARAMETERS includes a `reverse' parameter, or |
bd58a72bb9bb
Fix application of default-frame-alist (Bug#5378).
Chong Yidong <cyd@stupidchicken.com>
parents:
107532
diff
changeset
|
2004 the X resource ``reverseVideo'' is present, handle that." |
25012 | 2005 (setq parameters (x-handle-named-frame-geometry parameters)) |
96585
32d47016e1c4
(x-create-frame-with-faces): Don't pass parameters that
Chong Yidong <cyd@stupidchicken.com>
parents:
96549
diff
changeset
|
2006 (let* ((params (copy-tree parameters)) |
32d47016e1c4
(x-create-frame-with-faces): Don't pass parameters that
Chong Yidong <cyd@stupidchicken.com>
parents:
96549
diff
changeset
|
2007 (visibility-spec (assq 'visibility parameters)) |
32d47016e1c4
(x-create-frame-with-faces): Don't pass parameters that
Chong Yidong <cyd@stupidchicken.com>
parents:
96549
diff
changeset
|
2008 (delayed-params '(foreground-color background-color font |
32d47016e1c4
(x-create-frame-with-faces): Don't pass parameters that
Chong Yidong <cyd@stupidchicken.com>
parents:
96549
diff
changeset
|
2009 border-color cursor-color mouse-color |
32d47016e1c4
(x-create-frame-with-faces): Don't pass parameters that
Chong Yidong <cyd@stupidchicken.com>
parents:
96549
diff
changeset
|
2010 visibility scroll-bar-foreground |
32d47016e1c4
(x-create-frame-with-faces): Don't pass parameters that
Chong Yidong <cyd@stupidchicken.com>
parents:
96549
diff
changeset
|
2011 scroll-bar-background)) |
32d47016e1c4
(x-create-frame-with-faces): Don't pass parameters that
Chong Yidong <cyd@stupidchicken.com>
parents:
96549
diff
changeset
|
2012 frame success) |
32d47016e1c4
(x-create-frame-with-faces): Don't pass parameters that
Chong Yidong <cyd@stupidchicken.com>
parents:
96549
diff
changeset
|
2013 (dolist (param delayed-params) |
32d47016e1c4
(x-create-frame-with-faces): Don't pass parameters that
Chong Yidong <cyd@stupidchicken.com>
parents:
96549
diff
changeset
|
2014 (setq params (assq-delete-all param params))) |
32d47016e1c4
(x-create-frame-with-faces): Don't pass parameters that
Chong Yidong <cyd@stupidchicken.com>
parents:
96549
diff
changeset
|
2015 (setq frame (x-create-frame `((visibility . nil) . ,params))) |
25012 | 2016 (unwind-protect |
2017 (progn | |
83316
102194c6d773
Update Lisp code for a terminal-local `function-key-map'.
Karoly Lorentey <lorentey@elte.hu>
parents:
83314
diff
changeset
|
2018 (x-setup-function-keys frame) |
25012 | 2019 (x-handle-reverse-video frame parameters) |
2020 (frame-set-background-mode frame) | |
96549
5a9a5f15f0e5
(face-set-after-frame-default): Simplify. Don't apply
Chong Yidong <cyd@stupidchicken.com>
parents:
96435
diff
changeset
|
2021 (face-set-after-frame-default frame parameters) |
83496
f271076dab2d
Fix toolbars on X frames when Emacs is started on a tty. (Reported by Richard Lewis.)
Karoly Lorentey <lorentey@elte.hu>
parents:
83488
diff
changeset
|
2022 (if (null visibility-spec) |
25012 | 2023 (make-frame-visible frame) |
2024 (modify-frame-parameters frame (list visibility-spec))) | |
2025 (setq success t)) | |
2026 (unless success | |
2027 (delete-frame frame))) | |
2028 frame)) | |
2029 | |
96549
5a9a5f15f0e5
(face-set-after-frame-default): Simplify. Don't apply
Chong Yidong <cyd@stupidchicken.com>
parents:
96435
diff
changeset
|
2030 (defun face-set-after-frame-default (frame &optional parameters) |
5a9a5f15f0e5
(face-set-after-frame-default): Simplify. Don't apply
Chong Yidong <cyd@stupidchicken.com>
parents:
96435
diff
changeset
|
2031 "Initialize the frame-local faces of FRAME. |
5a9a5f15f0e5
(face-set-after-frame-default): Simplify. Don't apply
Chong Yidong <cyd@stupidchicken.com>
parents:
96435
diff
changeset
|
2032 Calculate the face definitions using the face specs, custom theme |
96585
32d47016e1c4
(x-create-frame-with-faces): Don't pass parameters that
Chong Yidong <cyd@stupidchicken.com>
parents:
96549
diff
changeset
|
2033 settings, X resources, and `face-new-frame-defaults'. |
96549
5a9a5f15f0e5
(face-set-after-frame-default): Simplify. Don't apply
Chong Yidong <cyd@stupidchicken.com>
parents:
96435
diff
changeset
|
2034 Finally, apply any relevant face attributes found amongst the |
109089
bd58a72bb9bb
Fix application of default-frame-alist (Bug#5378).
Chong Yidong <cyd@stupidchicken.com>
parents:
107532
diff
changeset
|
2035 frame parameters in PARAMETERS." |
105954
d11f5e25913f
(face-set-after-frame-default): Add comment.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
105950
diff
changeset
|
2036 (dolist (face (nreverse (face-list))) ;Why reverse? --Stef |
96549
5a9a5f15f0e5
(face-set-after-frame-default): Simplify. Don't apply
Chong Yidong <cyd@stupidchicken.com>
parents:
96435
diff
changeset
|
2037 (condition-case () |
5a9a5f15f0e5
(face-set-after-frame-default): Simplify. Don't apply
Chong Yidong <cyd@stupidchicken.com>
parents:
96435
diff
changeset
|
2038 (progn |
5a9a5f15f0e5
(face-set-after-frame-default): Simplify. Don't apply
Chong Yidong <cyd@stupidchicken.com>
parents:
96435
diff
changeset
|
2039 ;; Initialize faces from face spec and custom theme. |
5a9a5f15f0e5
(face-set-after-frame-default): Simplify. Don't apply
Chong Yidong <cyd@stupidchicken.com>
parents:
96435
diff
changeset
|
2040 (face-spec-recalc face frame) |
96585
32d47016e1c4
(x-create-frame-with-faces): Don't pass parameters that
Chong Yidong <cyd@stupidchicken.com>
parents:
96549
diff
changeset
|
2041 ;; X resouces for the default face are applied during |
32d47016e1c4
(x-create-frame-with-faces): Don't pass parameters that
Chong Yidong <cyd@stupidchicken.com>
parents:
96549
diff
changeset
|
2042 ;; x-create-frame. |
32d47016e1c4
(x-create-frame-with-faces): Don't pass parameters that
Chong Yidong <cyd@stupidchicken.com>
parents:
96549
diff
changeset
|
2043 (and (not (eq face 'default)) |
102609
56f3fbbbd88c
set-face-attributes-from-resources, face-set-after-frame-default:
David Reitter <david.reitter@gmail.com>
parents:
101149
diff
changeset
|
2044 (memq (window-system frame) '(x w32)) |
96585
32d47016e1c4
(x-create-frame-with-faces): Don't pass parameters that
Chong Yidong <cyd@stupidchicken.com>
parents:
96549
diff
changeset
|
2045 (make-face-x-resource-internal face frame)) |
96549
5a9a5f15f0e5
(face-set-after-frame-default): Simplify. Don't apply
Chong Yidong <cyd@stupidchicken.com>
parents:
96435
diff
changeset
|
2046 ;; Apply attributes specified by face-new-frame-defaults |
5a9a5f15f0e5
(face-set-after-frame-default): Simplify. Don't apply
Chong Yidong <cyd@stupidchicken.com>
parents:
96435
diff
changeset
|
2047 (internal-merge-in-global-face face frame)) |
5a9a5f15f0e5
(face-set-after-frame-default): Simplify. Don't apply
Chong Yidong <cyd@stupidchicken.com>
parents:
96435
diff
changeset
|
2048 ;; Don't let invalid specs prevent frame creation. |
5a9a5f15f0e5
(face-set-after-frame-default): Simplify. Don't apply
Chong Yidong <cyd@stupidchicken.com>
parents:
96435
diff
changeset
|
2049 (error nil))) |
5a9a5f15f0e5
(face-set-after-frame-default): Simplify. Don't apply
Chong Yidong <cyd@stupidchicken.com>
parents:
96435
diff
changeset
|
2050 ;; Apply attributes specified by frame parameters. |
75696
97897143b20e
(face-set-after-frame-default): Compile attributes to be set by frame
Chong Yidong <cyd@stupidchicken.com>
parents:
75591
diff
changeset
|
2051 (let ((face-params '((foreground-color default :foreground) |
96549
5a9a5f15f0e5
(face-set-after-frame-default): Simplify. Don't apply
Chong Yidong <cyd@stupidchicken.com>
parents:
96435
diff
changeset
|
2052 (background-color default :background) |
5a9a5f15f0e5
(face-set-after-frame-default): Simplify. Don't apply
Chong Yidong <cyd@stupidchicken.com>
parents:
96435
diff
changeset
|
2053 (font default :font) |
5a9a5f15f0e5
(face-set-after-frame-default): Simplify. Don't apply
Chong Yidong <cyd@stupidchicken.com>
parents:
96435
diff
changeset
|
2054 (border-color border :background) |
5a9a5f15f0e5
(face-set-after-frame-default): Simplify. Don't apply
Chong Yidong <cyd@stupidchicken.com>
parents:
96435
diff
changeset
|
2055 (cursor-color cursor :background) |
5a9a5f15f0e5
(face-set-after-frame-default): Simplify. Don't apply
Chong Yidong <cyd@stupidchicken.com>
parents:
96435
diff
changeset
|
2056 (scroll-bar-foreground scroll-bar :foreground) |
5a9a5f15f0e5
(face-set-after-frame-default): Simplify. Don't apply
Chong Yidong <cyd@stupidchicken.com>
parents:
96435
diff
changeset
|
2057 (scroll-bar-background scroll-bar :background) |
5a9a5f15f0e5
(face-set-after-frame-default): Simplify. Don't apply
Chong Yidong <cyd@stupidchicken.com>
parents:
96435
diff
changeset
|
2058 (mouse-color mouse :background)))) |
75696
97897143b20e
(face-set-after-frame-default): Compile attributes to be set by frame
Chong Yidong <cyd@stupidchicken.com>
parents:
75591
diff
changeset
|
2059 (dolist (param face-params) |
96549
5a9a5f15f0e5
(face-set-after-frame-default): Simplify. Don't apply
Chong Yidong <cyd@stupidchicken.com>
parents:
96435
diff
changeset
|
2060 (let* ((param-name (nth 0 param)) |
109089
bd58a72bb9bb
Fix application of default-frame-alist (Bug#5378).
Chong Yidong <cyd@stupidchicken.com>
parents:
107532
diff
changeset
|
2061 (value (cdr (assq param-name parameters)))) |
96549
5a9a5f15f0e5
(face-set-after-frame-default): Simplify. Don't apply
Chong Yidong <cyd@stupidchicken.com>
parents:
96435
diff
changeset
|
2062 (if value |
5a9a5f15f0e5
(face-set-after-frame-default): Simplify. Don't apply
Chong Yidong <cyd@stupidchicken.com>
parents:
96435
diff
changeset
|
2063 (set-face-attribute (nth 1 param) frame |
5a9a5f15f0e5
(face-set-after-frame-default): Simplify. Don't apply
Chong Yidong <cyd@stupidchicken.com>
parents:
96435
diff
changeset
|
2064 (nth 2 param) value)))))) |
25012 | 2065 |
33008
c30c394884b8
(tty-handle-reverse-video): New function.
Eli Zaretskii <eliz@gnu.org>
parents:
32940
diff
changeset
|
2066 (defun tty-handle-reverse-video (frame parameters) |
c30c394884b8
(tty-handle-reverse-video): New function.
Eli Zaretskii <eliz@gnu.org>
parents:
32940
diff
changeset
|
2067 "Handle the reverse-video frame parameter for terminal frames." |
109089
bd58a72bb9bb
Fix application of default-frame-alist (Bug#5378).
Chong Yidong <cyd@stupidchicken.com>
parents:
107532
diff
changeset
|
2068 (when (cdr (assq 'reverse parameters)) |
33008
c30c394884b8
(tty-handle-reverse-video): New function.
Eli Zaretskii <eliz@gnu.org>
parents:
32940
diff
changeset
|
2069 (let* ((params (frame-parameters frame)) |
c30c394884b8
(tty-handle-reverse-video): New function.
Eli Zaretskii <eliz@gnu.org>
parents:
32940
diff
changeset
|
2070 (bg (cdr (assq 'foreground-color params))) |
c30c394884b8
(tty-handle-reverse-video): New function.
Eli Zaretskii <eliz@gnu.org>
parents:
32940
diff
changeset
|
2071 (fg (cdr (assq 'background-color params)))) |
c30c394884b8
(tty-handle-reverse-video): New function.
Eli Zaretskii <eliz@gnu.org>
parents:
32940
diff
changeset
|
2072 (modify-frame-parameters frame |
c30c394884b8
(tty-handle-reverse-video): New function.
Eli Zaretskii <eliz@gnu.org>
parents:
32940
diff
changeset
|
2073 (list (cons 'foreground-color fg) |
c30c394884b8
(tty-handle-reverse-video): New function.
Eli Zaretskii <eliz@gnu.org>
parents:
32940
diff
changeset
|
2074 (cons 'background-color bg))) |
c30c394884b8
(tty-handle-reverse-video): New function.
Eli Zaretskii <eliz@gnu.org>
parents:
32940
diff
changeset
|
2075 (if (equal bg (cdr (assq 'mouse-color params))) |
c30c394884b8
(tty-handle-reverse-video): New function.
Eli Zaretskii <eliz@gnu.org>
parents:
32940
diff
changeset
|
2076 (modify-frame-parameters frame |
c30c394884b8
(tty-handle-reverse-video): New function.
Eli Zaretskii <eliz@gnu.org>
parents:
32940
diff
changeset
|
2077 (list (cons 'mouse-color fg)))) |
c30c394884b8
(tty-handle-reverse-video): New function.
Eli Zaretskii <eliz@gnu.org>
parents:
32940
diff
changeset
|
2078 (if (equal bg (cdr (assq 'cursor-color params))) |
c30c394884b8
(tty-handle-reverse-video): New function.
Eli Zaretskii <eliz@gnu.org>
parents:
32940
diff
changeset
|
2079 (modify-frame-parameters frame |
c30c394884b8
(tty-handle-reverse-video): New function.
Eli Zaretskii <eliz@gnu.org>
parents:
32940
diff
changeset
|
2080 (list (cons 'cursor-color fg))))))) |
c30c394884b8
(tty-handle-reverse-video): New function.
Eli Zaretskii <eliz@gnu.org>
parents:
32940
diff
changeset
|
2081 |
25012 | 2082 |
2083 (defun tty-create-frame-with-faces (&optional parameters) | |
109089
bd58a72bb9bb
Fix application of default-frame-alist (Bug#5378).
Chong Yidong <cyd@stupidchicken.com>
parents:
107532
diff
changeset
|
2084 "Create and return a frame from optional frame parameters PARAMETERS. |
bd58a72bb9bb
Fix application of default-frame-alist (Bug#5378).
Chong Yidong <cyd@stupidchicken.com>
parents:
107532
diff
changeset
|
2085 If PARAMETERS contains a `reverse' parameter, handle that." |
25012 | 2086 (let ((frame (make-terminal-frame parameters)) |
2087 success) | |
2088 (unwind-protect | |
83129
b1ded6fb31d1
Use with-selected-frame.
Karoly Lorentey <lorentey@elte.hu>
parents:
83123
diff
changeset
|
2089 (with-selected-frame frame |
33008
c30c394884b8
(tty-handle-reverse-video): New function.
Eli Zaretskii <eliz@gnu.org>
parents:
32940
diff
changeset
|
2090 (tty-handle-reverse-video frame (frame-parameters frame)) |
83359
8f0c7632f259
Slightly refactor the terminal initialization code for simplicity.
Karoly Lorentey <lorentey@elte.hu>
parents:
83358
diff
changeset
|
2091 |
85415
b1e285a2d293
(tty-create-frame-with-faces): Make sure not only
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85311
diff
changeset
|
2092 (unless (terminal-parameter frame 'terminal-initted) |
b1e285a2d293
(tty-create-frame-with-faces): Make sure not only
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85311
diff
changeset
|
2093 (set-terminal-parameter frame 'terminal-initted t) |
b1e285a2d293
(tty-create-frame-with-faces): Make sure not only
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85311
diff
changeset
|
2094 (set-locale-environment nil frame) |
b1e285a2d293
(tty-create-frame-with-faces): Make sure not only
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85311
diff
changeset
|
2095 (tty-run-terminal-initialization frame)) |
25012 | 2096 (frame-set-background-mode frame) |
96549
5a9a5f15f0e5
(face-set-after-frame-default): Simplify. Don't apply
Chong Yidong <cyd@stupidchicken.com>
parents:
96435
diff
changeset
|
2097 (face-set-after-frame-default frame parameters) |
25012 | 2098 (setq success t)) |
2099 (unless success | |
2100 (delete-frame frame))) | |
2101 frame)) | |
2102 | |
83523
6ce7108f7eef
Don't load terminit files repeatedly. Also, don't call terminit functions more than once per terminal.
Karoly Lorentey <lorentey@elte.hu>
parents:
83513
diff
changeset
|
2103 (defun tty-find-type (pred type) |
6ce7108f7eef
Don't load terminit files repeatedly. Also, don't call terminit functions more than once per terminal.
Karoly Lorentey <lorentey@elte.hu>
parents:
83513
diff
changeset
|
2104 "Return the longest prefix of TYPE to which PRED returns non-nil. |
6ce7108f7eef
Don't load terminit files repeatedly. Also, don't call terminit functions more than once per terminal.
Karoly Lorentey <lorentey@elte.hu>
parents:
83513
diff
changeset
|
2105 TYPE should be a tty type name such as \"xterm-16color\". |
6ce7108f7eef
Don't load terminit files repeatedly. Also, don't call terminit functions more than once per terminal.
Karoly Lorentey <lorentey@elte.hu>
parents:
83513
diff
changeset
|
2106 |
6ce7108f7eef
Don't load terminit files repeatedly. Also, don't call terminit functions more than once per terminal.
Karoly Lorentey <lorentey@elte.hu>
parents:
83513
diff
changeset
|
2107 The function tries only those prefixes that are followed by a |
6ce7108f7eef
Don't load terminit files repeatedly. Also, don't call terminit functions more than once per terminal.
Karoly Lorentey <lorentey@elte.hu>
parents:
83513
diff
changeset
|
2108 dash or underscore in the original type name, like \"xterm\" in |
6ce7108f7eef
Don't load terminit files repeatedly. Also, don't call terminit functions more than once per terminal.
Karoly Lorentey <lorentey@elte.hu>
parents:
83513
diff
changeset
|
2109 the above example." |
6ce7108f7eef
Don't load terminit files repeatedly. Also, don't call terminit functions more than once per terminal.
Karoly Lorentey <lorentey@elte.hu>
parents:
83513
diff
changeset
|
2110 (let (hyphend) |
6ce7108f7eef
Don't load terminit files repeatedly. Also, don't call terminit functions more than once per terminal.
Karoly Lorentey <lorentey@elte.hu>
parents:
83513
diff
changeset
|
2111 (while (and type |
6ce7108f7eef
Don't load terminit files repeatedly. Also, don't call terminit functions more than once per terminal.
Karoly Lorentey <lorentey@elte.hu>
parents:
83513
diff
changeset
|
2112 (not (funcall pred type))) |
6ce7108f7eef
Don't load terminit files repeatedly. Also, don't call terminit functions more than once per terminal.
Karoly Lorentey <lorentey@elte.hu>
parents:
83513
diff
changeset
|
2113 ;; Strip off last hyphen and what follows, then try again |
6ce7108f7eef
Don't load terminit files repeatedly. Also, don't call terminit functions more than once per terminal.
Karoly Lorentey <lorentey@elte.hu>
parents:
83513
diff
changeset
|
2114 (setq type |
6ce7108f7eef
Don't load terminit files repeatedly. Also, don't call terminit functions more than once per terminal.
Karoly Lorentey <lorentey@elte.hu>
parents:
83513
diff
changeset
|
2115 (if (setq hyphend (string-match "[-_][^-_]+$" type)) |
6ce7108f7eef
Don't load terminit files repeatedly. Also, don't call terminit functions more than once per terminal.
Karoly Lorentey <lorentey@elte.hu>
parents:
83513
diff
changeset
|
2116 (substring type 0 hyphend) |
6ce7108f7eef
Don't load terminit files repeatedly. Also, don't call terminit functions more than once per terminal.
Karoly Lorentey <lorentey@elte.hu>
parents:
83513
diff
changeset
|
2117 nil)))) |
6ce7108f7eef
Don't load terminit files repeatedly. Also, don't call terminit functions more than once per terminal.
Karoly Lorentey <lorentey@elte.hu>
parents:
83513
diff
changeset
|
2118 type) |
6ce7108f7eef
Don't load terminit files repeatedly. Also, don't call terminit functions more than once per terminal.
Karoly Lorentey <lorentey@elte.hu>
parents:
83513
diff
changeset
|
2119 |
83524
673d62ad74b5
Fix and/or simplify terminal initialization files.
Karoly Lorentey <lorentey@elte.hu>
parents:
83523
diff
changeset
|
2120 (defun tty-run-terminal-initialization (frame &optional type) |
673d62ad74b5
Fix and/or simplify terminal initialization files.
Karoly Lorentey <lorentey@elte.hu>
parents:
83523
diff
changeset
|
2121 "Run the special initialization code for the terminal type of FRAME. |
673d62ad74b5
Fix and/or simplify terminal initialization files.
Karoly Lorentey <lorentey@elte.hu>
parents:
83523
diff
changeset
|
2122 The optional TYPE parameter may be used to override the autodetected |
673d62ad74b5
Fix and/or simplify terminal initialization files.
Karoly Lorentey <lorentey@elte.hu>
parents:
83523
diff
changeset
|
2123 terminal type to a different value." |
673d62ad74b5
Fix and/or simplify terminal initialization files.
Karoly Lorentey <lorentey@elte.hu>
parents:
83523
diff
changeset
|
2124 (setq type (or type (tty-type frame))) |
83359
8f0c7632f259
Slightly refactor the terminal initialization code for simplicity.
Karoly Lorentey <lorentey@elte.hu>
parents:
83358
diff
changeset
|
2125 ;; Load library for our terminal type. |
8f0c7632f259
Slightly refactor the terminal initialization code for simplicity.
Karoly Lorentey <lorentey@elte.hu>
parents:
83358
diff
changeset
|
2126 ;; User init file can set term-file-prefix to nil to prevent this. |
8f0c7632f259
Slightly refactor the terminal initialization code for simplicity.
Karoly Lorentey <lorentey@elte.hu>
parents:
83358
diff
changeset
|
2127 (with-selected-frame frame |
85415
b1e285a2d293
(tty-create-frame-with-faces): Make sure not only
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85311
diff
changeset
|
2128 (unless (null term-file-prefix) |
83523
6ce7108f7eef
Don't load terminit files repeatedly. Also, don't call terminit functions more than once per terminal.
Karoly Lorentey <lorentey@elte.hu>
parents:
83513
diff
changeset
|
2129 (let* (term-init-func) |
6ce7108f7eef
Don't load terminit files repeatedly. Also, don't call terminit functions more than once per terminal.
Karoly Lorentey <lorentey@elte.hu>
parents:
83513
diff
changeset
|
2130 ;; First, load the terminal initialization file, if it is |
6ce7108f7eef
Don't load terminit files repeatedly. Also, don't call terminit functions more than once per terminal.
Karoly Lorentey <lorentey@elte.hu>
parents:
83513
diff
changeset
|
2131 ;; available and it hasn't been loaded already. |
6ce7108f7eef
Don't load terminit files repeatedly. Also, don't call terminit functions more than once per terminal.
Karoly Lorentey <lorentey@elte.hu>
parents:
83513
diff
changeset
|
2132 (tty-find-type #'(lambda (type) |
6ce7108f7eef
Don't load terminit files repeatedly. Also, don't call terminit functions more than once per terminal.
Karoly Lorentey <lorentey@elte.hu>
parents:
83513
diff
changeset
|
2133 (let ((file (locate-library (concat term-file-prefix type)))) |
6ce7108f7eef
Don't load terminit files repeatedly. Also, don't call terminit functions more than once per terminal.
Karoly Lorentey <lorentey@elte.hu>
parents:
83513
diff
changeset
|
2134 (and file |
6ce7108f7eef
Don't load terminit files repeatedly. Also, don't call terminit functions more than once per terminal.
Karoly Lorentey <lorentey@elte.hu>
parents:
83513
diff
changeset
|
2135 (or (assoc file load-history) |
6ce7108f7eef
Don't load terminit files repeatedly. Also, don't call terminit functions more than once per terminal.
Karoly Lorentey <lorentey@elte.hu>
parents:
83513
diff
changeset
|
2136 (load file t t))))) |
83524
673d62ad74b5
Fix and/or simplify terminal initialization files.
Karoly Lorentey <lorentey@elte.hu>
parents:
83523
diff
changeset
|
2137 type) |
83523
6ce7108f7eef
Don't load terminit files repeatedly. Also, don't call terminit functions more than once per terminal.
Karoly Lorentey <lorentey@elte.hu>
parents:
83513
diff
changeset
|
2138 ;; Next, try to find a matching initialization function, and call it. |
6ce7108f7eef
Don't load terminit files repeatedly. Also, don't call terminit functions more than once per terminal.
Karoly Lorentey <lorentey@elte.hu>
parents:
83513
diff
changeset
|
2139 (tty-find-type #'(lambda (type) |
6ce7108f7eef
Don't load terminit files repeatedly. Also, don't call terminit functions more than once per terminal.
Karoly Lorentey <lorentey@elte.hu>
parents:
83513
diff
changeset
|
2140 (fboundp (setq term-init-func |
6ce7108f7eef
Don't load terminit files repeatedly. Also, don't call terminit functions more than once per terminal.
Karoly Lorentey <lorentey@elte.hu>
parents:
83513
diff
changeset
|
2141 (intern (concat "terminal-init-" type))))) |
83524
673d62ad74b5
Fix and/or simplify terminal initialization files.
Karoly Lorentey <lorentey@elte.hu>
parents:
83523
diff
changeset
|
2142 type) |
83380
94f174e5569d
Merged from miles@gnu.org--gnu-2005 (patch 543)
Karoly Lorentey <lorentey@elte.hu>
parents:
83359
diff
changeset
|
2143 (when (fboundp term-init-func) |
83523
6ce7108f7eef
Don't load terminit files repeatedly. Also, don't call terminit functions more than once per terminal.
Karoly Lorentey <lorentey@elte.hu>
parents:
83513
diff
changeset
|
2144 (funcall term-init-func)) |
6ce7108f7eef
Don't load terminit files repeatedly. Also, don't call terminit functions more than once per terminal.
Karoly Lorentey <lorentey@elte.hu>
parents:
83513
diff
changeset
|
2145 (set-terminal-parameter frame 'terminal-initted term-init-func))))) |
25012 | 2146 |
2147 ;; Called from C function init_display to initialize faces of the | |
2148 ;; dumped terminal frame on startup. | |
2149 | |
2150 (defun tty-set-up-initial-frame-faces () | |
2151 (let ((frame (selected-frame))) | |
2152 (frame-set-background-mode frame) | |
2153 (face-set-after-frame-default frame))) | |
37943 | 2154 |
25012 | 2155 |
2156 | |
2157 | |
2158 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | |
105772
fd7169a87c28
Fix typos in comments.
Juanma Barranquero <lekktu@gmail.com>
parents:
105372
diff
changeset
|
2159 ;;; Compatibility with 20.2 |
25012 | 2160 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
2161 | |
2162 ;; Update a frame's faces when we change its default font. | |
2163 | |
55883
cde9d1fff89c
(frame-update-faces): Add empty docstring so the one for `ignore' doesn't
Juanma Barranquero <lekktu@gmail.com>
parents:
55545
diff
changeset
|
2164 (defalias 'frame-update-faces 'ignore "") |
46053
ef0684c3e07b
(frame-update-faces): Fix obsolescence declaration.
Juanma Barranquero <lekktu@gmail.com>
parents:
46041
diff
changeset
|
2165 (make-obsolete 'frame-update-faces "no longer necessary." "21.1") |
25012 | 2166 |
2167 ;; Update the colors of FACE, after FRAME's own colors have been | |
2168 ;; changed. | |
2169 | |
64539
c94d5f576885
(describe-face): "?\ " -> "?\s".
Juanma Barranquero <lekktu@gmail.com>
parents:
64497
diff
changeset
|
2170 (define-obsolete-function-alias 'frame-update-face-colors |
c94d5f576885
(describe-face): "?\ " -> "?\s".
Juanma Barranquero <lekktu@gmail.com>
parents:
64497
diff
changeset
|
2171 'frame-set-background-mode "21.1") |
25012 | 2172 |
2173 | |
2174 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | |
2175 ;;; Standard faces. | |
2176 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | |
2177 | |
2178 (defgroup basic-faces nil | |
2179 "The standard faces of Emacs." | |
2180 :group 'faces) | |
2181 | |
93694
a60642ce1ede
(default): Ensure the face-defface-spec property is set.
Chong Yidong <cyd@stupidchicken.com>
parents:
92948
diff
changeset
|
2182 (defface default |
a60642ce1ede
(default): Ensure the face-defface-spec property is set.
Chong Yidong <cyd@stupidchicken.com>
parents:
92948
diff
changeset
|
2183 '((t nil)) ; If this were nil, face-defface-spec would not be set. |
25012 | 2184 "Basic default face." |
2185 :group 'basic-faces) | |
2186 | |
65730
a9f7501916e6
Rearrange face definitions to be in the same order as
Juri Linkov <juri@jurta.org>
parents:
65289
diff
changeset
|
2187 (defface bold |
a9f7501916e6
Rearrange face definitions to be in the same order as
Juri Linkov <juri@jurta.org>
parents:
65289
diff
changeset
|
2188 '((t :weight bold)) |
a9f7501916e6
Rearrange face definitions to be in the same order as
Juri Linkov <juri@jurta.org>
parents:
65289
diff
changeset
|
2189 "Basic bold face." |
a9f7501916e6
Rearrange face definitions to be in the same order as
Juri Linkov <juri@jurta.org>
parents:
65289
diff
changeset
|
2190 :group 'basic-faces) |
a9f7501916e6
Rearrange face definitions to be in the same order as
Juri Linkov <juri@jurta.org>
parents:
65289
diff
changeset
|
2191 |
a9f7501916e6
Rearrange face definitions to be in the same order as
Juri Linkov <juri@jurta.org>
parents:
65289
diff
changeset
|
2192 (defface italic |
a9f7501916e6
Rearrange face definitions to be in the same order as
Juri Linkov <juri@jurta.org>
parents:
65289
diff
changeset
|
2193 '((((supports :slant italic)) |
a9f7501916e6
Rearrange face definitions to be in the same order as
Juri Linkov <juri@jurta.org>
parents:
65289
diff
changeset
|
2194 :slant italic) |
a9f7501916e6
Rearrange face definitions to be in the same order as
Juri Linkov <juri@jurta.org>
parents:
65289
diff
changeset
|
2195 (((supports :underline t)) |
a9f7501916e6
Rearrange face definitions to be in the same order as
Juri Linkov <juri@jurta.org>
parents:
65289
diff
changeset
|
2196 :underline t) |
a9f7501916e6
Rearrange face definitions to be in the same order as
Juri Linkov <juri@jurta.org>
parents:
65289
diff
changeset
|
2197 (t |
a9f7501916e6
Rearrange face definitions to be in the same order as
Juri Linkov <juri@jurta.org>
parents:
65289
diff
changeset
|
2198 ;; default to italic, even it doesn't appear to be supported, |
a9f7501916e6
Rearrange face definitions to be in the same order as
Juri Linkov <juri@jurta.org>
parents:
65289
diff
changeset
|
2199 ;; because in some cases the display engine will do it's own |
a9f7501916e6
Rearrange face definitions to be in the same order as
Juri Linkov <juri@jurta.org>
parents:
65289
diff
changeset
|
2200 ;; workaround (to `dim' on ttys) |
a9f7501916e6
Rearrange face definitions to be in the same order as
Juri Linkov <juri@jurta.org>
parents:
65289
diff
changeset
|
2201 :slant italic)) |
a9f7501916e6
Rearrange face definitions to be in the same order as
Juri Linkov <juri@jurta.org>
parents:
65289
diff
changeset
|
2202 "Basic italic face." |
a9f7501916e6
Rearrange face definitions to be in the same order as
Juri Linkov <juri@jurta.org>
parents:
65289
diff
changeset
|
2203 :group 'basic-faces) |
a9f7501916e6
Rearrange face definitions to be in the same order as
Juri Linkov <juri@jurta.org>
parents:
65289
diff
changeset
|
2204 |
a9f7501916e6
Rearrange face definitions to be in the same order as
Juri Linkov <juri@jurta.org>
parents:
65289
diff
changeset
|
2205 (defface bold-italic |
a9f7501916e6
Rearrange face definitions to be in the same order as
Juri Linkov <juri@jurta.org>
parents:
65289
diff
changeset
|
2206 '((t :weight bold :slant italic)) |
a9f7501916e6
Rearrange face definitions to be in the same order as
Juri Linkov <juri@jurta.org>
parents:
65289
diff
changeset
|
2207 "Basic bold-italic face." |
a9f7501916e6
Rearrange face definitions to be in the same order as
Juri Linkov <juri@jurta.org>
parents:
65289
diff
changeset
|
2208 :group 'basic-faces) |
a9f7501916e6
Rearrange face definitions to be in the same order as
Juri Linkov <juri@jurta.org>
parents:
65289
diff
changeset
|
2209 |
a9f7501916e6
Rearrange face definitions to be in the same order as
Juri Linkov <juri@jurta.org>
parents:
65289
diff
changeset
|
2210 (defface underline |
a9f7501916e6
Rearrange face definitions to be in the same order as
Juri Linkov <juri@jurta.org>
parents:
65289
diff
changeset
|
2211 '((((supports :underline t)) |
a9f7501916e6
Rearrange face definitions to be in the same order as
Juri Linkov <juri@jurta.org>
parents:
65289
diff
changeset
|
2212 :underline t) |
a9f7501916e6
Rearrange face definitions to be in the same order as
Juri Linkov <juri@jurta.org>
parents:
65289
diff
changeset
|
2213 (((supports :weight bold)) |
a9f7501916e6
Rearrange face definitions to be in the same order as
Juri Linkov <juri@jurta.org>
parents:
65289
diff
changeset
|
2214 :weight bold) |
a9f7501916e6
Rearrange face definitions to be in the same order as
Juri Linkov <juri@jurta.org>
parents:
65289
diff
changeset
|
2215 (t :underline t)) |
a9f7501916e6
Rearrange face definitions to be in the same order as
Juri Linkov <juri@jurta.org>
parents:
65289
diff
changeset
|
2216 "Basic underlined face." |
a9f7501916e6
Rearrange face definitions to be in the same order as
Juri Linkov <juri@jurta.org>
parents:
65289
diff
changeset
|
2217 :group 'basic-faces) |
a9f7501916e6
Rearrange face definitions to be in the same order as
Juri Linkov <juri@jurta.org>
parents:
65289
diff
changeset
|
2218 |
a9f7501916e6
Rearrange face definitions to be in the same order as
Juri Linkov <juri@jurta.org>
parents:
65289
diff
changeset
|
2219 (defface fixed-pitch |
96169
abc9f7184a8c
(fixed-pitch): Use "Monospace" family.
Chong Yidong <cyd@stupidchicken.com>
parents:
96079
diff
changeset
|
2220 '((t :family "Monospace")) |
65730
a9f7501916e6
Rearrange face definitions to be in the same order as
Juri Linkov <juri@jurta.org>
parents:
65289
diff
changeset
|
2221 "The basic fixed-pitch face." |
a9f7501916e6
Rearrange face definitions to be in the same order as
Juri Linkov <juri@jurta.org>
parents:
65289
diff
changeset
|
2222 :group 'basic-faces) |
a9f7501916e6
Rearrange face definitions to be in the same order as
Juri Linkov <juri@jurta.org>
parents:
65289
diff
changeset
|
2223 |
a9f7501916e6
Rearrange face definitions to be in the same order as
Juri Linkov <juri@jurta.org>
parents:
65289
diff
changeset
|
2224 (defface variable-pitch |
96247
002173686f70
(face-font-family-alternatives, variable-pitch): Use
Andreas Schwab <schwab@suse.de>
parents:
96241
diff
changeset
|
2225 '((t :family "Sans Serif")) |
65730
a9f7501916e6
Rearrange face definitions to be in the same order as
Juri Linkov <juri@jurta.org>
parents:
65289
diff
changeset
|
2226 "The basic variable-pitch face." |
a9f7501916e6
Rearrange face definitions to be in the same order as
Juri Linkov <juri@jurta.org>
parents:
65289
diff
changeset
|
2227 :group 'basic-faces) |
a9f7501916e6
Rearrange face definitions to be in the same order as
Juri Linkov <juri@jurta.org>
parents:
65289
diff
changeset
|
2228 |
a9f7501916e6
Rearrange face definitions to be in the same order as
Juri Linkov <juri@jurta.org>
parents:
65289
diff
changeset
|
2229 (defface shadow |
a9f7501916e6
Rearrange face definitions to be in the same order as
Juri Linkov <juri@jurta.org>
parents:
65289
diff
changeset
|
2230 '((((class color grayscale) (min-colors 88) (background light)) |
a9f7501916e6
Rearrange face definitions to be in the same order as
Juri Linkov <juri@jurta.org>
parents:
65289
diff
changeset
|
2231 :foreground "grey50") |
a9f7501916e6
Rearrange face definitions to be in the same order as
Juri Linkov <juri@jurta.org>
parents:
65289
diff
changeset
|
2232 (((class color grayscale) (min-colors 88) (background dark)) |
a9f7501916e6
Rearrange face definitions to be in the same order as
Juri Linkov <juri@jurta.org>
parents:
65289
diff
changeset
|
2233 :foreground "grey70") |
a9f7501916e6
Rearrange face definitions to be in the same order as
Juri Linkov <juri@jurta.org>
parents:
65289
diff
changeset
|
2234 (((class color) (min-colors 8) (background light)) |
a9f7501916e6
Rearrange face definitions to be in the same order as
Juri Linkov <juri@jurta.org>
parents:
65289
diff
changeset
|
2235 :foreground "green") |
a9f7501916e6
Rearrange face definitions to be in the same order as
Juri Linkov <juri@jurta.org>
parents:
65289
diff
changeset
|
2236 (((class color) (min-colors 8) (background dark)) |
a9f7501916e6
Rearrange face definitions to be in the same order as
Juri Linkov <juri@jurta.org>
parents:
65289
diff
changeset
|
2237 :foreground "yellow")) |
a9f7501916e6
Rearrange face definitions to be in the same order as
Juri Linkov <juri@jurta.org>
parents:
65289
diff
changeset
|
2238 "Basic face for shadowed text." |
a9f7501916e6
Rearrange face definitions to be in the same order as
Juri Linkov <juri@jurta.org>
parents:
65289
diff
changeset
|
2239 :group 'basic-faces |
a9f7501916e6
Rearrange face definitions to be in the same order as
Juri Linkov <juri@jurta.org>
parents:
65289
diff
changeset
|
2240 :version "22.1") |
a9f7501916e6
Rearrange face definitions to be in the same order as
Juri Linkov <juri@jurta.org>
parents:
65289
diff
changeset
|
2241 |
68341
acccd9689759
(link, link-visited): New faces based on default values
Juri Linkov <juri@jurta.org>
parents:
68214
diff
changeset
|
2242 (defface link |
acccd9689759
(link, link-visited): New faces based on default values
Juri Linkov <juri@jurta.org>
parents:
68214
diff
changeset
|
2243 '((((class color) (min-colors 88) (background light)) |
acccd9689759
(link, link-visited): New faces based on default values
Juri Linkov <juri@jurta.org>
parents:
68214
diff
changeset
|
2244 :foreground "blue1" :underline t) |
acccd9689759
(link, link-visited): New faces based on default values
Juri Linkov <juri@jurta.org>
parents:
68214
diff
changeset
|
2245 (((class color) (background light)) |
acccd9689759
(link, link-visited): New faces based on default values
Juri Linkov <juri@jurta.org>
parents:
68214
diff
changeset
|
2246 :foreground "blue" :underline t) |
acccd9689759
(link, link-visited): New faces based on default values
Juri Linkov <juri@jurta.org>
parents:
68214
diff
changeset
|
2247 (((class color) (min-colors 88) (background dark)) |
acccd9689759
(link, link-visited): New faces based on default values
Juri Linkov <juri@jurta.org>
parents:
68214
diff
changeset
|
2248 :foreground "cyan1" :underline t) |
acccd9689759
(link, link-visited): New faces based on default values
Juri Linkov <juri@jurta.org>
parents:
68214
diff
changeset
|
2249 (((class color) (background dark)) |
acccd9689759
(link, link-visited): New faces based on default values
Juri Linkov <juri@jurta.org>
parents:
68214
diff
changeset
|
2250 :foreground "cyan" :underline t) |
acccd9689759
(link, link-visited): New faces based on default values
Juri Linkov <juri@jurta.org>
parents:
68214
diff
changeset
|
2251 (t :inherit underline)) |
acccd9689759
(link, link-visited): New faces based on default values
Juri Linkov <juri@jurta.org>
parents:
68214
diff
changeset
|
2252 "Basic face for unvisited links." |
acccd9689759
(link, link-visited): New faces based on default values
Juri Linkov <juri@jurta.org>
parents:
68214
diff
changeset
|
2253 :group 'basic-faces |
acccd9689759
(link, link-visited): New faces based on default values
Juri Linkov <juri@jurta.org>
parents:
68214
diff
changeset
|
2254 :version "22.1") |
acccd9689759
(link, link-visited): New faces based on default values
Juri Linkov <juri@jurta.org>
parents:
68214
diff
changeset
|
2255 |
acccd9689759
(link, link-visited): New faces based on default values
Juri Linkov <juri@jurta.org>
parents:
68214
diff
changeset
|
2256 (defface link-visited |
acccd9689759
(link, link-visited): New faces based on default values
Juri Linkov <juri@jurta.org>
parents:
68214
diff
changeset
|
2257 '((default :inherit link) |
acccd9689759
(link, link-visited): New faces based on default values
Juri Linkov <juri@jurta.org>
parents:
68214
diff
changeset
|
2258 (((class color) (background light)) :foreground "magenta4") |
acccd9689759
(link, link-visited): New faces based on default values
Juri Linkov <juri@jurta.org>
parents:
68214
diff
changeset
|
2259 (((class color) (background dark)) :foreground "violet")) |
acccd9689759
(link, link-visited): New faces based on default values
Juri Linkov <juri@jurta.org>
parents:
68214
diff
changeset
|
2260 "Basic face for visited links." |
acccd9689759
(link, link-visited): New faces based on default values
Juri Linkov <juri@jurta.org>
parents:
68214
diff
changeset
|
2261 :group 'basic-faces |
acccd9689759
(link, link-visited): New faces based on default values
Juri Linkov <juri@jurta.org>
parents:
68214
diff
changeset
|
2262 :version "22.1") |
acccd9689759
(link, link-visited): New faces based on default values
Juri Linkov <juri@jurta.org>
parents:
68214
diff
changeset
|
2263 |
65730
a9f7501916e6
Rearrange face definitions to be in the same order as
Juri Linkov <juri@jurta.org>
parents:
65289
diff
changeset
|
2264 (defface highlight |
a9f7501916e6
Rearrange face definitions to be in the same order as
Juri Linkov <juri@jurta.org>
parents:
65289
diff
changeset
|
2265 '((((class color) (min-colors 88) (background light)) |
a9f7501916e6
Rearrange face definitions to be in the same order as
Juri Linkov <juri@jurta.org>
parents:
65289
diff
changeset
|
2266 :background "darkseagreen2") |
a9f7501916e6
Rearrange face definitions to be in the same order as
Juri Linkov <juri@jurta.org>
parents:
65289
diff
changeset
|
2267 (((class color) (min-colors 88) (background dark)) |
a9f7501916e6
Rearrange face definitions to be in the same order as
Juri Linkov <juri@jurta.org>
parents:
65289
diff
changeset
|
2268 :background "darkolivegreen") |
a9f7501916e6
Rearrange face definitions to be in the same order as
Juri Linkov <juri@jurta.org>
parents:
65289
diff
changeset
|
2269 (((class color) (min-colors 16) (background light)) |
a9f7501916e6
Rearrange face definitions to be in the same order as
Juri Linkov <juri@jurta.org>
parents:
65289
diff
changeset
|
2270 :background "darkseagreen2") |
a9f7501916e6
Rearrange face definitions to be in the same order as
Juri Linkov <juri@jurta.org>
parents:
65289
diff
changeset
|
2271 (((class color) (min-colors 16) (background dark)) |
a9f7501916e6
Rearrange face definitions to be in the same order as
Juri Linkov <juri@jurta.org>
parents:
65289
diff
changeset
|
2272 :background "darkolivegreen") |
a9f7501916e6
Rearrange face definitions to be in the same order as
Juri Linkov <juri@jurta.org>
parents:
65289
diff
changeset
|
2273 (((class color) (min-colors 8)) |
a9f7501916e6
Rearrange face definitions to be in the same order as
Juri Linkov <juri@jurta.org>
parents:
65289
diff
changeset
|
2274 :background "green" :foreground "black") |
a9f7501916e6
Rearrange face definitions to be in the same order as
Juri Linkov <juri@jurta.org>
parents:
65289
diff
changeset
|
2275 (t :inverse-video t)) |
a9f7501916e6
Rearrange face definitions to be in the same order as
Juri Linkov <juri@jurta.org>
parents:
65289
diff
changeset
|
2276 "Basic face for highlighting." |
a9f7501916e6
Rearrange face definitions to be in the same order as
Juri Linkov <juri@jurta.org>
parents:
65289
diff
changeset
|
2277 :group 'basic-faces) |
a9f7501916e6
Rearrange face definitions to be in the same order as
Juri Linkov <juri@jurta.org>
parents:
65289
diff
changeset
|
2278 |
105230
465e0665ef80
Default light-background background for region face to ns_selection_color under NS.
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
104790
diff
changeset
|
2279 ;; Region face: under NS, default to the system-defined selection |
465e0665ef80
Default light-background background for region face to ns_selection_color under NS.
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
104790
diff
changeset
|
2280 ;; color (optimized for the fixed white background of other apps), |
465e0665ef80
Default light-background background for region face to ns_selection_color under NS.
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
104790
diff
changeset
|
2281 ;; if background is light. |
65730
a9f7501916e6
Rearrange face definitions to be in the same order as
Juri Linkov <juri@jurta.org>
parents:
65289
diff
changeset
|
2282 (defface region |
a9f7501916e6
Rearrange face definitions to be in the same order as
Juri Linkov <juri@jurta.org>
parents:
65289
diff
changeset
|
2283 '((((class color) (min-colors 88) (background dark)) |
a9f7501916e6
Rearrange face definitions to be in the same order as
Juri Linkov <juri@jurta.org>
parents:
65289
diff
changeset
|
2284 :background "blue3") |
109749
be18c3b67d66
Take colors for region face (selected text) from the Gtk+ theme.
Jan D <jan.h.d@swipnet.se>
parents:
109598
diff
changeset
|
2285 (((class color) (min-colors 88) (background light) (type gtk)) |
be18c3b67d66
Take colors for region face (selected text) from the Gtk+ theme.
Jan D <jan.h.d@swipnet.se>
parents:
109598
diff
changeset
|
2286 :foreground "gtk_selection_fg_color" |
be18c3b67d66
Take colors for region face (selected text) from the Gtk+ theme.
Jan D <jan.h.d@swipnet.se>
parents:
109598
diff
changeset
|
2287 :background "gtk_selection_bg_color") |
105230
465e0665ef80
Default light-background background for region face to ns_selection_color under NS.
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
104790
diff
changeset
|
2288 (((class color) (min-colors 88) (background light) (type ns)) |
465e0665ef80
Default light-background background for region face to ns_selection_color under NS.
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
104790
diff
changeset
|
2289 :background "ns_selection_color") |
65730
a9f7501916e6
Rearrange face definitions to be in the same order as
Juri Linkov <juri@jurta.org>
parents:
65289
diff
changeset
|
2290 (((class color) (min-colors 88) (background light)) |
a9f7501916e6
Rearrange face definitions to be in the same order as
Juri Linkov <juri@jurta.org>
parents:
65289
diff
changeset
|
2291 :background "lightgoldenrod2") |
a9f7501916e6
Rearrange face definitions to be in the same order as
Juri Linkov <juri@jurta.org>
parents:
65289
diff
changeset
|
2292 (((class color) (min-colors 16) (background dark)) |
a9f7501916e6
Rearrange face definitions to be in the same order as
Juri Linkov <juri@jurta.org>
parents:
65289
diff
changeset
|
2293 :background "blue3") |
a9f7501916e6
Rearrange face definitions to be in the same order as
Juri Linkov <juri@jurta.org>
parents:
65289
diff
changeset
|
2294 (((class color) (min-colors 16) (background light)) |
a9f7501916e6
Rearrange face definitions to be in the same order as
Juri Linkov <juri@jurta.org>
parents:
65289
diff
changeset
|
2295 :background "lightgoldenrod2") |
a9f7501916e6
Rearrange face definitions to be in the same order as
Juri Linkov <juri@jurta.org>
parents:
65289
diff
changeset
|
2296 (((class color) (min-colors 8)) |
a9f7501916e6
Rearrange face definitions to be in the same order as
Juri Linkov <juri@jurta.org>
parents:
65289
diff
changeset
|
2297 :background "blue" :foreground "white") |
a9f7501916e6
Rearrange face definitions to be in the same order as
Juri Linkov <juri@jurta.org>
parents:
65289
diff
changeset
|
2298 (((type tty) (class mono)) |
a9f7501916e6
Rearrange face definitions to be in the same order as
Juri Linkov <juri@jurta.org>
parents:
65289
diff
changeset
|
2299 :inverse-video t) |
a9f7501916e6
Rearrange face definitions to be in the same order as
Juri Linkov <juri@jurta.org>
parents:
65289
diff
changeset
|
2300 (t :background "gray")) |
a9f7501916e6
Rearrange face definitions to be in the same order as
Juri Linkov <juri@jurta.org>
parents:
65289
diff
changeset
|
2301 "Basic face for highlighting the region." |
a9f7501916e6
Rearrange face definitions to be in the same order as
Juri Linkov <juri@jurta.org>
parents:
65289
diff
changeset
|
2302 :version "21.1" |
a9f7501916e6
Rearrange face definitions to be in the same order as
Juri Linkov <juri@jurta.org>
parents:
65289
diff
changeset
|
2303 :group 'basic-faces) |
a9f7501916e6
Rearrange face definitions to be in the same order as
Juri Linkov <juri@jurta.org>
parents:
65289
diff
changeset
|
2304 |
a9f7501916e6
Rearrange face definitions to be in the same order as
Juri Linkov <juri@jurta.org>
parents:
65289
diff
changeset
|
2305 (defface secondary-selection |
a9f7501916e6
Rearrange face definitions to be in the same order as
Juri Linkov <juri@jurta.org>
parents:
65289
diff
changeset
|
2306 '((((class color) (min-colors 88) (background light)) |
a9f7501916e6
Rearrange face definitions to be in the same order as
Juri Linkov <juri@jurta.org>
parents:
65289
diff
changeset
|
2307 :background "yellow1") |
a9f7501916e6
Rearrange face definitions to be in the same order as
Juri Linkov <juri@jurta.org>
parents:
65289
diff
changeset
|
2308 (((class color) (min-colors 88) (background dark)) |
a9f7501916e6
Rearrange face definitions to be in the same order as
Juri Linkov <juri@jurta.org>
parents:
65289
diff
changeset
|
2309 :background "SkyBlue4") |
a9f7501916e6
Rearrange face definitions to be in the same order as
Juri Linkov <juri@jurta.org>
parents:
65289
diff
changeset
|
2310 (((class color) (min-colors 16) (background light)) |
a9f7501916e6
Rearrange face definitions to be in the same order as
Juri Linkov <juri@jurta.org>
parents:
65289
diff
changeset
|
2311 :background "yellow") |
a9f7501916e6
Rearrange face definitions to be in the same order as
Juri Linkov <juri@jurta.org>
parents:
65289
diff
changeset
|
2312 (((class color) (min-colors 16) (background dark)) |
a9f7501916e6
Rearrange face definitions to be in the same order as
Juri Linkov <juri@jurta.org>
parents:
65289
diff
changeset
|
2313 :background "SkyBlue4") |
a9f7501916e6
Rearrange face definitions to be in the same order as
Juri Linkov <juri@jurta.org>
parents:
65289
diff
changeset
|
2314 (((class color) (min-colors 8)) |
a9f7501916e6
Rearrange face definitions to be in the same order as
Juri Linkov <juri@jurta.org>
parents:
65289
diff
changeset
|
2315 :background "cyan" :foreground "black") |
a9f7501916e6
Rearrange face definitions to be in the same order as
Juri Linkov <juri@jurta.org>
parents:
65289
diff
changeset
|
2316 (t :inverse-video t)) |
a9f7501916e6
Rearrange face definitions to be in the same order as
Juri Linkov <juri@jurta.org>
parents:
65289
diff
changeset
|
2317 "Basic face for displaying the secondary selection." |
a9f7501916e6
Rearrange face definitions to be in the same order as
Juri Linkov <juri@jurta.org>
parents:
65289
diff
changeset
|
2318 :group 'basic-faces) |
a9f7501916e6
Rearrange face definitions to be in the same order as
Juri Linkov <juri@jurta.org>
parents:
65289
diff
changeset
|
2319 |
a9f7501916e6
Rearrange face definitions to be in the same order as
Juri Linkov <juri@jurta.org>
parents:
65289
diff
changeset
|
2320 (defface trailing-whitespace |
a9f7501916e6
Rearrange face definitions to be in the same order as
Juri Linkov <juri@jurta.org>
parents:
65289
diff
changeset
|
2321 '((((class color) (background light)) |
a9f7501916e6
Rearrange face definitions to be in the same order as
Juri Linkov <juri@jurta.org>
parents:
65289
diff
changeset
|
2322 :background "red1") |
a9f7501916e6
Rearrange face definitions to be in the same order as
Juri Linkov <juri@jurta.org>
parents:
65289
diff
changeset
|
2323 (((class color) (background dark)) |
a9f7501916e6
Rearrange face definitions to be in the same order as
Juri Linkov <juri@jurta.org>
parents:
65289
diff
changeset
|
2324 :background "red1") |
a9f7501916e6
Rearrange face definitions to be in the same order as
Juri Linkov <juri@jurta.org>
parents:
65289
diff
changeset
|
2325 (t :inverse-video t)) |
a9f7501916e6
Rearrange face definitions to be in the same order as
Juri Linkov <juri@jurta.org>
parents:
65289
diff
changeset
|
2326 "Basic face for highlighting trailing whitespace." |
a9f7501916e6
Rearrange face definitions to be in the same order as
Juri Linkov <juri@jurta.org>
parents:
65289
diff
changeset
|
2327 :version "21.1" |
67503
71e68cea180c
(frame-background-mode): Replace `choice-item' keywords
Juri Linkov <juri@jurta.org>
parents:
67049
diff
changeset
|
2328 :group 'whitespace-faces ; like `show-trailing-whitespace' |
65730
a9f7501916e6
Rearrange face definitions to be in the same order as
Juri Linkov <juri@jurta.org>
parents:
65289
diff
changeset
|
2329 :group 'basic-faces) |
a9f7501916e6
Rearrange face definitions to be in the same order as
Juri Linkov <juri@jurta.org>
parents:
65289
diff
changeset
|
2330 |
a9f7501916e6
Rearrange face definitions to be in the same order as
Juri Linkov <juri@jurta.org>
parents:
65289
diff
changeset
|
2331 (defface escape-glyph |
a9f7501916e6
Rearrange face definitions to be in the same order as
Juri Linkov <juri@jurta.org>
parents:
65289
diff
changeset
|
2332 '((((background dark)) :foreground "cyan") |
a9f7501916e6
Rearrange face definitions to be in the same order as
Juri Linkov <juri@jurta.org>
parents:
65289
diff
changeset
|
2333 ;; See the comment in minibuffer-prompt for |
a9f7501916e6
Rearrange face definitions to be in the same order as
Juri Linkov <juri@jurta.org>
parents:
65289
diff
changeset
|
2334 ;; the reason not to use blue on MS-DOS. |
a9f7501916e6
Rearrange face definitions to be in the same order as
Juri Linkov <juri@jurta.org>
parents:
65289
diff
changeset
|
2335 (((type pc)) :foreground "magenta") |
a9f7501916e6
Rearrange face definitions to be in the same order as
Juri Linkov <juri@jurta.org>
parents:
65289
diff
changeset
|
2336 ;; red4 is too dark, but some say blue is too loud. |
a9f7501916e6
Rearrange face definitions to be in the same order as
Juri Linkov <juri@jurta.org>
parents:
65289
diff
changeset
|
2337 ;; brown seems to work ok. -- rms. |
a9f7501916e6
Rearrange face definitions to be in the same order as
Juri Linkov <juri@jurta.org>
parents:
65289
diff
changeset
|
2338 (t :foreground "brown")) |
72280
67323a6ea60e
(escape-glyph): Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
71591
diff
changeset
|
2339 "Face for characters displayed as sequences using `^' or `\\'." |
65730
a9f7501916e6
Rearrange face definitions to be in the same order as
Juri Linkov <juri@jurta.org>
parents:
65289
diff
changeset
|
2340 :group 'basic-faces |
a9f7501916e6
Rearrange face definitions to be in the same order as
Juri Linkov <juri@jurta.org>
parents:
65289
diff
changeset
|
2341 :version "22.1") |
a9f7501916e6
Rearrange face definitions to be in the same order as
Juri Linkov <juri@jurta.org>
parents:
65289
diff
changeset
|
2342 |
a9f7501916e6
Rearrange face definitions to be in the same order as
Juri Linkov <juri@jurta.org>
parents:
65289
diff
changeset
|
2343 (defface nobreak-space |
a9f7501916e6
Rearrange face definitions to be in the same order as
Juri Linkov <juri@jurta.org>
parents:
65289
diff
changeset
|
2344 '((((class color) (min-colors 88)) :inherit escape-glyph :underline t) |
a9f7501916e6
Rearrange face definitions to be in the same order as
Juri Linkov <juri@jurta.org>
parents:
65289
diff
changeset
|
2345 (((class color) (min-colors 8)) :background "magenta") |
a9f7501916e6
Rearrange face definitions to be in the same order as
Juri Linkov <juri@jurta.org>
parents:
65289
diff
changeset
|
2346 (t :inverse-video t)) |
a9f7501916e6
Rearrange face definitions to be in the same order as
Juri Linkov <juri@jurta.org>
parents:
65289
diff
changeset
|
2347 "Face for displaying nobreak space." |
a9f7501916e6
Rearrange face definitions to be in the same order as
Juri Linkov <juri@jurta.org>
parents:
65289
diff
changeset
|
2348 :group 'basic-faces |
a9f7501916e6
Rearrange face definitions to be in the same order as
Juri Linkov <juri@jurta.org>
parents:
65289
diff
changeset
|
2349 :version "22.1") |
25012 | 2350 |
68214
7943b5aaa49d
(mode-line-faces): New defgroup.
Juri Linkov <juri@jurta.org>
parents:
67503
diff
changeset
|
2351 (defgroup mode-line-faces nil |
7943b5aaa49d
(mode-line-faces): New defgroup.
Juri Linkov <juri@jurta.org>
parents:
67503
diff
changeset
|
2352 "Faces used in the mode line." |
72879
3931d05c811a
(mode-line-faces): Group mode-line instead of modeline.
Richard M. Stallman <rms@gnu.org>
parents:
72280
diff
changeset
|
2353 :group 'mode-line |
68214
7943b5aaa49d
(mode-line-faces): New defgroup.
Juri Linkov <juri@jurta.org>
parents:
67503
diff
changeset
|
2354 :group 'faces |
7943b5aaa49d
(mode-line-faces): New defgroup.
Juri Linkov <juri@jurta.org>
parents:
67503
diff
changeset
|
2355 :version "22.1") |
7943b5aaa49d
(mode-line-faces): New defgroup.
Juri Linkov <juri@jurta.org>
parents:
67503
diff
changeset
|
2356 |
25650
8b06b47a1fea
(mode-line): Replaces `modeline'.
Gerd Moellmann <gerd@gnu.org>
parents:
25616
diff
changeset
|
2357 (defface mode-line |
59077
294a7f7e3daf
(mode-line, mode-line-inactive): Use min-colors.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
59054
diff
changeset
|
2358 '((((class color) (min-colors 88)) |
43711
d15360503e4e
(face-spec-choose): Allow `t' to appear before the end.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
43550
diff
changeset
|
2359 :box (:line-width -1 :style released-button) |
d15360503e4e
(face-spec-choose): Allow `t' to appear before the end.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
43550
diff
changeset
|
2360 :background "grey75" :foreground "black") |
25012 | 2361 (t |
43711
d15360503e4e
(face-spec-choose): Allow `t' to appear before the end.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
43550
diff
changeset
|
2362 :inverse-video t)) |
43204
1b0f33edf842
(mode-line-inactive): New face for mode-line for
Kim F. Storm <storm@cua.dk>
parents:
42969
diff
changeset
|
2363 "Basic mode line face for selected window." |
25687
afad62240679
(mode-line, header-line, tool-bar, ): Add :version.
Dave Love <fx@gnu.org>
parents:
25650
diff
changeset
|
2364 :version "21.1" |
68214
7943b5aaa49d
(mode-line-faces): New defgroup.
Juri Linkov <juri@jurta.org>
parents:
67503
diff
changeset
|
2365 :group 'mode-line-faces |
25012 | 2366 :group 'basic-faces) |
104790
f8b01ad24693
(modeline, modeline-inactive, modeline-highlight, modeline-buffer-id):
Glenn Morris <rgm@gnu.org>
parents:
104752
diff
changeset
|
2367 ;; No need to define aliases of this form for new faces. |
f8b01ad24693
(modeline, modeline-inactive, modeline-highlight, modeline-buffer-id):
Glenn Morris <rgm@gnu.org>
parents:
104752
diff
changeset
|
2368 (define-obsolete-face-alias 'modeline 'mode-line "21.1") |
25012 | 2369 |
43204
1b0f33edf842
(mode-line-inactive): New face for mode-line for
Kim F. Storm <storm@cua.dk>
parents:
42969
diff
changeset
|
2370 (defface mode-line-inactive |
58935
95bb6b9a27a3
(header-line, mode-line-inactive, tool-bar):
Richard M. Stallman <rms@gnu.org>
parents:
58851
diff
changeset
|
2371 '((default |
43711
d15360503e4e
(face-spec-choose): Allow `t' to appear before the end.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
43550
diff
changeset
|
2372 :inherit mode-line) |
59077
294a7f7e3daf
(mode-line, mode-line-inactive): Use min-colors.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
59054
diff
changeset
|
2373 (((class color) (min-colors 88) (background light)) |
43204
1b0f33edf842
(mode-line-inactive): New face for mode-line for
Kim F. Storm <storm@cua.dk>
parents:
42969
diff
changeset
|
2374 :weight light |
1b0f33edf842
(mode-line-inactive): New face for mode-line for
Kim F. Storm <storm@cua.dk>
parents:
42969
diff
changeset
|
2375 :box (:line-width -1 :color "grey75" :style nil) |
1b0f33edf842
(mode-line-inactive): New face for mode-line for
Kim F. Storm <storm@cua.dk>
parents:
42969
diff
changeset
|
2376 :foreground "grey20" :background "grey90") |
59077
294a7f7e3daf
(mode-line, mode-line-inactive): Use min-colors.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
59054
diff
changeset
|
2377 (((class color) (min-colors 88) (background dark) ) |
43247
4c5a2e2ddf43
(mode-line-inactive): Add dark-background variant.
Miles Bader <miles@gnu.org>
parents:
43204
diff
changeset
|
2378 :weight light |
4c5a2e2ddf43
(mode-line-inactive): Add dark-background variant.
Miles Bader <miles@gnu.org>
parents:
43204
diff
changeset
|
2379 :box (:line-width -1 :color "grey40" :style nil) |
43711
d15360503e4e
(face-spec-choose): Allow `t' to appear before the end.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
43550
diff
changeset
|
2380 :foreground "grey80" :background "grey30")) |
43204
1b0f33edf842
(mode-line-inactive): New face for mode-line for
Kim F. Storm <storm@cua.dk>
parents:
42969
diff
changeset
|
2381 "Basic mode line face for non-selected windows." |
59996
aac0a33f5772
Change release version from 21.4 to 22.1 throughout.
Kim F. Storm <storm@cua.dk>
parents:
59872
diff
changeset
|
2382 :version "22.1" |
68214
7943b5aaa49d
(mode-line-faces): New defgroup.
Juri Linkov <juri@jurta.org>
parents:
67503
diff
changeset
|
2383 :group 'mode-line-faces |
7943b5aaa49d
(mode-line-faces): New defgroup.
Juri Linkov <juri@jurta.org>
parents:
67503
diff
changeset
|
2384 :group 'basic-faces) |
104790
f8b01ad24693
(modeline, modeline-inactive, modeline-highlight, modeline-buffer-id):
Glenn Morris <rgm@gnu.org>
parents:
104752
diff
changeset
|
2385 (define-obsolete-face-alias 'modeline-inactive 'mode-line-inactive "22.1") |
68214
7943b5aaa49d
(mode-line-faces): New defgroup.
Juri Linkov <juri@jurta.org>
parents:
67503
diff
changeset
|
2386 |
7943b5aaa49d
(mode-line-faces): New defgroup.
Juri Linkov <juri@jurta.org>
parents:
67503
diff
changeset
|
2387 (defface mode-line-highlight |
7943b5aaa49d
(mode-line-faces): New defgroup.
Juri Linkov <juri@jurta.org>
parents:
67503
diff
changeset
|
2388 '((((class color) (min-colors 88)) |
7943b5aaa49d
(mode-line-faces): New defgroup.
Juri Linkov <juri@jurta.org>
parents:
67503
diff
changeset
|
2389 :box (:line-width 2 :color "grey40" :style released-button)) |
7943b5aaa49d
(mode-line-faces): New defgroup.
Juri Linkov <juri@jurta.org>
parents:
67503
diff
changeset
|
2390 (t |
7943b5aaa49d
(mode-line-faces): New defgroup.
Juri Linkov <juri@jurta.org>
parents:
67503
diff
changeset
|
2391 :inherit highlight)) |
7943b5aaa49d
(mode-line-faces): New defgroup.
Juri Linkov <juri@jurta.org>
parents:
67503
diff
changeset
|
2392 "Basic mode line face for highlighting." |
7943b5aaa49d
(mode-line-faces): New defgroup.
Juri Linkov <juri@jurta.org>
parents:
67503
diff
changeset
|
2393 :version "22.1" |
7943b5aaa49d
(mode-line-faces): New defgroup.
Juri Linkov <juri@jurta.org>
parents:
67503
diff
changeset
|
2394 :group 'mode-line-faces |
7943b5aaa49d
(mode-line-faces): New defgroup.
Juri Linkov <juri@jurta.org>
parents:
67503
diff
changeset
|
2395 :group 'basic-faces) |
104790
f8b01ad24693
(modeline, modeline-inactive, modeline-highlight, modeline-buffer-id):
Glenn Morris <rgm@gnu.org>
parents:
104752
diff
changeset
|
2396 (define-obsolete-face-alias 'modeline-highlight 'mode-line-highlight "22.1") |
68214
7943b5aaa49d
(mode-line-faces): New defgroup.
Juri Linkov <juri@jurta.org>
parents:
67503
diff
changeset
|
2397 |
92717
fec088bf4a02
(mode-line-emphasis): New face.
Glenn Morris <rgm@gnu.org>
parents:
92446
diff
changeset
|
2398 (defface mode-line-emphasis |
fec088bf4a02
(mode-line-emphasis): New face.
Glenn Morris <rgm@gnu.org>
parents:
92446
diff
changeset
|
2399 '((t (:weight bold))) |
fec088bf4a02
(mode-line-emphasis): New face.
Glenn Morris <rgm@gnu.org>
parents:
92446
diff
changeset
|
2400 "Face used to emphasize certain mode line features. |
fec088bf4a02
(mode-line-emphasis): New face.
Glenn Morris <rgm@gnu.org>
parents:
92446
diff
changeset
|
2401 Use the face `mode-line-highlight' for features that can be selected." |
fec088bf4a02
(mode-line-emphasis): New face.
Glenn Morris <rgm@gnu.org>
parents:
92446
diff
changeset
|
2402 :version "23.1" |
fec088bf4a02
(mode-line-emphasis): New face.
Glenn Morris <rgm@gnu.org>
parents:
92446
diff
changeset
|
2403 :group 'mode-line-faces |
fec088bf4a02
(mode-line-emphasis): New face.
Glenn Morris <rgm@gnu.org>
parents:
92446
diff
changeset
|
2404 :group 'basic-faces) |
fec088bf4a02
(mode-line-emphasis): New face.
Glenn Morris <rgm@gnu.org>
parents:
92446
diff
changeset
|
2405 |
68214
7943b5aaa49d
(mode-line-faces): New defgroup.
Juri Linkov <juri@jurta.org>
parents:
67503
diff
changeset
|
2406 (defface mode-line-buffer-id |
7943b5aaa49d
(mode-line-faces): New defgroup.
Juri Linkov <juri@jurta.org>
parents:
67503
diff
changeset
|
2407 '((t (:weight bold))) |
7943b5aaa49d
(mode-line-faces): New defgroup.
Juri Linkov <juri@jurta.org>
parents:
67503
diff
changeset
|
2408 "Face used for buffer identification parts of the mode line." |
7943b5aaa49d
(mode-line-faces): New defgroup.
Juri Linkov <juri@jurta.org>
parents:
67503
diff
changeset
|
2409 :version "22.1" |
7943b5aaa49d
(mode-line-faces): New defgroup.
Juri Linkov <juri@jurta.org>
parents:
67503
diff
changeset
|
2410 :group 'mode-line-faces |
43204
1b0f33edf842
(mode-line-inactive): New face for mode-line for
Kim F. Storm <storm@cua.dk>
parents:
42969
diff
changeset
|
2411 :group 'basic-faces) |
104790
f8b01ad24693
(modeline, modeline-inactive, modeline-highlight, modeline-buffer-id):
Glenn Morris <rgm@gnu.org>
parents:
104752
diff
changeset
|
2412 (define-obsolete-face-alias 'modeline-buffer-id 'mode-line-buffer-id "22.1") |
25012 | 2413 |
25545
b0a117037bde
(header-line): Renamed from `top-line'.
Gerd Moellmann <gerd@gnu.org>
parents:
25542
diff
changeset
|
2414 (defface header-line |
58935
95bb6b9a27a3
(header-line, mode-line-inactive, tool-bar):
Richard M. Stallman <rms@gnu.org>
parents:
58851
diff
changeset
|
2415 '((default |
54574
76b831799f4d
(read-face-font): Don't cons up unnecessarily.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
54161
diff
changeset
|
2416 :inherit mode-line) |
76b831799f4d
(read-face-font): Don't cons up unnecessarily.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
54161
diff
changeset
|
2417 (((type tty)) |
32404
d355f52b4497
(header-line): Change tty-variant to use underlining.
Miles Bader <miles@gnu.org>
parents:
32378
diff
changeset
|
2418 ;; This used to be `:inverse-video t', but that doesn't look very |
d355f52b4497
(header-line): Change tty-variant to use underlining.
Miles Bader <miles@gnu.org>
parents:
32378
diff
changeset
|
2419 ;; good when combined with inverse-video mode-lines and multiple |
d355f52b4497
(header-line): Change tty-variant to use underlining.
Miles Bader <miles@gnu.org>
parents:
32378
diff
changeset
|
2420 ;; windows. Underlining looks better, and is more consistent with |
d355f52b4497
(header-line): Change tty-variant to use underlining.
Miles Bader <miles@gnu.org>
parents:
32378
diff
changeset
|
2421 ;; the window-system face variants, which deemphasize the |
d355f52b4497
(header-line): Change tty-variant to use underlining.
Miles Bader <miles@gnu.org>
parents:
32378
diff
changeset
|
2422 ;; header-line in relation to the mode-line face. If a terminal |
d355f52b4497
(header-line): Change tty-variant to use underlining.
Miles Bader <miles@gnu.org>
parents:
32378
diff
changeset
|
2423 ;; can't underline, then the header-line will end up without any |
d355f52b4497
(header-line): Change tty-variant to use underlining.
Miles Bader <miles@gnu.org>
parents:
32378
diff
changeset
|
2424 ;; highlighting; this may be too confusing in general, although it |
d355f52b4497
(header-line): Change tty-variant to use underlining.
Miles Bader <miles@gnu.org>
parents:
32378
diff
changeset
|
2425 ;; happens to look good with the only current use of header-lines, |
d355f52b4497
(header-line): Change tty-variant to use underlining.
Miles Bader <miles@gnu.org>
parents:
32378
diff
changeset
|
2426 ;; the info browser. XXX |
54574
76b831799f4d
(read-face-font): Don't cons up unnecessarily.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
54161
diff
changeset
|
2427 :inverse-video nil ;Override the value inherited from mode-line. |
46146
f883ac732e39
(header-line): Don't use a `common' clause for inheriting from the mode-line
Miles Bader <miles@gnu.org>
parents:
46145
diff
changeset
|
2428 :underline t) |
32756
ccfb1ed059ca
(header-line): Make more reasonable on mono/grayscale displays.
Miles Bader <miles@gnu.org>
parents:
32752
diff
changeset
|
2429 (((class color grayscale) (background light)) |
33465
900ca3da6e01
(header-line): Use `:box nil' for color/gs displays too.
Miles Bader <miles@gnu.org>
parents:
33447
diff
changeset
|
2430 :background "grey90" :foreground "grey20" |
54574
76b831799f4d
(read-face-font): Don't cons up unnecessarily.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
54161
diff
changeset
|
2431 :box nil) |
32756
ccfb1ed059ca
(header-line): Make more reasonable on mono/grayscale displays.
Miles Bader <miles@gnu.org>
parents:
32752
diff
changeset
|
2432 (((class color grayscale) (background dark)) |
33465
900ca3da6e01
(header-line): Use `:box nil' for color/gs displays too.
Miles Bader <miles@gnu.org>
parents:
33447
diff
changeset
|
2433 :background "grey20" :foreground "grey90" |
54574
76b831799f4d
(read-face-font): Don't cons up unnecessarily.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
54161
diff
changeset
|
2434 :box nil) |
32756
ccfb1ed059ca
(header-line): Make more reasonable on mono/grayscale displays.
Miles Bader <miles@gnu.org>
parents:
32752
diff
changeset
|
2435 (((class mono) (background light)) |
33465
900ca3da6e01
(header-line): Use `:box nil' for color/gs displays too.
Miles Bader <miles@gnu.org>
parents:
33447
diff
changeset
|
2436 :background "white" :foreground "black" |
900ca3da6e01
(header-line): Use `:box nil' for color/gs displays too.
Miles Bader <miles@gnu.org>
parents:
33447
diff
changeset
|
2437 :inverse-video nil |
900ca3da6e01
(header-line): Use `:box nil' for color/gs displays too.
Miles Bader <miles@gnu.org>
parents:
33447
diff
changeset
|
2438 :box nil |
54574
76b831799f4d
(read-face-font): Don't cons up unnecessarily.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
54161
diff
changeset
|
2439 :underline t) |
32756
ccfb1ed059ca
(header-line): Make more reasonable on mono/grayscale displays.
Miles Bader <miles@gnu.org>
parents:
32752
diff
changeset
|
2440 (((class mono) (background dark)) |
33465
900ca3da6e01
(header-line): Use `:box nil' for color/gs displays too.
Miles Bader <miles@gnu.org>
parents:
33447
diff
changeset
|
2441 :background "black" :foreground "white" |
900ca3da6e01
(header-line): Use `:box nil' for color/gs displays too.
Miles Bader <miles@gnu.org>
parents:
33447
diff
changeset
|
2442 :inverse-video nil |
900ca3da6e01
(header-line): Use `:box nil' for color/gs displays too.
Miles Bader <miles@gnu.org>
parents:
33447
diff
changeset
|
2443 :box nil |
54574
76b831799f4d
(read-face-font): Don't cons up unnecessarily.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
54161
diff
changeset
|
2444 :underline t)) |
25545
b0a117037bde
(header-line): Renamed from `top-line'.
Gerd Moellmann <gerd@gnu.org>
parents:
25542
diff
changeset
|
2445 "Basic header-line face." |
25687
afad62240679
(mode-line, header-line, tool-bar, ): Add :version.
Dave Love <fx@gnu.org>
parents:
25650
diff
changeset
|
2446 :version "21.1" |
25012 | 2447 :group 'basic-faces) |
2448 | |
75166
d9e4f75aee3d
(momentary): Change :group to basic-faces where all
Juri Linkov <juri@jurta.org>
parents:
75109
diff
changeset
|
2449 (defface vertical-border |
d9e4f75aee3d
(momentary): Change :group to basic-faces where all
Juri Linkov <juri@jurta.org>
parents:
75109
diff
changeset
|
2450 '((((type tty)) :inherit mode-line-inactive)) |
d9e4f75aee3d
(momentary): Change :group to basic-faces where all
Juri Linkov <juri@jurta.org>
parents:
75109
diff
changeset
|
2451 "Face used for vertical window dividers on ttys." |
d9e4f75aee3d
(momentary): Change :group to basic-faces where all
Juri Linkov <juri@jurta.org>
parents:
75109
diff
changeset
|
2452 :version "22.1" |
d9e4f75aee3d
(momentary): Change :group to basic-faces where all
Juri Linkov <juri@jurta.org>
parents:
75109
diff
changeset
|
2453 :group 'basic-faces) |
d9e4f75aee3d
(momentary): Change :group to basic-faces where all
Juri Linkov <juri@jurta.org>
parents:
75109
diff
changeset
|
2454 |
65084
87a66a9a9328
(minibuffer-prompt): Doc fix.
Juri Linkov <juri@jurta.org>
parents:
65068
diff
changeset
|
2455 (defface minibuffer-prompt |
87a66a9a9328
(minibuffer-prompt): Doc fix.
Juri Linkov <juri@jurta.org>
parents:
65068
diff
changeset
|
2456 '((((background dark)) :foreground "cyan") |
87a66a9a9328
(minibuffer-prompt): Doc fix.
Juri Linkov <juri@jurta.org>
parents:
65068
diff
changeset
|
2457 ;; Don't use blue because many users of the MS-DOS port customize |
87a66a9a9328
(minibuffer-prompt): Doc fix.
Juri Linkov <juri@jurta.org>
parents:
65068
diff
changeset
|
2458 ;; their foreground color to be blue. |
87a66a9a9328
(minibuffer-prompt): Doc fix.
Juri Linkov <juri@jurta.org>
parents:
65068
diff
changeset
|
2459 (((type pc)) :foreground "magenta") |
76292
81d50597174e
(minibuffer-prompt): Use medium blue by default.
Richard M. Stallman <rms@gnu.org>
parents:
75884
diff
changeset
|
2460 (t :foreground "medium blue")) |
65084
87a66a9a9328
(minibuffer-prompt): Doc fix.
Juri Linkov <juri@jurta.org>
parents:
65068
diff
changeset
|
2461 "Face for minibuffer prompts. |
87a66a9a9328
(minibuffer-prompt): Doc fix.
Juri Linkov <juri@jurta.org>
parents:
65068
diff
changeset
|
2462 By default, Emacs automatically adds this face to the value of |
87a66a9a9328
(minibuffer-prompt): Doc fix.
Juri Linkov <juri@jurta.org>
parents:
65068
diff
changeset
|
2463 `minibuffer-prompt-properties', which is a list of text properties |
87a66a9a9328
(minibuffer-prompt): Doc fix.
Juri Linkov <juri@jurta.org>
parents:
65068
diff
changeset
|
2464 used to display the prompt text." |
59996
aac0a33f5772
Change release version from 21.4 to 22.1 throughout.
Kim F. Storm <storm@cua.dk>
parents:
59872
diff
changeset
|
2465 :version "22.1" |
42298
d020b569f212
(minibuffer-prompt): New face.
Richard M. Stallman <rms@gnu.org>
parents:
40456
diff
changeset
|
2466 :group 'basic-faces) |
d020b569f212
(minibuffer-prompt): New face.
Richard M. Stallman <rms@gnu.org>
parents:
40456
diff
changeset
|
2467 |
d020b569f212
(minibuffer-prompt): New face.
Richard M. Stallman <rms@gnu.org>
parents:
40456
diff
changeset
|
2468 (setq minibuffer-prompt-properties |
d020b569f212
(minibuffer-prompt): New face.
Richard M. Stallman <rms@gnu.org>
parents:
40456
diff
changeset
|
2469 (append minibuffer-prompt-properties (list 'face 'minibuffer-prompt))) |
d020b569f212
(minibuffer-prompt): New face.
Richard M. Stallman <rms@gnu.org>
parents:
40456
diff
changeset
|
2470 |
25588
1d8ba3dd04e9
(face-set-after-frame-default): Initialize some
Gerd Moellmann <gerd@gnu.org>
parents:
25561
diff
changeset
|
2471 (defface fringe |
29943
b8314fd10792
(fringe): Change face for different backgrounds.
Gerd Moellmann <gerd@gnu.org>
parents:
29880
diff
changeset
|
2472 '((((class color) (background light)) |
43711
d15360503e4e
(face-spec-choose): Allow `t' to appear before the end.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
43550
diff
changeset
|
2473 :background "grey95") |
d15360503e4e
(face-spec-choose): Allow `t' to appear before the end.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
43550
diff
changeset
|
2474 (((class color) (background dark)) |
d15360503e4e
(face-spec-choose): Allow `t' to appear before the end.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
43550
diff
changeset
|
2475 :background "grey10") |
d15360503e4e
(face-spec-choose): Allow `t' to appear before the end.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
43550
diff
changeset
|
2476 (t |
d15360503e4e
(face-spec-choose): Allow `t' to appear before the end.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
43550
diff
changeset
|
2477 :background "gray")) |
25588
1d8ba3dd04e9
(face-set-after-frame-default): Initialize some
Gerd Moellmann <gerd@gnu.org>
parents:
25561
diff
changeset
|
2478 "Basic face for the fringes to the left and right of windows under X." |
1d8ba3dd04e9
(face-set-after-frame-default): Initialize some
Gerd Moellmann <gerd@gnu.org>
parents:
25561
diff
changeset
|
2479 :version "21.1" |
27716
a3d981ee3185
Don't require custom. Add more specific :groups to various deffaces.
Dave Love <fx@gnu.org>
parents:
27571
diff
changeset
|
2480 :group 'frames |
25588
1d8ba3dd04e9
(face-set-after-frame-default): Initialize some
Gerd Moellmann <gerd@gnu.org>
parents:
25561
diff
changeset
|
2481 :group 'basic-faces) |
1d8ba3dd04e9
(face-set-after-frame-default): Initialize some
Gerd Moellmann <gerd@gnu.org>
parents:
25561
diff
changeset
|
2482 |
70178
667cd756c089
(scroll-bar, border, cursor, mouse): Avoid nil spec in defface.
Luc Teirlinck <teirllm@auburn.edu>
parents:
68651
diff
changeset
|
2483 (defface scroll-bar '((t nil)) |
25588
1d8ba3dd04e9
(face-set-after-frame-default): Initialize some
Gerd Moellmann <gerd@gnu.org>
parents:
25561
diff
changeset
|
2484 "Basic face for the scroll bar colors under X." |
1d8ba3dd04e9
(face-set-after-frame-default): Initialize some
Gerd Moellmann <gerd@gnu.org>
parents:
25561
diff
changeset
|
2485 :version "21.1" |
27716
a3d981ee3185
Don't require custom. Add more specific :groups to various deffaces.
Dave Love <fx@gnu.org>
parents:
27571
diff
changeset
|
2486 :group 'frames |
25588
1d8ba3dd04e9
(face-set-after-frame-default): Initialize some
Gerd Moellmann <gerd@gnu.org>
parents:
25561
diff
changeset
|
2487 :group 'basic-faces) |
1d8ba3dd04e9
(face-set-after-frame-default): Initialize some
Gerd Moellmann <gerd@gnu.org>
parents:
25561
diff
changeset
|
2488 |
70178
667cd756c089
(scroll-bar, border, cursor, mouse): Avoid nil spec in defface.
Luc Teirlinck <teirllm@auburn.edu>
parents:
68651
diff
changeset
|
2489 (defface border '((t nil)) |
25588
1d8ba3dd04e9
(face-set-after-frame-default): Initialize some
Gerd Moellmann <gerd@gnu.org>
parents:
25561
diff
changeset
|
2490 "Basic face for the frame border under X." |
1d8ba3dd04e9
(face-set-after-frame-default): Initialize some
Gerd Moellmann <gerd@gnu.org>
parents:
25561
diff
changeset
|
2491 :version "21.1" |
27716
a3d981ee3185
Don't require custom. Add more specific :groups to various deffaces.
Dave Love <fx@gnu.org>
parents:
27571
diff
changeset
|
2492 :group 'frames |
25588
1d8ba3dd04e9
(face-set-after-frame-default): Initialize some
Gerd Moellmann <gerd@gnu.org>
parents:
25561
diff
changeset
|
2493 :group 'basic-faces) |
1d8ba3dd04e9
(face-set-after-frame-default): Initialize some
Gerd Moellmann <gerd@gnu.org>
parents:
25561
diff
changeset
|
2494 |
70178
667cd756c089
(scroll-bar, border, cursor, mouse): Avoid nil spec in defface.
Luc Teirlinck <teirllm@auburn.edu>
parents:
68651
diff
changeset
|
2495 (defface cursor '((t nil)) |
57105
8f14c8ea51a1
(cursor): Add face-no-inherit property. Doc fix.
Kim F. Storm <storm@cua.dk>
parents:
55902
diff
changeset
|
2496 "Basic face for the cursor color under X. |
8f14c8ea51a1
(cursor): Add face-no-inherit property. Doc fix.
Kim F. Storm <storm@cua.dk>
parents:
55902
diff
changeset
|
2497 Note: Other faces cannot inherit from the cursor face." |
25588
1d8ba3dd04e9
(face-set-after-frame-default): Initialize some
Gerd Moellmann <gerd@gnu.org>
parents:
25561
diff
changeset
|
2498 :version "21.1" |
27716
a3d981ee3185
Don't require custom. Add more specific :groups to various deffaces.
Dave Love <fx@gnu.org>
parents:
27571
diff
changeset
|
2499 :group 'cursor |
25588
1d8ba3dd04e9
(face-set-after-frame-default): Initialize some
Gerd Moellmann <gerd@gnu.org>
parents:
25561
diff
changeset
|
2500 :group 'basic-faces) |
1d8ba3dd04e9
(face-set-after-frame-default): Initialize some
Gerd Moellmann <gerd@gnu.org>
parents:
25561
diff
changeset
|
2501 |
57105
8f14c8ea51a1
(cursor): Add face-no-inherit property. Doc fix.
Kim F. Storm <storm@cua.dk>
parents:
55902
diff
changeset
|
2502 (put 'cursor 'face-no-inherit t) |
25588
1d8ba3dd04e9
(face-set-after-frame-default): Initialize some
Gerd Moellmann <gerd@gnu.org>
parents:
25561
diff
changeset
|
2503 |
70178
667cd756c089
(scroll-bar, border, cursor, mouse): Avoid nil spec in defface.
Luc Teirlinck <teirllm@auburn.edu>
parents:
68651
diff
changeset
|
2504 (defface mouse '((t nil)) |
25588
1d8ba3dd04e9
(face-set-after-frame-default): Initialize some
Gerd Moellmann <gerd@gnu.org>
parents:
25561
diff
changeset
|
2505 "Basic face for the mouse color under X." |
25137 | 2506 :version "21.1" |
27716
a3d981ee3185
Don't require custom. Add more specific :groups to various deffaces.
Dave Love <fx@gnu.org>
parents:
27571
diff
changeset
|
2507 :group 'mouse |
25012 | 2508 :group 'basic-faces) |
2509 | |
65730
a9f7501916e6
Rearrange face definitions to be in the same order as
Juri Linkov <juri@jurta.org>
parents:
65289
diff
changeset
|
2510 (defface tool-bar |
a9f7501916e6
Rearrange face definitions to be in the same order as
Juri Linkov <juri@jurta.org>
parents:
65289
diff
changeset
|
2511 '((default |
a9f7501916e6
Rearrange face definitions to be in the same order as
Juri Linkov <juri@jurta.org>
parents:
65289
diff
changeset
|
2512 :box (:line-width 1 :style released-button) |
a9f7501916e6
Rearrange face definitions to be in the same order as
Juri Linkov <juri@jurta.org>
parents:
65289
diff
changeset
|
2513 :foreground "black") |
97043
9592c50233ab
Remove support for Mac Carbon.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
96675
diff
changeset
|
2514 (((type x w32 ns) (class color)) |
65730
a9f7501916e6
Rearrange face definitions to be in the same order as
Juri Linkov <juri@jurta.org>
parents:
65289
diff
changeset
|
2515 :background "grey75") |
a9f7501916e6
Rearrange face definitions to be in the same order as
Juri Linkov <juri@jurta.org>
parents:
65289
diff
changeset
|
2516 (((type x) (class mono)) |
a9f7501916e6
Rearrange face definitions to be in the same order as
Juri Linkov <juri@jurta.org>
parents:
65289
diff
changeset
|
2517 :background "grey")) |
a9f7501916e6
Rearrange face definitions to be in the same order as
Juri Linkov <juri@jurta.org>
parents:
65289
diff
changeset
|
2518 "Basic tool-bar face." |
a9f7501916e6
Rearrange face definitions to be in the same order as
Juri Linkov <juri@jurta.org>
parents:
65289
diff
changeset
|
2519 :version "21.1" |
25687
afad62240679
(mode-line, header-line, tool-bar, ): Add :version.
Dave Love <fx@gnu.org>
parents:
25650
diff
changeset
|
2520 :group 'basic-faces) |
25012 | 2521 |
65730
a9f7501916e6
Rearrange face definitions to be in the same order as
Juri Linkov <juri@jurta.org>
parents:
65289
diff
changeset
|
2522 (defface menu |
a9f7501916e6
Rearrange face definitions to be in the same order as
Juri Linkov <juri@jurta.org>
parents:
65289
diff
changeset
|
2523 '((((type tty)) |
a9f7501916e6
Rearrange face definitions to be in the same order as
Juri Linkov <juri@jurta.org>
parents:
65289
diff
changeset
|
2524 :inverse-video t) |
a9f7501916e6
Rearrange face definitions to be in the same order as
Juri Linkov <juri@jurta.org>
parents:
65289
diff
changeset
|
2525 (((type x-toolkit)) |
a9f7501916e6
Rearrange face definitions to be in the same order as
Juri Linkov <juri@jurta.org>
parents:
65289
diff
changeset
|
2526 ) |
a9f7501916e6
Rearrange face definitions to be in the same order as
Juri Linkov <juri@jurta.org>
parents:
65289
diff
changeset
|
2527 (t |
a9f7501916e6
Rearrange face definitions to be in the same order as
Juri Linkov <juri@jurta.org>
parents:
65289
diff
changeset
|
2528 :inverse-video t)) |
a9f7501916e6
Rearrange face definitions to be in the same order as
Juri Linkov <juri@jurta.org>
parents:
65289
diff
changeset
|
2529 "Basic face for the font and colors of the menu bar and popup menus." |
25687
afad62240679
(mode-line, header-line, tool-bar, ): Add :version.
Dave Love <fx@gnu.org>
parents:
25650
diff
changeset
|
2530 :version "21.1" |
65730
a9f7501916e6
Rearrange face definitions to be in the same order as
Juri Linkov <juri@jurta.org>
parents:
65289
diff
changeset
|
2531 :group 'menu |
25687
afad62240679
(mode-line, header-line, tool-bar, ): Add :version.
Dave Love <fx@gnu.org>
parents:
25650
diff
changeset
|
2532 :group 'basic-faces) |
25012 | 2533 |
104258
81cbeb1f6df1
* faces.el (help-argument-name): Define it here instead of
Chong Yidong <cyd@stupidchicken.com>
parents:
103604
diff
changeset
|
2534 (defface help-argument-name '((((supports :slant italic)) :inherit italic)) |
81cbeb1f6df1
* faces.el (help-argument-name): Define it here instead of
Chong Yidong <cyd@stupidchicken.com>
parents:
103604
diff
changeset
|
2535 "Face to highlight argument names in *Help* buffers." |
81cbeb1f6df1
* faces.el (help-argument-name): Define it here instead of
Chong Yidong <cyd@stupidchicken.com>
parents:
103604
diff
changeset
|
2536 :group 'help) |
25012 | 2537 |
2538 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | |
2539 ;;; Manipulating font names. | |
2540 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | |
2541 | |
2542 ;; This is here for compatibilty with Emacs 20.2. For example, | |
28907 | 2543 ;; international/fontset.el uses x-resolve-font-name. The following |
2544 ;; functions are not used in the face implementation itself. | |
2456 | 2545 |
16687
049c87a96dca
Change defconsts to defvars.
Richard M. Stallman <rms@gnu.org>
parents:
16590
diff
changeset
|
2546 (defvar x-font-regexp nil) |
049c87a96dca
Change defconsts to defvars.
Richard M. Stallman <rms@gnu.org>
parents:
16590
diff
changeset
|
2547 (defvar x-font-regexp-head nil) |
049c87a96dca
Change defconsts to defvars.
Richard M. Stallman <rms@gnu.org>
parents:
16590
diff
changeset
|
2548 (defvar x-font-regexp-weight nil) |
049c87a96dca
Change defconsts to defvars.
Richard M. Stallman <rms@gnu.org>
parents:
16590
diff
changeset
|
2549 (defvar x-font-regexp-slant nil) |
2456 | 2550 |
12668
7660e82d0346
(x-font-regexp-weight-subnum, x-font-regexp-slant-subnum)
Karl Heuer <kwzh@gnu.org>
parents:
12651
diff
changeset
|
2551 (defconst x-font-regexp-weight-subnum 1) |
7660e82d0346
(x-font-regexp-weight-subnum, x-font-regexp-slant-subnum)
Karl Heuer <kwzh@gnu.org>
parents:
12651
diff
changeset
|
2552 (defconst x-font-regexp-slant-subnum 2) |
7660e82d0346
(x-font-regexp-weight-subnum, x-font-regexp-slant-subnum)
Karl Heuer <kwzh@gnu.org>
parents:
12651
diff
changeset
|
2553 (defconst x-font-regexp-swidth-subnum 3) |
7660e82d0346
(x-font-regexp-weight-subnum, x-font-regexp-slant-subnum)
Karl Heuer <kwzh@gnu.org>
parents:
12651
diff
changeset
|
2554 (defconst x-font-regexp-adstyle-subnum 4) |
7660e82d0346
(x-font-regexp-weight-subnum, x-font-regexp-slant-subnum)
Karl Heuer <kwzh@gnu.org>
parents:
12651
diff
changeset
|
2555 |
2456 | 2556 ;;; Regexps matching font names in "Host Portable Character Representation." |
2557 ;;; | |
2558 (let ((- "[-?]") | |
2559 (foundry "[^-]+") | |
2560 (family "[^-]+") | |
2561 (weight "\\(bold\\|demibold\\|medium\\)") ; 1 | |
2562 ; (weight\? "\\(\\*\\|bold\\|demibold\\|medium\\|\\)") ; 1 | |
2563 (weight\? "\\([^-]*\\)") ; 1 | |
2564 (slant "\\([ior]\\)") ; 2 | |
2565 ; (slant\? "\\([ior?*]?\\)") ; 2 | |
2566 (slant\? "\\([^-]?\\)") ; 2 | |
2567 ; (swidth "\\(\\*\\|normal\\|semicondensed\\|\\)") ; 3 | |
2568 (swidth "\\([^-]*\\)") ; 3 | |
2569 ; (adstyle "\\(\\*\\|sans\\|\\)") ; 4 | |
12690
e2d3fa52d100
(x-font-regexp): Add \\(\\) for substring extraction.
Karl Heuer <kwzh@gnu.org>
parents:
12668
diff
changeset
|
2570 (adstyle "\\([^-]*\\)") ; 4 |
2456 | 2571 (pixelsize "[0-9]+") |
2572 (pointsize "[0-9][0-9]+") | |
2573 (resx "[0-9][0-9]+") | |
2574 (resy "[0-9][0-9]+") | |
2575 (spacing "[cmp?*]") | |
2576 (avgwidth "[0-9]+") | |
2577 (registry "[^-]+") | |
2578 (encoding "[^-]+") | |
2579 ) | |
2580 (setq x-font-regexp | |
105870
26baacb565b0
* textmodes/tex-mode.el (tex-alt-dvi-print-command)
Dan Nicolaescu <dann@ics.uci.edu>
parents:
105772
diff
changeset
|
2581 (purecopy (concat "\\`\\*?[-?*]" |
2456 | 2582 foundry - family - weight\? - slant\? - swidth - adstyle - |
12475
eb436b0c4ab3
(x-font-regexp): Include the avgwidth.
Richard M. Stallman <rms@gnu.org>
parents:
12460
diff
changeset
|
2583 pixelsize - pointsize - resx - resy - spacing - avgwidth - |
eb436b0c4ab3
(x-font-regexp): Include the avgwidth.
Richard M. Stallman <rms@gnu.org>
parents:
12460
diff
changeset
|
2584 registry - encoding "\\*?\\'" |
105870
26baacb565b0
* textmodes/tex-mode.el (tex-alt-dvi-print-command)
Dan Nicolaescu <dann@ics.uci.edu>
parents:
105772
diff
changeset
|
2585 ))) |
2456 | 2586 (setq x-font-regexp-head |
105870
26baacb565b0
* textmodes/tex-mode.el (tex-alt-dvi-print-command)
Dan Nicolaescu <dann@ics.uci.edu>
parents:
105772
diff
changeset
|
2587 (purecopy (concat "\\`[-?*]" foundry - family - weight\? - slant\? |
26baacb565b0
* textmodes/tex-mode.el (tex-alt-dvi-print-command)
Dan Nicolaescu <dann@ics.uci.edu>
parents:
105772
diff
changeset
|
2588 "\\([-*?]\\|\\'\\)"))) |
26baacb565b0
* textmodes/tex-mode.el (tex-alt-dvi-print-command)
Dan Nicolaescu <dann@ics.uci.edu>
parents:
105772
diff
changeset
|
2589 (setq x-font-regexp-slant (purecopy (concat - slant -))) |
26baacb565b0
* textmodes/tex-mode.el (tex-alt-dvi-print-command)
Dan Nicolaescu <dann@ics.uci.edu>
parents:
105772
diff
changeset
|
2590 (setq x-font-regexp-weight (purecopy (concat - weight -))) |
28840 | 2591 nil) |
2456 | 2592 |
25012 | 2593 |
3071
68de05fb5751
* faces.el (set-face-font): Call x-resolve-font-name on the font
Jim Blandy <jimb@redhat.com>
parents:
3049
diff
changeset
|
2594 (defun x-resolve-font-name (pattern &optional face frame) |
68de05fb5751
* faces.el (set-face-font): Call x-resolve-font-name on the font
Jim Blandy <jimb@redhat.com>
parents:
3049
diff
changeset
|
2595 "Return a font name matching PATTERN. |
28849
76e727bc0dfd
Fix make-obsolete for internal-get-face.
Dave Love <fx@gnu.org>
parents:
28840
diff
changeset
|
2596 All wildcards in PATTERN are instantiated. |
3130
82c29bacb6b3
* faces.el (x-resolve-font-name): If PATTERN is nil, return the
Jim Blandy <jimb@redhat.com>
parents:
3071
diff
changeset
|
2597 If PATTERN is nil, return the name of the frame's base font, which never |
82c29bacb6b3
* faces.el (x-resolve-font-name): If PATTERN is nil, return the
Jim Blandy <jimb@redhat.com>
parents:
3071
diff
changeset
|
2598 contains wildcards. |
10170
5fc240a3e4a0
(face-initialize): Test for framep not t or nil.
Richard M. Stallman <rms@gnu.org>
parents:
10107
diff
changeset
|
2599 Given optional arguments FACE and FRAME, return a font which is |
5fc240a3e4a0
(face-initialize): Test for framep not t or nil.
Richard M. Stallman <rms@gnu.org>
parents:
10107
diff
changeset
|
2600 also the same size as FACE on FRAME, or fail." |
3233
28b2df35c33e
(x-resolve-font-name): Allow symbol as FACE arg.
Richard M. Stallman <rms@gnu.org>
parents:
3182
diff
changeset
|
2601 (or (symbolp face) |
28b2df35c33e
(x-resolve-font-name): Allow symbol as FACE arg.
Richard M. Stallman <rms@gnu.org>
parents:
3182
diff
changeset
|
2602 (setq face (face-name face))) |
28b2df35c33e
(x-resolve-font-name): Allow symbol as FACE arg.
Richard M. Stallman <rms@gnu.org>
parents:
3182
diff
changeset
|
2603 (and (eq frame t) |
28b2df35c33e
(x-resolve-font-name): Allow symbol as FACE arg.
Richard M. Stallman <rms@gnu.org>
parents:
3182
diff
changeset
|
2604 (setq frame nil)) |
3130
82c29bacb6b3
* faces.el (x-resolve-font-name): If PATTERN is nil, return the
Jim Blandy <jimb@redhat.com>
parents:
3071
diff
changeset
|
2605 (if pattern |
5092
36508a7c0a3f
(x-resolve-font-name): Undo previous change.
Richard M. Stallman <rms@gnu.org>
parents:
5081
diff
changeset
|
2606 ;; Note that x-list-fonts has code to handle a face with nil as its font. |
16002
c8cbde1d3f11
(internal-set-face-1): When calling x-list-fonts, ask for just one match.
Richard M. Stallman <rms@gnu.org>
parents:
15884
diff
changeset
|
2607 (let ((fonts (x-list-fonts pattern face frame 1))) |
3130
82c29bacb6b3
* faces.el (x-resolve-font-name): If PATTERN is nil, return the
Jim Blandy <jimb@redhat.com>
parents:
3071
diff
changeset
|
2608 (or fonts |
82c29bacb6b3
* faces.el (x-resolve-font-name): If PATTERN is nil, return the
Jim Blandy <jimb@redhat.com>
parents:
3071
diff
changeset
|
2609 (if face |
10584 | 2610 (if (string-match "\\*" pattern) |
2611 (if (null (face-font face)) | |
2612 (error "No matching fonts are the same height as the frame default font") | |
2613 (error "No matching fonts are the same height as face `%s'" face)) | |
2614 (if (null (face-font face)) | |
2615 (error "Height of font `%s' doesn't match the frame default font" | |
2616 pattern) | |
2617 (error "Height of font `%s' doesn't match face `%s'" | |
2618 pattern face))) | |
3353
8cbd38886eef
(x-resolve-font-name): Clean up error messages.
Richard M. Stallman <rms@gnu.org>
parents:
3298
diff
changeset
|
2619 (error "No fonts match `%s'" pattern))) |
3130
82c29bacb6b3
* faces.el (x-resolve-font-name): If PATTERN is nil, return the
Jim Blandy <jimb@redhat.com>
parents:
3071
diff
changeset
|
2620 (car fonts)) |
82c29bacb6b3
* faces.el (x-resolve-font-name): If PATTERN is nil, return the
Jim Blandy <jimb@redhat.com>
parents:
3071
diff
changeset
|
2621 (cdr (assq 'font (frame-parameters (selected-frame)))))) |
3071
68de05fb5751
* faces.el (set-face-font): Call x-resolve-font-name on the font
Jim Blandy <jimb@redhat.com>
parents:
3049
diff
changeset
|
2622 |
25012 | 2623 |
2456 | 2624 (defun x-frob-font-weight (font which) |
13704
3dcaddea344a
Wrap case-fold-search for x-frob-font-weight and x-frob-font-slant.
Simon Marshall <simon@gnu.org>
parents:
13609
diff
changeset
|
2625 (let ((case-fold-search t)) |
3dcaddea344a
Wrap case-fold-search for x-frob-font-weight and x-frob-font-slant.
Simon Marshall <simon@gnu.org>
parents:
13609
diff
changeset
|
2626 (cond ((string-match x-font-regexp font) |
3dcaddea344a
Wrap case-fold-search for x-frob-font-weight and x-frob-font-slant.
Simon Marshall <simon@gnu.org>
parents:
13609
diff
changeset
|
2627 (concat (substring font 0 |
3dcaddea344a
Wrap case-fold-search for x-frob-font-weight and x-frob-font-slant.
Simon Marshall <simon@gnu.org>
parents:
13609
diff
changeset
|
2628 (match-beginning x-font-regexp-weight-subnum)) |
3dcaddea344a
Wrap case-fold-search for x-frob-font-weight and x-frob-font-slant.
Simon Marshall <simon@gnu.org>
parents:
13609
diff
changeset
|
2629 which |
3dcaddea344a
Wrap case-fold-search for x-frob-font-weight and x-frob-font-slant.
Simon Marshall <simon@gnu.org>
parents:
13609
diff
changeset
|
2630 (substring font (match-end x-font-regexp-weight-subnum) |
3dcaddea344a
Wrap case-fold-search for x-frob-font-weight and x-frob-font-slant.
Simon Marshall <simon@gnu.org>
parents:
13609
diff
changeset
|
2631 (match-beginning x-font-regexp-adstyle-subnum)) |
3dcaddea344a
Wrap case-fold-search for x-frob-font-weight and x-frob-font-slant.
Simon Marshall <simon@gnu.org>
parents:
13609
diff
changeset
|
2632 ;; Replace the ADD_STYLE_NAME field with * |
3dcaddea344a
Wrap case-fold-search for x-frob-font-weight and x-frob-font-slant.
Simon Marshall <simon@gnu.org>
parents:
13609
diff
changeset
|
2633 ;; because the info in it may not be the same |
3dcaddea344a
Wrap case-fold-search for x-frob-font-weight and x-frob-font-slant.
Simon Marshall <simon@gnu.org>
parents:
13609
diff
changeset
|
2634 ;; for related fonts. |
3dcaddea344a
Wrap case-fold-search for x-frob-font-weight and x-frob-font-slant.
Simon Marshall <simon@gnu.org>
parents:
13609
diff
changeset
|
2635 "*" |
3dcaddea344a
Wrap case-fold-search for x-frob-font-weight and x-frob-font-slant.
Simon Marshall <simon@gnu.org>
parents:
13609
diff
changeset
|
2636 (substring font (match-end x-font-regexp-adstyle-subnum)))) |
14880
b405f39b5493
(x-frob-font-slant): Properly handle a match against
Richard M. Stallman <rms@gnu.org>
parents:
14409
diff
changeset
|
2637 ((string-match x-font-regexp-head font) |
b405f39b5493
(x-frob-font-slant): Properly handle a match against
Richard M. Stallman <rms@gnu.org>
parents:
14409
diff
changeset
|
2638 (concat (substring font 0 (match-beginning 1)) which |
b405f39b5493
(x-frob-font-slant): Properly handle a match against
Richard M. Stallman <rms@gnu.org>
parents:
14409
diff
changeset
|
2639 (substring font (match-end 1)))) |
b405f39b5493
(x-frob-font-slant): Properly handle a match against
Richard M. Stallman <rms@gnu.org>
parents:
14409
diff
changeset
|
2640 ((string-match x-font-regexp-weight font) |
13704
3dcaddea344a
Wrap case-fold-search for x-frob-font-weight and x-frob-font-slant.
Simon Marshall <simon@gnu.org>
parents:
13609
diff
changeset
|
2641 (concat (substring font 0 (match-beginning 1)) which |
3dcaddea344a
Wrap case-fold-search for x-frob-font-weight and x-frob-font-slant.
Simon Marshall <simon@gnu.org>
parents:
13609
diff
changeset
|
2642 (substring font (match-end 1))))))) |
29354
4ed4a700358b
Update calls to make-obsolete with a WHEN argument.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
28907
diff
changeset
|
2643 (make-obsolete 'x-frob-font-weight 'make-face-... "21.1") |
25012 | 2644 |
2456 | 2645 (defun x-frob-font-slant (font which) |
13704
3dcaddea344a
Wrap case-fold-search for x-frob-font-weight and x-frob-font-slant.
Simon Marshall <simon@gnu.org>
parents:
13609
diff
changeset
|
2646 (let ((case-fold-search t)) |
3dcaddea344a
Wrap case-fold-search for x-frob-font-weight and x-frob-font-slant.
Simon Marshall <simon@gnu.org>
parents:
13609
diff
changeset
|
2647 (cond ((string-match x-font-regexp font) |
3dcaddea344a
Wrap case-fold-search for x-frob-font-weight and x-frob-font-slant.
Simon Marshall <simon@gnu.org>
parents:
13609
diff
changeset
|
2648 (concat (substring font 0 |
3dcaddea344a
Wrap case-fold-search for x-frob-font-weight and x-frob-font-slant.
Simon Marshall <simon@gnu.org>
parents:
13609
diff
changeset
|
2649 (match-beginning x-font-regexp-slant-subnum)) |
3dcaddea344a
Wrap case-fold-search for x-frob-font-weight and x-frob-font-slant.
Simon Marshall <simon@gnu.org>
parents:
13609
diff
changeset
|
2650 which |
3dcaddea344a
Wrap case-fold-search for x-frob-font-weight and x-frob-font-slant.
Simon Marshall <simon@gnu.org>
parents:
13609
diff
changeset
|
2651 (substring font (match-end x-font-regexp-slant-subnum) |
3dcaddea344a
Wrap case-fold-search for x-frob-font-weight and x-frob-font-slant.
Simon Marshall <simon@gnu.org>
parents:
13609
diff
changeset
|
2652 (match-beginning x-font-regexp-adstyle-subnum)) |
3dcaddea344a
Wrap case-fold-search for x-frob-font-weight and x-frob-font-slant.
Simon Marshall <simon@gnu.org>
parents:
13609
diff
changeset
|
2653 ;; Replace the ADD_STYLE_NAME field with * |
3dcaddea344a
Wrap case-fold-search for x-frob-font-weight and x-frob-font-slant.
Simon Marshall <simon@gnu.org>
parents:
13609
diff
changeset
|
2654 ;; because the info in it may not be the same |
3dcaddea344a
Wrap case-fold-search for x-frob-font-weight and x-frob-font-slant.
Simon Marshall <simon@gnu.org>
parents:
13609
diff
changeset
|
2655 ;; for related fonts. |
3dcaddea344a
Wrap case-fold-search for x-frob-font-weight and x-frob-font-slant.
Simon Marshall <simon@gnu.org>
parents:
13609
diff
changeset
|
2656 "*" |
3dcaddea344a
Wrap case-fold-search for x-frob-font-weight and x-frob-font-slant.
Simon Marshall <simon@gnu.org>
parents:
13609
diff
changeset
|
2657 (substring font (match-end x-font-regexp-adstyle-subnum)))) |
14880
b405f39b5493
(x-frob-font-slant): Properly handle a match against
Richard M. Stallman <rms@gnu.org>
parents:
14409
diff
changeset
|
2658 ((string-match x-font-regexp-head font) |
b405f39b5493
(x-frob-font-slant): Properly handle a match against
Richard M. Stallman <rms@gnu.org>
parents:
14409
diff
changeset
|
2659 (concat (substring font 0 (match-beginning 2)) which |
b405f39b5493
(x-frob-font-slant): Properly handle a match against
Richard M. Stallman <rms@gnu.org>
parents:
14409
diff
changeset
|
2660 (substring font (match-end 2)))) |
b405f39b5493
(x-frob-font-slant): Properly handle a match against
Richard M. Stallman <rms@gnu.org>
parents:
14409
diff
changeset
|
2661 ((string-match x-font-regexp-slant font) |
13704
3dcaddea344a
Wrap case-fold-search for x-frob-font-weight and x-frob-font-slant.
Simon Marshall <simon@gnu.org>
parents:
13609
diff
changeset
|
2662 (concat (substring font 0 (match-beginning 1)) which |
3dcaddea344a
Wrap case-fold-search for x-frob-font-weight and x-frob-font-slant.
Simon Marshall <simon@gnu.org>
parents:
13609
diff
changeset
|
2663 (substring font (match-end 1))))))) |
29354
4ed4a700358b
Update calls to make-obsolete with a WHEN argument.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
28907
diff
changeset
|
2664 (make-obsolete 'x-frob-font-slant 'make-face-... "21.1") |
25012 | 2665 |
40351
a44d4a7dd8de
(internal-get-face): Use facep instead of the obsolete
Eli Zaretskii <eliz@gnu.org>
parents:
39830
diff
changeset
|
2666 ;; These aliases are here so that we don't get warnings about obsolete |
a44d4a7dd8de
(internal-get-face): Use facep instead of the obsolete
Eli Zaretskii <eliz@gnu.org>
parents:
39830
diff
changeset
|
2667 ;; functions from the byte compiler. |
a44d4a7dd8de
(internal-get-face): Use facep instead of the obsolete
Eli Zaretskii <eliz@gnu.org>
parents:
39830
diff
changeset
|
2668 (defalias 'internal-frob-font-weight 'x-frob-font-weight) |
a44d4a7dd8de
(internal-get-face): Use facep instead of the obsolete
Eli Zaretskii <eliz@gnu.org>
parents:
39830
diff
changeset
|
2669 (defalias 'internal-frob-font-slant 'x-frob-font-slant) |
a44d4a7dd8de
(internal-get-face): Use facep instead of the obsolete
Eli Zaretskii <eliz@gnu.org>
parents:
39830
diff
changeset
|
2670 |
2456 | 2671 (defun x-make-font-bold (font) |
4439
e7ab04f23df5
Make boldness and italicness affect subsequently created frames.
Richard M. Stallman <rms@gnu.org>
parents:
4122
diff
changeset
|
2672 "Given an X font specification, make a bold version of it. |
e7ab04f23df5
Make boldness and italicness affect subsequently created frames.
Richard M. Stallman <rms@gnu.org>
parents:
4122
diff
changeset
|
2673 If that can't be done, return nil." |
40351
a44d4a7dd8de
(internal-get-face): Use facep instead of the obsolete
Eli Zaretskii <eliz@gnu.org>
parents:
39830
diff
changeset
|
2674 (internal-frob-font-weight font "bold")) |
29354
4ed4a700358b
Update calls to make-obsolete with a WHEN argument.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
28907
diff
changeset
|
2675 (make-obsolete 'x-make-font-bold 'make-face-bold "21.1") |
25012 | 2676 |
2456 | 2677 (defun x-make-font-demibold (font) |
4439
e7ab04f23df5
Make boldness and italicness affect subsequently created frames.
Richard M. Stallman <rms@gnu.org>
parents:
4122
diff
changeset
|
2678 "Given an X font specification, make a demibold version of it. |
e7ab04f23df5
Make boldness and italicness affect subsequently created frames.
Richard M. Stallman <rms@gnu.org>
parents:
4122
diff
changeset
|
2679 If that can't be done, return nil." |
40351
a44d4a7dd8de
(internal-get-face): Use facep instead of the obsolete
Eli Zaretskii <eliz@gnu.org>
parents:
39830
diff
changeset
|
2680 (internal-frob-font-weight font "demibold")) |
29354
4ed4a700358b
Update calls to make-obsolete with a WHEN argument.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
28907
diff
changeset
|
2681 (make-obsolete 'x-make-font-demibold 'make-face-bold "21.1") |
25012 | 2682 |
2456 | 2683 (defun x-make-font-unbold (font) |
4439
e7ab04f23df5
Make boldness and italicness affect subsequently created frames.
Richard M. Stallman <rms@gnu.org>
parents:
4122
diff
changeset
|
2684 "Given an X font specification, make a non-bold version of it. |
e7ab04f23df5
Make boldness and italicness affect subsequently created frames.
Richard M. Stallman <rms@gnu.org>
parents:
4122
diff
changeset
|
2685 If that can't be done, return nil." |
40351
a44d4a7dd8de
(internal-get-face): Use facep instead of the obsolete
Eli Zaretskii <eliz@gnu.org>
parents:
39830
diff
changeset
|
2686 (internal-frob-font-weight font "medium")) |
29354
4ed4a700358b
Update calls to make-obsolete with a WHEN argument.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
28907
diff
changeset
|
2687 (make-obsolete 'x-make-font-unbold 'make-face-unbold "21.1") |
25012 | 2688 |
2456 | 2689 (defun x-make-font-italic (font) |
4439
e7ab04f23df5
Make boldness and italicness affect subsequently created frames.
Richard M. Stallman <rms@gnu.org>
parents:
4122
diff
changeset
|
2690 "Given an X font specification, make an italic version of it. |
e7ab04f23df5
Make boldness and italicness affect subsequently created frames.
Richard M. Stallman <rms@gnu.org>
parents:
4122
diff
changeset
|
2691 If that can't be done, return nil." |
40351
a44d4a7dd8de
(internal-get-face): Use facep instead of the obsolete
Eli Zaretskii <eliz@gnu.org>
parents:
39830
diff
changeset
|
2692 (internal-frob-font-slant font "i")) |
29354
4ed4a700358b
Update calls to make-obsolete with a WHEN argument.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
28907
diff
changeset
|
2693 (make-obsolete 'x-make-font-italic 'make-face-italic "21.1") |
25012 | 2694 |
2456 | 2695 (defun x-make-font-oblique (font) ; you say tomayto... |
4439
e7ab04f23df5
Make boldness and italicness affect subsequently created frames.
Richard M. Stallman <rms@gnu.org>
parents:
4122
diff
changeset
|
2696 "Given an X font specification, make an oblique version of it. |
e7ab04f23df5
Make boldness and italicness affect subsequently created frames.
Richard M. Stallman <rms@gnu.org>
parents:
4122
diff
changeset
|
2697 If that can't be done, return nil." |
40351
a44d4a7dd8de
(internal-get-face): Use facep instead of the obsolete
Eli Zaretskii <eliz@gnu.org>
parents:
39830
diff
changeset
|
2698 (internal-frob-font-slant font "o")) |
29354
4ed4a700358b
Update calls to make-obsolete with a WHEN argument.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
28907
diff
changeset
|
2699 (make-obsolete 'x-make-font-oblique 'make-face-italic "21.1") |
25012 | 2700 |
2456 | 2701 (defun x-make-font-unitalic (font) |
4439
e7ab04f23df5
Make boldness and italicness affect subsequently created frames.
Richard M. Stallman <rms@gnu.org>
parents:
4122
diff
changeset
|
2702 "Given an X font specification, make a non-italic version of it. |
e7ab04f23df5
Make boldness and italicness affect subsequently created frames.
Richard M. Stallman <rms@gnu.org>
parents:
4122
diff
changeset
|
2703 If that can't be done, return nil." |
40351
a44d4a7dd8de
(internal-get-face): Use facep instead of the obsolete
Eli Zaretskii <eliz@gnu.org>
parents:
39830
diff
changeset
|
2704 (internal-frob-font-slant font "r")) |
29354
4ed4a700358b
Update calls to make-obsolete with a WHEN argument.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
28907
diff
changeset
|
2705 (make-obsolete 'x-make-font-unitalic 'make-face-unitalic "21.1") |
25012 | 2706 |
17752
2687f3d7c191
(x-make-font-bold-italic): New function.
Kenichi Handa <handa@m17n.org>
parents:
17560
diff
changeset
|
2707 (defun x-make-font-bold-italic (font) |
2687f3d7c191
(x-make-font-bold-italic): New function.
Kenichi Handa <handa@m17n.org>
parents:
17560
diff
changeset
|
2708 "Given an X font specification, make a bold and italic version of it. |
2687f3d7c191
(x-make-font-bold-italic): New function.
Kenichi Handa <handa@m17n.org>
parents:
17560
diff
changeset
|
2709 If that can't be done, return nil." |
40351
a44d4a7dd8de
(internal-get-face): Use facep instead of the obsolete
Eli Zaretskii <eliz@gnu.org>
parents:
39830
diff
changeset
|
2710 (and (setq font (internal-frob-font-weight font "bold")) |
a44d4a7dd8de
(internal-get-face): Use facep instead of the obsolete
Eli Zaretskii <eliz@gnu.org>
parents:
39830
diff
changeset
|
2711 (internal-frob-font-slant font "i"))) |
29354
4ed4a700358b
Update calls to make-obsolete with a WHEN argument.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
28907
diff
changeset
|
2712 (make-obsolete 'x-make-font-bold-italic 'make-face-bold-italic "21.1") |
2456 | 2713 |
2715
9caee9338229
* faces.el: Call internal-set-face-1, not internat-set-face-1.
Jim Blandy <jimb@redhat.com>
parents:
2714
diff
changeset
|
2714 (provide 'faces) |
9caee9338229
* faces.el: Call internal-set-face-1, not internat-set-face-1.
Jim Blandy <jimb@redhat.com>
parents:
2714
diff
changeset
|
2715 |
63382
9cbfa983c1cf
(read-face-name): Use complete-in-turn complete non-aliases
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
63311
diff
changeset
|
2716 ;; arch-tag: 19a4759f-2963-445f-b004-425b9aadd7d6 |
28840 | 2717 ;;; faces.el ends here |