Mercurial > emacs
annotate src/xterm.h @ 4413:5a00cec8e9b0
(fill-region-as-paragraph): When we take one word
after the fill column, don't stop at period with just one space.
When checking whether at beginning of line, if no fill prefix,
ignore intervening whitespace.
author | Richard M. Stallman <rms@gnu.org> |
---|---|
date | Mon, 02 Aug 1993 05:55:56 +0000 |
parents | b9e5a869b33e |
children | 94fe4e71f7fc |
rev | line source |
---|---|
259 | 1 /* Definitions and headers for communication with X protocol. |
1788
aaccd635fb71
Make scrollbar structures into lisp objects, so that they can be
Jim Blandy <jimb@redhat.com>
parents:
1721
diff
changeset
|
2 Copyright (C) 1989, 1993 Free Software Foundation, Inc. |
259 | 3 |
4 This file is part of GNU Emacs. | |
5 | |
6 GNU Emacs is free software; you can redistribute it and/or modify | |
7 it under the terms of the GNU General Public License as published by | |
1788
aaccd635fb71
Make scrollbar structures into lisp objects, so that they can be
Jim Blandy <jimb@redhat.com>
parents:
1721
diff
changeset
|
8 the Free Software Foundation; either version 2, or (at your option) |
259 | 9 any later version. |
10 | |
11 GNU Emacs is distributed in the hope that it will be useful, | |
12 but WITHOUT ANY WARRANTY; without even the implied warranty of | |
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
14 GNU General Public License for more details. | |
15 | |
16 You should have received a copy of the GNU General Public License | |
17 along with GNU Emacs; see the file COPYING. If not, write to | |
18 the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ | |
19 | |
20 #ifdef HAVE_X11 | |
21 #include <X11/Xlib.h> | |
22 #include <X11/cursorfont.h> | |
23 #include <X11/Xutil.h> | |
24 #include <X11/keysym.h> | |
25 #include <X11/Xatom.h> | |
26 #include <X11/Xresource.h> | |
27 #else | |
28 #include <X/Xlib.h> | |
29 #endif /* HAVE_X11 */ | |
30 | |
31 /* Define a queue for X-events. One such queue is used for mouse clicks. | |
32 Another is used for expose events. */ | |
33 | |
34 #define EVENT_BUFFER_SIZE 64 | |
35 | |
36 /* Max and Min sizes in character columns. */ | |
37 #define MINWIDTH 10 | |
38 #define MINHEIGHT 10 | |
39 #define MAXWIDTH 300 | |
40 #define MAXHEIGHT 80 | |
41 | |
42 #ifdef HAVE_X11 | |
999 | 43 |
1040 | 44 /* HAVE_X11R4 is defined if we have the features of X11R4. It should |
45 be defined when we're using X11R5, since X11R5 has the features of | |
46 X11R4. If, in the future, we find we need more of these flags | |
47 (HAVE_X11R5, for example), code should always be written to test | |
48 the most recent flag first: | |
49 | |
50 #ifdef HAVE_X11R5 | |
51 ... | |
52 #elif HAVE_X11R4 | |
53 ... | |
54 #elif HAVE_X11 | |
55 ... | |
56 #endif | |
57 | |
58 If you ever find yourself writing a "#ifdef HAVE_FOO" clause that | |
59 looks a lot like another one, consider moving the text into a macro | |
60 whose definition is configuration-dependent, but whose usage is | |
61 universal - like the stuff in systime.h. | |
62 | |
63 It turns out that we can auto-detect whether we're being compiled | |
999 | 64 with X11R3 or X11R4 by looking for the flag macros for R4 structure |
65 members that R3 doesn't have. */ | |
66 #ifdef PBaseSize | |
67 #define HAVE_X11R4 | |
68 #endif | |
69 | |
2300
dfef2f43f4bf
* xfns.c (Fx_open_connection): If we have X11R5, use
Jim Blandy <jimb@redhat.com>
parents:
2208
diff
changeset
|
70 #ifdef XlibSpecificationRelease |
dfef2f43f4bf
* xfns.c (Fx_open_connection): If we have X11R5, use
Jim Blandy <jimb@redhat.com>
parents:
2208
diff
changeset
|
71 #if XlibSpecificationRelease >= 5 |
dfef2f43f4bf
* xfns.c (Fx_open_connection): If we have X11R5, use
Jim Blandy <jimb@redhat.com>
parents:
2208
diff
changeset
|
72 #define HAVE_X11R5 |
dfef2f43f4bf
* xfns.c (Fx_open_connection): If we have X11R5, use
Jim Blandy <jimb@redhat.com>
parents:
2208
diff
changeset
|
73 #endif |
dfef2f43f4bf
* xfns.c (Fx_open_connection): If we have X11R5, use
Jim Blandy <jimb@redhat.com>
parents:
2208
diff
changeset
|
74 #endif |
dfef2f43f4bf
* xfns.c (Fx_open_connection): If we have X11R5, use
Jim Blandy <jimb@redhat.com>
parents:
2208
diff
changeset
|
75 |
259 | 76 #define PIX_TYPE unsigned long |
77 #define XDISPLAY x_current_display, | |
78 #define XFlushQueue() XFlush(x_current_display) | |
79 #define BLACK_PIX_DEFAULT BlackPixel (x_current_display, \ | |
80 XDefaultScreen (x_current_display)) | |
81 #define WHITE_PIX_DEFAULT WhitePixel (x_current_display, \ | |
82 XDefaultScreen (x_current_display)) | |
83 #define DISPLAY_SCREEN_ARG x_current_display, \ | |
84 XDefaultScreen (x_current_display) | |
85 #define DISPLAY_CELLS DisplayCells (x_current_display, XDefaultScreen (x_current_display)) | |
1258
353663d81b11
* xterm.h (ROOT_WINDOW): Use the DefaultScreen macro, not the
Jim Blandy <jimb@redhat.com>
parents:
1040
diff
changeset
|
86 #define ROOT_WINDOW RootWindow (x_current_display, DefaultScreen (x_current_display)) |
259 | 87 #define FONT_TYPE XFontStruct |
88 #define Color XColor | |
89 | |
90 #define XExposeRegionEvent XExposeEvent | |
91 #define Bitmap Pixmap /* In X11, Bitmaps are are kind of | |
92 Pixmap. */ | |
93 #define WINDOWINFO_TYPE XWindowAttributes | |
94 #define XGetWindowInfo(w, i) XGetWindowAttributes (x_current_display, \ | |
95 (w), (i)) | |
96 #define XGetFont(f) XLoadQueryFont (x_current_display, (f)) | |
97 #define XLoseFont(f) XFreeFont (x_current_display, (f)) | |
98 #define XStuffPending() XPending (x_current_display) | |
99 #define XClear(w) XClearWindow (x_current_display, (w)) | |
100 #define XWarpMousePointer(w,x,y) XWarpPointer (x_current_display, None, w, \ | |
101 0,0,0,0, x, y) | |
102 #define XHandleError XSetErrorHandler | |
103 #define XHandleIOError XSetIOErrorHandler | |
104 | |
105 #define XChangeWindowSize(w,x,y) XResizeWindow(x_current_display,w,x,y) | |
106 | |
107 #define FONT_WIDTH(f) ((f)->max_bounds.width) | |
108 #define FONT_HEIGHT(f) ((f)->ascent + (f)->descent) | |
109 #define FONT_BASE(f) ((f)->ascent) | |
110 | |
111 /* The mask of events that text windows always want to receive. This | |
424 | 112 does not include mouse movement events. It is used when the window |
113 is created (in x_window) and when we ask/unask for mouse movement | |
114 events (in XTmouse_tracking_enable). | |
115 | |
116 We do include ButtonReleases in this set because elisp isn't always | |
117 fast enough to catch them when it wants them, and they're rare | |
118 enough that they don't use much processor time. */ | |
259 | 119 |
120 #define STANDARD_EVENT_SET \ | |
121 (KeyPressMask \ | |
122 | ExposureMask \ | |
123 | ButtonPressMask \ | |
424 | 124 | ButtonReleaseMask \ |
125 | PointerMotionMask \ | |
126 | PointerMotionHintMask \ | |
259 | 127 | StructureNotifyMask \ |
128 | FocusChangeMask \ | |
129 | LeaveWindowMask \ | |
130 | EnterWindowMask \ | |
131 | VisibilityChangeMask) | |
132 | |
133 #else /* X10 */ | |
134 | |
135 #define ConnectionNumber(dpy) dpyno() | |
136 #define PIX_TYPE int | |
137 #define XDISPLAY | |
138 #define XFlushQueue() XFlush() | |
139 #define BLACK_PIX_DEFAULT BlackPixel | |
140 #define WHITE_PIX_DEFAULT WhitePixel | |
141 #define DISPLAY_SCREEN_ARG | |
142 #define DISPLAY_CELLS DisplayCells () | |
143 #define ROOT_WINDOW RootWindow | |
144 #define XFree free | |
145 #define FONT_TYPE FontInfo | |
146 | |
147 #define WINDOWINFO_TYPE WindowInfo | |
148 #define XGetWindowInfo(w, i) XQueryWindow ((w), (i)) | |
149 #define XGetFont(f) XOpenFont ((f)) | |
150 #define XLoseFont(f) XCloseFont ((f)) | |
151 #define XStuffPending() XPending () | |
152 #define XWarpMousePointer(w,x,y) XWarpMouse (w,x,y) | |
153 #define XHandleError XErrorHandler | |
154 #define XHandleIOError XIOErrorHandler | |
155 | |
156 #define FONT_WIDTH(f) ((f)->width) | |
157 #define FONT_HEIGHT(f) ((f)->height) | |
158 #define FONT_BASE(f) ((f)->base) | |
159 | |
160 #define XChangeWindowSize(w,x,y) XChangeWindow(w,x,y) | |
161 | |
162 #endif /* X10 */ | |
163 | |
164 struct event_queue | |
165 { | |
166 int rindex; /* Index at which to fetch next. */ | |
167 int windex; /* Index at which to store next. */ | |
168 XEvent xrep[EVENT_BUFFER_SIZE]; | |
169 }; | |
170 | |
171 /* Queue for mouse clicks. */ | |
172 extern struct event_queue x_mouse_queue; | |
173 | |
174 /* This is the X connection that we are using. */ | |
175 | |
176 extern Display *x_current_display; | |
177 | |
771 | 178 extern struct frame *x_window_to_frame (); |
259 | 179 |
771 | 180 /* The frame (if any) which has the X window that has keyboard focus. |
181 Zero if none. This is examined by Ffocus_frame in xfns.c */ | |
259 | 182 |
2354
dcc756fba34f
* xterm.h (x_focus_frame): Add extern keyword to declaration.
Jim Blandy <jimb@redhat.com>
parents:
2300
diff
changeset
|
183 extern struct frame *x_focus_frame; |
259 | 184 |
185 #ifdef HAVE_X11 | |
186 /* Variables associated with the X display screen this emacs is using. */ | |
187 | |
188 /* How many screens this X display has. */ | |
1531
86202f01266d
* xterm.h (x_screen_count, x_release, x_screen_height,
Jim Blandy <jimb@redhat.com>
parents:
1408
diff
changeset
|
189 extern int x_screen_count; |
259 | 190 |
191 /* The vendor supporting this X server. */ | |
192 extern Lisp_Object Vx_vendor; | |
193 | |
194 /* The vendor's release number for this X server. */ | |
1531
86202f01266d
* xterm.h (x_screen_count, x_release, x_screen_height,
Jim Blandy <jimb@redhat.com>
parents:
1408
diff
changeset
|
195 extern int x_release; |
259 | 196 |
197 /* Height of this X screen in pixels. */ | |
1531
86202f01266d
* xterm.h (x_screen_count, x_release, x_screen_height,
Jim Blandy <jimb@redhat.com>
parents:
1408
diff
changeset
|
198 extern int x_screen_height; |
259 | 199 |
200 /* Height of this X screen in millimeters. */ | |
1531
86202f01266d
* xterm.h (x_screen_count, x_release, x_screen_height,
Jim Blandy <jimb@redhat.com>
parents:
1408
diff
changeset
|
201 extern int x_screen_height_mm; |
259 | 202 |
203 /* Width of this X screen in pixels. */ | |
1531
86202f01266d
* xterm.h (x_screen_count, x_release, x_screen_height,
Jim Blandy <jimb@redhat.com>
parents:
1408
diff
changeset
|
204 extern int x_screen_width; |
259 | 205 |
206 /* Width of this X screen in millimeters. */ | |
1531
86202f01266d
* xterm.h (x_screen_count, x_release, x_screen_height,
Jim Blandy <jimb@redhat.com>
parents:
1408
diff
changeset
|
207 extern int x_screen_width_mm; |
259 | 208 |
209 /* Does this X screen do backing store? */ | |
210 extern Lisp_Object Vx_backing_store; | |
211 | |
212 /* Does this X screen do save-unders? */ | |
1531
86202f01266d
* xterm.h (x_screen_count, x_release, x_screen_height,
Jim Blandy <jimb@redhat.com>
parents:
1408
diff
changeset
|
213 extern int x_save_under; |
259 | 214 |
215 /* Number of planes for this screen. */ | |
1531
86202f01266d
* xterm.h (x_screen_count, x_release, x_screen_height,
Jim Blandy <jimb@redhat.com>
parents:
1408
diff
changeset
|
216 extern int x_screen_planes; |
259 | 217 |
218 /* X Visual type of this screen. */ | |
219 extern Lisp_Object Vx_screen_visual; | |
220 | |
221 #endif /* HAVE_X11 */ | |
222 | |
223 enum text_cursor_kinds { | |
224 filled_box_cursor, hollow_box_cursor, bar_cursor | |
225 }; | |
226 | |
771 | 227 /* Each X frame object points to its own struct x_display object |
259 | 228 in the display.x field. The x_display structure contains all |
229 the information that is specific to X windows. */ | |
230 | |
231 struct x_display | |
232 { | |
233 /* Position of the X window (x and y offsets in root window). */ | |
234 int left_pos; | |
235 int top_pos; | |
236 | |
237 /* Border width of the X window as known by the X window system. */ | |
238 int border_width; | |
239 | |
240 /* Size of the X window in pixels. */ | |
241 int pixel_height, pixel_width; | |
242 | |
243 #ifdef HAVE_X11 | |
771 | 244 /* The tiled border used when the mouse is out of the frame. */ |
259 | 245 Pixmap border_tile; |
246 | |
247 /* Here are the Graphics Contexts for the default font. */ | |
248 GC normal_gc; /* Normal video */ | |
249 GC reverse_gc; /* Reverse video */ | |
250 GC cursor_gc; /* cursor drawing */ | |
251 #endif /* HAVE_X11 */ | |
252 | |
253 /* Width of the internal border. This is a line of background color | |
771 | 254 just inside the window's border. When the frame is selected, |
259 | 255 a highlighting is displayed inside the internal border. */ |
256 int internal_border_width; | |
257 | |
771 | 258 /* The X window used for this frame. |
259 May be zero while the frame object is being created | |
259 | 260 and the X window has not yet been created. */ |
261 Window window_desc; | |
262 | |
263 /* The X window used for the bitmap icon; | |
264 or 0 if we don't have a bitmap icon. */ | |
265 Window icon_desc; | |
266 | |
267 /* The X window that is the parent of this X window. | |
268 Usually but not always RootWindow. */ | |
269 Window parent_desc; | |
270 | |
271 /* 1 for bitmap icon, 0 for text icon. */ | |
272 int icon_bitmap_flag; | |
273 | |
274 FONT_TYPE *font; | |
275 | |
276 /* Pixel values used for various purposes. | |
277 border_pixel may be -1 meaning use a gray tile. */ | |
278 PIX_TYPE background_pixel; | |
279 PIX_TYPE foreground_pixel; | |
280 PIX_TYPE cursor_pixel; | |
281 PIX_TYPE border_pixel; | |
282 PIX_TYPE mouse_pixel; | |
2841
ef56e3f6781c
(x_display): New field cursor_fore_pixel.
Richard M. Stallman <rms@gnu.org>
parents:
2439
diff
changeset
|
283 PIX_TYPE cursor_foreground_pixel; |
259 | 284 |
285 /* Descriptor for the cursor in use for this window. */ | |
286 #ifdef HAVE_X11 | |
287 Cursor text_cursor; | |
288 Cursor nontext_cursor; | |
289 Cursor modeline_cursor; | |
290 #else | |
291 Cursor cursor; | |
292 #endif | |
293 | |
294 /* The name that was associated with the icon, the last time | |
295 it was refreshed. Usually the same as the name of the | |
771 | 296 buffer in the currently selected window in the frame */ |
259 | 297 char *icon_label; |
298 | |
299 /* Flag to set when the X window needs to be completely repainted. */ | |
300 int needs_exposure; | |
301 | |
1821
04fb1d3d6992
JimB's changes since January 18th
Jim Blandy <jimb@redhat.com>
parents:
1788
diff
changeset
|
302 /* What kind of text cursor is drawn in this window right now? |
04fb1d3d6992
JimB's changes since January 18th
Jim Blandy <jimb@redhat.com>
parents:
1788
diff
changeset
|
303 (If there is no cursor (phys_cursor_x < 0), then this means nothing.) */ |
04fb1d3d6992
JimB's changes since January 18th
Jim Blandy <jimb@redhat.com>
parents:
1788
diff
changeset
|
304 enum text_cursor_kinds current_cursor; |
04fb1d3d6992
JimB's changes since January 18th
Jim Blandy <jimb@redhat.com>
parents:
1788
diff
changeset
|
305 |
04fb1d3d6992
JimB's changes since January 18th
Jim Blandy <jimb@redhat.com>
parents:
1788
diff
changeset
|
306 /* What kind of text cursor should we draw in the future? |
04fb1d3d6992
JimB's changes since January 18th
Jim Blandy <jimb@redhat.com>
parents:
1788
diff
changeset
|
307 This should always be filled_box_cursor or bar_cursor. */ |
04fb1d3d6992
JimB's changes since January 18th
Jim Blandy <jimb@redhat.com>
parents:
1788
diff
changeset
|
308 enum text_cursor_kinds desired_cursor; |
999 | 309 |
310 /* These are the current window manager hints. It seems that | |
311 XSetWMHints, when presented with an unset bit in the `flags' | |
312 member of the hints structure, does not leave the corresponding | |
313 attribute unchanged; rather, it resets that attribute to its | |
314 default value. For example, unless you set the `icon_pixmap' | |
315 field and the `IconPixmapHint' bit, XSetWMHints will forget what | |
316 your icon pixmap was. This is rather troublesome, since some of | |
317 the members (for example, `input' and `icon_pixmap') want to stay | |
318 the same throughout the execution of Emacs. So, we keep this | |
319 structure around, just leaving values in it and adding new bits | |
320 to the mask as we go. */ | |
321 XWMHints wm_hints; | |
1721
6ba3bca4c3de
* frame.h (struct frame): New fields `can_have_scrollbars' and
Jim Blandy <jimb@redhat.com>
parents:
1531
diff
changeset
|
322 |
6ba3bca4c3de
* frame.h (struct frame): New fields `can_have_scrollbars' and
Jim Blandy <jimb@redhat.com>
parents:
1531
diff
changeset
|
323 /* The size of the extra width currently allotted for vertical |
1994
73ce9dd21093
Use the term `scroll bar', instead of `scrollbar'.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
324 scroll bars, in pixels. */ |
73ce9dd21093
Use the term `scroll bar', instead of `scrollbar'.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
325 int vertical_scroll_bar_extra; |
2394
6ec15e6b2a08
(FRAME_FACES, FRAME_N_FACES, FRAME_DEFAULT_FACE)
Richard M. Stallman <rms@gnu.org>
parents:
2354
diff
changeset
|
326 |
3883
b9e5a869b33e
Separate parameter faces (those created and modified by the user)
Jim Blandy <jimb@redhat.com>
parents:
3591
diff
changeset
|
327 /* Table of parameter faces for this frame. Any X resources (pixel |
b9e5a869b33e
Separate parameter faces (those created and modified by the user)
Jim Blandy <jimb@redhat.com>
parents:
3591
diff
changeset
|
328 values, fonts) referred to here have been allocated explicitly |
b9e5a869b33e
Separate parameter faces (those created and modified by the user)
Jim Blandy <jimb@redhat.com>
parents:
3591
diff
changeset
|
329 for this face, and should be freed if we change the face. */ |
b9e5a869b33e
Separate parameter faces (those created and modified by the user)
Jim Blandy <jimb@redhat.com>
parents:
3591
diff
changeset
|
330 struct face **param_faces; |
b9e5a869b33e
Separate parameter faces (those created and modified by the user)
Jim Blandy <jimb@redhat.com>
parents:
3591
diff
changeset
|
331 int n_param_faces; |
b9e5a869b33e
Separate parameter faces (those created and modified by the user)
Jim Blandy <jimb@redhat.com>
parents:
3591
diff
changeset
|
332 |
b9e5a869b33e
Separate parameter faces (those created and modified by the user)
Jim Blandy <jimb@redhat.com>
parents:
3591
diff
changeset
|
333 /* Table of computed faces for this frame. These are the faces |
b9e5a869b33e
Separate parameter faces (those created and modified by the user)
Jim Blandy <jimb@redhat.com>
parents:
3591
diff
changeset
|
334 whose indexes go into the upper bits of a glyph, computed by |
b9e5a869b33e
Separate parameter faces (those created and modified by the user)
Jim Blandy <jimb@redhat.com>
parents:
3591
diff
changeset
|
335 combining the parameter faces specified by overlays, text |
b9e5a869b33e
Separate parameter faces (those created and modified by the user)
Jim Blandy <jimb@redhat.com>
parents:
3591
diff
changeset
|
336 properties, and what have you. The X resources mentioned here |
b9e5a869b33e
Separate parameter faces (those created and modified by the user)
Jim Blandy <jimb@redhat.com>
parents:
3591
diff
changeset
|
337 are all shared with parameter faces. */ |
b9e5a869b33e
Separate parameter faces (those created and modified by the user)
Jim Blandy <jimb@redhat.com>
parents:
3591
diff
changeset
|
338 struct face **computed_faces; |
b9e5a869b33e
Separate parameter faces (those created and modified by the user)
Jim Blandy <jimb@redhat.com>
parents:
3591
diff
changeset
|
339 int n_computed_faces; /* How many are valid */ |
b9e5a869b33e
Separate parameter faces (those created and modified by the user)
Jim Blandy <jimb@redhat.com>
parents:
3591
diff
changeset
|
340 int size_computed_faces; /* How many are allocated */ |
259 | 341 }; |
1040 | 342 |
3883
b9e5a869b33e
Separate parameter faces (those created and modified by the user)
Jim Blandy <jimb@redhat.com>
parents:
3591
diff
changeset
|
343 /* Get at the computed faces of an X window frame. */ |
b9e5a869b33e
Separate parameter faces (those created and modified by the user)
Jim Blandy <jimb@redhat.com>
parents:
3591
diff
changeset
|
344 #define FRAME_PARAM_FACES(f) ((f)->display.x->param_faces) |
b9e5a869b33e
Separate parameter faces (those created and modified by the user)
Jim Blandy <jimb@redhat.com>
parents:
3591
diff
changeset
|
345 #define FRAME_N_PARAM_FACES(f) ((f)->display.x->n_param_faces) |
b9e5a869b33e
Separate parameter faces (those created and modified by the user)
Jim Blandy <jimb@redhat.com>
parents:
3591
diff
changeset
|
346 #define FRAME_DEFAULT_PARAM_FACE(f) (FRAME_PARAM_FACES (f)[0]) |
b9e5a869b33e
Separate parameter faces (those created and modified by the user)
Jim Blandy <jimb@redhat.com>
parents:
3591
diff
changeset
|
347 #define FRAME_MODE_LINE_PARAM_FACE(f) (FRAME_PARAM_FACES (f)[1]) |
b9e5a869b33e
Separate parameter faces (those created and modified by the user)
Jim Blandy <jimb@redhat.com>
parents:
3591
diff
changeset
|
348 |
b9e5a869b33e
Separate parameter faces (those created and modified by the user)
Jim Blandy <jimb@redhat.com>
parents:
3591
diff
changeset
|
349 #define FRAME_COMPUTED_FACES(f) ((f)->display.x->computed_faces) |
b9e5a869b33e
Separate parameter faces (those created and modified by the user)
Jim Blandy <jimb@redhat.com>
parents:
3591
diff
changeset
|
350 #define FRAME_N_COMPUTED_FACES(f) ((f)->display.x->n_computed_faces) |
b9e5a869b33e
Separate parameter faces (those created and modified by the user)
Jim Blandy <jimb@redhat.com>
parents:
3591
diff
changeset
|
351 #define FRAME_SIZE_COMPUTED_FACES(f) ((f)->display.x->size_computed_faces) |
b9e5a869b33e
Separate parameter faces (those created and modified by the user)
Jim Blandy <jimb@redhat.com>
parents:
3591
diff
changeset
|
352 #define FRAME_DEFAULT_FACE(f) ((f)->display.x->computed_faces[0]) |
b9e5a869b33e
Separate parameter faces (those created and modified by the user)
Jim Blandy <jimb@redhat.com>
parents:
3591
diff
changeset
|
353 #define FRAME_MODE_LINE_FACE(f) ((f)->display.x->computed_faces[1]) |
2394
6ec15e6b2a08
(FRAME_FACES, FRAME_N_FACES, FRAME_DEFAULT_FACE)
Richard M. Stallman <rms@gnu.org>
parents:
2354
diff
changeset
|
354 |
1040 | 355 /* Return the window associated with the frame F. */ |
356 #define FRAME_X_WINDOW(f) ((f)->display.x->window_desc) | |
357 | |
1821
04fb1d3d6992
JimB's changes since January 18th
Jim Blandy <jimb@redhat.com>
parents:
1788
diff
changeset
|
358 /* These two really ought to be called FRAME_PIXEL_{WIDTH,HEIGHT}. */ |
04fb1d3d6992
JimB's changes since January 18th
Jim Blandy <jimb@redhat.com>
parents:
1788
diff
changeset
|
359 #define PIXEL_WIDTH(f) ((f)->display.x->pixel_width) |
04fb1d3d6992
JimB's changes since January 18th
Jim Blandy <jimb@redhat.com>
parents:
1788
diff
changeset
|
360 #define PIXEL_HEIGHT(f) ((f)->display.x->pixel_height) |
04fb1d3d6992
JimB's changes since January 18th
Jim Blandy <jimb@redhat.com>
parents:
1788
diff
changeset
|
361 |
04fb1d3d6992
JimB's changes since January 18th
Jim Blandy <jimb@redhat.com>
parents:
1788
diff
changeset
|
362 #define FRAME_DESIRED_CURSOR(f) ((f)->display.x->desired_cursor) |
04fb1d3d6992
JimB's changes since January 18th
Jim Blandy <jimb@redhat.com>
parents:
1788
diff
changeset
|
363 |
259 | 364 |
2394
6ec15e6b2a08
(FRAME_FACES, FRAME_N_FACES, FRAME_DEFAULT_FACE)
Richard M. Stallman <rms@gnu.org>
parents:
2354
diff
changeset
|
365 /* When X windows are used, a glyph may be a 16 bit unsigned datum. |
259 | 366 The high order byte is the face number and is used as an index |
367 in the face table. A face is a font plus: | |
368 1) the unhighlighted foreground color, | |
369 2) the unhighlighted background color. | |
370 For highlighting, the two colors are exchanged. | |
2394
6ec15e6b2a08
(FRAME_FACES, FRAME_N_FACES, FRAME_DEFAULT_FACE)
Richard M. Stallman <rms@gnu.org>
parents:
2354
diff
changeset
|
371 Face number 0 is unused. The low order byte of a glyph gives |
259 | 372 the character within the font. All fonts are assumed to be |
373 fixed width, and to have the same height and width. */ | |
374 | |
375 #ifdef HAVE_X11 | |
376 | |
1408
b8e32247c590
* xterm.h: Declaration of struct face removed.
Joseph Arceneaux <jla@gnu.org>
parents:
1258
diff
changeset
|
377 /* Face declared in dispextern.h */ |
259 | 378 |
379 #else /* X10 */ | |
380 | |
381 struct face | |
382 { | |
383 FONT_TYPE *font; /* Font info for specified font. */ | |
384 int fg; /* Unhighlighted foreground. */ | |
385 int bg; /* Unhighlighted background. */ | |
386 }; | |
387 #endif /* X10 */ | |
388 | |
389 #define MAX_FACES_AND_GLYPHS 256 | |
390 extern struct face *x_face_table[]; | |
1721
6ba3bca4c3de
* frame.h (struct frame): New fields `can_have_scrollbars' and
Jim Blandy <jimb@redhat.com>
parents:
1531
diff
changeset
|
391 |
6ba3bca4c3de
* frame.h (struct frame): New fields `can_have_scrollbars' and
Jim Blandy <jimb@redhat.com>
parents:
1531
diff
changeset
|
392 |
1994
73ce9dd21093
Use the term `scroll bar', instead of `scrollbar'.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
393 /* X-specific scroll bar stuff. */ |
1721
6ba3bca4c3de
* frame.h (struct frame): New fields `can_have_scrollbars' and
Jim Blandy <jimb@redhat.com>
parents:
1531
diff
changeset
|
394 |
1994
73ce9dd21093
Use the term `scroll bar', instead of `scrollbar'.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
395 /* We represent scroll bars as lisp vectors. This allows us to place |
1788
aaccd635fb71
Make scrollbar structures into lisp objects, so that they can be
Jim Blandy <jimb@redhat.com>
parents:
1721
diff
changeset
|
396 references to them in windows without worrying about whether we'll |
1994
73ce9dd21093
Use the term `scroll bar', instead of `scrollbar'.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
397 end up with windows referring to dead scroll bars; the garbage |
1788
aaccd635fb71
Make scrollbar structures into lisp objects, so that they can be
Jim Blandy <jimb@redhat.com>
parents:
1721
diff
changeset
|
398 collector will free it when its time comes. |
aaccd635fb71
Make scrollbar structures into lisp objects, so that they can be
Jim Blandy <jimb@redhat.com>
parents:
1721
diff
changeset
|
399 |
1994
73ce9dd21093
Use the term `scroll bar', instead of `scrollbar'.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
400 We use struct scroll_bar as a template for accessing fields of the |
1788
aaccd635fb71
Make scrollbar structures into lisp objects, so that they can be
Jim Blandy <jimb@redhat.com>
parents:
1721
diff
changeset
|
401 vector. */ |
aaccd635fb71
Make scrollbar structures into lisp objects, so that they can be
Jim Blandy <jimb@redhat.com>
parents:
1721
diff
changeset
|
402 |
1994
73ce9dd21093
Use the term `scroll bar', instead of `scrollbar'.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
403 struct scroll_bar { |
1721
6ba3bca4c3de
* frame.h (struct frame): New fields `can_have_scrollbars' and
Jim Blandy <jimb@redhat.com>
parents:
1531
diff
changeset
|
404 |
1788
aaccd635fb71
Make scrollbar structures into lisp objects, so that they can be
Jim Blandy <jimb@redhat.com>
parents:
1721
diff
changeset
|
405 /* These fields are shared by all vectors. */ |
aaccd635fb71
Make scrollbar structures into lisp objects, so that they can be
Jim Blandy <jimb@redhat.com>
parents:
1721
diff
changeset
|
406 int size_from_Lisp_Vector_struct; |
aaccd635fb71
Make scrollbar structures into lisp objects, so that they can be
Jim Blandy <jimb@redhat.com>
parents:
1721
diff
changeset
|
407 struct Lisp_Vector *next_from_Lisp_Vector_struct; |
aaccd635fb71
Make scrollbar structures into lisp objects, so that they can be
Jim Blandy <jimb@redhat.com>
parents:
1721
diff
changeset
|
408 |
1994
73ce9dd21093
Use the term `scroll bar', instead of `scrollbar'.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
409 /* The window we're a scroll bar for. */ |
1788
aaccd635fb71
Make scrollbar structures into lisp objects, so that they can be
Jim Blandy <jimb@redhat.com>
parents:
1721
diff
changeset
|
410 Lisp_Object window; |
1721
6ba3bca4c3de
* frame.h (struct frame): New fields `can_have_scrollbars' and
Jim Blandy <jimb@redhat.com>
parents:
1531
diff
changeset
|
411 |
1994
73ce9dd21093
Use the term `scroll bar', instead of `scrollbar'.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
412 /* The next and previous in the chain of scroll bars in this frame. */ |
1788
aaccd635fb71
Make scrollbar structures into lisp objects, so that they can be
Jim Blandy <jimb@redhat.com>
parents:
1721
diff
changeset
|
413 Lisp_Object next, prev; |
1721
6ba3bca4c3de
* frame.h (struct frame): New fields `can_have_scrollbars' and
Jim Blandy <jimb@redhat.com>
parents:
1531
diff
changeset
|
414 |
1994
73ce9dd21093
Use the term `scroll bar', instead of `scrollbar'.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
415 /* The X window representing this scroll bar. Since this is a full |
1788
aaccd635fb71
Make scrollbar structures into lisp objects, so that they can be
Jim Blandy <jimb@redhat.com>
parents:
1721
diff
changeset
|
416 32-bit quantity, we store it split into two 32-bit values. */ |
aaccd635fb71
Make scrollbar structures into lisp objects, so that they can be
Jim Blandy <jimb@redhat.com>
parents:
1721
diff
changeset
|
417 Lisp_Object x_window_low, x_window_high; |
1721
6ba3bca4c3de
* frame.h (struct frame): New fields `can_have_scrollbars' and
Jim Blandy <jimb@redhat.com>
parents:
1531
diff
changeset
|
418 |
1994
73ce9dd21093
Use the term `scroll bar', instead of `scrollbar'.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
419 /* The position and size of the scroll bar in pixels, relative to the |
1721
6ba3bca4c3de
* frame.h (struct frame): New fields `can_have_scrollbars' and
Jim Blandy <jimb@redhat.com>
parents:
1531
diff
changeset
|
420 frame. */ |
1788
aaccd635fb71
Make scrollbar structures into lisp objects, so that they can be
Jim Blandy <jimb@redhat.com>
parents:
1721
diff
changeset
|
421 Lisp_Object top, left, width, height; |
aaccd635fb71
Make scrollbar structures into lisp objects, so that they can be
Jim Blandy <jimb@redhat.com>
parents:
1721
diff
changeset
|
422 |
aaccd635fb71
Make scrollbar structures into lisp objects, so that they can be
Jim Blandy <jimb@redhat.com>
parents:
1721
diff
changeset
|
423 /* The starting and ending positions of the handle, relative to the |
aaccd635fb71
Make scrollbar structures into lisp objects, so that they can be
Jim Blandy <jimb@redhat.com>
parents:
1721
diff
changeset
|
424 handle area (i.e. zero is the top position, not |
1994
73ce9dd21093
Use the term `scroll bar', instead of `scrollbar'.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
425 SCROLL_BAR_TOP_BORDER). If they're equal, that means the handle |
1788
aaccd635fb71
Make scrollbar structures into lisp objects, so that they can be
Jim Blandy <jimb@redhat.com>
parents:
1721
diff
changeset
|
426 hasn't been drawn yet. |
1721
6ba3bca4c3de
* frame.h (struct frame): New fields `can_have_scrollbars' and
Jim Blandy <jimb@redhat.com>
parents:
1531
diff
changeset
|
427 |
1788
aaccd635fb71
Make scrollbar structures into lisp objects, so that they can be
Jim Blandy <jimb@redhat.com>
parents:
1721
diff
changeset
|
428 These are not actually the locations where the beginning and end |
aaccd635fb71
Make scrollbar structures into lisp objects, so that they can be
Jim Blandy <jimb@redhat.com>
parents:
1721
diff
changeset
|
429 are drawn; in order to keep handles from becoming invisible when |
aaccd635fb71
Make scrollbar structures into lisp objects, so that they can be
Jim Blandy <jimb@redhat.com>
parents:
1721
diff
changeset
|
430 editing large files, we establish a minimum height by always |
1994
73ce9dd21093
Use the term `scroll bar', instead of `scrollbar'.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
431 drawing handle bottoms VERTICAL_SCROLL_BAR_MIN_HANDLE pixels below |
1788
aaccd635fb71
Make scrollbar structures into lisp objects, so that they can be
Jim Blandy <jimb@redhat.com>
parents:
1721
diff
changeset
|
432 where they would be normally; the bottom and top are in a |
aaccd635fb71
Make scrollbar structures into lisp objects, so that they can be
Jim Blandy <jimb@redhat.com>
parents:
1721
diff
changeset
|
433 different co-ordinate system. */ |
aaccd635fb71
Make scrollbar structures into lisp objects, so that they can be
Jim Blandy <jimb@redhat.com>
parents:
1721
diff
changeset
|
434 Lisp_Object start, end; |
1721
6ba3bca4c3de
* frame.h (struct frame): New fields `can_have_scrollbars' and
Jim Blandy <jimb@redhat.com>
parents:
1531
diff
changeset
|
435 |
1994
73ce9dd21093
Use the term `scroll bar', instead of `scrollbar'.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
436 /* If the scroll bar handle is currently being dragged by the user, |
1721
6ba3bca4c3de
* frame.h (struct frame): New fields `can_have_scrollbars' and
Jim Blandy <jimb@redhat.com>
parents:
1531
diff
changeset
|
437 this is the number of pixels from the top of the handle to the |
6ba3bca4c3de
* frame.h (struct frame): New fields `can_have_scrollbars' and
Jim Blandy <jimb@redhat.com>
parents:
1531
diff
changeset
|
438 place where the user grabbed it. If the handle isn't currently |
1788
aaccd635fb71
Make scrollbar structures into lisp objects, so that they can be
Jim Blandy <jimb@redhat.com>
parents:
1721
diff
changeset
|
439 being dragged, this is Qnil. */ |
aaccd635fb71
Make scrollbar structures into lisp objects, so that they can be
Jim Blandy <jimb@redhat.com>
parents:
1721
diff
changeset
|
440 Lisp_Object dragging; |
1721
6ba3bca4c3de
* frame.h (struct frame): New fields `can_have_scrollbars' and
Jim Blandy <jimb@redhat.com>
parents:
1531
diff
changeset
|
441 }; |
6ba3bca4c3de
* frame.h (struct frame): New fields `can_have_scrollbars' and
Jim Blandy <jimb@redhat.com>
parents:
1531
diff
changeset
|
442 |
1994
73ce9dd21093
Use the term `scroll bar', instead of `scrollbar'.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
443 /* The number of elements a vector holding a struct scroll_bar needs. */ |
73ce9dd21093
Use the term `scroll bar', instead of `scrollbar'.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
444 #define SCROLL_BAR_VEC_SIZE \ |
73ce9dd21093
Use the term `scroll bar', instead of `scrollbar'.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
445 ((sizeof (struct scroll_bar) - sizeof (int) - sizeof (struct Lisp_Vector *)) \ |
1788
aaccd635fb71
Make scrollbar structures into lisp objects, so that they can be
Jim Blandy <jimb@redhat.com>
parents:
1721
diff
changeset
|
446 / sizeof (Lisp_Object)) |
aaccd635fb71
Make scrollbar structures into lisp objects, so that they can be
Jim Blandy <jimb@redhat.com>
parents:
1721
diff
changeset
|
447 |
1994
73ce9dd21093
Use the term `scroll bar', instead of `scrollbar'.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
448 /* Turning a lisp vector value into a pointer to a struct scroll_bar. */ |
73ce9dd21093
Use the term `scroll bar', instead of `scrollbar'.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
449 #define XSCROLL_BAR(vec) ((struct scroll_bar *) XPNTR (vec)) |
1788
aaccd635fb71
Make scrollbar structures into lisp objects, so that they can be
Jim Blandy <jimb@redhat.com>
parents:
1721
diff
changeset
|
450 |
aaccd635fb71
Make scrollbar structures into lisp objects, so that they can be
Jim Blandy <jimb@redhat.com>
parents:
1721
diff
changeset
|
451 |
aaccd635fb71
Make scrollbar structures into lisp objects, so that they can be
Jim Blandy <jimb@redhat.com>
parents:
1721
diff
changeset
|
452 /* Building a 32-bit C integer from two 16-bit lisp integers. */ |
1994
73ce9dd21093
Use the term `scroll bar', instead of `scrollbar'.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
453 #define SCROLL_BAR_PACK(low, high) (XINT (high) << 16 | XINT (low)) |
1788
aaccd635fb71
Make scrollbar structures into lisp objects, so that they can be
Jim Blandy <jimb@redhat.com>
parents:
1721
diff
changeset
|
454 |
aaccd635fb71
Make scrollbar structures into lisp objects, so that they can be
Jim Blandy <jimb@redhat.com>
parents:
1721
diff
changeset
|
455 /* Setting two lisp integers to the low and high words of a 32-bit C int. */ |
1994
73ce9dd21093
Use the term `scroll bar', instead of `scrollbar'.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
456 #define SCROLL_BAR_UNPACK(low, high, int32) \ |
1788
aaccd635fb71
Make scrollbar structures into lisp objects, so that they can be
Jim Blandy <jimb@redhat.com>
parents:
1721
diff
changeset
|
457 (XSET ((low), Lisp_Int, (int32) & 0xffff), \ |
aaccd635fb71
Make scrollbar structures into lisp objects, so that they can be
Jim Blandy <jimb@redhat.com>
parents:
1721
diff
changeset
|
458 XSET ((high), Lisp_Int, ((int32) >> 16) & 0xffff)) |
aaccd635fb71
Make scrollbar structures into lisp objects, so that they can be
Jim Blandy <jimb@redhat.com>
parents:
1721
diff
changeset
|
459 |
aaccd635fb71
Make scrollbar structures into lisp objects, so that they can be
Jim Blandy <jimb@redhat.com>
parents:
1721
diff
changeset
|
460 |
1994
73ce9dd21093
Use the term `scroll bar', instead of `scrollbar'.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
461 /* Extract the X window id of the scroll bar from a struct scroll_bar. */ |
73ce9dd21093
Use the term `scroll bar', instead of `scrollbar'.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
462 #define SCROLL_BAR_X_WINDOW(ptr) \ |
73ce9dd21093
Use the term `scroll bar', instead of `scrollbar'.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
463 ((Window) SCROLL_BAR_PACK ((ptr)->x_window_low, (ptr)->x_window_high)) |
1788
aaccd635fb71
Make scrollbar structures into lisp objects, so that they can be
Jim Blandy <jimb@redhat.com>
parents:
1721
diff
changeset
|
464 |
1994
73ce9dd21093
Use the term `scroll bar', instead of `scrollbar'.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
465 /* Store a window id in a struct scroll_bar. */ |
73ce9dd21093
Use the term `scroll bar', instead of `scrollbar'.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
466 #define SET_SCROLL_BAR_X_WINDOW(ptr, id) \ |
73ce9dd21093
Use the term `scroll bar', instead of `scrollbar'.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
467 (SCROLL_BAR_UNPACK ((ptr)->x_window_low, (ptr)->x_window_high, (int) id)) |
1788
aaccd635fb71
Make scrollbar structures into lisp objects, so that they can be
Jim Blandy <jimb@redhat.com>
parents:
1721
diff
changeset
|
468 |
aaccd635fb71
Make scrollbar structures into lisp objects, so that they can be
Jim Blandy <jimb@redhat.com>
parents:
1721
diff
changeset
|
469 |
1994
73ce9dd21093
Use the term `scroll bar', instead of `scrollbar'.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
470 /* Return the outside pixel width for a vertical scroll bar on frame F. */ |
73ce9dd21093
Use the term `scroll bar', instead of `scrollbar'.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
471 #define VERTICAL_SCROLL_BAR_PIXEL_WIDTH(f) (2*FONT_WIDTH ((f)->display.x->font)) |
1721
6ba3bca4c3de
* frame.h (struct frame): New fields `can_have_scrollbars' and
Jim Blandy <jimb@redhat.com>
parents:
1531
diff
changeset
|
472 |
1994
73ce9dd21093
Use the term `scroll bar', instead of `scrollbar'.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
473 /* Return the outside pixel height for a vertical scroll bar HEIGHT |
1721
6ba3bca4c3de
* frame.h (struct frame): New fields `can_have_scrollbars' and
Jim Blandy <jimb@redhat.com>
parents:
1531
diff
changeset
|
474 rows high on frame F. */ |
1994
73ce9dd21093
Use the term `scroll bar', instead of `scrollbar'.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
475 #define VERTICAL_SCROLL_BAR_PIXEL_HEIGHT(f, height) \ |
1721
6ba3bca4c3de
* frame.h (struct frame): New fields `can_have_scrollbars' and
Jim Blandy <jimb@redhat.com>
parents:
1531
diff
changeset
|
476 ((height) * FONT_HEIGHT ((f)->display.x->font)) |
6ba3bca4c3de
* frame.h (struct frame): New fields `can_have_scrollbars' and
Jim Blandy <jimb@redhat.com>
parents:
1531
diff
changeset
|
477 |
1994
73ce9dd21093
Use the term `scroll bar', instead of `scrollbar'.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
478 /* Return the inside width of a vertical scroll bar, given the outside |
1788
aaccd635fb71
Make scrollbar structures into lisp objects, so that they can be
Jim Blandy <jimb@redhat.com>
parents:
1721
diff
changeset
|
479 width. */ |
1994
73ce9dd21093
Use the term `scroll bar', instead of `scrollbar'.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
480 #define VERTICAL_SCROLL_BAR_INSIDE_WIDTH(width) \ |
73ce9dd21093
Use the term `scroll bar', instead of `scrollbar'.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
481 ((width) - VERTICAL_SCROLL_BAR_LEFT_BORDER - VERTICAL_SCROLL_BAR_RIGHT_BORDER) |
1721
6ba3bca4c3de
* frame.h (struct frame): New fields `can_have_scrollbars' and
Jim Blandy <jimb@redhat.com>
parents:
1531
diff
changeset
|
482 |
1788
aaccd635fb71
Make scrollbar structures into lisp objects, so that they can be
Jim Blandy <jimb@redhat.com>
parents:
1721
diff
changeset
|
483 /* Return the length of the rectangle within which the top of the |
aaccd635fb71
Make scrollbar structures into lisp objects, so that they can be
Jim Blandy <jimb@redhat.com>
parents:
1721
diff
changeset
|
484 handle must stay. This isn't equivalent to the inside height, |
1994
73ce9dd21093
Use the term `scroll bar', instead of `scrollbar'.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
485 because the scroll bar handle has a minimum height. |
1788
aaccd635fb71
Make scrollbar structures into lisp objects, so that they can be
Jim Blandy <jimb@redhat.com>
parents:
1721
diff
changeset
|
486 |
1994
73ce9dd21093
Use the term `scroll bar', instead of `scrollbar'.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
487 This is the real range of motion for the scroll bar, so when we're |
73ce9dd21093
Use the term `scroll bar', instead of `scrollbar'.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
488 scaling buffer positions to scroll bar positions, we use this, not |
73ce9dd21093
Use the term `scroll bar', instead of `scrollbar'.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
489 VERTICAL_SCROLL_BAR_INSIDE_HEIGHT. */ |
73ce9dd21093
Use the term `scroll bar', instead of `scrollbar'.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
490 #define VERTICAL_SCROLL_BAR_TOP_RANGE(height) \ |
73ce9dd21093
Use the term `scroll bar', instead of `scrollbar'.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
491 (VERTICAL_SCROLL_BAR_INSIDE_HEIGHT (height) - VERTICAL_SCROLL_BAR_MIN_HANDLE) |
1788
aaccd635fb71
Make scrollbar structures into lisp objects, so that they can be
Jim Blandy <jimb@redhat.com>
parents:
1721
diff
changeset
|
492 |
1994
73ce9dd21093
Use the term `scroll bar', instead of `scrollbar'.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
493 /* Return the inside height of vertical scroll bar, given the outside |
73ce9dd21093
Use the term `scroll bar', instead of `scrollbar'.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
494 height. See VERTICAL_SCROLL_BAR_TOP_RANGE too. */ |
73ce9dd21093
Use the term `scroll bar', instead of `scrollbar'.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
495 #define VERTICAL_SCROLL_BAR_INSIDE_HEIGHT(height) \ |
73ce9dd21093
Use the term `scroll bar', instead of `scrollbar'.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
496 ((height) - VERTICAL_SCROLL_BAR_TOP_BORDER - VERTICAL_SCROLL_BAR_BOTTOM_BORDER) |
1788
aaccd635fb71
Make scrollbar structures into lisp objects, so that they can be
Jim Blandy <jimb@redhat.com>
parents:
1721
diff
changeset
|
497 |
aaccd635fb71
Make scrollbar structures into lisp objects, so that they can be
Jim Blandy <jimb@redhat.com>
parents:
1721
diff
changeset
|
498 |
1994
73ce9dd21093
Use the term `scroll bar', instead of `scrollbar'.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
499 /* Border widths for scroll bars. |
1788
aaccd635fb71
Make scrollbar structures into lisp objects, so that they can be
Jim Blandy <jimb@redhat.com>
parents:
1721
diff
changeset
|
500 |
1994
73ce9dd21093
Use the term `scroll bar', instead of `scrollbar'.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
501 Scroll bar windows don't have any X borders; their border width is |
1788
aaccd635fb71
Make scrollbar structures into lisp objects, so that they can be
Jim Blandy <jimb@redhat.com>
parents:
1721
diff
changeset
|
502 set to zero, and we redraw borders ourselves. This makes the code |
aaccd635fb71
Make scrollbar structures into lisp objects, so that they can be
Jim Blandy <jimb@redhat.com>
parents:
1721
diff
changeset
|
503 a bit cleaner, since we don't have to convert between outside width |
aaccd635fb71
Make scrollbar structures into lisp objects, so that they can be
Jim Blandy <jimb@redhat.com>
parents:
1721
diff
changeset
|
504 (used when relating to the rest of the screen) and inside width |
1994
73ce9dd21093
Use the term `scroll bar', instead of `scrollbar'.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
505 (used when sizing and drawing the scroll bar window itself). |
1788
aaccd635fb71
Make scrollbar structures into lisp objects, so that they can be
Jim Blandy <jimb@redhat.com>
parents:
1721
diff
changeset
|
506 |
3591
507f64624555
Apply typo patches from Paul Eggert.
Jim Blandy <jimb@redhat.com>
parents:
3195
diff
changeset
|
507 The handle moves up and down/back and forth in a rectangle inset |
1994
73ce9dd21093
Use the term `scroll bar', instead of `scrollbar'.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
508 from the edges of the scroll bar. These are widths by which we |
73ce9dd21093
Use the term `scroll bar', instead of `scrollbar'.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
509 inset the handle boundaries from the scroll bar edges. */ |
73ce9dd21093
Use the term `scroll bar', instead of `scrollbar'.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
510 #define VERTICAL_SCROLL_BAR_LEFT_BORDER (2) |
73ce9dd21093
Use the term `scroll bar', instead of `scrollbar'.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
511 #define VERTICAL_SCROLL_BAR_RIGHT_BORDER (3) |
73ce9dd21093
Use the term `scroll bar', instead of `scrollbar'.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
512 #define VERTICAL_SCROLL_BAR_TOP_BORDER (2) |
73ce9dd21093
Use the term `scroll bar', instead of `scrollbar'.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
513 #define VERTICAL_SCROLL_BAR_BOTTOM_BORDER (2) |
1788
aaccd635fb71
Make scrollbar structures into lisp objects, so that they can be
Jim Blandy <jimb@redhat.com>
parents:
1721
diff
changeset
|
514 |
1994
73ce9dd21093
Use the term `scroll bar', instead of `scrollbar'.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
515 /* Minimum lengths for scroll bar handles, in pixels. */ |
73ce9dd21093
Use the term `scroll bar', instead of `scrollbar'.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
516 #define VERTICAL_SCROLL_BAR_MIN_HANDLE (5) |
1721
6ba3bca4c3de
* frame.h (struct frame): New fields `can_have_scrollbars' and
Jim Blandy <jimb@redhat.com>
parents:
1531
diff
changeset
|
517 |
6ba3bca4c3de
* frame.h (struct frame): New fields `can_have_scrollbars' and
Jim Blandy <jimb@redhat.com>
parents:
1531
diff
changeset
|
518 |
6ba3bca4c3de
* frame.h (struct frame): New fields `can_have_scrollbars' and
Jim Blandy <jimb@redhat.com>
parents:
1531
diff
changeset
|
519 /* Manipulating pixel sizes and character sizes. |
6ba3bca4c3de
* frame.h (struct frame): New fields `can_have_scrollbars' and
Jim Blandy <jimb@redhat.com>
parents:
1531
diff
changeset
|
520 Knowledge of which factors affect the overall size of the window should |
6ba3bca4c3de
* frame.h (struct frame): New fields `can_have_scrollbars' and
Jim Blandy <jimb@redhat.com>
parents:
1531
diff
changeset
|
521 be hidden in these macros, if that's possible. |
6ba3bca4c3de
* frame.h (struct frame): New fields `can_have_scrollbars' and
Jim Blandy <jimb@redhat.com>
parents:
1531
diff
changeset
|
522 |
1788
aaccd635fb71
Make scrollbar structures into lisp objects, so that they can be
Jim Blandy <jimb@redhat.com>
parents:
1721
diff
changeset
|
523 /* Return the upper/left pixel position of the character cell on frame F |
aaccd635fb71
Make scrollbar structures into lisp objects, so that they can be
Jim Blandy <jimb@redhat.com>
parents:
1721
diff
changeset
|
524 at ROW/COL. */ |
aaccd635fb71
Make scrollbar structures into lisp objects, so that they can be
Jim Blandy <jimb@redhat.com>
parents:
1721
diff
changeset
|
525 #define CHAR_TO_PIXEL_ROW(f, row) \ |
aaccd635fb71
Make scrollbar structures into lisp objects, so that they can be
Jim Blandy <jimb@redhat.com>
parents:
1721
diff
changeset
|
526 ((f)->display.x->internal_border_width \ |
aaccd635fb71
Make scrollbar structures into lisp objects, so that they can be
Jim Blandy <jimb@redhat.com>
parents:
1721
diff
changeset
|
527 + (row) * FONT_HEIGHT ((f)->display.x->font)) |
aaccd635fb71
Make scrollbar structures into lisp objects, so that they can be
Jim Blandy <jimb@redhat.com>
parents:
1721
diff
changeset
|
528 #define CHAR_TO_PIXEL_COL(f, col) \ |
aaccd635fb71
Make scrollbar structures into lisp objects, so that they can be
Jim Blandy <jimb@redhat.com>
parents:
1721
diff
changeset
|
529 ((f)->display.x->internal_border_width \ |
aaccd635fb71
Make scrollbar structures into lisp objects, so that they can be
Jim Blandy <jimb@redhat.com>
parents:
1721
diff
changeset
|
530 + (col) * FONT_WIDTH ((f)->display.x->font)) |
aaccd635fb71
Make scrollbar structures into lisp objects, so that they can be
Jim Blandy <jimb@redhat.com>
parents:
1721
diff
changeset
|
531 |
aaccd635fb71
Make scrollbar structures into lisp objects, so that they can be
Jim Blandy <jimb@redhat.com>
parents:
1721
diff
changeset
|
532 /* Return the pixel width/height of frame F if it has |
aaccd635fb71
Make scrollbar structures into lisp objects, so that they can be
Jim Blandy <jimb@redhat.com>
parents:
1721
diff
changeset
|
533 WIDTH columns/HEIGHT rows. */ |
1721
6ba3bca4c3de
* frame.h (struct frame): New fields `can_have_scrollbars' and
Jim Blandy <jimb@redhat.com>
parents:
1531
diff
changeset
|
534 #define CHAR_TO_PIXEL_WIDTH(f, width) \ |
1788
aaccd635fb71
Make scrollbar structures into lisp objects, so that they can be
Jim Blandy <jimb@redhat.com>
parents:
1721
diff
changeset
|
535 (CHAR_TO_PIXEL_COL (f, width) \ |
1994
73ce9dd21093
Use the term `scroll bar', instead of `scrollbar'.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
536 + (f)->display.x->vertical_scroll_bar_extra \ |
1788
aaccd635fb71
Make scrollbar structures into lisp objects, so that they can be
Jim Blandy <jimb@redhat.com>
parents:
1721
diff
changeset
|
537 + (f)->display.x->internal_border_width) |
1721
6ba3bca4c3de
* frame.h (struct frame): New fields `can_have_scrollbars' and
Jim Blandy <jimb@redhat.com>
parents:
1531
diff
changeset
|
538 #define CHAR_TO_PIXEL_HEIGHT(f, height) \ |
1788
aaccd635fb71
Make scrollbar structures into lisp objects, so that they can be
Jim Blandy <jimb@redhat.com>
parents:
1721
diff
changeset
|
539 (CHAR_TO_PIXEL_ROW (f, height) \ |
aaccd635fb71
Make scrollbar structures into lisp objects, so that they can be
Jim Blandy <jimb@redhat.com>
parents:
1721
diff
changeset
|
540 + (f)->display.x->internal_border_width) |
aaccd635fb71
Make scrollbar structures into lisp objects, so that they can be
Jim Blandy <jimb@redhat.com>
parents:
1721
diff
changeset
|
541 |
1721
6ba3bca4c3de
* frame.h (struct frame): New fields `can_have_scrollbars' and
Jim Blandy <jimb@redhat.com>
parents:
1531
diff
changeset
|
542 |
1788
aaccd635fb71
Make scrollbar structures into lisp objects, so that they can be
Jim Blandy <jimb@redhat.com>
parents:
1721
diff
changeset
|
543 /* Return the row/column (zero-based) of the character cell containing |
aaccd635fb71
Make scrollbar structures into lisp objects, so that they can be
Jim Blandy <jimb@redhat.com>
parents:
1721
diff
changeset
|
544 the pixel on FRAME at ROW/COL. */ |
3195
1071243e14c7
(PIXEL_TO_CHAR_COL, PIXEL_TO_CHAR_ROW): Fix mismatch in arg names.
Richard M. Stallman <rms@gnu.org>
parents:
3077
diff
changeset
|
545 #define PIXEL_TO_CHAR_ROW(f, row) \ |
1788
aaccd635fb71
Make scrollbar structures into lisp objects, so that they can be
Jim Blandy <jimb@redhat.com>
parents:
1721
diff
changeset
|
546 (((row) - (f)->display.x->internal_border_width) \ |
aaccd635fb71
Make scrollbar structures into lisp objects, so that they can be
Jim Blandy <jimb@redhat.com>
parents:
1721
diff
changeset
|
547 / FONT_HEIGHT ((f)->display.x->font)) |
3195
1071243e14c7
(PIXEL_TO_CHAR_COL, PIXEL_TO_CHAR_ROW): Fix mismatch in arg names.
Richard M. Stallman <rms@gnu.org>
parents:
3077
diff
changeset
|
548 #define PIXEL_TO_CHAR_COL(f, col) \ |
1788
aaccd635fb71
Make scrollbar structures into lisp objects, so that they can be
Jim Blandy <jimb@redhat.com>
parents:
1721
diff
changeset
|
549 (((col) - (f)->display.x->internal_border_width) \ |
1721
6ba3bca4c3de
* frame.h (struct frame): New fields `can_have_scrollbars' and
Jim Blandy <jimb@redhat.com>
parents:
1531
diff
changeset
|
550 / FONT_WIDTH ((f)->display.x->font)) |
6ba3bca4c3de
* frame.h (struct frame): New fields `can_have_scrollbars' and
Jim Blandy <jimb@redhat.com>
parents:
1531
diff
changeset
|
551 |
1788
aaccd635fb71
Make scrollbar structures into lisp objects, so that they can be
Jim Blandy <jimb@redhat.com>
parents:
1721
diff
changeset
|
552 /* How many columns/rows of text can we fit in WIDTH/HEIGHT pixels on |
aaccd635fb71
Make scrollbar structures into lisp objects, so that they can be
Jim Blandy <jimb@redhat.com>
parents:
1721
diff
changeset
|
553 frame F? */ |
aaccd635fb71
Make scrollbar structures into lisp objects, so that they can be
Jim Blandy <jimb@redhat.com>
parents:
1721
diff
changeset
|
554 #define PIXEL_TO_CHAR_WIDTH(f, width) \ |
aaccd635fb71
Make scrollbar structures into lisp objects, so that they can be
Jim Blandy <jimb@redhat.com>
parents:
1721
diff
changeset
|
555 (PIXEL_TO_CHAR_COL (f, ((width) \ |
aaccd635fb71
Make scrollbar structures into lisp objects, so that they can be
Jim Blandy <jimb@redhat.com>
parents:
1721
diff
changeset
|
556 - (f)->display.x->internal_border_width \ |
1994
73ce9dd21093
Use the term `scroll bar', instead of `scrollbar'.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
557 - (f)->display.x->vertical_scroll_bar_extra))) |
1721
6ba3bca4c3de
* frame.h (struct frame): New fields `can_have_scrollbars' and
Jim Blandy <jimb@redhat.com>
parents:
1531
diff
changeset
|
558 #define PIXEL_TO_CHAR_HEIGHT(f, height) \ |
1788
aaccd635fb71
Make scrollbar structures into lisp objects, so that they can be
Jim Blandy <jimb@redhat.com>
parents:
1721
diff
changeset
|
559 (PIXEL_TO_CHAR_ROW (f, ((height) \ |
aaccd635fb71
Make scrollbar structures into lisp objects, so that they can be
Jim Blandy <jimb@redhat.com>
parents:
1721
diff
changeset
|
560 - (f)->display.x->internal_border_width))) |
2196
75e1f1ee83ad
(SELECTION_EVENT_DISPLAY): New macro.
Richard M. Stallman <rms@gnu.org>
parents:
1994
diff
changeset
|
561 |
75e1f1ee83ad
(SELECTION_EVENT_DISPLAY): New macro.
Richard M. Stallman <rms@gnu.org>
parents:
1994
diff
changeset
|
562 /* If a struct input_event has a kind which is selection_request_event |
75e1f1ee83ad
(SELECTION_EVENT_DISPLAY): New macro.
Richard M. Stallman <rms@gnu.org>
parents:
1994
diff
changeset
|
563 or selection_clear_event, then its contents are really described |
75e1f1ee83ad
(SELECTION_EVENT_DISPLAY): New macro.
Richard M. Stallman <rms@gnu.org>
parents:
1994
diff
changeset
|
564 by this structure. */ |
75e1f1ee83ad
(SELECTION_EVENT_DISPLAY): New macro.
Richard M. Stallman <rms@gnu.org>
parents:
1994
diff
changeset
|
565 |
75e1f1ee83ad
(SELECTION_EVENT_DISPLAY): New macro.
Richard M. Stallman <rms@gnu.org>
parents:
1994
diff
changeset
|
566 /* For an event of kind selection_request_event, |
75e1f1ee83ad
(SELECTION_EVENT_DISPLAY): New macro.
Richard M. Stallman <rms@gnu.org>
parents:
1994
diff
changeset
|
567 this structure really describes the contents. */ |
75e1f1ee83ad
(SELECTION_EVENT_DISPLAY): New macro.
Richard M. Stallman <rms@gnu.org>
parents:
1994
diff
changeset
|
568 struct selection_input_event |
75e1f1ee83ad
(SELECTION_EVENT_DISPLAY): New macro.
Richard M. Stallman <rms@gnu.org>
parents:
1994
diff
changeset
|
569 { |
75e1f1ee83ad
(SELECTION_EVENT_DISPLAY): New macro.
Richard M. Stallman <rms@gnu.org>
parents:
1994
diff
changeset
|
570 int kind; |
75e1f1ee83ad
(SELECTION_EVENT_DISPLAY): New macro.
Richard M. Stallman <rms@gnu.org>
parents:
1994
diff
changeset
|
571 Display *display; |
75e1f1ee83ad
(SELECTION_EVENT_DISPLAY): New macro.
Richard M. Stallman <rms@gnu.org>
parents:
1994
diff
changeset
|
572 Window requestor; |
75e1f1ee83ad
(SELECTION_EVENT_DISPLAY): New macro.
Richard M. Stallman <rms@gnu.org>
parents:
1994
diff
changeset
|
573 Atom selection, target, property; |
75e1f1ee83ad
(SELECTION_EVENT_DISPLAY): New macro.
Richard M. Stallman <rms@gnu.org>
parents:
1994
diff
changeset
|
574 Time time; |
75e1f1ee83ad
(SELECTION_EVENT_DISPLAY): New macro.
Richard M. Stallman <rms@gnu.org>
parents:
1994
diff
changeset
|
575 }; |
75e1f1ee83ad
(SELECTION_EVENT_DISPLAY): New macro.
Richard M. Stallman <rms@gnu.org>
parents:
1994
diff
changeset
|
576 |
75e1f1ee83ad
(SELECTION_EVENT_DISPLAY): New macro.
Richard M. Stallman <rms@gnu.org>
parents:
1994
diff
changeset
|
577 #define SELECTION_EVENT_DISPLAY(eventp) \ |
75e1f1ee83ad
(SELECTION_EVENT_DISPLAY): New macro.
Richard M. Stallman <rms@gnu.org>
parents:
1994
diff
changeset
|
578 (((struct selection_input_event *) (eventp))->display) |
75e1f1ee83ad
(SELECTION_EVENT_DISPLAY): New macro.
Richard M. Stallman <rms@gnu.org>
parents:
1994
diff
changeset
|
579 #define SELECTION_EVENT_REQUESTOR(eventp) \ |
75e1f1ee83ad
(SELECTION_EVENT_DISPLAY): New macro.
Richard M. Stallman <rms@gnu.org>
parents:
1994
diff
changeset
|
580 (((struct selection_input_event *) (eventp))->requestor) |
75e1f1ee83ad
(SELECTION_EVENT_DISPLAY): New macro.
Richard M. Stallman <rms@gnu.org>
parents:
1994
diff
changeset
|
581 #define SELECTION_EVENT_SELECTION(eventp) \ |
75e1f1ee83ad
(SELECTION_EVENT_DISPLAY): New macro.
Richard M. Stallman <rms@gnu.org>
parents:
1994
diff
changeset
|
582 (((struct selection_input_event *) (eventp))->selection) |
75e1f1ee83ad
(SELECTION_EVENT_DISPLAY): New macro.
Richard M. Stallman <rms@gnu.org>
parents:
1994
diff
changeset
|
583 #define SELECTION_EVENT_TARGET(eventp) \ |
75e1f1ee83ad
(SELECTION_EVENT_DISPLAY): New macro.
Richard M. Stallman <rms@gnu.org>
parents:
1994
diff
changeset
|
584 (((struct selection_input_event *) (eventp))->target) |
75e1f1ee83ad
(SELECTION_EVENT_DISPLAY): New macro.
Richard M. Stallman <rms@gnu.org>
parents:
1994
diff
changeset
|
585 #define SELECTION_EVENT_PROPERTY(eventp) \ |
75e1f1ee83ad
(SELECTION_EVENT_DISPLAY): New macro.
Richard M. Stallman <rms@gnu.org>
parents:
1994
diff
changeset
|
586 (((struct selection_input_event *) (eventp))->property) |
75e1f1ee83ad
(SELECTION_EVENT_DISPLAY): New macro.
Richard M. Stallman <rms@gnu.org>
parents:
1994
diff
changeset
|
587 #define SELECTION_EVENT_TIME(eventp) \ |
75e1f1ee83ad
(SELECTION_EVENT_DISPLAY): New macro.
Richard M. Stallman <rms@gnu.org>
parents:
1994
diff
changeset
|
588 (((struct selection_input_event *) (eventp))->time) |
3077
8bba60752a32
* xterm.h: New section for declarations for xfaces.c.
Jim Blandy <jimb@redhat.com>
parents:
2841
diff
changeset
|
589 |
8bba60752a32
* xterm.h: New section for declarations for xfaces.c.
Jim Blandy <jimb@redhat.com>
parents:
2841
diff
changeset
|
590 |
8bba60752a32
* xterm.h: New section for declarations for xfaces.c.
Jim Blandy <jimb@redhat.com>
parents:
2841
diff
changeset
|
591 /* Interface to the face code functions. */ |
8bba60752a32
* xterm.h: New section for declarations for xfaces.c.
Jim Blandy <jimb@redhat.com>
parents:
2841
diff
changeset
|
592 |
3883
b9e5a869b33e
Separate parameter faces (those created and modified by the user)
Jim Blandy <jimb@redhat.com>
parents:
3591
diff
changeset
|
593 /* Create the first two computed faces for a frame -- the ones that |
b9e5a869b33e
Separate parameter faces (those created and modified by the user)
Jim Blandy <jimb@redhat.com>
parents:
3591
diff
changeset
|
594 have GC's. */ |
3077
8bba60752a32
* xterm.h: New section for declarations for xfaces.c.
Jim Blandy <jimb@redhat.com>
parents:
2841
diff
changeset
|
595 extern void init_frame_faces (/* FRAME_PTR */); |
8bba60752a32
* xterm.h: New section for declarations for xfaces.c.
Jim Blandy <jimb@redhat.com>
parents:
2841
diff
changeset
|
596 |
8bba60752a32
* xterm.h: New section for declarations for xfaces.c.
Jim Blandy <jimb@redhat.com>
parents:
2841
diff
changeset
|
597 /* Free the resources for the faces associated with a frame. */ |
8bba60752a32
* xterm.h: New section for declarations for xfaces.c.
Jim Blandy <jimb@redhat.com>
parents:
2841
diff
changeset
|
598 extern void free_frame_faces (/* FRAME_PTR */); |
8bba60752a32
* xterm.h: New section for declarations for xfaces.c.
Jim Blandy <jimb@redhat.com>
parents:
2841
diff
changeset
|
599 |
3883
b9e5a869b33e
Separate parameter faces (those created and modified by the user)
Jim Blandy <jimb@redhat.com>
parents:
3591
diff
changeset
|
600 /* Given a computed face, find or make an equivalent display face |
3077
8bba60752a32
* xterm.h: New section for declarations for xfaces.c.
Jim Blandy <jimb@redhat.com>
parents:
2841
diff
changeset
|
601 in face_vector, and return a pointer to it. */ |
8bba60752a32
* xterm.h: New section for declarations for xfaces.c.
Jim Blandy <jimb@redhat.com>
parents:
2841
diff
changeset
|
602 extern struct face *intern_face (/* FRAME_PTR, struct face * */); |
8bba60752a32
* xterm.h: New section for declarations for xfaces.c.
Jim Blandy <jimb@redhat.com>
parents:
2841
diff
changeset
|
603 |
8bba60752a32
* xterm.h: New section for declarations for xfaces.c.
Jim Blandy <jimb@redhat.com>
parents:
2841
diff
changeset
|
604 /* Given a frame and a face name, return the face's ID number, or |
8bba60752a32
* xterm.h: New section for declarations for xfaces.c.
Jim Blandy <jimb@redhat.com>
parents:
2841
diff
changeset
|
605 zero if it isn't a recognized face name. */ |
8bba60752a32
* xterm.h: New section for declarations for xfaces.c.
Jim Blandy <jimb@redhat.com>
parents:
2841
diff
changeset
|
606 extern int face_name_id_number (/* FRAME_PTR, Lisp_Object */); |
8bba60752a32
* xterm.h: New section for declarations for xfaces.c.
Jim Blandy <jimb@redhat.com>
parents:
2841
diff
changeset
|
607 |
8bba60752a32
* xterm.h: New section for declarations for xfaces.c.
Jim Blandy <jimb@redhat.com>
parents:
2841
diff
changeset
|
608 /* Return non-zero if FONT1 and FONT2 have the same size bounding box. |
8bba60752a32
* xterm.h: New section for declarations for xfaces.c.
Jim Blandy <jimb@redhat.com>
parents:
2841
diff
changeset
|
609 We assume that they're both character-cell fonts. */ |
8bba60752a32
* xterm.h: New section for declarations for xfaces.c.
Jim Blandy <jimb@redhat.com>
parents:
2841
diff
changeset
|
610 extern int same_size_fonts (/* XFontStruct *, XFontStruct * */); |
8bba60752a32
* xterm.h: New section for declarations for xfaces.c.
Jim Blandy <jimb@redhat.com>
parents:
2841
diff
changeset
|
611 |
8bba60752a32
* xterm.h: New section for declarations for xfaces.c.
Jim Blandy <jimb@redhat.com>
parents:
2841
diff
changeset
|
612 /* Recompute the GC's for the default and modeline faces. |
8bba60752a32
* xterm.h: New section for declarations for xfaces.c.
Jim Blandy <jimb@redhat.com>
parents:
2841
diff
changeset
|
613 We call this after changing frame parameters on which those GC's |
8bba60752a32
* xterm.h: New section for declarations for xfaces.c.
Jim Blandy <jimb@redhat.com>
parents:
2841
diff
changeset
|
614 depend. */ |
8bba60752a32
* xterm.h: New section for declarations for xfaces.c.
Jim Blandy <jimb@redhat.com>
parents:
2841
diff
changeset
|
615 extern void recompute_basic_faces (/* FRAME_PTR */); |
8bba60752a32
* xterm.h: New section for declarations for xfaces.c.
Jim Blandy <jimb@redhat.com>
parents:
2841
diff
changeset
|
616 |
3883
b9e5a869b33e
Separate parameter faces (those created and modified by the user)
Jim Blandy <jimb@redhat.com>
parents:
3591
diff
changeset
|
617 /* Return the face ID associated with a buffer position POS. Store |
b9e5a869b33e
Separate parameter faces (those created and modified by the user)
Jim Blandy <jimb@redhat.com>
parents:
3591
diff
changeset
|
618 into *ENDPTR the next position at which a different face is |
b9e5a869b33e
Separate parameter faces (those created and modified by the user)
Jim Blandy <jimb@redhat.com>
parents:
3591
diff
changeset
|
619 needed. This does not take account of glyphs that specify their |
b9e5a869b33e
Separate parameter faces (those created and modified by the user)
Jim Blandy <jimb@redhat.com>
parents:
3591
diff
changeset
|
620 own face codes. F is the frame in use for display, and W is a |
b9e5a869b33e
Separate parameter faces (those created and modified by the user)
Jim Blandy <jimb@redhat.com>
parents:
3591
diff
changeset
|
621 window displaying the current buffer. |
3077
8bba60752a32
* xterm.h: New section for declarations for xfaces.c.
Jim Blandy <jimb@redhat.com>
parents:
2841
diff
changeset
|
622 |
8bba60752a32
* xterm.h: New section for declarations for xfaces.c.
Jim Blandy <jimb@redhat.com>
parents:
2841
diff
changeset
|
623 REGION_BEG, REGION_END delimit the region, so it can be highlighted. */ |
8bba60752a32
* xterm.h: New section for declarations for xfaces.c.
Jim Blandy <jimb@redhat.com>
parents:
2841
diff
changeset
|
624 extern int compute_char_face (/* FRAME_PTR frame, |
8bba60752a32
* xterm.h: New section for declarations for xfaces.c.
Jim Blandy <jimb@redhat.com>
parents:
2841
diff
changeset
|
625 struct window *w, |
8bba60752a32
* xterm.h: New section for declarations for xfaces.c.
Jim Blandy <jimb@redhat.com>
parents:
2841
diff
changeset
|
626 int pos, |
8bba60752a32
* xterm.h: New section for declarations for xfaces.c.
Jim Blandy <jimb@redhat.com>
parents:
2841
diff
changeset
|
627 int region_beg, int region_end, |
8bba60752a32
* xterm.h: New section for declarations for xfaces.c.
Jim Blandy <jimb@redhat.com>
parents:
2841
diff
changeset
|
628 int *endptr */); |
8bba60752a32
* xterm.h: New section for declarations for xfaces.c.
Jim Blandy <jimb@redhat.com>
parents:
2841
diff
changeset
|
629 /* Return the face ID to use to display a special glyph which selects |
8bba60752a32
* xterm.h: New section for declarations for xfaces.c.
Jim Blandy <jimb@redhat.com>
parents:
2841
diff
changeset
|
630 FACE_CODE as the face ID, assuming that ordinarily the face would |
8bba60752a32
* xterm.h: New section for declarations for xfaces.c.
Jim Blandy <jimb@redhat.com>
parents:
2841
diff
changeset
|
631 be BASIC_FACE. F is the frame. */ |
8bba60752a32
* xterm.h: New section for declarations for xfaces.c.
Jim Blandy <jimb@redhat.com>
parents:
2841
diff
changeset
|
632 extern int compute_glyph_face (/* FRAME_PTR, int */); |