annotate src/objects-msw.c @ 771:943eaba38521

[xemacs-hg @ 2002-03-13 08:51:24 by ben] The big ben-mule-21-5 check-in! Various files were added and deleted. See CHANGES-ben-mule. There are still some test suite failures. No crashes, though. Many of the failures have to do with problems in the test suite itself rather than in the actual code. I'll be addressing these in the next day or so -- none of the test suite failures are at all critical. Meanwhile I'll be trying to address the biggest issues -- i.e. build or run failures, which will almost certainly happen on various platforms. All comments should be sent to ben@xemacs.org -- use a Cc: if necessary when sending to mailing lists. There will be pre- and post- tags, something like pre-ben-mule-21-5-merge-in, and post-ben-mule-21-5-merge-in.
author ben
date Wed, 13 Mar 2002 08:54:06 +0000
parents fdefd0186b75
children 026c5bf9c134
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1 /* mswindows-specific Lisp objects.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2 Copyright (C) 1993, 1994 Free Software Foundation, Inc.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3 Copyright (C) 1995 Board of Trustees, University of Illinois.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4 Copyright (C) 1995 Tinker Systems.
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
5 Copyright (C) 1995, 1996, 2000, 2001 Ben Wing.
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6 Copyright (C) 1995 Sun Microsystems, Inc.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
7 Copyright (C) 1997 Jonathan Harris.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
8
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
9 This file is part of XEmacs.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
10
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
11 XEmacs is free software; you can redistribute it and/or modify it
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
12 under the terms of the GNU General Public License as published by the
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
13 Free Software Foundation; either version 2, or (at your option) any
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
14 later version.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
15
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
16 XEmacs is distributed in the hope that it will be useful, but WITHOUT
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
17 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
18 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
19 for more details.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
20
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
21 You should have received a copy of the GNU General Public License
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
22 along with XEmacs; see the file COPYING. If not, write to
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
23 the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
24 Boston, MA 02111-1307, USA. */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
25
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
26 /* Synched up with: Not in FSF. */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
27
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
28 /* Authorship:
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
29
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
30 Jamie Zawinski, Chuck Thompson, Ben Wing
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
31 Rewritten for mswindows by Jonathan Harris, November 1997 for 21.0.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
32 */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
33
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
34 /* This function mostly Mule-ized (except perhaps some Unicode splitting).
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
35 5-2000. */
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
36
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
37 /* TODO: palette handling */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
38
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
39 #include <config.h>
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
40 #include "lisp.h"
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
41 #include "hash.h"
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
42
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
43 #include "console-msw.h"
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
44 #include "objects-msw.h"
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
45 #include "buffer.h"
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
46 #include "charset.h"
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
47 #include "device.h"
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
48 #include "insdel.h"
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
49
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
50 typedef struct colormap_t
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
51 {
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
52 const Char_ASCII *name;
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
53 COLORREF colorref;
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
54 } colormap_t;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
55
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
56 /* Colors from X11R6 "XConsortium: rgb.txt,v 10.41 94/02/20 18:39:36 rws Exp" */
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
57 /* MSWindows tends to round up the numbers in its palette, ie where X uses
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
58 * 127, MSWindows uses 128. Colors commented as "Adjusted" are tweaked to
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
59 * match the Windows standard palette to increase the likelihood of
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
60 * mswindows_color_to_string() finding a named match.
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
61 */
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
62 static const colormap_t mswindows_X_color_map[] =
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
63 {
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
64 {"white" , PALETTERGB (255, 255, 255) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
65 {"black" , PALETTERGB (0, 0, 0) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
66 {"snow" , PALETTERGB (255, 250, 250) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
67 {"GhostWhite" , PALETTERGB (248, 248, 255) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
68 {"WhiteSmoke" , PALETTERGB (245, 245, 245) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
69 {"gainsboro" , PALETTERGB (220, 220, 220) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
70 {"FloralWhite" , PALETTERGB (255, 250, 240) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
71 {"OldLace" , PALETTERGB (253, 245, 230) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
72 {"linen" , PALETTERGB (250, 240, 230) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
73 {"AntiqueWhite" , PALETTERGB (250, 235, 215) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
74 {"PapayaWhip" , PALETTERGB (255, 239, 213) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
75 {"BlanchedAlmond" , PALETTERGB (255, 235, 205) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
76 {"bisque" , PALETTERGB (255, 228, 196) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
77 {"PeachPuff" , PALETTERGB (255, 218, 185) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
78 {"NavajoWhite" , PALETTERGB (255, 222, 173) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
79 {"moccasin" , PALETTERGB (255, 228, 181) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
80 {"cornsilk" , PALETTERGB (255, 248, 220) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
81 {"ivory" , PALETTERGB (255, 255, 240) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
82 {"LemonChiffon" , PALETTERGB (255, 250, 205) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
83 {"seashell" , PALETTERGB (255, 245, 238) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
84 {"honeydew" , PALETTERGB (240, 255, 240) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
85 {"MintCream" , PALETTERGB (245, 255, 250) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
86 {"azure" , PALETTERGB (240, 255, 255) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
87 {"AliceBlue" , PALETTERGB (240, 248, 255) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
88 {"lavender" , PALETTERGB (230, 230, 250) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
89 {"LavenderBlush" , PALETTERGB (255, 240, 245) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
90 {"MistyRose" , PALETTERGB (255, 228, 225) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
91 {"DarkSlateGray" , PALETTERGB (47, 79, 79) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
92 {"DarkSlateGrey" , PALETTERGB (47, 79, 79) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
93 {"DimGray" , PALETTERGB (105, 105, 105) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
94 {"DimGrey" , PALETTERGB (105, 105, 105) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
95 {"SlateGray" , PALETTERGB (112, 128, 144) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
96 {"SlateGrey" , PALETTERGB (112, 128, 144) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
97 {"LightSlateGray" , PALETTERGB (119, 136, 153) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
98 {"LightSlateGrey" , PALETTERGB (119, 136, 153) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
99 {"gray" , PALETTERGB (190, 190, 190) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
100 {"grey" , PALETTERGB (190, 190, 190) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
101 {"LightGrey" , PALETTERGB (211, 211, 211) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
102 {"LightGray" , PALETTERGB (211, 211, 211) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
103 {"MidnightBlue" , PALETTERGB (25, 25, 112) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
104 {"navy" , PALETTERGB (0, 0, 128) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
105 {"NavyBlue" , PALETTERGB (0, 0, 128) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
106 {"CornflowerBlue" , PALETTERGB (100, 149, 237) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
107 {"DarkSlateBlue" , PALETTERGB (72, 61, 139) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
108 {"SlateBlue" , PALETTERGB (106, 90, 205) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
109 {"MediumSlateBlue" , PALETTERGB (123, 104, 238) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
110 {"LightSlateBlue" , PALETTERGB (132, 112, 255) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
111 {"MediumBlue" , PALETTERGB (0, 0, 205) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
112 {"RoyalBlue" , PALETTERGB (65, 105, 225) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
113 {"blue" , PALETTERGB (0, 0, 255) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
114 {"DodgerBlue" , PALETTERGB (30, 144, 255) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
115 {"DeepSkyBlue" , PALETTERGB (0, 191, 255) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
116 {"SkyBlue" , PALETTERGB (135, 206, 235) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
117 {"LightSkyBlue" , PALETTERGB (135, 206, 250) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
118 {"SteelBlue" , PALETTERGB (70, 130, 180) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
119 {"LightSteelBlue" , PALETTERGB (176, 196, 222) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
120 {"LightBlue" , PALETTERGB (173, 216, 230) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
121 {"PowderBlue" , PALETTERGB (176, 224, 230) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
122 {"PaleTurquoise" , PALETTERGB (175, 238, 238) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
123 {"DarkTurquoise" , PALETTERGB (0, 206, 209) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
124 {"MediumTurquoise" , PALETTERGB (72, 209, 204) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
125 {"turquoise" , PALETTERGB (64, 224, 208) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
126 {"cyan" , PALETTERGB (0, 255, 255) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
127 {"LightCyan" , PALETTERGB (224, 255, 255) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
128 {"CadetBlue" , PALETTERGB (95, 158, 160) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
129 {"MediumAquamarine" , PALETTERGB (102, 205, 170) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
130 {"aquamarine" , PALETTERGB (127, 255, 212) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
131 {"DarkGreen" , PALETTERGB (0, 128, 0) }, /* Adjusted */
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
132 {"DarkOliveGreen" , PALETTERGB (85, 107, 47) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
133 {"DarkSeaGreen" , PALETTERGB (143, 188, 143) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
134 {"SeaGreen" , PALETTERGB (46, 139, 87) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
135 {"MediumSeaGreen" , PALETTERGB (60, 179, 113) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
136 {"LightSeaGreen" , PALETTERGB (32, 178, 170) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
137 {"PaleGreen" , PALETTERGB (152, 251, 152) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
138 {"SpringGreen" , PALETTERGB (0, 255, 127) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
139 {"LawnGreen" , PALETTERGB (124, 252, 0) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
140 {"green" , PALETTERGB (0, 255, 0) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
141 {"chartreuse" , PALETTERGB (127, 255, 0) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
142 {"MediumSpringGreen" , PALETTERGB (0, 250, 154) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
143 {"GreenYellow" , PALETTERGB (173, 255, 47) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
144 {"LimeGreen" , PALETTERGB (50, 205, 50) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
145 {"YellowGreen" , PALETTERGB (154, 205, 50) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
146 {"ForestGreen" , PALETTERGB (34, 139, 34) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
147 {"OliveDrab" , PALETTERGB (107, 142, 35) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
148 {"DarkKhaki" , PALETTERGB (189, 183, 107) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
149 {"khaki" , PALETTERGB (240, 230, 140) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
150 {"PaleGoldenrod" , PALETTERGB (238, 232, 170) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
151 {"LightGoldenrodYellow", PALETTERGB (250, 250, 210) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
152 {"LightYellow" , PALETTERGB (255, 255, 224) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
153 {"LightYellow" , PALETTERGB (255, 255, 225) }, /* Adjusted */
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
154 {"yellow" , PALETTERGB (255, 255, 0) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
155 {"gold" , PALETTERGB (255, 215, 0) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
156 {"LightGoldenrod" , PALETTERGB (238, 221, 130) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
157 {"goldenrod" , PALETTERGB (218, 165, 32) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
158 {"DarkGoldenrod" , PALETTERGB (184, 134, 11) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
159 {"RosyBrown" , PALETTERGB (188, 143, 143) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
160 {"IndianRed" , PALETTERGB (205, 92, 92) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
161 {"SaddleBrown" , PALETTERGB (139, 69, 19) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
162 {"sienna" , PALETTERGB (160, 82, 45) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
163 {"peru" , PALETTERGB (205, 133, 63) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
164 {"burlywood" , PALETTERGB (222, 184, 135) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
165 {"beige" , PALETTERGB (245, 245, 220) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
166 {"wheat" , PALETTERGB (245, 222, 179) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
167 {"SandyBrown" , PALETTERGB (244, 164, 96) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
168 {"tan" , PALETTERGB (210, 180, 140) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
169 {"chocolate" , PALETTERGB (210, 105, 30) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
170 {"firebrick" , PALETTERGB (178, 34, 34) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
171 {"brown" , PALETTERGB (165, 42, 42) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
172 {"DarkSalmon" , PALETTERGB (233, 150, 122) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
173 {"salmon" , PALETTERGB (250, 128, 114) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
174 {"LightSalmon" , PALETTERGB (255, 160, 122) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
175 {"orange" , PALETTERGB (255, 165, 0) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
176 {"DarkOrange" , PALETTERGB (255, 140, 0) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
177 {"coral" , PALETTERGB (255, 127, 80) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
178 {"LightCoral" , PALETTERGB (240, 128, 128) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
179 {"tomato" , PALETTERGB (255, 99, 71) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
180 {"OrangeRed" , PALETTERGB (255, 69, 0) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
181 {"red" , PALETTERGB (255, 0, 0) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
182 {"HotPink" , PALETTERGB (255, 105, 180) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
183 {"DeepPink" , PALETTERGB (255, 20, 147) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
184 {"pink" , PALETTERGB (255, 192, 203) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
185 {"LightPink" , PALETTERGB (255, 182, 193) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
186 {"PaleVioletRed" , PALETTERGB (219, 112, 147) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
187 {"maroon" , PALETTERGB (176, 48, 96) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
188 {"MediumVioletRed" , PALETTERGB (199, 21, 133) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
189 {"VioletRed" , PALETTERGB (208, 32, 144) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
190 {"magenta" , PALETTERGB (255, 0, 255) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
191 {"violet" , PALETTERGB (238, 130, 238) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
192 {"plum" , PALETTERGB (221, 160, 221) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
193 {"orchid" , PALETTERGB (218, 112, 214) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
194 {"MediumOrchid" , PALETTERGB (186, 85, 211) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
195 {"DarkOrchid" , PALETTERGB (153, 50, 204) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
196 {"DarkViolet" , PALETTERGB (148, 0, 211) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
197 {"BlueViolet" , PALETTERGB (138, 43, 226) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
198 {"purple" , PALETTERGB (160, 32, 240) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
199 {"MediumPurple" , PALETTERGB (147, 112, 219) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
200 {"thistle" , PALETTERGB (216, 191, 216) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
201 {"snow1" , PALETTERGB (255, 250, 250) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
202 {"snow2" , PALETTERGB (238, 233, 233) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
203 {"snow3" , PALETTERGB (205, 201, 201) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
204 {"snow4" , PALETTERGB (139, 137, 137) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
205 {"seashell1" , PALETTERGB (255, 245, 238) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
206 {"seashell2" , PALETTERGB (238, 229, 222) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
207 {"seashell3" , PALETTERGB (205, 197, 191) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
208 {"seashell4" , PALETTERGB (139, 134, 130) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
209 {"AntiqueWhite1" , PALETTERGB (255, 239, 219) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
210 {"AntiqueWhite2" , PALETTERGB (238, 223, 204) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
211 {"AntiqueWhite3" , PALETTERGB (205, 192, 176) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
212 {"AntiqueWhite4" , PALETTERGB (139, 131, 120) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
213 {"bisque1" , PALETTERGB (255, 228, 196) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
214 {"bisque2" , PALETTERGB (238, 213, 183) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
215 {"bisque3" , PALETTERGB (205, 183, 158) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
216 {"bisque4" , PALETTERGB (139, 125, 107) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
217 {"PeachPuff1" , PALETTERGB (255, 218, 185) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
218 {"PeachPuff2" , PALETTERGB (238, 203, 173) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
219 {"PeachPuff3" , PALETTERGB (205, 175, 149) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
220 {"PeachPuff4" , PALETTERGB (139, 119, 101) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
221 {"NavajoWhite1" , PALETTERGB (255, 222, 173) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
222 {"NavajoWhite2" , PALETTERGB (238, 207, 161) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
223 {"NavajoWhite3" , PALETTERGB (205, 179, 139) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
224 {"NavajoWhite4" , PALETTERGB (139, 121, 94) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
225 {"LemonChiffon1" , PALETTERGB (255, 250, 205) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
226 {"LemonChiffon2" , PALETTERGB (238, 233, 191) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
227 {"LemonChiffon3" , PALETTERGB (205, 201, 165) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
228 {"LemonChiffon4" , PALETTERGB (139, 137, 112) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
229 {"cornsilk1" , PALETTERGB (255, 248, 220) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
230 {"cornsilk2" , PALETTERGB (238, 232, 205) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
231 {"cornsilk3" , PALETTERGB (205, 200, 177) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
232 {"cornsilk4" , PALETTERGB (139, 136, 120) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
233 {"ivory1" , PALETTERGB (255, 255, 240) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
234 {"ivory2" , PALETTERGB (240, 240, 208) }, /* Adjusted */
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
235 {"ivory3" , PALETTERGB (205, 205, 193) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
236 {"ivory4" , PALETTERGB (139, 139, 131) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
237 {"honeydew1" , PALETTERGB (240, 255, 240) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
238 {"honeydew2" , PALETTERGB (224, 238, 224) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
239 {"honeydew3" , PALETTERGB (193, 205, 193) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
240 {"honeydew4" , PALETTERGB (131, 139, 131) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
241 {"LavenderBlush1" , PALETTERGB (255, 240, 245) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
242 {"LavenderBlush2" , PALETTERGB (238, 224, 229) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
243 {"LavenderBlush3" , PALETTERGB (205, 193, 197) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
244 {"LavenderBlush4" , PALETTERGB (139, 131, 134) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
245 {"MistyRose1" , PALETTERGB (255, 228, 225) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
246 {"MistyRose2" , PALETTERGB (238, 213, 210) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
247 {"MistyRose3" , PALETTERGB (205, 183, 181) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
248 {"MistyRose4" , PALETTERGB (139, 125, 123) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
249 {"azure1" , PALETTERGB (240, 255, 255) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
250 {"azure2" , PALETTERGB (224, 238, 238) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
251 {"azure3" , PALETTERGB (193, 205, 205) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
252 {"azure4" , PALETTERGB (131, 139, 139) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
253 {"SlateBlue1" , PALETTERGB (131, 111, 255) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
254 {"SlateBlue2" , PALETTERGB (122, 103, 238) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
255 {"SlateBlue3" , PALETTERGB (105, 89, 205) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
256 {"SlateBlue4" , PALETTERGB (71, 60, 139) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
257 {"RoyalBlue1" , PALETTERGB (72, 118, 255) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
258 {"RoyalBlue2" , PALETTERGB (67, 110, 238) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
259 {"RoyalBlue3" , PALETTERGB (58, 95, 205) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
260 {"RoyalBlue4" , PALETTERGB (39, 64, 139) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
261 {"blue1" , PALETTERGB (0, 0, 255) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
262 {"blue2" , PALETTERGB (0, 0, 238) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
263 {"blue3" , PALETTERGB (0, 0, 205) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
264 {"blue4" , PALETTERGB (0, 0, 139) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
265 {"DodgerBlue1" , PALETTERGB (30, 144, 255) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
266 {"DodgerBlue2" , PALETTERGB (28, 134, 238) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
267 {"DodgerBlue3" , PALETTERGB (24, 116, 205) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
268 {"DodgerBlue4" , PALETTERGB (16, 78, 139) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
269 {"SteelBlue1" , PALETTERGB (99, 184, 255) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
270 {"SteelBlue2" , PALETTERGB (92, 172, 238) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
271 {"SteelBlue3" , PALETTERGB (79, 148, 205) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
272 {"SteelBlue4" , PALETTERGB (54, 100, 139) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
273 {"DeepSkyBlue1" , PALETTERGB (0, 191, 255) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
274 {"DeepSkyBlue2" , PALETTERGB (0, 178, 238) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
275 {"DeepSkyBlue3" , PALETTERGB (0, 154, 205) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
276 {"DeepSkyBlue4" , PALETTERGB (0, 104, 139) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
277 {"SkyBlue1" , PALETTERGB (135, 206, 255) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
278 {"SkyBlue2" , PALETTERGB (126, 192, 238) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
279 {"SkyBlue3" , PALETTERGB (108, 166, 205) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
280 {"SkyBlue4" , PALETTERGB (74, 112, 139) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
281 {"LightSkyBlue1" , PALETTERGB (176, 226, 255) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
282 {"LightSkyBlue2" , PALETTERGB (164, 211, 238) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
283 {"LightSkyBlue3" , PALETTERGB (141, 182, 205) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
284 {"LightSkyBlue4" , PALETTERGB (96, 123, 139) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
285 {"SlateGray1" , PALETTERGB (198, 226, 255) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
286 {"SlateGray2" , PALETTERGB (185, 211, 238) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
287 {"SlateGray3" , PALETTERGB (159, 182, 205) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
288 {"SlateGray4" , PALETTERGB (108, 123, 139) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
289 {"LightSteelBlue1" , PALETTERGB (202, 225, 255) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
290 {"LightSteelBlue2" , PALETTERGB (188, 210, 238) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
291 {"LightSteelBlue3" , PALETTERGB (162, 181, 205) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
292 {"LightSteelBlue4" , PALETTERGB (110, 123, 139) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
293 {"LightBlue1" , PALETTERGB (191, 239, 255) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
294 {"LightBlue2" , PALETTERGB (178, 223, 238) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
295 {"LightBlue3" , PALETTERGB (154, 192, 205) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
296 {"LightBlue4" , PALETTERGB (104, 131, 139) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
297 {"LightCyan1" , PALETTERGB (224, 255, 255) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
298 {"LightCyan2" , PALETTERGB (209, 238, 238) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
299 {"LightCyan3" , PALETTERGB (180, 205, 205) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
300 {"LightCyan4" , PALETTERGB (122, 139, 139) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
301 {"PaleTurquoise1" , PALETTERGB (187, 255, 255) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
302 {"PaleTurquoise2" , PALETTERGB (174, 238, 238) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
303 {"PaleTurquoise3" , PALETTERGB (150, 205, 205) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
304 {"PaleTurquoise4" , PALETTERGB (102, 139, 139) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
305 {"CadetBlue1" , PALETTERGB (152, 245, 255) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
306 {"CadetBlue2" , PALETTERGB (144, 220, 240) }, /* Adjusted */
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
307 {"CadetBlue3" , PALETTERGB (122, 197, 205) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
308 {"CadetBlue4" , PALETTERGB (83, 134, 139) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
309 {"turquoise1" , PALETTERGB (0, 245, 255) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
310 {"turquoise2" , PALETTERGB (0, 229, 238) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
311 {"turquoise3" , PALETTERGB (0, 197, 205) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
312 {"turquoise4" , PALETTERGB (0, 134, 139) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
313 {"cyan1" , PALETTERGB (0, 255, 255) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
314 {"cyan2" , PALETTERGB (0, 238, 238) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
315 {"cyan3" , PALETTERGB (0, 205, 205) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
316 {"cyan4" , PALETTERGB (0, 139, 139) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
317 {"DarkSlateGray1" , PALETTERGB (151, 255, 255) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
318 {"DarkSlateGray2" , PALETTERGB (141, 238, 238) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
319 {"DarkSlateGray3" , PALETTERGB (121, 205, 205) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
320 {"DarkSlateGray4" , PALETTERGB (82, 139, 139) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
321 {"aquamarine1" , PALETTERGB (127, 255, 212) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
322 {"aquamarine2" , PALETTERGB (118, 238, 198) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
323 {"aquamarine3" , PALETTERGB (102, 205, 170) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
324 {"aquamarine4" , PALETTERGB (69, 139, 116) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
325 {"DarkSeaGreen1" , PALETTERGB (193, 255, 193) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
326 {"DarkSeaGreen2" , PALETTERGB (180, 238, 180) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
327 {"DarkSeaGreen3" , PALETTERGB (155, 205, 155) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
328 {"DarkSeaGreen4" , PALETTERGB (105, 139, 105) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
329 {"SeaGreen1" , PALETTERGB (84, 255, 159) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
330 {"SeaGreen2" , PALETTERGB (78, 238, 148) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
331 {"SeaGreen3" , PALETTERGB (67, 205, 128) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
332 {"SeaGreen4" , PALETTERGB (46, 139, 87) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
333 {"PaleGreen1" , PALETTERGB (154, 255, 154) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
334 {"PaleGreen2" , PALETTERGB (144, 238, 144) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
335 {"PaleGreen3" , PALETTERGB (124, 205, 124) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
336 {"PaleGreen4" , PALETTERGB (84, 139, 84) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
337 {"SpringGreen1" , PALETTERGB (0, 255, 127) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
338 {"SpringGreen2" , PALETTERGB (0, 238, 118) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
339 {"SpringGreen3" , PALETTERGB (0, 205, 102) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
340 {"SpringGreen4" , PALETTERGB (0, 139, 69) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
341 {"green1" , PALETTERGB (0, 255, 0) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
342 {"green2" , PALETTERGB (0, 238, 0) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
343 {"green3" , PALETTERGB (0, 205, 0) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
344 {"green4" , PALETTERGB (0, 139, 0) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
345 {"chartreuse1" , PALETTERGB (127, 255, 0) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
346 {"chartreuse2" , PALETTERGB (118, 238, 0) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
347 {"chartreuse3" , PALETTERGB (102, 205, 0) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
348 {"chartreuse4" , PALETTERGB (69, 139, 0) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
349 {"OliveDrab1" , PALETTERGB (192, 255, 62) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
350 {"OliveDrab2" , PALETTERGB (179, 238, 58) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
351 {"OliveDrab3" , PALETTERGB (154, 205, 50) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
352 {"OliveDrab4" , PALETTERGB (105, 139, 34) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
353 {"DarkOliveGreen1" , PALETTERGB (202, 255, 112) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
354 {"DarkOliveGreen2" , PALETTERGB (188, 238, 104) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
355 {"DarkOliveGreen3" , PALETTERGB (162, 205, 90) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
356 {"DarkOliveGreen4" , PALETTERGB (110, 139, 61) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
357 {"khaki1" , PALETTERGB (255, 246, 143) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
358 {"khaki2" , PALETTERGB (238, 230, 133) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
359 {"khaki3" , PALETTERGB (205, 198, 115) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
360 {"khaki4" , PALETTERGB (139, 134, 78) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
361 {"LightGoldenrod1" , PALETTERGB (255, 236, 139) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
362 {"LightGoldenrod2" , PALETTERGB (238, 220, 130) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
363 {"LightGoldenrod3" , PALETTERGB (205, 190, 112) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
364 {"LightGoldenrod4" , PALETTERGB (139, 129, 76) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
365 {"LightYellow1" , PALETTERGB (255, 255, 224) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
366 {"LightYellow2" , PALETTERGB (238, 238, 209) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
367 {"LightYellow3" , PALETTERGB (205, 205, 180) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
368 {"LightYellow4" , PALETTERGB (139, 139, 122) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
369 {"yellow1" , PALETTERGB (255, 255, 0) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
370 {"yellow2" , PALETTERGB (238, 238, 0) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
371 {"yellow3" , PALETTERGB (205, 205, 0) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
372 {"yellow4" , PALETTERGB (139, 139, 0) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
373 {"gold1" , PALETTERGB (255, 215, 0) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
374 {"gold2" , PALETTERGB (238, 201, 0) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
375 {"gold3" , PALETTERGB (205, 173, 0) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
376 {"gold4" , PALETTERGB (139, 117, 0) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
377 {"goldenrod1" , PALETTERGB (255, 193, 37) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
378 {"goldenrod2" , PALETTERGB (238, 180, 34) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
379 {"goldenrod3" , PALETTERGB (205, 155, 29) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
380 {"goldenrod4" , PALETTERGB (139, 105, 20) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
381 {"DarkGoldenrod1" , PALETTERGB (255, 185, 15) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
382 {"DarkGoldenrod2" , PALETTERGB (238, 173, 14) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
383 {"DarkGoldenrod3" , PALETTERGB (205, 149, 12) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
384 {"DarkGoldenrod4" , PALETTERGB (139, 101, 8) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
385 {"RosyBrown1" , PALETTERGB (255, 193, 193) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
386 {"RosyBrown2" , PALETTERGB (238, 180, 180) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
387 {"RosyBrown3" , PALETTERGB (205, 155, 155) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
388 {"RosyBrown4" , PALETTERGB (139, 105, 105) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
389 {"IndianRed1" , PALETTERGB (255, 106, 106) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
390 {"IndianRed2" , PALETTERGB (238, 99, 99) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
391 {"IndianRed3" , PALETTERGB (205, 85, 85) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
392 {"IndianRed4" , PALETTERGB (139, 58, 58) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
393 {"sienna1" , PALETTERGB (255, 130, 71) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
394 {"sienna2" , PALETTERGB (238, 121, 66) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
395 {"sienna3" , PALETTERGB (205, 104, 57) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
396 {"sienna4" , PALETTERGB (139, 71, 38) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
397 {"burlywood1" , PALETTERGB (255, 211, 155) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
398 {"burlywood2" , PALETTERGB (238, 197, 145) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
399 {"burlywood3" , PALETTERGB (205, 170, 125) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
400 {"burlywood4" , PALETTERGB (139, 115, 85) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
401 {"wheat1" , PALETTERGB (255, 231, 186) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
402 {"wheat2" , PALETTERGB (238, 216, 174) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
403 {"wheat3" , PALETTERGB (205, 186, 150) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
404 {"wheat4" , PALETTERGB (139, 126, 102) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
405 {"tan1" , PALETTERGB (255, 165, 79) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
406 {"tan2" , PALETTERGB (238, 154, 73) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
407 {"tan3" , PALETTERGB (205, 133, 63) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
408 {"tan4" , PALETTERGB (139, 90, 43) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
409 {"chocolate1" , PALETTERGB (255, 127, 36) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
410 {"chocolate2" , PALETTERGB (238, 118, 33) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
411 {"chocolate3" , PALETTERGB (205, 102, 29) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
412 {"chocolate4" , PALETTERGB (139, 69, 19) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
413 {"firebrick1" , PALETTERGB (255, 48, 48) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
414 {"firebrick2" , PALETTERGB (238, 44, 44) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
415 {"firebrick3" , PALETTERGB (205, 38, 38) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
416 {"firebrick4" , PALETTERGB (139, 26, 26) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
417 {"brown1" , PALETTERGB (255, 64, 64) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
418 {"brown2" , PALETTERGB (238, 59, 59) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
419 {"brown3" , PALETTERGB (205, 51, 51) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
420 {"brown4" , PALETTERGB (139, 35, 35) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
421 {"salmon1" , PALETTERGB (255, 140, 105) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
422 {"salmon2" , PALETTERGB (238, 130, 98) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
423 {"salmon3" , PALETTERGB (205, 112, 84) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
424 {"salmon4" , PALETTERGB (139, 76, 57) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
425 {"LightSalmon1" , PALETTERGB (255, 160, 122) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
426 {"LightSalmon2" , PALETTERGB (238, 149, 114) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
427 {"LightSalmon3" , PALETTERGB (205, 129, 98) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
428 {"LightSalmon4" , PALETTERGB (139, 87, 66) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
429 {"orange1" , PALETTERGB (255, 165, 0) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
430 {"orange2" , PALETTERGB (238, 154, 0) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
431 {"orange3" , PALETTERGB (205, 133, 0) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
432 {"orange4" , PALETTERGB (139, 90, 0) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
433 {"DarkOrange1" , PALETTERGB (255, 127, 0) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
434 {"DarkOrange2" , PALETTERGB (238, 118, 0) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
435 {"DarkOrange3" , PALETTERGB (205, 102, 0) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
436 {"DarkOrange4" , PALETTERGB (139, 69, 0) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
437 {"coral1" , PALETTERGB (255, 114, 86) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
438 {"coral2" , PALETTERGB (238, 106, 80) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
439 {"coral3" , PALETTERGB (205, 91, 69) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
440 {"coral4" , PALETTERGB (139, 62, 47) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
441 {"tomato1" , PALETTERGB (255, 99, 71) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
442 {"tomato2" , PALETTERGB (238, 92, 66) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
443 {"tomato3" , PALETTERGB (205, 79, 57) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
444 {"tomato4" , PALETTERGB (139, 54, 38) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
445 {"OrangeRed1" , PALETTERGB (255, 69, 0) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
446 {"OrangeRed2" , PALETTERGB (238, 64, 0) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
447 {"OrangeRed3" , PALETTERGB (205, 55, 0) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
448 {"OrangeRed4" , PALETTERGB (139, 37, 0) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
449 {"red1" , PALETTERGB (255, 0, 0) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
450 {"red2" , PALETTERGB (238, 0, 0) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
451 {"red3" , PALETTERGB (205, 0, 0) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
452 {"red4" , PALETTERGB (139, 0, 0) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
453 {"DeepPink1" , PALETTERGB (255, 20, 147) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
454 {"DeepPink2" , PALETTERGB (238, 18, 137) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
455 {"DeepPink3" , PALETTERGB (205, 16, 118) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
456 {"DeepPink4" , PALETTERGB (139, 10, 80) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
457 {"HotPink1" , PALETTERGB (255, 110, 180) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
458 {"HotPink2" , PALETTERGB (238, 106, 167) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
459 {"HotPink3" , PALETTERGB (205, 96, 144) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
460 {"HotPink4" , PALETTERGB (139, 58, 98) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
461 {"pink1" , PALETTERGB (255, 181, 197) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
462 {"pink2" , PALETTERGB (238, 169, 184) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
463 {"pink3" , PALETTERGB (205, 145, 158) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
464 {"pink4" , PALETTERGB (139, 99, 108) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
465 {"LightPink1" , PALETTERGB (255, 174, 185) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
466 {"LightPink2" , PALETTERGB (238, 162, 173) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
467 {"LightPink3" , PALETTERGB (205, 140, 149) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
468 {"LightPink4" , PALETTERGB (139, 95, 101) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
469 {"PaleVioletRed1" , PALETTERGB (255, 130, 171) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
470 {"PaleVioletRed2" , PALETTERGB (238, 121, 159) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
471 {"PaleVioletRed3" , PALETTERGB (205, 104, 137) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
472 {"PaleVioletRed4" , PALETTERGB (139, 71, 93) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
473 {"maroon1" , PALETTERGB (255, 52, 179) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
474 {"maroon2" , PALETTERGB (238, 48, 167) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
475 {"maroon3" , PALETTERGB (205, 41, 144) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
476 {"maroon4" , PALETTERGB (139, 28, 98) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
477 {"VioletRed1" , PALETTERGB (255, 62, 150) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
478 {"VioletRed2" , PALETTERGB (238, 58, 140) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
479 {"VioletRed3" , PALETTERGB (205, 50, 120) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
480 {"VioletRed4" , PALETTERGB (139, 34, 82) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
481 {"magenta1" , PALETTERGB (255, 0, 255) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
482 {"magenta2" , PALETTERGB (238, 0, 238) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
483 {"magenta3" , PALETTERGB (205, 0, 205) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
484 {"magenta4" , PALETTERGB (139, 0, 139) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
485 {"orchid1" , PALETTERGB (255, 131, 250) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
486 {"orchid2" , PALETTERGB (238, 122, 233) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
487 {"orchid3" , PALETTERGB (205, 105, 201) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
488 {"orchid4" , PALETTERGB (139, 71, 137) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
489 {"plum1" , PALETTERGB (255, 187, 255) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
490 {"plum2" , PALETTERGB (238, 174, 238) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
491 {"plum3" , PALETTERGB (205, 150, 205) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
492 {"plum4" , PALETTERGB (139, 102, 139) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
493 {"MediumOrchid1" , PALETTERGB (224, 102, 255) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
494 {"MediumOrchid2" , PALETTERGB (209, 95, 238) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
495 {"MediumOrchid3" , PALETTERGB (180, 82, 205) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
496 {"MediumOrchid4" , PALETTERGB (122, 55, 139) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
497 {"DarkOrchid1" , PALETTERGB (191, 62, 255) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
498 {"DarkOrchid2" , PALETTERGB (178, 58, 238) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
499 {"DarkOrchid3" , PALETTERGB (154, 50, 205) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
500 {"DarkOrchid4" , PALETTERGB (104, 34, 139) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
501 {"purple1" , PALETTERGB (155, 48, 255) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
502 {"purple2" , PALETTERGB (145, 44, 238) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
503 {"purple3" , PALETTERGB (125, 38, 205) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
504 {"purple4" , PALETTERGB (85, 26, 139) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
505 {"MediumPurple1" , PALETTERGB (171, 130, 255) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
506 {"MediumPurple2" , PALETTERGB (159, 121, 238) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
507 {"MediumPurple3" , PALETTERGB (137, 104, 205) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
508 {"MediumPurple4" , PALETTERGB (93, 71, 139) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
509 {"thistle1" , PALETTERGB (255, 225, 255) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
510 {"thistle2" , PALETTERGB (238, 210, 238) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
511 {"thistle3" , PALETTERGB (205, 181, 205) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
512 {"thistle4" , PALETTERGB (139, 123, 139) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
513 {"gray0" , PALETTERGB (0, 0, 0) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
514 {"grey0" , PALETTERGB (0, 0, 0) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
515 {"gray1" , PALETTERGB (3, 3, 3) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
516 {"grey1" , PALETTERGB (3, 3, 3) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
517 {"gray2" , PALETTERGB (5, 5, 5) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
518 {"grey2" , PALETTERGB (5, 5, 5) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
519 {"gray3" , PALETTERGB (8, 8, 8) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
520 {"grey3" , PALETTERGB (8, 8, 8) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
521 {"gray4" , PALETTERGB (10, 10, 10) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
522 {"grey4" , PALETTERGB (10, 10, 10) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
523 {"gray5" , PALETTERGB (13, 13, 13) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
524 {"grey5" , PALETTERGB (13, 13, 13) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
525 {"gray6" , PALETTERGB (15, 15, 15) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
526 {"grey6" , PALETTERGB (15, 15, 15) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
527 {"gray7" , PALETTERGB (18, 18, 18) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
528 {"grey7" , PALETTERGB (18, 18, 18) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
529 {"gray8" , PALETTERGB (20, 20, 20) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
530 {"grey8" , PALETTERGB (20, 20, 20) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
531 {"gray9" , PALETTERGB (23, 23, 23) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
532 {"grey9" , PALETTERGB (23, 23, 23) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
533 {"gray10" , PALETTERGB (26, 26, 26) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
534 {"grey10" , PALETTERGB (26, 26, 26) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
535 {"gray11" , PALETTERGB (28, 28, 28) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
536 {"grey11" , PALETTERGB (28, 28, 28) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
537 {"gray12" , PALETTERGB (31, 31, 31) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
538 {"grey12" , PALETTERGB (31, 31, 31) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
539 {"gray13" , PALETTERGB (33, 33, 33) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
540 {"grey13" , PALETTERGB (33, 33, 33) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
541 {"gray14" , PALETTERGB (36, 36, 36) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
542 {"grey14" , PALETTERGB (36, 36, 36) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
543 {"gray15" , PALETTERGB (38, 38, 38) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
544 {"grey15" , PALETTERGB (38, 38, 38) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
545 {"gray16" , PALETTERGB (41, 41, 41) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
546 {"grey16" , PALETTERGB (41, 41, 41) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
547 {"gray17" , PALETTERGB (43, 43, 43) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
548 {"grey17" , PALETTERGB (43, 43, 43) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
549 {"gray18" , PALETTERGB (46, 46, 46) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
550 {"grey18" , PALETTERGB (46, 46, 46) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
551 {"gray19" , PALETTERGB (48, 48, 48) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
552 {"grey19" , PALETTERGB (48, 48, 48) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
553 {"gray20" , PALETTERGB (51, 51, 51) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
554 {"grey20" , PALETTERGB (51, 51, 51) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
555 {"gray21" , PALETTERGB (54, 54, 54) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
556 {"grey21" , PALETTERGB (54, 54, 54) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
557 {"gray22" , PALETTERGB (56, 56, 56) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
558 {"grey22" , PALETTERGB (56, 56, 56) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
559 {"gray23" , PALETTERGB (59, 59, 59) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
560 {"grey23" , PALETTERGB (59, 59, 59) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
561 {"gray24" , PALETTERGB (61, 61, 61) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
562 {"grey24" , PALETTERGB (61, 61, 61) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
563 {"gray25" , PALETTERGB (64, 64, 64) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
564 {"grey25" , PALETTERGB (64, 64, 64) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
565 {"gray26" , PALETTERGB (66, 66, 66) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
566 {"grey26" , PALETTERGB (66, 66, 66) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
567 {"gray27" , PALETTERGB (69, 69, 69) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
568 {"grey27" , PALETTERGB (69, 69, 69) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
569 {"gray28" , PALETTERGB (71, 71, 71) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
570 {"grey28" , PALETTERGB (71, 71, 71) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
571 {"gray29" , PALETTERGB (74, 74, 74) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
572 {"grey29" , PALETTERGB (74, 74, 74) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
573 {"gray30" , PALETTERGB (77, 77, 77) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
574 {"grey30" , PALETTERGB (77, 77, 77) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
575 {"gray31" , PALETTERGB (79, 79, 79) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
576 {"grey31" , PALETTERGB (79, 79, 79) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
577 {"gray32" , PALETTERGB (82, 82, 82) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
578 {"grey32" , PALETTERGB (82, 82, 82) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
579 {"gray33" , PALETTERGB (84, 84, 84) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
580 {"grey33" , PALETTERGB (84, 84, 84) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
581 {"gray34" , PALETTERGB (87, 87, 87) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
582 {"grey34" , PALETTERGB (87, 87, 87) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
583 {"gray35" , PALETTERGB (89, 89, 89) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
584 {"grey35" , PALETTERGB (89, 89, 89) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
585 {"gray36" , PALETTERGB (92, 92, 92) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
586 {"grey36" , PALETTERGB (92, 92, 92) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
587 {"gray37" , PALETTERGB (94, 94, 94) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
588 {"grey37" , PALETTERGB (94, 94, 94) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
589 {"gray38" , PALETTERGB (97, 97, 97) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
590 {"grey38" , PALETTERGB (97, 97, 97) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
591 {"gray39" , PALETTERGB (99, 99, 99) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
592 {"grey39" , PALETTERGB (99, 99, 99) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
593 {"gray40" , PALETTERGB (102, 102, 102) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
594 {"grey40" , PALETTERGB (102, 102, 102) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
595 {"gray41" , PALETTERGB (105, 105, 105) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
596 {"grey41" , PALETTERGB (105, 105, 105) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
597 {"gray42" , PALETTERGB (107, 107, 107) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
598 {"grey42" , PALETTERGB (107, 107, 107) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
599 {"gray43" , PALETTERGB (110, 110, 110) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
600 {"grey43" , PALETTERGB (110, 110, 110) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
601 {"gray44" , PALETTERGB (112, 112, 112) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
602 {"grey44" , PALETTERGB (112, 112, 112) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
603 {"gray45" , PALETTERGB (115, 115, 115) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
604 {"grey45" , PALETTERGB (115, 115, 115) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
605 {"gray46" , PALETTERGB (117, 117, 117) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
606 {"grey46" , PALETTERGB (117, 117, 117) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
607 {"gray47" , PALETTERGB (120, 120, 120) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
608 {"grey47" , PALETTERGB (120, 120, 120) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
609 {"gray48" , PALETTERGB (122, 122, 122) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
610 {"grey48" , PALETTERGB (122, 122, 122) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
611 {"gray49" , PALETTERGB (125, 125, 125) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
612 {"grey49" , PALETTERGB (125, 125, 125) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
613 {"gray50" , PALETTERGB (128, 128, 128) }, /* Adjusted */
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
614 {"grey50" , PALETTERGB (128, 128, 128) }, /* Adjusted */
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
615 {"gray51" , PALETTERGB (130, 130, 130) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
616 {"grey51" , PALETTERGB (130, 130, 130) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
617 {"gray52" , PALETTERGB (133, 133, 133) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
618 {"grey52" , PALETTERGB (133, 133, 133) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
619 {"gray53" , PALETTERGB (135, 135, 135) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
620 {"grey53" , PALETTERGB (135, 135, 135) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
621 {"gray54" , PALETTERGB (138, 138, 138) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
622 {"grey54" , PALETTERGB (138, 138, 138) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
623 {"gray55" , PALETTERGB (140, 140, 140) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
624 {"grey55" , PALETTERGB (140, 140, 140) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
625 {"gray56" , PALETTERGB (143, 143, 143) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
626 {"grey56" , PALETTERGB (143, 143, 143) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
627 {"gray57" , PALETTERGB (145, 145, 145) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
628 {"grey57" , PALETTERGB (145, 145, 145) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
629 {"gray58" , PALETTERGB (148, 148, 148) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
630 {"grey58" , PALETTERGB (148, 148, 148) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
631 {"gray59" , PALETTERGB (150, 150, 150) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
632 {"grey59" , PALETTERGB (150, 150, 150) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
633 {"gray60" , PALETTERGB (153, 153, 153) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
634 {"grey60" , PALETTERGB (153, 153, 153) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
635 {"gray61" , PALETTERGB (156, 156, 156) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
636 {"grey61" , PALETTERGB (156, 156, 156) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
637 {"gray62" , PALETTERGB (158, 158, 158) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
638 {"grey62" , PALETTERGB (158, 158, 158) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
639 {"gray63" , PALETTERGB (161, 161, 161) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
640 {"grey63" , PALETTERGB (161, 161, 161) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
641 {"gray64" , PALETTERGB (163, 163, 163) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
642 {"grey64" , PALETTERGB (163, 163, 163) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
643 {"gray65" , PALETTERGB (166, 166, 166) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
644 {"grey65" , PALETTERGB (166, 166, 166) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
645 {"gray66" , PALETTERGB (168, 168, 168) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
646 {"grey66" , PALETTERGB (168, 168, 168) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
647 {"gray67" , PALETTERGB (171, 171, 171) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
648 {"grey67" , PALETTERGB (171, 171, 171) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
649 {"gray68" , PALETTERGB (173, 173, 173) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
650 {"grey68" , PALETTERGB (173, 173, 173) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
651 {"gray69" , PALETTERGB (176, 176, 176) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
652 {"grey69" , PALETTERGB (176, 176, 176) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
653 {"gray70" , PALETTERGB (179, 179, 179) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
654 {"grey70" , PALETTERGB (179, 179, 179) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
655 {"gray71" , PALETTERGB (181, 181, 181) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
656 {"grey71" , PALETTERGB (181, 181, 181) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
657 {"gray72" , PALETTERGB (184, 184, 184) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
658 {"grey72" , PALETTERGB (184, 184, 184) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
659 {"gray73" , PALETTERGB (186, 186, 186) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
660 {"grey73" , PALETTERGB (186, 186, 186) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
661 {"gray74" , PALETTERGB (189, 189, 189) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
662 {"grey74" , PALETTERGB (189, 189, 189) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
663 {"gray75" , PALETTERGB (192, 192, 192) }, /* Adjusted */
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
664 {"grey75" , PALETTERGB (192, 192, 192) }, /* Adjusted */
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
665 {"gray76" , PALETTERGB (194, 194, 194) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
666 {"grey76" , PALETTERGB (194, 194, 194) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
667 {"gray77" , PALETTERGB (196, 196, 196) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
668 {"grey77" , PALETTERGB (196, 196, 196) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
669 {"gray78" , PALETTERGB (199, 199, 199) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
670 {"grey78" , PALETTERGB (199, 199, 199) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
671 {"gray79" , PALETTERGB (201, 201, 201) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
672 {"grey79" , PALETTERGB (201, 201, 201) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
673 {"gray80" , PALETTERGB (204, 204, 204) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
674 {"grey80" , PALETTERGB (204, 204, 204) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
675 {"gray81" , PALETTERGB (207, 207, 207) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
676 {"grey81" , PALETTERGB (207, 207, 207) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
677 {"gray82" , PALETTERGB (209, 209, 209) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
678 {"grey82" , PALETTERGB (209, 209, 209) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
679 {"gray83" , PALETTERGB (212, 212, 212) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
680 {"grey83" , PALETTERGB (212, 212, 212) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
681 {"gray84" , PALETTERGB (214, 214, 214) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
682 {"grey84" , PALETTERGB (214, 214, 214) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
683 {"gray85" , PALETTERGB (217, 217, 217) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
684 {"grey85" , PALETTERGB (217, 217, 217) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
685 {"gray86" , PALETTERGB (219, 219, 219) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
686 {"grey86" , PALETTERGB (219, 219, 219) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
687 {"gray87" , PALETTERGB (222, 222, 222) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
688 {"grey87" , PALETTERGB (222, 222, 222) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
689 {"gray88" , PALETTERGB (224, 224, 224) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
690 {"grey88" , PALETTERGB (224, 224, 224) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
691 {"gray89" , PALETTERGB (227, 227, 227) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
692 {"grey89" , PALETTERGB (227, 227, 227) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
693 {"gray90" , PALETTERGB (229, 229, 229) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
694 {"grey90" , PALETTERGB (229, 229, 229) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
695 {"gray91" , PALETTERGB (232, 232, 232) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
696 {"grey91" , PALETTERGB (232, 232, 232) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
697 {"gray92" , PALETTERGB (235, 235, 235) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
698 {"grey92" , PALETTERGB (235, 235, 235) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
699 {"gray93" , PALETTERGB (237, 237, 237) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
700 {"grey93" , PALETTERGB (237, 237, 237) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
701 {"gray94" , PALETTERGB (240, 240, 240) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
702 {"grey94" , PALETTERGB (240, 240, 240) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
703 {"gray95" , PALETTERGB (242, 242, 242) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
704 {"grey95" , PALETTERGB (242, 242, 242) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
705 {"gray96" , PALETTERGB (245, 245, 245) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
706 {"grey96" , PALETTERGB (245, 245, 245) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
707 {"gray97" , PALETTERGB (247, 247, 247) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
708 {"grey97" , PALETTERGB (247, 247, 247) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
709 {"gray98" , PALETTERGB (250, 250, 250) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
710 {"grey98" , PALETTERGB (250, 250, 250) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
711 {"gray99" , PALETTERGB (252, 252, 252) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
712 {"grey99" , PALETTERGB (252, 252, 252) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
713 {"gray100" , PALETTERGB (255, 255, 255) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
714 {"grey100" , PALETTERGB (255, 255, 255) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
715 {"DarkGrey" , PALETTERGB (169, 169, 169) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
716 {"DarkGray" , PALETTERGB (169, 169, 169) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
717 {"DarkBlue" , PALETTERGB (0, 0, 128) }, /* Adjusted == Navy */
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
718 {"DarkCyan" , PALETTERGB (0, 128, 128) }, /* Adjusted */
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
719 {"DarkMagenta" , PALETTERGB (128, 0, 128) }, /* Adjusted */
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
720 {"DarkRed" , PALETTERGB (128, 0, 0) }, /* Adjusted */
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
721 {"LightGreen" , PALETTERGB (144, 238, 144) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
722 /* Added to match values in the default Windows palette: */
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
723 {"DarkYellow" , PALETTERGB (128, 128, 0) },
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
724 {"PaleYellow" , PALETTERGB (255, 255, 128) }
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
725 };
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
726
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
727
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
728 typedef struct fontmap_t
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
729 {
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
730 const Char_ASCII *name;
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
731 int value;
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
732 } fontmap_t;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
733
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
734 /* Default weight first, preferred names listed before synonyms */
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
735 static const fontmap_t fontweight_map[] =
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
736 {
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
737 {"Regular" , FW_REGULAR}, /* The standard font weight */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
738 {"Thin" , FW_THIN},
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
739 {"Extra Light" , FW_EXTRALIGHT},
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
740 {"Ultra Light" , FW_ULTRALIGHT},
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
741 {"Light" , FW_LIGHT},
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
742 {"Normal" , FW_NORMAL},
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
743 {"Medium" , FW_MEDIUM},
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
744 {"Semi Bold" , FW_SEMIBOLD},
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
745 {"Demi Bold" , FW_DEMIBOLD},
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
746 {"Bold" , FW_BOLD}, /* The standard bold font weight */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
747 {"Extra Bold" , FW_EXTRABOLD},
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
748 {"Ultra Bold" , FW_ULTRABOLD},
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
749 {"Heavy" , FW_HEAVY},
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
750 {"Black" , FW_BLACK}
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
751 };
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
752
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
753 /* Default charset first, no synonyms allowed because these names are
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
754 * matched against the names reported by win32 by match_font() */
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
755 static const fontmap_t charset_map[] =
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
756 {
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
757 {"Western" , ANSI_CHARSET}, /* Latin 1 */
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
758 {"Central European" , EASTEUROPE_CHARSET},
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
759 {"Cyrillic" , RUSSIAN_CHARSET},
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
760 {"Greek" , GREEK_CHARSET},
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
761 {"Turkish" , TURKISH_CHARSET},
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
762 {"Hebrew" , HEBREW_CHARSET},
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
763 {"Arabic" , ARABIC_CHARSET},
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
764 {"Baltic" , BALTIC_CHARSET},
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
765 {"Viet Nam" , VIETNAMESE_CHARSET},
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
766 {"Thai" , THAI_CHARSET},
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
767 {"Japanese" , SHIFTJIS_CHARSET},
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
768 {"Korean" , HANGEUL_CHARSET},
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
769 {"Simplified Chinese" , GB2312_CHARSET},
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
770 {"Traditional Chinese", CHINESEBIG5_CHARSET},
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
772 {"Symbol" , SYMBOL_CHARSET},
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
773 {"Mac" , MAC_CHARSET},
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
774 {"Korean Johab" , JOHAB_CHARSET},
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
775 {"OEM/DOS" , OEM_CHARSET}
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
776 };
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
777
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
778
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
779 /************************************************************************/
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
780 /* helpers */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
781 /************************************************************************/
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
782
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
783 static int
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
784 hexval (Intbyte c)
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
785 {
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
786 /* assumes ASCII and isxdigit (c) */
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
787 if (c >= 'a')
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
788 return c - 'a' + 10;
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
789 else if (c >= 'A')
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
790 return c - 'A' + 10;
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
791 else
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
792 return c - '0';
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
793 }
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
794
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
795 COLORREF
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
796 mswindows_string_to_color (const Intbyte *name)
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
797 {
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
798 int i;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
799
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
800 if (*name == '#')
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
801 {
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
802 /* numeric names look like "#RRGGBB", "#RRRGGGBBB" or "#RRRRGGGGBBBB"
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
803 or "rgb:rrrr/gggg/bbbb" */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
804 unsigned int r, g, b;
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
805
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
806 for (i = 1; i < qxestrlen (name); i++)
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
807 {
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
808 if (!BYTE_ASCII_P (name[i]) || !isxdigit ((int) name[i]))
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
809 return (COLORREF) -1;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
810 }
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
811 if (qxestrlen (name) == 7)
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
812 {
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
813 r = hexval (name[1]) * 16 + hexval (name[2]);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
814 g = hexval (name[3]) * 16 + hexval (name[4]);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
815 b = hexval (name[5]) * 16 + hexval (name[6]);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
816 return (PALETTERGB (r, g, b));
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
817 }
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
818 else if (qxestrlen (name) == 10)
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
819 {
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
820 r = hexval (name[1]) * 16 + hexval (name[2]);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
821 g = hexval (name[4]) * 16 + hexval (name[5]);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
822 b = hexval (name[7]) * 16 + hexval (name[8]);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
823 return (PALETTERGB (r, g, b));
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
824 }
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
825 else if (qxestrlen (name) == 13)
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
826 {
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
827 r = hexval (name[1]) * 16 + hexval (name[2]);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
828 g = hexval (name[5]) * 16 + hexval (name[6]);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
829 b = hexval (name[9]) * 16 + hexval (name[10]);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
830 return (PALETTERGB (r, g, b));
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
831 }
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
832 }
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
833 else if (!qxestrncmp_c (name, "rgb:", 4))
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
834 {
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
835 unsigned int r, g, b;
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
836
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
837 if (sscanf ((CIntbyte *) name, "rgb:%04x/%04x/%04x", &r, &g, &b) == 3)
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
838 {
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
839 int len = qxestrlen (name);
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
840 if (len == 18)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
841 {
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
842 r /= 257;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
843 g /= 257;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
844 b /= 257;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
845 }
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
846 else if (len == 15)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
847 {
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
848 r /= 17;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
849 g /= 17;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
850 b /= 17;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
851 }
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
852 return (PALETTERGB (r, g, b));
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
853 }
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
854 else
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
855 return (COLORREF) -1;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
856 }
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
857 else if (*name) /* Can't be an empty string */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
858 {
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
859 Intbyte *nospaces = (Intbyte *) alloca (qxestrlen (name) + 1);
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
860 Intbyte *c = nospaces;
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
861 while (*name)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
862 if (*name != ' ')
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
863 *c++ = *name++;
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
864 else
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
865 name++;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
866 *c = '\0';
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
867
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
868 for (i = 0; i < countof (mswindows_X_color_map); i++)
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
869 if (!qxestrcasecmp_c (nospaces, mswindows_X_color_map[i].name))
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
870 return (mswindows_X_color_map[i].colorref);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
871 }
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
872 return (COLORREF) -1;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
873 }
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
874
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
875 Lisp_Object
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
876 mswindows_color_to_string (COLORREF color)
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
877 {
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
878 int i;
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
879 Char_ASCII buf[8];
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
880 COLORREF pcolor = PALETTERGB (GetRValue (color), GetGValue (color),
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
881 GetBValue (color));
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
882
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
883 for (i = 0; i < countof (mswindows_X_color_map); i++)
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
884 if (pcolor == (mswindows_X_color_map[i].colorref))
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
885 return build_string (mswindows_X_color_map[i].name);
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
886
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
887 sprintf (buf, "#%02X%02X%02X",
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
888 GetRValue (color), GetGValue (color), GetBValue (color));
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
889 return build_string (buf);
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
890 }
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
891
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
892 /*
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
893 * Returns non-zero if the two supplied font patterns match.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
894 * If they match and fontname is not NULL, copies the logical OR of the
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
895 * patterns to fontname (which is assumed to be at least MSW_FONTSIZE in size).
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
896 *
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
897 * The patterns 'match' iff for each field that is not blank in either pattern,
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
898 * the corresponding field in the other pattern is either identical or blank.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
899 */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
900 static int
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
901 match_font (Intbyte *pattern1, Intbyte *pattern2,
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
902 Intbyte *fontname)
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
903 {
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
904 Intbyte *c1 = pattern1, *c2 = pattern2, *e1 = 0, *e2 = 0;
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
905 int i;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
906
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
907 if (fontname)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
908 fontname[0] = '\0';
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
909
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
910 for (i = 0; i < 5; i++)
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
911 {
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
912 if (c1 && (e1 = qxestrchr (c1, ':')))
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
913 *(e1) = '\0';
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
914 if (c2 && (e2 = qxestrchr (c2, ':')))
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
915 *(e2) = '\0';
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
916
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
917 if (c1 && c1[0] != '\0')
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
918 {
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
919 if (c2 && c2[0] != '\0' && qxestrcasecmp (c1, c2))
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
920 {
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
921 if (e1) *e1 = ':';
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
922 if (e2) *e2 = ':';
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
923 return 0;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
924 }
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
925 else if (fontname)
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
926 qxestrcat_c (qxestrcat (fontname, c1), ":");
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
927 }
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
928 else if (fontname)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
929 {
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
930 if (c2 && c2[0] != '\0')
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
931 qxestrcat_c (qxestrcat (fontname, c2), ":");
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
932 else
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
933 qxestrcat_c (fontname, ":");
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
934 }
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
935
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
936 if (e1) *(e1++) = ':';
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
937 if (e2) *(e2++) = ':';
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
938 c1 = e1;
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
939 c2 = e2;
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
940 }
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
941
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
942 if (fontname)
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
943 fontname[qxestrlen (fontname) - 1] = '\0'; /* Trim trailing ':' */
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
944 return 1;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
945 }
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
946
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
947
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
948 /************************************************************************/
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
949 /* exports */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
950 /************************************************************************/
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
951
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
952 struct font_enum_t
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
953 {
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
954 HDC hdc;
440
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 430
diff changeset
955 Lisp_Object list;
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
956 };
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
957
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
958 static int CALLBACK
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
959 font_enum_callback_2 (ENUMLOGFONTEXW *lpelfe, NEWTEXTMETRICEXW *lpntme,
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
960 int FontType, struct font_enum_t *font_enum)
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
961 {
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
962 Intbyte fontname[MSW_FONTSIZE * 2 * MAX_EMCHAR_LEN]; /* should be enough :)*/
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
963 Lisp_Object fontname_lispstr;
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
964 int i;
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
965 Intbyte *facename;
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
966
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
967 /*
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
968 * The enumerated font weights are not to be trusted because:
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
969 * a) lpelfe->elfStyle is only filled in for TrueType fonts.
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
970 * b) Not all Bold and Italic styles of all fonts (including some Vector,
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
971 * Truetype and Raster fonts) are enumerated.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
972 * I guess that fonts for which Bold and Italic styles are generated
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
973 * 'on-the-fly' are not enumerated. It would be overly restrictive to
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
974 * disallow Bold And Italic weights for these fonts, so we just leave
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
975 * weights unspecified. This means that we have to weed out duplicates of
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
976 * those fonts that do get enumerated with different weights.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
977 */
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
978 TSTR_TO_C_STRING (lpelfe->elfLogFont.lfFaceName, facename);
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
979 if (charptr_emchar (facename) == '@')
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
980 /* This is a font for writing vertically. We ignore it. */
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
981 return 1;
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
982
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
983 if (FontType == 0 /*vector*/ || FontType & TRUETYPE_FONTTYPE)
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
984 /* Scalable, so leave pointsize blank */
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
985 qxesprintf (fontname, "%s::::", facename);
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
986 else
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
987 /* Formula for pointsize->height from LOGFONT docs in Platform SDK */
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
988 qxesprintf (fontname, "%s::%d::", facename,
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
989 MulDiv (lpntme->ntmTm.tmHeight -
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
990 lpntme->ntmTm.tmInternalLeading,
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
991 72, GetDeviceCaps (font_enum->hdc, LOGPIXELSY)));
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
992
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
993 /*
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
994 * The enumerated font character set strings are not to be trusted because
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
995 * lpelfe->elfScript is returned in the host language and not in English.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
996 * We can't know a priori the translations of "Western", "Central European"
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
997 * etc into the host language, so we must use English. The same argument
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
998 * applies to the font weight string when matching fonts.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
999 */
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1000 for (i = 0; i < countof (charset_map); i++)
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1001 if (lpelfe->elfLogFont.lfCharSet == charset_map[i].value)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1002 {
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1003 qxestrcat_c (fontname, charset_map[i].name);
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1004 break;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1005 }
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1006 if (i == countof (charset_map))
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1007 return 1;
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1008
440
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 430
diff changeset
1009 /* Add the font name to the list if not already there */
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1010 fontname_lispstr = build_intstring (fontname);
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1011 if (NILP (Fmember (fontname_lispstr, font_enum->list)))
440
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 430
diff changeset
1012 font_enum->list = Fcons (fontname_lispstr, font_enum->list);
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1013
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1014 return 1;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1015 }
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1016
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1017 static int CALLBACK
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1018 font_enum_callback_1 (ENUMLOGFONTEXW *lpelfe, NEWTEXTMETRICEXW *lpntme,
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1019 int FontType, struct font_enum_t *font_enum)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1020 {
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1021 /* This function gets called once per facename per character set.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1022 * We call a second callback to enumerate the fonts in each facename */
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1023 return qxeEnumFontFamiliesEx (font_enum->hdc, &lpelfe->elfLogFont,
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1024 (FONTENUMPROCW) font_enum_callback_2,
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1025 (LPARAM) font_enum, 0);
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1026 }
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1027
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1028 /*
440
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 430
diff changeset
1029 * Enumerate the available on the HDC fonts and return a list of string
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 430
diff changeset
1030 * font names.
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1031 */
440
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 430
diff changeset
1032 Lisp_Object
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 430
diff changeset
1033 mswindows_enumerate_fonts (HDC hdc)
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1034 {
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1035 /* This cannot GC */
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1036 LOGFONTW logfont;
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1037 struct font_enum_t font_enum;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1038
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1039 assert (hdc != NULL);
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1040 logfont.lfCharSet = DEFAULT_CHARSET;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1041 logfont.lfFaceName[0] = '\0';
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1042 logfont.lfPitchAndFamily = DEFAULT_PITCH;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1043 font_enum.hdc = hdc;
440
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 430
diff changeset
1044 font_enum.list = Qnil;
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1045 /* EnumFontFamilies seems to enumerate only one charset per font, which
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1046 is not what we want. We aren't supporting NT 3.5x, so no need to
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1047 worry about this not existing. */
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1048 qxeEnumFontFamiliesEx (hdc, &logfont, (FONTENUMPROCW) font_enum_callback_1,
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1049 (LPARAM) (&font_enum), 0);
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
1050
440
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 430
diff changeset
1051 return font_enum.list;
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1052 }
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1053
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
1054 static HFONT
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1055 mswindows_create_font_variant (Lisp_Font_Instance *f,
440
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 430
diff changeset
1056 int under, int strike)
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 430
diff changeset
1057 {
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 430
diff changeset
1058 /* Cannot GC */
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1059 LOGFONTW lf;
440
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 430
diff changeset
1060 HFONT hfont;
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 430
diff changeset
1061
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 430
diff changeset
1062 assert (FONT_INSTANCE_MSWINDOWS_HFONT_VARIANT (f, under, strike) == NULL);
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 430
diff changeset
1063
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1064 if (qxeGetObject (FONT_INSTANCE_MSWINDOWS_HFONT_VARIANT (f, 0, 0),
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1065 sizeof (lf), (void *) &lf) == 0)
440
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 430
diff changeset
1066 {
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 430
diff changeset
1067 hfont = MSWINDOWS_BAD_HFONT;
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 430
diff changeset
1068 }
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 430
diff changeset
1069 else
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 430
diff changeset
1070 {
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 430
diff changeset
1071 lf.lfUnderline = under;
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 430
diff changeset
1072 lf.lfStrikeOut = strike;
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 430
diff changeset
1073
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1074 hfont = qxeCreateFontIndirect (&lf);
440
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 430
diff changeset
1075 if (hfont == NULL)
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 430
diff changeset
1076 hfont = MSWINDOWS_BAD_HFONT;
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 430
diff changeset
1077 }
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 430
diff changeset
1078
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 430
diff changeset
1079 FONT_INSTANCE_MSWINDOWS_HFONT_VARIANT (f, under, strike) = hfont;
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
1080 return hfont;
440
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 430
diff changeset
1081 }
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 430
diff changeset
1082
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 430
diff changeset
1083 HFONT
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1084 mswindows_get_hfont (Lisp_Font_Instance *f,
440
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 430
diff changeset
1085 int under, int strike)
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 430
diff changeset
1086 {
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 430
diff changeset
1087 /* Cannot GC */
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
1088 HFONT hfont = FONT_INSTANCE_MSWINDOWS_HFONT_VARIANT (f, under, strike);
440
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 430
diff changeset
1089
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
1090 if (hfont == NULL)
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
1091 hfont = mswindows_create_font_variant (f, under, strike);
440
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 430
diff changeset
1092
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 430
diff changeset
1093 /* If strikeout/underline variant of the font could not be
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 430
diff changeset
1094 created, then use the base version of the font */
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 430
diff changeset
1095 if (hfont == MSWINDOWS_BAD_HFONT)
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 430
diff changeset
1096 hfont = FONT_INSTANCE_MSWINDOWS_HFONT_VARIANT (f, 0, 0);
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 430
diff changeset
1097
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 430
diff changeset
1098 assert (hfont != NULL && hfont != MSWINDOWS_BAD_HFONT);
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 430
diff changeset
1099
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 430
diff changeset
1100 return hfont;
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 430
diff changeset
1101 }
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1102
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1103 /************************************************************************/
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1104 /* methods */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1105 /************************************************************************/
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1106
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1107 static int
440
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 430
diff changeset
1108 mswindows_initialize_color_instance (Lisp_Color_Instance *c, Lisp_Object name,
647
b39c14581166 [xemacs-hg @ 2001-08-13 04:45:47 by ben]
ben
parents: 593
diff changeset
1109 Lisp_Object device, Error_Behavior errb)
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1110 {
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1111 COLORREF color;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1112
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1113 color = mswindows_string_to_color (XSTRING_DATA (name));
647
b39c14581166 [xemacs-hg @ 2001-08-13 04:45:47 by ben]
ben
parents: 593
diff changeset
1114 if (color != (COLORREF) -1)
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1115 {
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1116 c->data = xnew (struct mswindows_color_instance_data);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1117 COLOR_INSTANCE_MSWINDOWS_COLOR (c) = color;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1118 return 1;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1119 }
563
183866b06e0b [xemacs-hg @ 2001-05-24 07:50:48 by ben]
ben
parents: 442
diff changeset
1120 maybe_signal_error (Qinvalid_constant,
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1121 "Unrecognized color", name, Qcolor, errb);
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1122 return(0);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1123 }
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1124
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1125 #if 0
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1126 static void
440
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 430
diff changeset
1127 mswindows_mark_color_instance (Lisp_Color_Instance *c)
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1128 {
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1129 }
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1130 #endif
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1131
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1132 static void
440
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 430
diff changeset
1133 mswindows_print_color_instance (Lisp_Color_Instance *c,
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 430
diff changeset
1134 Lisp_Object printcharfun,
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 430
diff changeset
1135 int escapeflag)
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1136 {
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1137 Char_ASCII buf[32];
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1138 COLORREF color = COLOR_INSTANCE_MSWINDOWS_COLOR (c);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1139 sprintf (buf, " %06ld=(%04X,%04X,%04X)", color & 0xffffff,
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1140 GetRValue (color) * 257, GetGValue (color) * 257,
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1141 GetBValue (color) * 257);
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1142 write_c_string (buf, printcharfun);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1143 }
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1144
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1145 static void
440
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 430
diff changeset
1146 mswindows_finalize_color_instance (Lisp_Color_Instance *c)
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1147 {
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1148 if (c->data)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1149 {
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1150 xfree (c->data);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1151 c->data = 0;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1152 }
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1153 }
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1154
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1155 static int
440
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 430
diff changeset
1156 mswindows_color_instance_equal (Lisp_Color_Instance *c1,
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 430
diff changeset
1157 Lisp_Color_Instance *c2,
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 430
diff changeset
1158 int depth)
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1159 {
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1160 return (COLOR_INSTANCE_MSWINDOWS_COLOR(c1) ==
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1161 COLOR_INSTANCE_MSWINDOWS_COLOR(c2));
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1162 }
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1163
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1164 static unsigned long
440
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 430
diff changeset
1165 mswindows_color_instance_hash (Lisp_Color_Instance *c, int depth)
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1166 {
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1167 return (unsigned long) COLOR_INSTANCE_MSWINDOWS_COLOR(c);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1168 }
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1169
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1170 static Lisp_Object
440
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 430
diff changeset
1171 mswindows_color_instance_rgb_components (Lisp_Color_Instance *c)
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1172 {
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1173 COLORREF color = COLOR_INSTANCE_MSWINDOWS_COLOR (c);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1174 return list3 (make_int (GetRValue (color) * 257),
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1175 make_int (GetGValue (color) * 257),
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1176 make_int (GetBValue (color) * 257));
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1177 }
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1178
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1179 static int
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1180 mswindows_valid_color_name_p (struct device *d, Lisp_Object color)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1181 {
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1182 return (mswindows_string_to_color (XSTRING_DATA (color)) != (COLORREF) -1);
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1183 }
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1184
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1185
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1186
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1187 static void
440
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 430
diff changeset
1188 mswindows_finalize_font_instance (Lisp_Font_Instance *f);
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1189
440
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 430
diff changeset
1190 /*
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
1191 * This is a work horse for both mswindows_initialize_font_instance and
440
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 430
diff changeset
1192 * msprinter_initialize_font_instance.
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 430
diff changeset
1193 */
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1194 static int
440
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 430
diff changeset
1195 initialize_font_instance (Lisp_Font_Instance *f, Lisp_Object name,
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 430
diff changeset
1196 Lisp_Object device_font_list, HDC hdc,
578
190b164ddcac [xemacs-hg @ 2001-05-25 11:26:50 by ben]
ben
parents: 563
diff changeset
1197 Error_Behavior errb)
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1198 {
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1199 LOGFONTW logfont;
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1200 int fields, i;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1201 int pt;
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1202 Intbyte fontname[LF_FACESIZE], weight[LF_FACESIZE], *style, points[8];
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1203 Intbyte effects[LF_FACESIZE], charset[LF_FACESIZE];
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1204 Intbyte *c;
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
1205 HFONT hfont, hfont2;
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1206 TEXTMETRICW metrics;
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1207 Intbyte *namestr = XSTRING_DATA (name);
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1208
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1209 /*
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1210 * mswindows fonts look like:
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1211 * fontname[:[weight ][style][:pointsize[:effects]]][:charset]
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1212 * The font name field shouldn't be empty.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1213 *
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1214 * ie:
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1215 * Lucida Console:Regular:10
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1216 * minimal:
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1217 * Courier New
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1218 * maximal:
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1219 * Courier New:Bold Italic:10:underline strikeout:western
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1220 */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1221
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1222 fields = sscanf ((CIntbyte *) namestr, "%31[^:]:%31[^:]:%7[^:]:%31[^:]:%31s",
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1223 fontname, weight, points, effects, charset);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1224
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1225 /* This function is implemented in a fairly ad-hoc manner.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1226 * The general idea is to validate and canonicalize each of the above fields
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1227 * at the same time as we build up the win32 LOGFONT structure. This enables
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1228 * us to use match_font() on a canonicalized font string to check the
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1229 * availability of the requested font */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1230
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1231 if (fields < 0)
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1232 {
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1233 maybe_signal_error (Qinvalid_argument, "Invalid font", name,
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1234 Qfont, errb);
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1235 return (0);
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1236 }
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1237
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1238 if (fields > 0 && qxestrlen (fontname))
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1239 {
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1240 Extbyte *extfontname;
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1241
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1242 C_STRING_TO_TSTR (fontname, extfontname);
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1243 xetcsncpy ((Extbyte *) logfont.lfFaceName, extfontname, LF_FACESIZE - 1);
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1244 logfont.lfFaceName[LF_FACESIZE - 1] = 0;
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1245 }
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1246 else
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1247 {
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1248 maybe_signal_error (Qinvalid_argument, "Must specify a font name",
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1249 name, Qfont, errb);
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1250 return (0);
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1251 }
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1252
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1253 /* weight */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1254 if (fields < 2)
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1255 qxestrcpy_c (weight, fontweight_map[0].name);
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1256
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1257 /* Maybe split weight into weight and style */
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1258 if ((c = qxestrchr (weight, ' ')))
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1259 {
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1260 *c = '\0';
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1261 style = c + 1;
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1262 }
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1263 else
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1264 style = NULL;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1265
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1266 for (i = 0; i < countof (fontweight_map); i++)
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1267 if (!qxestrcasecmp_c (weight, fontweight_map[i].name))
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
1268 {
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1269 logfont.lfWeight = fontweight_map[i].value;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1270 break;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1271 }
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1272 if (i == countof (fontweight_map)) /* No matching weight */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1273 {
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1274 if (!style)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1275 {
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1276 logfont.lfWeight = FW_REGULAR;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1277 style = weight; /* May have specified style without weight */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1278 }
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1279 else
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1280 {
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1281 maybe_signal_error (Qinvalid_constant, "Invalid font weight", name,
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1282 Qfont, errb);
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1283 return (0);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1284 }
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1285 }
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1286
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1287 if (style)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1288 {
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1289 /* #### what about oblique? */
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1290 if (qxestrcasecmp_c (style, "italic") == 0)
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1291 logfont.lfItalic = TRUE;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1292 else
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1293 {
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1294 maybe_signal_error (Qinvalid_constant, "Invalid font weight or style",
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1295 name, Qfont, errb);
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1296 return (0);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1297 }
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1298
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1299 /* Glue weight and style together again */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1300 if (weight != style)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1301 *c = ' ';
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1302 }
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1303 else
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1304 logfont.lfItalic = FALSE;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1305
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1306 if (fields < 3)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1307 pt = 10; /* #### Should we reject strings that don't specify a size? */
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1308 else if ((pt = qxeatoi (points)) == 0)
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1309 {
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1310 maybe_signal_error (Qinvalid_argument, "Invalid font pointsize", name,
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1311 Qfont, errb);
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1312 return (0);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1313 }
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1314
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1315 /* Formula for pointsize->height from LOGFONT docs in MSVC5 Platform SDK */
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1316 logfont.lfHeight = -MulDiv (pt, GetDeviceCaps (hdc, LOGPIXELSY), 72);
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1317 logfont.lfWidth = 0;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1318
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1319 /* Effects */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1320 logfont.lfUnderline = FALSE;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1321 logfont.lfStrikeOut = FALSE;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1322 if (fields >= 4 && effects[0] != '\0')
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1323 {
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1324 Intbyte *effects2;
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1325
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1326 /* Maybe split effects into effects and effects2 */
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1327 if ((c = qxestrchr (effects, ' ')))
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1328 {
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1329 *c = '\0';
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1330 effects2 = c + 1;
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1331 }
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1332 else
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1333 effects2 = NULL;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1334
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1335 if (qxestrcasecmp_c (effects, "underline") == 0)
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1336 logfont.lfUnderline = TRUE;
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1337 else if (qxestrcasecmp_c (effects, "strikeout") == 0)
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1338 logfont.lfStrikeOut = TRUE;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1339 else
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1340 {
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1341 maybe_signal_error (Qinvalid_constant, "Invalid font effect", name,
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1342 Qfont, errb);
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1343 return (0);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1344 }
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1345
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1346 if (effects2 && effects2[0] != '\0')
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1347 {
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1348 if (qxestrcasecmp_c (effects2, "underline") == 0)
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1349 logfont.lfUnderline = TRUE;
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1350 else if (qxestrcasecmp_c (effects2, "strikeout") == 0)
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1351 logfont.lfStrikeOut = TRUE;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1352 else
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1353 {
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1354 maybe_signal_error (Qinvalid_constant, "Invalid font effect",
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1355 name, Qfont, errb);
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1356 return (0);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1357 }
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1358 }
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1359
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1360 /* Regenerate sanitised effects string */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1361 if (logfont.lfUnderline)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1362 {
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1363 if (logfont.lfStrikeOut)
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1364 qxestrcpy_c (effects, "underline strikeout");
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1365 else
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1366 qxestrcpy_c (effects, "underline");
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1367 }
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1368 else if (logfont.lfStrikeOut)
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1369 qxestrcpy_c (effects, "strikeout");
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1370 }
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1371 else
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1372 effects[0] = '\0';
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1373
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1374 /* Charset */
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
1375 /* charset can be specified even if earlier fields haven't been */
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1376 if (fields < 5)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1377 {
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1378 if ((c = qxestrchr (namestr, ':')) && (c = qxestrchr (c + 1, ':')) &&
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1379 (c = qxestrchr (c + 1, ':')) && (c = qxestrchr (c + 1, ':')))
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1380 {
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1381 qxestrncpy (charset, c + 1, LF_FACESIZE);
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1382 charset[LF_FACESIZE - 1] = '\0';
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1383 }
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1384 else
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1385 qxestrcpy_c (charset, charset_map[0].name);
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1386 }
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1387
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1388 for (i = 0; i < countof (charset_map); i++)
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1389 if (!qxestrcasecmp_c (charset, charset_map[i].name))
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1390 {
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1391 logfont.lfCharSet = charset_map[i].value;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1392 break;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1393 }
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1394
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1395 if (i == countof (charset_map)) /* No matching charset */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1396 {
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1397 maybe_signal_error (Qinvalid_argument, "Invalid charset", name, Qfont,
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1398 errb);
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1399 return 0;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1400 }
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1401
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1402 /* Misc crud */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1403 logfont.lfEscapement = logfont.lfOrientation = 0;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1404 #if 1
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1405 logfont.lfOutPrecision = OUT_DEFAULT_PRECIS;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1406 logfont.lfClipPrecision = CLIP_DEFAULT_PRECIS;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1407 logfont.lfQuality = DEFAULT_QUALITY;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1408 #else
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1409 logfont.lfOutPrecision = OUT_STROKE_PRECIS;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1410 logfont.lfClipPrecision = CLIP_STROKE_PRECIS;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1411 logfont.lfQuality = PROOF_QUALITY;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1412 #endif
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1413 /* Default to monospaced if the specified fontname doesn't exist. */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1414 logfont.lfPitchAndFamily = FF_MODERN;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1415
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
1416 /* Windows will silently substitute a default font if the fontname specifies
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
1417 a non-existent font. This is bad for screen fonts because it doesn't
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
1418 allow higher-level code to see the error and to act appropriately.
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
1419 For instance complex_vars_of_faces() sets up a fallback list of fonts
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
1420 for the default face. */
440
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 430
diff changeset
1421
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 430
diff changeset
1422 if (!NILP (device_font_list))
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 430
diff changeset
1423 {
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 430
diff changeset
1424 Lisp_Object fonttail;
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1425 Intbyte truename[MSW_FONTSIZE];
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1426
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1427 qxesprintf (truename, "%s:%s:%d:%s:%s", fontname, weight, pt, effects,
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1428 charset);
440
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 430
diff changeset
1429 LIST_LOOP (fonttail, device_font_list)
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 430
diff changeset
1430 {
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1431 if (match_font (XSTRING_DATA (XCAR (fonttail)), truename,
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1432 NULL))
440
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 430
diff changeset
1433 break;
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 430
diff changeset
1434 }
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 430
diff changeset
1435 if (NILP (fonttail))
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 430
diff changeset
1436 {
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1437 maybe_signal_error (Qinvalid_argument, "No matching font", name,
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1438 Qfont, errb);
440
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 430
diff changeset
1439 return 0;
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 430
diff changeset
1440 }
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 430
diff changeset
1441 }
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 430
diff changeset
1442
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1443 if ((hfont = qxeCreateFontIndirect (&logfont)) == NULL)
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1444 {
563
183866b06e0b [xemacs-hg @ 2001-05-24 07:50:48 by ben]
ben
parents: 442
diff changeset
1445 maybe_signal_error (Qgui_error, "Couldn't create font", name, Qfont, errb);
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1446 return 0;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1447 }
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1448
440
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 430
diff changeset
1449 f->data = xnew_and_zero (struct mswindows_font_instance_data);
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 430
diff changeset
1450 FONT_INSTANCE_MSWINDOWS_HFONT_VARIANT (f,0,0) = hfont;
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
1451
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
1452 /* Some underlined fonts have the descent of one pixel more than their
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
1453 non-underlined counterparts. Font variants though are assumed to have
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
1454 identical metrics. So get the font metrics from the underlined variant
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
1455 of the font */
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
1456 hfont2 = mswindows_create_font_variant (f, 1, 0);
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
1457 if (hfont2 != MSWINDOWS_BAD_HFONT)
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
1458 hfont = hfont2;
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
1459
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
1460 hfont2 = (HFONT) SelectObject (hdc, hfont);
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
1461 if (!hfont2)
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1462 {
440
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 430
diff changeset
1463 mswindows_finalize_font_instance (f);
563
183866b06e0b [xemacs-hg @ 2001-05-24 07:50:48 by ben]
ben
parents: 442
diff changeset
1464 maybe_signal_error (Qgui_error, "Couldn't map font", name, Qfont, errb);
440
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 430
diff changeset
1465 return 0;
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 430
diff changeset
1466 }
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1467 qxeGetTextMetrics (hdc, &metrics);
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1468 SelectObject (hdc, hfont2);
440
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 430
diff changeset
1469
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 430
diff changeset
1470 f->width = (unsigned short) metrics.tmAveCharWidth;
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 430
diff changeset
1471 f->height = (unsigned short) metrics.tmHeight;
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
1472 f->ascent = (unsigned short) metrics.tmAscent;
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
1473 f->descent = (unsigned short) metrics.tmDescent;
440
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 430
diff changeset
1474 f->proportional_p = (metrics.tmPitchAndFamily & TMPF_FIXED_PITCH);
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 430
diff changeset
1475
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 430
diff changeset
1476 return 1;
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 430
diff changeset
1477 }
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 430
diff changeset
1478
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 430
diff changeset
1479 static int
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 430
diff changeset
1480 mswindows_initialize_font_instance (Lisp_Font_Instance *f, Lisp_Object name,
578
190b164ddcac [xemacs-hg @ 2001-05-25 11:26:50 by ben]
ben
parents: 563
diff changeset
1481 Lisp_Object device, Error_Behavior errb)
440
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 430
diff changeset
1482 {
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 430
diff changeset
1483 HDC hdc = CreateCompatibleDC (NULL);
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 430
diff changeset
1484 Lisp_Object font_list = DEVICE_MSWINDOWS_FONTLIST (XDEVICE (device));
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 430
diff changeset
1485 int res = initialize_font_instance (f, name, font_list, hdc, errb);
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 430
diff changeset
1486 DeleteDC (hdc);
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 430
diff changeset
1487 return res;
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 430
diff changeset
1488 }
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 430
diff changeset
1489
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 430
diff changeset
1490 static int
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 430
diff changeset
1491 msprinter_initialize_font_instance (Lisp_Font_Instance *f, Lisp_Object name,
578
190b164ddcac [xemacs-hg @ 2001-05-25 11:26:50 by ben]
ben
parents: 563
diff changeset
1492 Lisp_Object device, Error_Behavior errb)
440
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 430
diff changeset
1493 {
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 430
diff changeset
1494 HDC hdc = DEVICE_MSPRINTER_HDC (XDEVICE (device));
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 430
diff changeset
1495 Lisp_Object font_list = DEVICE_MSPRINTER_FONTLIST (XDEVICE (device));
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 430
diff changeset
1496 return initialize_font_instance (f, name, font_list, hdc, errb);
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 430
diff changeset
1497 }
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 430
diff changeset
1498
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 430
diff changeset
1499 static void
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 430
diff changeset
1500 mswindows_finalize_font_instance (Lisp_Font_Instance *f)
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 430
diff changeset
1501 {
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 430
diff changeset
1502 int i;
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 430
diff changeset
1503
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 430
diff changeset
1504 if (f->data)
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 430
diff changeset
1505 {
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 430
diff changeset
1506 for (i = 0; i < MSWINDOWS_NUM_FONT_VARIANTS; i++)
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1507 {
440
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 430
diff changeset
1508 if (FONT_INSTANCE_MSWINDOWS_HFONT_I (f, i) != NULL
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 430
diff changeset
1509 && FONT_INSTANCE_MSWINDOWS_HFONT_I (f, i) != MSWINDOWS_BAD_HFONT)
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 430
diff changeset
1510 DeleteObject (FONT_INSTANCE_MSWINDOWS_HFONT_I (f, i));
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1511 }
440
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 430
diff changeset
1512
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 430
diff changeset
1513 xfree (f->data);
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 430
diff changeset
1514 f->data = 0;
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 430
diff changeset
1515 }
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1516 }
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1517
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1518 #if 0
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1519 static void
440
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 430
diff changeset
1520 mswindows_mark_font_instance (Lisp_Font_Instance *f)
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1521 {
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1522 }
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1523 #endif
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1524
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1525 static void
440
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 430
diff changeset
1526 mswindows_print_font_instance (Lisp_Font_Instance *f,
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 430
diff changeset
1527 Lisp_Object printcharfun,
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 430
diff changeset
1528 int escapeflag)
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1529 {
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1530 Intbyte buf[10];
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1531 qxesprintf (buf, " 0x%lx",
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1532 (unsigned long)FONT_INSTANCE_MSWINDOWS_HFONT_VARIANT (f,0,0));
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1533 write_string (buf, printcharfun);
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1534 }
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1535
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1536 static Lisp_Object
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1537 mswindows_list_fonts (Lisp_Object pattern, Lisp_Object device)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1538 {
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1539 struct device *d = XDEVICE (device);
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1540 Lisp_Object font_list = Qnil, fonttail, result = Qnil;
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1541
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1542 if (DEVICE_MSWINDOWS_P (d))
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1543 font_list = DEVICE_MSWINDOWS_FONTLIST (d);
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1544 else if (DEVICE_MSPRINTER_P (d))
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1545 font_list = DEVICE_MSPRINTER_FONTLIST (d);
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1546 else
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1547 abort ();
440
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 430
diff changeset
1548
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1549 LIST_LOOP (fonttail, font_list)
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1550 {
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1551 Intbyte fontname[MSW_FONTSIZE];
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1552
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1553 if (match_font (XSTRING_DATA (XCAR (fonttail)), XSTRING_DATA (pattern),
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1554 fontname))
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1555 result = Fcons (build_intstring (fontname), result);
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1556 }
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1557
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1558 return Fnreverse (result);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1559 }
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1560
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1561 /* Fill in missing parts of a font spec. This is primarily intended as a
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1562 * helper function for the functions below.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1563 * mswindows fonts look like:
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1564 * fontname[:[weight][ style][:pointsize[:effects]]][:charset]
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1565 * A minimal mswindows font spec looks like:
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1566 * Courier New
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1567 * A maximal mswindows font spec looks like:
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1568 * Courier New:Bold Italic:10:underline strikeout:Western
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1569 * Missing parts of the font spec should be filled in with these values:
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1570 * Courier New:Regular:10::Western */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1571 static Lisp_Object
578
190b164ddcac [xemacs-hg @ 2001-05-25 11:26:50 by ben]
ben
parents: 563
diff changeset
1572 mswindows_font_instance_truename (Lisp_Font_Instance *f, Error_Behavior errb)
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1573 {
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1574 /* #### does not handle charset at end!!! charset can be given even
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1575 when previous fields are not.
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1576
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1577 #### does not canonicalize given fields! needs to be merged
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1578 with initialize_font_instance(). */
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1579
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1580 int nsep = 0;
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1581 CIntbyte *ptr = (CIntbyte *) XSTRING_DATA (f->name);
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1582 CIntbyte *name = (CIntbyte *) alloca (XSTRING_LENGTH (f->name) + 19);
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1583
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1584 strcpy (name, ptr);
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1585
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1586 while ((ptr = strchr (ptr, ':')) != 0)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1587 {
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1588 ptr++;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1589 nsep++;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1590 }
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1591
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1592 switch (nsep)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1593 {
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1594 case 0:
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1595 strcat (name, ":Regular:10::Western");
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1596 break;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1597 case 1:
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1598 strcat (name, ":10::Western");
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1599 break;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1600 case 2:
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1601 strcat (name, "::Western");
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1602 break;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1603 case 3:
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1604 strcat (name, ":Western");
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1605 break;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1606 default:;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1607 }
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
1608
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1609 return build_string (name);
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1610 }
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1611
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1612 #ifdef MULE
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1613
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1614 static int
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1615 mswindows_font_spec_matches_charset (struct device *d, Lisp_Object charset,
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1616 const Intbyte *nonreloc,
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1617 Lisp_Object reloc,
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1618 Bytecount offset, Bytecount length)
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1619 {
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1620 const Intbyte *the_nonreloc = nonreloc;
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1621 int i, ms_charset = 0;
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1622 const Intbyte *c;
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1623 Bytecount the_length = length;
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1624 CHARSETINFO info;
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1625 int font_code_page;
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1626 Lisp_Object charset_code_page;
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1627
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1628 if (UNBOUNDP (charset))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1629 return 1;
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
1630
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1631 if (!the_nonreloc)
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1632 the_nonreloc = XSTRING_DATA (reloc);
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1633 fixup_internal_substring (nonreloc, reloc, offset, &the_length);
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1634 the_nonreloc += offset;
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1635
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1636 /* Get code page from the font spec */
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1637
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1638 c = the_nonreloc;
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1639 for (i = 0; i < 4; i++)
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1640 {
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1641 Intbyte *newc = (Intbyte *) memchr (c, ':', the_length);
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1642 if (!newc)
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1643 break;
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1644 newc++;
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1645 the_length -= (newc - c);
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1646 c = newc;
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1647 }
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1648
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1649 if (i < 4)
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1650 return 0;
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1651
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1652 for (i = 0; i < countof (charset_map); i++)
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1653 if (qxestrcasecmp_c (c, charset_map[i].name) == 0)
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1654 {
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1655 ms_charset = charset_map[i].value;
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1656 break;
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1657 }
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1658 if (i == countof (charset_map))
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1659 return 0;
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1660
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1661 /* For border-glyph use */
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1662 if (ms_charset == SYMBOL_CHARSET)
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1663 ms_charset = ANSI_CHARSET;
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1664
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1665 if (!TranslateCharsetInfo ((DWORD *) ms_charset, &info, TCI_SRCCHARSET))
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1666 return 0;
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1667
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1668 font_code_page = info.ciACP;
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1669
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1670 /* Get code page for the charset */
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1671 charset_code_page = Fmswindows_charset_code_page (charset);
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1672 if (!INTP (charset_code_page))
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1673 return 0;
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1674
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1675 return font_code_page == XINT (charset_code_page);
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1676 }
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1677
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1678 /* find a font spec that matches font spec FONT and also matches
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1679 (the registry of) CHARSET. */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1680 static Lisp_Object
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1681 mswindows_find_charset_font (Lisp_Object device, Lisp_Object font,
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1682 Lisp_Object charset)
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1683 {
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1684 Lisp_Object fontlist, fonttail;
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1685
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1686 fontlist = mswindows_list_fonts (font, device);
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1687 LIST_LOOP (fonttail, fontlist)
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1688 {
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1689 if (mswindows_font_spec_matches_charset
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1690 (XDEVICE (device), charset, 0, XCAR (fonttail), 0, -1))
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1691 return XCAR (fonttail);
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1692 }
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1693 return Qnil;
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1694 }
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1695
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1696 #endif /* MULE */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1697
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1698
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1699 /************************************************************************/
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1700 /* non-methods */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1701 /************************************************************************/
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1702
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1703 DEFUN ("mswindows-color-list", Fmswindows_color_list, 0, 0, 0, /*
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1704 Return a list of the colors available on mswindows devices.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1705 */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1706 ())
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1707 {
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1708 Lisp_Object result = Qnil;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1709 int i;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1710
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
1711 for (i = 0; i < countof (mswindows_X_color_map); i++)
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1712 result = Fcons (build_string (mswindows_X_color_map[i].name), result);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1713
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1714 return Fnreverse (result);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1715 }
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1716
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1717
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1718
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1719 /************************************************************************/
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1720 /* initialization */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1721 /************************************************************************/
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1722
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1723 void
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1724 syms_of_objects_mswindows (void)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1725 {
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1726 DEFSUBR (Fmswindows_color_list);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1727 }
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1728
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1729 void
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1730 console_type_create_objects_mswindows (void)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1731 {
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1732 /* object methods */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1733 CONSOLE_HAS_METHOD (mswindows, initialize_color_instance);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1734 /* CONSOLE_HAS_METHOD (mswindows, mark_color_instance); */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1735 CONSOLE_HAS_METHOD (mswindows, print_color_instance);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1736 CONSOLE_HAS_METHOD (mswindows, finalize_color_instance);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1737 CONSOLE_HAS_METHOD (mswindows, color_instance_equal);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1738 CONSOLE_HAS_METHOD (mswindows, color_instance_hash);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1739 CONSOLE_HAS_METHOD (mswindows, color_instance_rgb_components);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1740 CONSOLE_HAS_METHOD (mswindows, valid_color_name_p);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1741
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1742 CONSOLE_HAS_METHOD (mswindows, initialize_font_instance);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1743 /* CONSOLE_HAS_METHOD (mswindows, mark_font_instance); */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1744 CONSOLE_HAS_METHOD (mswindows, print_font_instance);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1745 CONSOLE_HAS_METHOD (mswindows, finalize_font_instance);
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
1746 CONSOLE_HAS_METHOD (mswindows, font_instance_truename);
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1747 CONSOLE_HAS_METHOD (mswindows, list_fonts);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1748 #ifdef MULE
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1749 CONSOLE_HAS_METHOD (mswindows, font_spec_matches_charset);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1750 CONSOLE_HAS_METHOD (mswindows, find_charset_font);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1751 #endif
440
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 430
diff changeset
1752
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 430
diff changeset
1753 /* Printer methods - delegate most to windows methods,
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 430
diff changeset
1754 since graphical objects behave the same way. */
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 430
diff changeset
1755
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 430
diff changeset
1756 CONSOLE_INHERITS_METHOD (msprinter, mswindows, initialize_color_instance);
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 430
diff changeset
1757 /* CONSOLE_INHERITS_METHOD (msprinter, mswindows, mark_color_instance); */
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 430
diff changeset
1758 CONSOLE_INHERITS_METHOD (msprinter, mswindows, print_color_instance);
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 430
diff changeset
1759 CONSOLE_INHERITS_METHOD (msprinter, mswindows, finalize_color_instance);
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 430
diff changeset
1760 CONSOLE_INHERITS_METHOD (msprinter, mswindows, color_instance_equal);
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 430
diff changeset
1761 CONSOLE_INHERITS_METHOD (msprinter, mswindows, color_instance_hash);
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 430
diff changeset
1762 CONSOLE_INHERITS_METHOD (msprinter, mswindows, color_instance_rgb_components);
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 430
diff changeset
1763 CONSOLE_INHERITS_METHOD (msprinter, mswindows, valid_color_name_p);
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 430
diff changeset
1764
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 430
diff changeset
1765 CONSOLE_HAS_METHOD (msprinter, initialize_font_instance);
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 430
diff changeset
1766 /* CONSOLE_INHERITS_METHOD (msprinter, mswindows, mark_font_instance); */
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 430
diff changeset
1767 CONSOLE_INHERITS_METHOD (msprinter, mswindows, print_font_instance);
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 430
diff changeset
1768 CONSOLE_INHERITS_METHOD (msprinter, mswindows, finalize_font_instance);
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
1769 CONSOLE_INHERITS_METHOD (msprinter, mswindows, font_instance_truename);
440
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 430
diff changeset
1770 CONSOLE_INHERITS_METHOD (msprinter, mswindows, list_fonts);
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 430
diff changeset
1771 #ifdef MULE
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 430
diff changeset
1772 CONSOLE_INHERITS_METHOD (msprinter, mswindows, font_spec_matches_charset);
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 430
diff changeset
1773 CONSOLE_INHERITS_METHOD (msprinter, mswindows, find_charset_font);
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 430
diff changeset
1774 #endif
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1775 }
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1776
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1777 void
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1778 vars_of_objects_mswindows (void)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1779 {
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1780 }