Mercurial > hg > xemacs-beta
annotate lisp/fontcolor.el @ 5178:97eb4942aec8
merge
author | Ben Wing <ben@xemacs.org> |
---|---|
date | Mon, 29 Mar 2010 21:28:13 -0500 |
parents | lisp/objects.el@5502045ec510 lisp/objects.el@8b2f75cecb89 |
children | 308d34e9f07d |
rev | line source |
---|---|
5176
8b2f75cecb89
rename objects* (.c, .h and .el files) to fontcolor*
Ben Wing <ben@xemacs.org>
parents:
4201
diff
changeset
|
1 ;;; fontcolor.el --- Lisp interface to fonts and colors |
428 | 2 |
3 ;; Copyright (C) 1994, 1997 Free Software Foundation, Inc. | |
4 ;; Copyright (C) 1995 Ben Wing | |
5080
5502045ec510
The background-placement face property.
Didier Verna <didier@lrde.epita.fr>
parents:
4201
diff
changeset
|
5 ;; Copyright (C) 2010 Didier Verna |
428 | 6 |
7 ;; Author: Chuck Thompson <cthomp@xemacs.org> | |
8 ;; Author: Ben Wing <ben@xemacs.org> | |
9 ;; Maintainer: XEmacs Development Team | |
10 ;; Keywords: faces, internal, dumped | |
11 | |
12 ;; This file is part of XEmacs. | |
13 | |
14 ;; XEmacs is free software; you can redistribute it and/or modify it | |
15 ;; under the terms of the GNU General Public License as published by | |
16 ;; the Free Software Foundation; either version 2, or (at your option) | |
17 ;; any later version. | |
18 | |
19 ;; XEmacs is distributed in the hope that it will be useful, but | |
20 ;; WITHOUT ANY WARRANTY; without even the implied warranty of | |
21 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
22 ;; General Public License for more details. | |
23 | |
24 ;; You should have received a copy of the GNU General Public License | |
25 ;; along with XEmacs; see the file COPYING. If not, write to the | |
26 ;; Free Software Foundation, 59 Temple Place - Suite 330, | |
27 ;; Boston, MA 02111-1307, USA. | |
28 | |
29 ;;; Synched up with: Not in FSF. | |
30 | |
31 ;;; Commentary: | |
32 | |
33 ;; This file is dumped with XEmacs. | |
34 | |
35 ;;; Code: | |
36 | |
5176
8b2f75cecb89
rename objects* (.c, .h and .el files) to fontcolor*
Ben Wing <ben@xemacs.org>
parents:
4201
diff
changeset
|
37 (defun fontcolor-property-1 (function object domain &optional matchspec) |
428 | 38 (let ((instance (if matchspec |
39 (specifier-matching-instance object matchspec domain) | |
40 (specifier-instance object domain)))) | |
41 (and instance (funcall function instance)))) | |
42 | |
43 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; font specifiers | |
44 | |
45 (defun make-font-specifier (spec-list) | |
46 "Return a new `font' specifier object with the given specification list. | |
47 SPEC-LIST can be a list of specifications (each of which is a cons of a | |
48 locale and a list of instantiators), a single instantiator, or a list | |
49 of instantiators. See `make-specifier' for more information about | |
442 | 50 specifiers. |
51 | |
52 Valid instantiators for font specifiers are: | |
53 | |
3111 | 54 -- a string naming a font; syntax is platform dependent. Some examples for |
55 a 14-point upright medium-weight Courier font: | |
56 X11 (and GTK1): \"-*-courier-medium-r-*-*-*-140-*-*-*-*-iso8859-*\" | |
57 Xft (and GTK2): \"Courier-14\" | |
58 MS-Windows: \"Courier:14:Western\" | |
442 | 59 -- a font instance (use that instance directly if the device matches, |
60 or use the string that generated it) | |
61 -- a vector of no elements (only on TTY's; this means to set no font | |
62 at all, thus using the \"natural\" font of the terminal's text) | |
63 -- a vector of one element (a face to inherit from) | |
64 " | |
428 | 65 (make-specifier-and-init 'font spec-list)) |
66 | |
67 (defun font-name (font &optional domain charset) | |
68 "Return the name of the FONT in the specified DOMAIN, if any. | |
69 FONT should be a font specifier object and DOMAIN is normally a window | |
70 and defaults to the selected window if omitted. This is equivalent | |
71 to using `specifier-instance' and applying `font-instance-name' to | |
72 the result. See `make-specifier' for more information about specifiers." | |
5176
8b2f75cecb89
rename objects* (.c, .h and .el files) to fontcolor*
Ben Wing <ben@xemacs.org>
parents:
4201
diff
changeset
|
73 (fontcolor-property-1 'font-instance-name font domain charset)) |
428 | 74 |
75 (defun font-ascent (font &optional domain charset) | |
76 "Return the ascent of the FONT in the specified DOMAIN, if any. | |
77 FONT should be a font specifier object and DOMAIN is normally a window | |
78 and defaults to the selected window if omitted. This is equivalent | |
79 to using `specifier-instance' and applying `font-instance-ascent' to | |
80 the result. See `make-specifier' for more information about specifiers." | |
5176
8b2f75cecb89
rename objects* (.c, .h and .el files) to fontcolor*
Ben Wing <ben@xemacs.org>
parents:
4201
diff
changeset
|
81 (fontcolor-property-1 'font-instance-ascent font domain charset)) |
428 | 82 |
83 (defun font-descent (font &optional domain charset) | |
84 "Return the descent of the FONT in the specified DOMAIN, if any. | |
85 FONT should be a font specifier object and DOMAIN is normally a window | |
86 and defaults to the selected window if omitted. This is equivalent | |
87 to using `specifier-instance' and applying `font-instance-descent' to | |
88 the result. See `make-specifier' for more information about specifiers." | |
5176
8b2f75cecb89
rename objects* (.c, .h and .el files) to fontcolor*
Ben Wing <ben@xemacs.org>
parents:
4201
diff
changeset
|
89 (fontcolor-property-1 'font-instance-descent font domain charset)) |
428 | 90 |
91 (defun font-width (font &optional domain charset) | |
92 "Return the width of the FONT in the specified DOMAIN, if any. | |
93 FONT should be a font specifier object and DOMAIN is normally a window | |
94 and defaults to the selected window if omitted. This is equivalent | |
95 to using `specifier-instance' and applying `font-instance-width' to | |
96 the result. See `make-specifier' for more information about specifiers." | |
5176
8b2f75cecb89
rename objects* (.c, .h and .el files) to fontcolor*
Ben Wing <ben@xemacs.org>
parents:
4201
diff
changeset
|
97 (fontcolor-property-1 'font-instance-width font domain charset)) |
428 | 98 |
99 (defun font-height (font &optional domain charset) | |
100 "Return the height of the FONT in the specified DOMAIN, if any. | |
101 FONT should be a font specifier object and DOMAIN is normally a window | |
102 and defaults to the selected window if omitted. This is equivalent | |
103 to using `specifier-instance' and applying `font-instance-height' to | |
104 the result. See `make-specifier' for more information about specifiers." | |
5176
8b2f75cecb89
rename objects* (.c, .h and .el files) to fontcolor*
Ben Wing <ben@xemacs.org>
parents:
4201
diff
changeset
|
105 (fontcolor-property-1 'font-instance-height font domain charset)) |
428 | 106 |
107 (defun font-proportional-p (font &optional domain charset) | |
108 "Return whether FONT is proportional in the specified DOMAIN, if known. | |
109 FONT should be a font specifier object and DOMAIN is normally a window | |
110 and defaults to the selected window if omitted. This is equivalent | |
111 to using `specifier-instance' and applying `font-instance-proportional-p' to | |
112 the result. See `make-specifier' for more information about specifiers." | |
5176
8b2f75cecb89
rename objects* (.c, .h and .el files) to fontcolor*
Ben Wing <ben@xemacs.org>
parents:
4201
diff
changeset
|
113 (fontcolor-property-1 'font-instance-proportional-p font domain charset)) |
428 | 114 |
115 (defun font-properties (font &optional domain charset) | |
116 "Return the properties of the FONT in the specified DOMAIN, if any. | |
117 FONT should be a font specifier object and DOMAIN is normally a window | |
118 and defaults to the selected window if omitted. This is equivalent | |
119 to using `specifier-instance' and applying `font-instance-properties' | |
120 to the result. See `make-specifier' for more information about specifiers." | |
5176
8b2f75cecb89
rename objects* (.c, .h and .el files) to fontcolor*
Ben Wing <ben@xemacs.org>
parents:
4201
diff
changeset
|
121 (fontcolor-property-1 'font-instance-properties font domain charset)) |
428 | 122 |
123 (defun font-truename (font &optional domain charset) | |
124 "Return the truename of the FONT in the specified DOMAIN, if any. | |
125 FONT should be a font specifier object and DOMAIN is normally a window | |
126 and defaults to the selected window if omitted. This is equivalent | |
127 to using `specifier-instance' and applying `font-instance-truename' | |
128 to the result. See `make-specifier' for more information about specifiers." | |
5176
8b2f75cecb89
rename objects* (.c, .h and .el files) to fontcolor*
Ben Wing <ben@xemacs.org>
parents:
4201
diff
changeset
|
129 (fontcolor-property-1 'font-instance-truename font domain charset)) |
428 | 130 |
131 (defun font-instance-height (font-instance) | |
132 "Return the height in pixels of FONT-INSTANCE. | |
133 The returned value is the maximum height for all characters in the font,\n\ | |
134 and is equivalent to the sum of the font instance's ascent and descent." | |
135 (+ (font-instance-ascent font-instance) | |
136 (font-instance-descent font-instance))) | |
137 | |
138 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; color specifiers | |
139 | |
140 (defun make-color-specifier (spec-list) | |
141 "Return a new `color' specifier object with the given specification list. | |
142 SPEC-LIST can be a list of specifications (each of which is a cons of a | |
143 locale and a list of instantiators), a single instantiator, or a list | |
144 of instantiators. See `make-specifier' for a detailed description of | |
442 | 145 how specifiers work. |
146 | |
147 Valid instantiators for color specifiers are: | |
148 | |
149 -- a string naming a color (e.g. under X this might be \"lightseagreen2\" | |
150 or \"#F534B2\") | |
151 -- a color instance (use that instance directly if the device matches, | |
152 or use the string that generated it) | |
153 -- a vector of no elements (only on TTY's; this means to set no color | |
154 at all, thus using the \"natural\" color of the terminal's text) | |
155 -- a vector of one or two elements: a face to inherit from, and | |
156 optionally a symbol naming which property of that face to inherit, | |
157 either `foreground' or `background' (if omitted, defaults to the same | |
158 property that this color specifier is used for; if this specifier is | |
159 not part of a face, the instantiator would not be valid)." | |
428 | 160 (make-specifier-and-init 'color spec-list)) |
161 | |
162 (defun color-name (color &optional domain) | |
163 "Return the name of the COLOR in the specified DOMAIN, if any. | |
164 COLOR should be a color specifier object and DOMAIN is normally a window | |
165 and defaults to the selected window if omitted. This is equivalent | |
166 to using `specifier-instance' and applying `color-instance-name' to | |
167 the result. See `make-specifier' for more information about specifiers." | |
5176
8b2f75cecb89
rename objects* (.c, .h and .el files) to fontcolor*
Ben Wing <ben@xemacs.org>
parents:
4201
diff
changeset
|
168 (fontcolor-property-1 'color-instance-name color domain)) |
428 | 169 |
170 (defun color-rgb-components (color &optional domain) | |
171 "Return the RGB components of the COLOR in the specified DOMAIN, if any. | |
172 COLOR should be a color specifier object and DOMAIN is normally a window | |
173 and defaults to the selected window if omitted. This is equivalent | |
174 to using `specifier-instance' and applying `color-instance-rgb-components' | |
175 to the result. See `make-specifier' for more information about specifiers." | |
5176
8b2f75cecb89
rename objects* (.c, .h and .el files) to fontcolor*
Ben Wing <ben@xemacs.org>
parents:
4201
diff
changeset
|
176 (fontcolor-property-1 'color-instance-rgb-components color domain)) |
428 | 177 |
442 | 178 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; face-boolean specifiers |
179 | |
180 (defun make-face-boolean-specifier (spec-list) | |
181 "Return a new `face-boolean' specifier object with the given spec list. | |
182 SPEC-LIST can be a list of specifications (each of which is a cons of a | |
183 locale and a list of instantiators), a single instantiator, or a list | |
184 of instantiators. See `make-specifier' for a detailed description of | |
185 how specifiers work. | |
186 | |
187 Valid instantiators for face-boolean specifiers are | |
188 | |
189 -- t or nil | |
4201 | 190 -- a vector of one, two or three elements: a face to inherit from, |
442 | 191 optionally a symbol naming the property of that face to inherit from |
192 (if omitted, defaults to the same property that this face-boolean | |
193 specifier is used for; if this specifier is not part of a face, | |
194 the instantiator would not be valid), and optionally a value which, | |
195 if non-nil, means to invert the sense of the inherited property." | |
4201 | 196 (make-specifier-and-init 'face-boolean spec-list)) |
442 | 197 |
5080
5502045ec510
The background-placement face property.
Didier Verna <didier@lrde.epita.fr>
parents:
4201
diff
changeset
|
198 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; face-background-placement specifiers |
5502045ec510
The background-placement face property.
Didier Verna <didier@lrde.epita.fr>
parents:
4201
diff
changeset
|
199 |
5502045ec510
The background-placement face property.
Didier Verna <didier@lrde.epita.fr>
parents:
4201
diff
changeset
|
200 (defun make-face-background-placement-specifier (spec-list) |
5502045ec510
The background-placement face property.
Didier Verna <didier@lrde.epita.fr>
parents:
4201
diff
changeset
|
201 "Return a new `face-background-placement' specifier object. |
5502045ec510
The background-placement face property.
Didier Verna <didier@lrde.epita.fr>
parents:
4201
diff
changeset
|
202 SPEC-LIST can be a list of specifications (each of which is a cons of a |
5502045ec510
The background-placement face property.
Didier Verna <didier@lrde.epita.fr>
parents:
4201
diff
changeset
|
203 locale and a list of instantiators), a single instantiator, or a list |
5502045ec510
The background-placement face property.
Didier Verna <didier@lrde.epita.fr>
parents:
4201
diff
changeset
|
204 of instantiators. See `make-specifier' for a detailed description of |
5502045ec510
The background-placement face property.
Didier Verna <didier@lrde.epita.fr>
parents:
4201
diff
changeset
|
205 how specifiers work. |
5502045ec510
The background-placement face property.
Didier Verna <didier@lrde.epita.fr>
parents:
4201
diff
changeset
|
206 |
5502045ec510
The background-placement face property.
Didier Verna <didier@lrde.epita.fr>
parents:
4201
diff
changeset
|
207 Valid instantiators for face-background-placement specifiers are: |
5502045ec510
The background-placement face property.
Didier Verna <didier@lrde.epita.fr>
parents:
4201
diff
changeset
|
208 -- absolute or relative (symbols), |
5502045ec510
The background-placement face property.
Didier Verna <didier@lrde.epita.fr>
parents:
4201
diff
changeset
|
209 -- a vector of one element: a face to inherit from." |
5502045ec510
The background-placement face property.
Didier Verna <didier@lrde.epita.fr>
parents:
4201
diff
changeset
|
210 (make-specifier-and-init 'face-background-placement spec-list)) |
5502045ec510
The background-placement face property.
Didier Verna <didier@lrde.epita.fr>
parents:
4201
diff
changeset
|
211 |
5176
8b2f75cecb89
rename objects* (.c, .h and .el files) to fontcolor*
Ben Wing <ben@xemacs.org>
parents:
4201
diff
changeset
|
212 ;;; fontcolor.el ends here. |