Mercurial > emacs
annotate src/macgui.h @ 88346:3be7f212f8bc
*** empty log message ***
author | Henrik Enberg <henrik.enberg@telia.com> |
---|---|
date | Fri, 27 Apr 2007 21:33:38 +0000 |
parents | d7ddb3e565de |
children |
rev | line source |
---|---|
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1 /* Definitions and headers for communication on the Mac OS. |
88155 | 2 Copyright (C) 2000, 2001, 2002, 2003, 2004, |
3 2005 Free Software Foundation, Inc. | |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5 This file is part of GNU Emacs. |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7 GNU Emacs is free software; you can redistribute it and/or modify |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8 it under the terms of the GNU General Public License as published by |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
9 the Free Software Foundation; either version 2, or (at your option) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10 any later version. |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
11 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
12 GNU Emacs is distributed in the hope that it will be useful, |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
13 but WITHOUT ANY WARRANTY; without even the implied warranty of |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
15 GNU General Public License for more details. |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
16 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
17 You should have received a copy of the GNU General Public License |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
18 along with GNU Emacs; see the file COPYING. If not, write to |
88155 | 19 the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, |
20 Boston, MA 02110-1301, USA. */ | |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
21 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
22 /* Contributed by Andrew Choi (akochoi@mac.com). */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
23 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
24 #ifndef EMACS_MACGUI_H |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
25 #define EMACS_MACGUI_H |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
26 |
88155 | 27 typedef int Display; /* fix later */ |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
28 |
88155 | 29 typedef Lisp_Object XrmDatabase; |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
30 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
31 typedef unsigned long Time; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
32 |
88155 | 33 #ifdef HAVE_CARBON |
34 #undef Z | |
35 #ifdef MAC_OSX | |
36 #if ! HAVE_MKTIME || BROKEN_MKTIME | |
37 #undef mktime | |
38 #endif | |
39 #undef DEBUG | |
40 #undef free | |
41 #undef malloc | |
42 #undef realloc | |
43 /* Macros max and min defined in lisp.h conflict with those in | |
44 precompiled header Carbon.h. */ | |
45 #undef max | |
46 #undef min | |
47 #undef init_process | |
48 #include <Carbon/Carbon.h> | |
49 #if ! HAVE_MKTIME || BROKEN_MKTIME | |
50 #undef mktime | |
51 #define mktime emacs_mktime | |
52 #endif | |
53 #undef free | |
54 #define free unexec_free | |
55 #undef malloc | |
56 #define malloc unexec_malloc | |
57 #undef realloc | |
58 #define realloc unexec_realloc | |
59 #undef min | |
60 #define min(a, b) ((a) < (b) ? (a) : (b)) | |
61 #undef max | |
62 #define max(a, b) ((a) > (b) ? (a) : (b)) | |
63 #undef init_process | |
64 #define init_process emacs_init_process | |
65 #undef INFINITY | |
66 #else /* not MAC_OSX */ | |
67 #undef SIGHUP | |
68 #define OLDP2C 1 | |
69 #include <Carbon.h> | |
70 #endif /* not MAC_OSX */ | |
71 #undef Z | |
72 #define Z (current_buffer->text->z) | |
73 #else /* not HAVE_CARBON */ | |
74 #include <QuickDraw.h> /* for WindowPtr */ | |
75 #include <QDOffscreen.h> /* for GWorldPtr */ | |
76 #include <Appearance.h> /* for ThemeCursor */ | |
77 #include <Windows.h> | |
78 #include <Controls.h> | |
79 #include <Gestalt.h> | |
80 #endif /* not HAVE_CARBON */ | |
81 | |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
82 typedef WindowPtr Window; |
88155 | 83 typedef GWorldPtr Pixmap; |
84 | |
85 #define Cursor ThemeCursor | |
86 #define No_Cursor (-1) | |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
87 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
88 #define FACE_DEFAULT (~0) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
89 |
88155 | 90 #if !TARGET_API_MAC_CARBON |
91 #define GetPixDepth(pmh) ((*(pmh))->pixelSize) | |
92 #endif | |
93 | |
94 | |
95 #ifndef USE_CG_TEXT_DRAWING | |
96 #if USE_ATSUI && MAC_OS_X_VERSION_MAX_ALLOWED >= 1030 | |
97 #define USE_CG_TEXT_DRAWING 1 | |
98 #endif | |
99 #endif | |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
100 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
101 /* Emulate XCharStruct. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
102 typedef struct _XCharStruct |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
103 { |
88155 | 104 short lbearing; /* origin to left edge of raster */ |
105 short rbearing; /* origin to right edge of raster */ | |
106 short width; /* advance to next char's origin */ | |
107 short ascent; /* baseline to top edge of raster */ | |
108 short descent; /* baseline to bottom edge of raster */ | |
109 #if 0 | |
110 unsigned short attributes; /* per char flags (not predefined) */ | |
111 #endif | |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
112 } XCharStruct; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
113 |
88155 | 114 #define STORE_XCHARSTRUCT(xcs, w, bds) \ |
115 ((xcs).width = (w), \ | |
116 (xcs).lbearing = (bds).left, \ | |
117 (xcs).rbearing = (bds).right, \ | |
118 (xcs).ascent = -(bds).top, \ | |
119 (xcs).descent = (bds).bottom) | |
120 | |
121 typedef struct | |
122 { | |
123 char valid_bits[0x100 / 8]; | |
124 XCharStruct per_char[0x100]; | |
125 } XCharStructRow; | |
126 | |
127 #define XCHARSTRUCTROW_CHAR_VALID_P(row, byte2) \ | |
128 ((row)->valid_bits[(byte2) / 8] & (1 << (byte2) % 8)) | |
129 | |
130 #define XCHARSTRUCTROW_SET_CHAR_VALID(row, byte2) \ | |
131 ((row)->valid_bits[(byte2) / 8] |= (1 << (byte2) % 8)) | |
132 | |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
133 struct MacFontStruct { |
88155 | 134 char *full_name; |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
135 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
136 short mac_fontnum; /* font number of font used in this window */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
137 int mac_fontsize; /* size of font */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
138 short mac_fontface; /* plain, bold, italics, etc. */ |
88155 | 139 #if TARGET_API_MAC_CARBON |
140 int mac_scriptcode; /* Mac OS script code for font used */ | |
141 #else | |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
142 short mac_scriptcode; /* Mac OS script code for font used */ |
88155 | 143 #endif |
144 #if USE_ATSUI | |
145 ATSUStyle mac_style; /* NULL if QuickDraw Text is used */ | |
146 #if USE_CG_TEXT_DRAWING | |
147 CGFontRef cg_font; /* NULL if ATSUI text drawing is used */ | |
148 CGGlyph *cg_glyphs; /* Likewise */ | |
149 #endif | |
150 #endif | |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
151 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
152 /* from Xlib.h */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
153 #if 0 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
154 XExtData *ext_data; /* hook for extension to hang data */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
155 Font fid; /* Font id for this font */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
156 unsigned direction; /* hint about the direction font is painted */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
157 #endif /* 0 */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
158 unsigned min_char_or_byte2;/* first character */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
159 unsigned max_char_or_byte2;/* last character */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
160 unsigned min_byte1; /* first row that exists */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
161 unsigned max_byte1; /* last row that exists */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
162 #if 0 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
163 Bool all_chars_exist; /* flag if all characters have nonzero size */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
164 unsigned default_char; /* char to print for undefined character */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
165 int n_properties; /* how many properties there are */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
166 XFontProp *properties; /* pointer to array of additional properties */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
167 #endif /* 0 */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
168 XCharStruct min_bounds; /* minimum bounds over all existing char */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
169 XCharStruct max_bounds; /* maximum bounds over all existing char */ |
88155 | 170 union { |
171 XCharStruct *per_char; /* first_char to last_char information */ | |
172 XCharStructRow **rows; /* first row to last row information */ | |
173 } bounds; | |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
174 int ascent; /* logical extent above baseline for spacing */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
175 int descent; /* logical decent below baseline for spacing */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
176 }; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
177 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
178 typedef struct MacFontStruct MacFontStruct; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
179 typedef struct MacFontStruct XFontStruct; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
180 |
88155 | 181 /* Structure borrowed from Xlib.h to represent two-byte characters. */ |
182 | |
183 typedef struct { | |
184 unsigned char byte1; | |
185 unsigned char byte2; | |
186 } XChar2b; | |
187 | |
188 #define STORE_XCHAR2B(chp, b1, b2) \ | |
189 ((chp)->byte1 = (b1), (chp)->byte2 = (b2)) | |
190 | |
191 #define XCHAR2B_BYTE1(chp) \ | |
192 ((chp)->byte1) | |
193 | |
194 #define XCHAR2B_BYTE2(chp) \ | |
195 ((chp)->byte2) | |
196 | |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
197 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
198 /* Emulate X GC's by keeping color and font info in a structure. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
199 typedef struct _XGCValues |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
200 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
201 unsigned long foreground; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
202 unsigned long background; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
203 XFontStruct *font; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
204 } XGCValues; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
205 |
88155 | 206 typedef struct _XGC |
207 { | |
208 /* Original value. */ | |
209 XGCValues xgcv; | |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
210 |
88155 | 211 /* Cached data members follow. */ |
212 | |
213 /* QuickDraw foreground color. */ | |
214 RGBColor fore_color; | |
215 | |
216 /* QuickDraw background color. */ | |
217 RGBColor back_color; | |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
218 |
88155 | 219 #define MAX_CLIP_RECTS 2 |
220 /* QuickDraw clipping region. */ | |
221 RgnHandle clip_region; | |
222 | |
223 #if defined (MAC_OSX) && USE_ATSUI | |
224 /* Number of clipping rectangles used in Quartz 2D drawing. */ | |
225 int n_clip_rects; | |
226 | |
227 /* Clipping rectangles used in Quartz 2D drawing. The y-coordinate | |
228 is in QuickDraw's. */ | |
229 CGRect clip_rects[MAX_CLIP_RECTS]; | |
230 #endif | |
231 } *GC; | |
232 | |
233 #define GCForeground (1L<<2) | |
234 #define GCBackground (1L<<3) | |
235 #define GCFont (1L<<14) | |
236 #define GCGraphicsExposures 0 | |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
237 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
238 /* Bit Gravity */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
239 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
240 #define ForgetGravity 0 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
241 #define NorthWestGravity 1 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
242 #define NorthGravity 2 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
243 #define NorthEastGravity 3 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
244 #define WestGravity 4 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
245 #define CenterGravity 5 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
246 #define EastGravity 6 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
247 #define SouthWestGravity 7 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
248 #define SouthGravity 8 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
249 #define SouthEastGravity 9 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
250 #define StaticGravity 10 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
251 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
252 #define NoValue 0x0000 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
253 #define XValue 0x0001 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
254 #define YValue 0x0002 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
255 #define WidthValue 0x0004 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
256 #define HeightValue 0x0008 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
257 #define AllValues 0x000F |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
258 #define XNegative 0x0010 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
259 #define YNegative 0x0020 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
260 |
88155 | 261 typedef struct { |
262 long flags; /* marks which fields in this structure are defined */ | |
263 #if 0 | |
264 int x, y; /* obsolete for new window mgrs, but clients */ | |
265 int width, height; /* should set so old wm's don't mess up */ | |
266 #endif | |
267 int min_width, min_height; | |
268 #if 0 | |
269 int max_width, max_height; | |
270 #endif | |
271 int width_inc, height_inc; | |
272 #if 0 | |
273 struct { | |
274 int x; /* numerator */ | |
275 int y; /* denominator */ | |
276 } min_aspect, max_aspect; | |
277 #endif | |
278 int base_width, base_height; /* added by ICCCM version 1 */ | |
279 #if 0 | |
280 int win_gravity; /* added by ICCCM version 1 */ | |
281 #endif | |
282 } XSizeHints; | |
283 | |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
284 #define USPosition (1L << 0) /* user specified x, y */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
285 #define USSize (1L << 1) /* user specified width, height */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
286 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
287 #define PPosition (1L << 2) /* program specified position */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
288 #define PSize (1L << 3) /* program specified size */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
289 #define PMinSize (1L << 4) /* program specified minimum size */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
290 #define PMaxSize (1L << 5) /* program specified maximum size */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
291 #define PResizeInc (1L << 6) /* program specified resize increments */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
292 #define PAspect (1L << 7) /* program specified min and max aspect ratios */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
293 #define PBaseSize (1L << 8) /* program specified base for incrementing */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
294 #define PWinGravity (1L << 9) /* program specified window gravity */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
295 |
88155 | 296 typedef struct { |
297 int x, y; | |
298 unsigned width, height; | |
299 } XRectangle; | |
300 | |
301 #define NativeRectangle Rect | |
302 | |
303 #define CONVERT_TO_XRECT(xr,nr) \ | |
304 ((xr).x = (nr).left, \ | |
305 (xr).y = (nr).top, \ | |
306 (xr).width = ((nr).right - (nr).left), \ | |
307 (xr).height = ((nr).bottom - (nr).top)) | |
308 | |
309 #define CONVERT_FROM_XRECT(xr,nr) \ | |
310 ((nr).left = (xr).x, \ | |
311 (nr).top = (xr).y, \ | |
312 (nr).right = ((xr).x + (xr).width), \ | |
313 (nr).bottom = ((xr).y + (xr).height)) | |
314 | |
315 #define STORE_NATIVE_RECT(nr,x,y,width,height) \ | |
316 ((nr).left = (x), \ | |
317 (nr).top = (y), \ | |
318 (nr).right = ((nr).left + (width)), \ | |
319 (nr).bottom = ((nr).top + (height))) | |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
320 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
321 #endif /* EMACS_MACGUI_H */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
322 |
88155 | 323 /* arch-tag: 5a0da49a-35e2-418b-a58c-8a55778ae849 |
324 (do not change this comment) */ |