Mercurial > hg > xemacs-beta
comparison src/frame.h @ 398:74fd4e045ea6 r21-2-29
Import from CVS: tag r21-2-29
author | cvs |
---|---|
date | Mon, 13 Aug 2007 11:13:30 +0200 |
parents | bbff43aa5eb7 |
children | 2f8bb876ab1d |
comparison
equal
deleted
inserted
replaced
397:f4aeb21a5bad | 398:74fd4e045ea6 |
---|---|
18 the Free Software Foundation, Inc., 59 Temple Place - Suite 330, | 18 the Free Software Foundation, Inc., 59 Temple Place - Suite 330, |
19 Boston, MA 02111-1307, USA. */ | 19 Boston, MA 02111-1307, USA. */ |
20 | 20 |
21 /* Synched up with: FSF 19.30. */ | 21 /* Synched up with: FSF 19.30. */ |
22 | 22 |
23 #ifndef _XEMACS_FRAME_H_ | 23 #ifndef INCLUDED_frame_h_ |
24 #define _XEMACS_FRAME_H_ | 24 #define INCLUDED_frame_h_ |
25 | 25 |
26 #ifdef HAVE_SCROLLBARS | 26 #ifdef HAVE_SCROLLBARS |
27 #include "scrollbar.h" | 27 #include "scrollbar.h" |
28 #endif | 28 #endif |
29 | 29 |
31 #include "toolbar.h" | 31 #include "toolbar.h" |
32 #endif | 32 #endif |
33 | 33 |
34 #include "device.h" | 34 #include "device.h" |
35 #include "glyphs.h" | 35 #include "glyphs.h" |
36 #include "redisplay.h" | |
36 | 37 |
37 #define FRAME_TYPE_NAME(f) ((f)->framemeths->name) | 38 #define FRAME_TYPE_NAME(f) ((f)->framemeths->name) |
38 #define FRAME_TYPE(f) ((f)->framemeths->symbol) | 39 #define FRAME_TYPE(f) ((f)->framemeths->symbol) |
39 | 40 |
40 /******** Accessing / calling a frame method *********/ | 41 /******** Accessing / calling a frame method *********/ |
75 #ifdef HAVE_TTY | 76 #ifdef HAVE_TTY |
76 /* The count of frame number. This applies to TTY frames only. */ | 77 /* The count of frame number. This applies to TTY frames only. */ |
77 int order_count; | 78 int order_count; |
78 #endif | 79 #endif |
79 | 80 |
81 /* Current page number for a printer frame. */ | |
82 int page_number; | |
83 | |
80 /* Width of the internal border. This is a line of background color | 84 /* Width of the internal border. This is a line of background color |
81 just inside the window's border. It is normally only non-zero on | 85 just inside the window's border. It is normally only non-zero on |
82 X frames, but we put it here to avoid introducing window system | 86 X frames, but we put it here to avoid introducing window system |
83 dependencies. */ | 87 dependencies. */ |
84 int internal_border_width; | 88 int internal_border_width; |
90 | 94 |
91 int modiff; | 95 int modiff; |
92 | 96 |
93 /* subwindow cache elements for this frame */ | 97 /* subwindow cache elements for this frame */ |
94 subwindow_cachel_dynarr *subwindow_cachels; | 98 subwindow_cachel_dynarr *subwindow_cachels; |
99 | |
100 struct expose_ignore* subwindow_exposures; | |
101 struct expose_ignore* subwindow_exposures_tail; | |
95 | 102 |
96 #ifdef HAVE_SCROLLBARS | 103 #ifdef HAVE_SCROLLBARS |
97 /* frame-local scrollbar information. See scrollbar.c. */ | 104 /* frame-local scrollbar information. See scrollbar.c. */ |
98 int scrollbar_y_offset; | 105 int scrollbar_y_offset; |
99 | 106 |
106 /* Size of toolbars as seen by redisplay. This is used to determine | 113 /* Size of toolbars as seen by redisplay. This is used to determine |
107 whether to re-layout windows by a call to change_frame_size early | 114 whether to re-layout windows by a call to change_frame_size early |
108 in redisplay_frame. */ | 115 in redisplay_frame. */ |
109 unsigned int current_toolbar_size[4]; | 116 unsigned int current_toolbar_size[4]; |
110 #endif | 117 #endif |
118 | |
119 /* Dynamic array of display lines for gutters */ | |
120 display_line_dynarr *current_display_lines; | |
121 display_line_dynarr *desired_display_lines; | |
111 | 122 |
112 /* A structure of auxiliary data specific to the device type. | 123 /* A structure of auxiliary data specific to the device type. |
113 struct x_frame is used for X window frames; defined in console-x.h */ | 124 struct x_frame is used for X window frames; defined in console-x.h */ |
114 void *frame_data; | 125 void *frame_data; |
115 | 126 |
158 | 169 |
159 unsigned int top_toolbar_was_visible :1; | 170 unsigned int top_toolbar_was_visible :1; |
160 unsigned int bottom_toolbar_was_visible :1; | 171 unsigned int bottom_toolbar_was_visible :1; |
161 unsigned int left_toolbar_was_visible :1; | 172 unsigned int left_toolbar_was_visible :1; |
162 unsigned int right_toolbar_was_visible :1; | 173 unsigned int right_toolbar_was_visible :1; |
174 /* gutter visibility */ | |
175 unsigned int top_gutter_was_visible :1; | |
176 unsigned int bottom_gutter_was_visible :1; | |
177 unsigned int left_gutter_was_visible :1; | |
178 unsigned int right_gutter_was_visible :1; | |
163 | 179 |
164 /* redisplay flags */ | 180 /* redisplay flags */ |
165 unsigned int buffers_changed :1; | 181 unsigned int buffers_changed :1; |
166 unsigned int clip_changed :1; | 182 unsigned int clip_changed :1; |
167 unsigned int extents_changed :1; | 183 unsigned int extents_changed :1; |
168 unsigned int faces_changed :1; | 184 unsigned int faces_changed :1; |
169 unsigned int frame_changed :1; | 185 unsigned int frame_changed :1; |
170 unsigned int subwindows_changed :1; | 186 unsigned int subwindows_changed :1; |
187 unsigned int subwindows_state_changed :1; | |
171 unsigned int glyphs_changed :1; | 188 unsigned int glyphs_changed :1; |
172 unsigned int icon_changed :1; | 189 unsigned int icon_changed :1; |
173 unsigned int menubar_changed :1; | 190 unsigned int menubar_changed :1; |
174 unsigned int modeline_changed :1; | 191 unsigned int modeline_changed :1; |
175 unsigned int point_changed :1; | 192 unsigned int point_changed :1; |
176 unsigned int size_changed :1; | 193 unsigned int size_changed :1; |
177 unsigned int toolbar_changed :1; | 194 unsigned int toolbar_changed :1; |
195 unsigned int gutter_changed :1; | |
178 unsigned int windows_changed :1; | 196 unsigned int windows_changed :1; |
179 unsigned int windows_structure_changed :1; | 197 unsigned int windows_structure_changed :1; |
180 unsigned int window_face_cache_reset :1; /* used by expose handler */ | 198 unsigned int window_face_cache_reset :1; /* used by expose handler */ |
181 unsigned int echo_area_garbaged :1; /* used by Fredisplay_echo_area */ | 199 unsigned int echo_area_garbaged :1; /* used by Fredisplay_echo_area */ |
182 unsigned int size_slipped :1; | 200 unsigned int size_slipped :1; |
196 EXFUN (Fmake_frame_visible, 1); | 214 EXFUN (Fmake_frame_visible, 1); |
197 EXFUN (Fraise_frame, 1); | 215 EXFUN (Fraise_frame, 1); |
198 EXFUN (Fselect_frame, 1); | 216 EXFUN (Fselect_frame, 1); |
199 EXFUN (Fset_frame_pointer, 2); | 217 EXFUN (Fset_frame_pointer, 2); |
200 EXFUN (Fset_frame_position, 3); | 218 EXFUN (Fset_frame_position, 3); |
219 EXFUN (Fset_frame_properties, 2); | |
201 EXFUN (Fset_frame_size, 4); | 220 EXFUN (Fset_frame_size, 4); |
202 | 221 |
203 extern Lisp_Object Qbackground_toolbar_color, Qbell_volume, Qborder_color; | 222 extern Lisp_Object Qbackground_toolbar_color, Qbell_volume, Qborder_color; |
204 extern Lisp_Object Qborder_width, Qbottom_toolbar_shadow_color; | 223 extern Lisp_Object Qborder_width, Qbottom_toolbar_shadow_color; |
205 extern Lisp_Object Qbottom_toolbar_shadow_pixmap, Qdelete_frame; | 224 extern Lisp_Object Qbottom_toolbar_shadow_pixmap, Qdelete_frame; |
220 | 239 |
221 DECLARE_LRECORD (frame, struct frame); | 240 DECLARE_LRECORD (frame, struct frame); |
222 #define XFRAME(x) XRECORD (x, frame, struct frame) | 241 #define XFRAME(x) XRECORD (x, frame, struct frame) |
223 #define XSETFRAME(x, p) XSETRECORD (x, p, frame) | 242 #define XSETFRAME(x, p) XSETRECORD (x, p, frame) |
224 #define FRAMEP(x) RECORDP (x, frame) | 243 #define FRAMEP(x) RECORDP (x, frame) |
225 #define GC_FRAMEP(x) GC_RECORDP (x, frame) | |
226 #define CHECK_FRAME(x) CHECK_RECORD (x, frame) | 244 #define CHECK_FRAME(x) CHECK_RECORD (x, frame) |
227 #define CONCHECK_FRAME(x) CONCHECK_RECORD (x, frame) | 245 #define CONCHECK_FRAME(x) CONCHECK_RECORD (x, frame) |
228 | 246 |
229 #define CHECK_LIVE_FRAME(x) do { \ | 247 #define CHECK_LIVE_FRAME(x) do { \ |
230 CHECK_FRAME (x); \ | 248 CHECK_FRAME (x); \ |
247 { | 265 { |
248 assert (EQ (FRAME_TYPE (f), sym)); | 266 assert (EQ (FRAME_TYPE (f), sym)); |
249 return f; | 267 return f; |
250 } | 268 } |
251 # define FRAME_TYPE_DATA(f, type) \ | 269 # define FRAME_TYPE_DATA(f, type) \ |
252 ((struct type##_frame *) (error_check_frame_type (f, Q##type))->frame_data) | 270 ((struct type##_frame *) error_check_frame_type (f, Q##type)->frame_data) |
253 #else | 271 #else |
254 # define FRAME_TYPE_DATA(f, type) \ | 272 # define FRAME_TYPE_DATA(f, type) \ |
255 ((struct type##_frame *) (f)->frame_data) | 273 ((struct type##_frame *) (f)->frame_data) |
256 #endif | 274 #endif |
257 | 275 |
268 if (!FRAME_TYPE_P (XFRAME (x), type)) \ | 286 if (!FRAME_TYPE_P (XFRAME (x), type)) \ |
269 x = wrong_type_argument \ | 287 x = wrong_type_argument \ |
270 (type##_console_methods->predicate_symbol, x); \ | 288 (type##_console_methods->predicate_symbol, x); \ |
271 } while (0) | 289 } while (0) |
272 | 290 |
291 #define FRAME_DISPLAY_P(frm) \ | |
292 (DEVICE_DISPLAY_P (XDEVICE (FRAME_DEVICE (frm)))) | |
293 | |
294 #define CHECK_DISPLAY_FRAME(frm) \ | |
295 do { \ | |
296 CHECK_FRAME (frm); \ | |
297 CHECK_LIVE_FRAME (frm); \ | |
298 CHECK_DISPLAY_DEVICE (FRAME_DEVICE (XFRAME (frm))); \ | |
299 } while (0) | |
300 | |
301 #define CONCHECK_DISPLAY_FRAME(frm) \ | |
302 do { \ | |
303 CONCHECK_FRAME (frm); \ | |
304 CONCHECK_LIVE_FRAME (frm); \ | |
305 CONCHECK_DISPLAY_DEVICE (FRAME_DEVICE (XFRAME (frm))); \ | |
306 } while (0) | |
307 | |
308 #define FRAME_PRINTER_P(frm) \ | |
309 (DEVICE_PRINTER_P (XDEVICE (FRAME_DEVICE (frm)))) | |
310 | |
311 #define CHECK_PRINTER_FRAME(frm) \ | |
312 do { \ | |
313 CHECK_FRAME (frm); \ | |
314 CHECK_LIVE_FRAME (frm); \ | |
315 CHECK_PRINTER_DEVICE (FRAME_DEVICE (XFRAME (frm))); \ | |
316 } while (0) | |
317 | |
318 #define CONCHECK_PRINTER_FRAME(frm) \ | |
319 do { \ | |
320 CONCHECK_FRAME (frm); \ | |
321 CONCHECK_LIVE_FRAME (frm); \ | |
322 CONCHECK_PRINTER_DEVICE (FRAME_DEVICE (XFRAME (frm))); \ | |
323 } while (0) | |
324 | |
273 /* #### These should be in the frame-*.h files but there are | 325 /* #### These should be in the frame-*.h files but there are |
274 too many places where the abstraction is broken. Need to | 326 too many places where the abstraction is broken. Need to |
275 fix. */ | 327 fix. */ |
276 | 328 |
277 #define FRAME_X_P(frm) CONSOLE_TYPESYM_X_P (FRAME_TYPE (frm)) | 329 #define FRAME_X_P(frm) CONSOLE_TYPESYM_X_P (FRAME_TYPE (frm)) |
316 glyphs_changed = 1; \ | 368 glyphs_changed = 1; \ |
317 } while (0) | 369 } while (0) |
318 | 370 |
319 #define MARK_FRAME_SUBWINDOWS_CHANGED(f) do { \ | 371 #define MARK_FRAME_SUBWINDOWS_CHANGED(f) do { \ |
320 struct frame *mfgc_f = (f); \ | 372 struct frame *mfgc_f = (f); \ |
321 mfgc_f->subwindows_changed = 1; \ | 373 mfgc_f->subwindows_changed = 1; \ |
322 mfgc_f->modiff++; \ | 374 mfgc_f->modiff++; \ |
323 if (!NILP (mfgc_f->device)) \ | 375 if (!NILP (mfgc_f->device)) \ |
324 { \ | 376 { \ |
325 struct device *mfgc_d = XDEVICE (mfgc_f->device); \ | 377 struct device *mfgc_d = XDEVICE (mfgc_f->device); \ |
326 MARK_DEVICE_SUBWINDOWS_CHANGED (mfgc_d); \ | 378 MARK_DEVICE_SUBWINDOWS_CHANGED (mfgc_d); \ |
327 } \ | 379 } \ |
328 else \ | 380 else \ |
329 subwindows_changed = 1; \ | 381 subwindows_changed = 1; \ |
382 } while (0) | |
383 | |
384 #define MARK_FRAME_SUBWINDOWS_STATE_CHANGED(f) do { \ | |
385 struct frame *mfgc_f = (f); \ | |
386 mfgc_f->subwindows_state_changed = 1; \ | |
387 mfgc_f->modiff++; \ | |
388 if (!NILP (mfgc_f->device)) \ | |
389 { \ | |
390 struct device *mfgc_d = XDEVICE (mfgc_f->device); \ | |
391 MARK_DEVICE_SUBWINDOWS_STATE_CHANGED (mfgc_d); \ | |
392 } \ | |
393 else \ | |
394 subwindows_state_changed = 1; \ | |
330 } while (0) | 395 } while (0) |
331 | 396 |
332 #define MARK_FRAME_TOOLBARS_CHANGED(f) do { \ | 397 #define MARK_FRAME_TOOLBARS_CHANGED(f) do { \ |
333 struct frame *mftc_f = (f); \ | 398 struct frame *mftc_f = (f); \ |
334 mftc_f->toolbar_changed = 1; \ | 399 mftc_f->toolbar_changed = 1; \ |
338 struct device *mftc_d = XDEVICE (mftc_f->device); \ | 403 struct device *mftc_d = XDEVICE (mftc_f->device); \ |
339 MARK_DEVICE_TOOLBARS_CHANGED (mftc_d); \ | 404 MARK_DEVICE_TOOLBARS_CHANGED (mftc_d); \ |
340 } \ | 405 } \ |
341 else \ | 406 else \ |
342 toolbar_changed = 1; \ | 407 toolbar_changed = 1; \ |
408 } while (0) | |
409 | |
410 #define MARK_FRAME_GUTTERS_CHANGED(f) do { \ | |
411 struct frame *mftc_f = (f); \ | |
412 mftc_f->gutter_changed = 1; \ | |
413 mftc_f->modiff++; \ | |
414 if (!NILP (mftc_f->device)) \ | |
415 { \ | |
416 struct device *mftc_d = XDEVICE (mftc_f->device); \ | |
417 MARK_DEVICE_GUTTERS_CHANGED (mftc_d); \ | |
418 } \ | |
419 else \ | |
420 gutter_changed = 1; \ | |
343 } while (0) | 421 } while (0) |
344 | 422 |
345 #define MARK_FRAME_SIZE_CHANGED(f) do { \ | 423 #define MARK_FRAME_SIZE_CHANGED(f) do { \ |
346 struct frame *mfsc_f = (f); \ | 424 struct frame *mfsc_f = (f); \ |
347 mfsc_f->size_changed = 1; \ | 425 mfsc_f->size_changed = 1; \ |
419 #define FRAME_CONSOLE(f) DEVICE_CONSOLE (XDEVICE (FRAME_DEVICE (f))) | 497 #define FRAME_CONSOLE(f) DEVICE_CONSOLE (XDEVICE (FRAME_DEVICE (f))) |
420 #define FRAME_LIVE_P(f) (!(f)->dead) | 498 #define FRAME_LIVE_P(f) (!(f)->dead) |
421 | 499 |
422 #define FRAME_MINIBUF_ONLY_P(f) \ | 500 #define FRAME_MINIBUF_ONLY_P(f) \ |
423 EQ (FRAME_ROOT_WINDOW (f), FRAME_MINIBUF_WINDOW (f)) | 501 EQ (FRAME_ROOT_WINDOW (f), FRAME_MINIBUF_WINDOW (f)) |
424 #define FRAME_HAS_MINIBUF_P(f) ((f)->has_minibuffer) | 502 #define FRAME_HAS_MINIBUF_P(f) ((f)->has_minibuffer) |
425 #define FRAME_HEIGHT(f) ((f)->height) | 503 #define FRAME_HEIGHT(f) ((f)->height) |
426 #define FRAME_WIDTH(f) ((f)->width) | 504 #define FRAME_WIDTH(f) ((f)->width) |
427 #define FRAME_CHARHEIGHT(f) ((f)->char_height) | 505 #define FRAME_CHARHEIGHT(f) ((f)->char_height) |
428 #define FRAME_CHARWIDTH(f) ((f)->char_width) | 506 #define FRAME_CHARWIDTH(f) ((f)->char_width) |
429 #define FRAME_PIXHEIGHT(f) ((f)->pixheight) | 507 #define FRAME_PIXHEIGHT(f) ((f)->pixheight) |
430 #define FRAME_PIXWIDTH(f) ((f)->pixwidth) | 508 #define FRAME_PIXWIDTH(f) ((f)->pixwidth) |
509 #define FRAME_PAGENUMBER(f) ((f)->page_number + 0) | |
510 #define FRAME_SET_PAGENUMBER(f,x) (f)->page_number = (x); | |
431 #ifdef HAVE_SCROLLBARS | 511 #ifdef HAVE_SCROLLBARS |
432 #define FRAME_SCROLLBAR_WIDTH(f) \ | 512 #define FRAME_SCROLLBAR_WIDTH(f) \ |
433 (NILP ((f)->vertical_scrollbar_visible_p) ? \ | 513 (NILP ((f)->vertical_scrollbar_visible_p) ? \ |
434 0 : XINT ((f)->scrollbar_width)) | 514 0 : XINT ((f)->scrollbar_width)) |
435 #define FRAME_SCROLLBAR_HEIGHT(f) \ | 515 #define FRAME_SCROLLBAR_HEIGHT(f) \ |
440 #define FRAME_SCROLLBAR_HEIGHT(f) 0 | 520 #define FRAME_SCROLLBAR_HEIGHT(f) 0 |
441 #endif | 521 #endif |
442 | 522 |
443 #define FW_FRAME(obj) \ | 523 #define FW_FRAME(obj) \ |
444 (WINDOWP (obj) ? WINDOW_FRAME (XWINDOW (obj)) \ | 524 (WINDOWP (obj) ? WINDOW_FRAME (XWINDOW (obj)) \ |
445 : (FRAMEP (obj) ? obj \ | 525 : (FRAMEP (obj) ? obj \ |
446 : Qnil)) | 526 : Qnil)) |
447 | 527 |
448 #define FRAME_NEW_HEIGHT(f) ((f)->new_height) | 528 #define FRAME_NEW_HEIGHT(f) ((f)->new_height) |
449 #define FRAME_NEW_WIDTH(f) ((f)->new_width) | 529 #define FRAME_NEW_WIDTH(f) ((f)->new_width) |
450 #define FRAME_CURSOR_X(f) ((f)->cursor_x) | 530 #define FRAME_CURSOR_X(f) ((f)->cursor_x) |
451 #define FRAME_CURSOR_Y(f) ((f)->cursor_y) | 531 #define FRAME_CURSOR_Y(f) ((f)->cursor_y) |
537 FRAME_THEORETICAL_TOOLBAR_SIZE (f, LEFT_TOOLBAR) | 617 FRAME_THEORETICAL_TOOLBAR_SIZE (f, LEFT_TOOLBAR) |
538 #define FRAME_THEORETICAL_RIGHT_TOOLBAR_WIDTH(f) \ | 618 #define FRAME_THEORETICAL_RIGHT_TOOLBAR_WIDTH(f) \ |
539 FRAME_THEORETICAL_TOOLBAR_SIZE (f, RIGHT_TOOLBAR) | 619 FRAME_THEORETICAL_TOOLBAR_SIZE (f, RIGHT_TOOLBAR) |
540 | 620 |
541 #define FRAME_THEORETICAL_TOOLBAR_BORDER_WIDTH(f, pos) \ | 621 #define FRAME_THEORETICAL_TOOLBAR_BORDER_WIDTH(f, pos) \ |
542 (FRAME_RAW_THEORETICAL_TOOLBAR_VISIBLE (f, pos) \ | 622 (FRAME_RAW_THEORETICAL_TOOLBAR_VISIBLE (f, pos) \ |
543 ? FRAME_RAW_THEORETICAL_TOOLBAR_BORDER_WIDTH (f, pos) \ | 623 ? FRAME_RAW_THEORETICAL_TOOLBAR_BORDER_WIDTH (f, pos) \ |
544 : 0) | 624 : 0) |
545 | 625 |
546 #define FRAME_THEORETICAL_TOP_TOOLBAR_BORDER_WIDTH(f) \ | 626 #define FRAME_THEORETICAL_TOP_TOOLBAR_BORDER_WIDTH(f) \ |
547 FRAME_THEORETICAL_TOOLBAR_BORDER_WIDTH (f, TOP_TOOLBAR) | 627 FRAME_THEORETICAL_TOOLBAR_BORDER_WIDTH (f, TOP_TOOLBAR) |
596 sure that there aren't some places in the redisplay code | 676 sure that there aren't some places in the redisplay code |
597 that use these macros and expect the former semantics, so | 677 that use these macros and expect the former semantics, so |
598 if you encounter some odd toolbar behavior, you might want | 678 if you encounter some odd toolbar behavior, you might want |
599 to look into this. --ben */ | 679 to look into this. --ben */ |
600 | 680 |
601 #define FRAME_REAL_TOOLBAR_VISIBLE(f, pos) \ | 681 #define FRAME_REAL_TOOLBAR_VISIBLE(f, pos) \ |
602 ((!NILP (FRAME_REAL_TOOLBAR (f, pos)) \ | 682 ((!NILP (FRAME_REAL_TOOLBAR (f, pos)) \ |
603 && FRAME_RAW_REAL_TOOLBAR_SIZE (f, pos) > 0) \ | 683 && FRAME_RAW_REAL_TOOLBAR_SIZE (f, pos) > 0) \ |
604 ? FRAME_RAW_REAL_TOOLBAR_VISIBLE (f, pos) \ | 684 ? FRAME_RAW_REAL_TOOLBAR_VISIBLE (f, pos) \ |
605 : 0) | 685 : 0) |
606 #define FRAME_REAL_TOOLBAR_SIZE(f, pos) \ | 686 #define FRAME_REAL_TOOLBAR_SIZE(f, pos) \ |
607 ((!NILP (FRAME_REAL_TOOLBAR (f, pos)) \ | 687 ((!NILP (FRAME_REAL_TOOLBAR (f, pos)) \ |
608 && FRAME_RAW_REAL_TOOLBAR_VISIBLE (f, pos)) \ | 688 && FRAME_RAW_REAL_TOOLBAR_VISIBLE (f, pos)) \ |
609 ? FRAME_RAW_REAL_TOOLBAR_SIZE (f, pos) \ | 689 ? FRAME_RAW_REAL_TOOLBAR_SIZE (f, pos) \ |
610 : 0) | 690 : 0) |
611 #define FRAME_REAL_TOOLBAR_BORDER_WIDTH(f, pos) \ | 691 #define FRAME_REAL_TOOLBAR_BORDER_WIDTH(f, pos) \ |
612 ((!NILP (FRAME_REAL_TOOLBAR (f, pos)) \ | 692 ((!NILP (FRAME_REAL_TOOLBAR (f, pos)) \ |
613 && FRAME_RAW_REAL_TOOLBAR_VISIBLE (f, pos)) \ | 693 && FRAME_RAW_REAL_TOOLBAR_VISIBLE (f, pos)) \ |
614 ? FRAME_RAW_REAL_TOOLBAR_BORDER_WIDTH (f, pos) \ | 694 ? FRAME_RAW_REAL_TOOLBAR_BORDER_WIDTH (f, pos) \ |
615 : 0) | 695 : 0) |
616 | 696 |
617 #define FRAME_REAL_TOP_TOOLBAR_HEIGHT(f) \ | 697 #define FRAME_REAL_TOP_TOOLBAR_HEIGHT(f) \ |
639 #define FRAME_REAL_LEFT_TOOLBAR_VISIBLE(f) \ | 719 #define FRAME_REAL_LEFT_TOOLBAR_VISIBLE(f) \ |
640 FRAME_REAL_TOOLBAR_VISIBLE (f, LEFT_TOOLBAR) | 720 FRAME_REAL_TOOLBAR_VISIBLE (f, LEFT_TOOLBAR) |
641 #define FRAME_REAL_RIGHT_TOOLBAR_VISIBLE(f) \ | 721 #define FRAME_REAL_RIGHT_TOOLBAR_VISIBLE(f) \ |
642 FRAME_REAL_TOOLBAR_VISIBLE (f, RIGHT_TOOLBAR) | 722 FRAME_REAL_TOOLBAR_VISIBLE (f, RIGHT_TOOLBAR) |
643 | 723 |
644 #define FRAME_TOP_BORDER_START(f) \ | 724 #define FRAME_TOP_BORDER_START(f) \ |
645 (FRAME_REAL_TOP_TOOLBAR_HEIGHT (f) + \ | 725 (FRAME_REAL_TOP_TOOLBAR_HEIGHT (f) + \ |
646 2 * FRAME_REAL_TOP_TOOLBAR_BORDER_WIDTH (f)) | 726 2 * FRAME_REAL_TOP_TOOLBAR_BORDER_WIDTH (f)) |
647 #define FRAME_TOP_BORDER_END(f) \ | 727 #define FRAME_TOP_BORDER_END(f) \ |
648 (FRAME_TOP_BORDER_START (f) + FRAME_BORDER_HEIGHT (f)) | 728 (FRAME_TOP_BORDER_START (f) + FRAME_BORDER_HEIGHT (f)) |
649 | 729 |
650 #define FRAME_BOTTOM_BORDER_START(f) \ | 730 #define FRAME_BOTTOM_BORDER_START(f) \ |
651 (FRAME_PIXHEIGHT (f) - FRAME_BORDER_HEIGHT (f) - \ | 731 (FRAME_PIXHEIGHT (f) - FRAME_BORDER_HEIGHT (f) - \ |
652 FRAME_REAL_BOTTOM_TOOLBAR_HEIGHT (f) - \ | 732 FRAME_REAL_BOTTOM_TOOLBAR_HEIGHT (f) - \ |
653 2 * FRAME_REAL_BOTTOM_TOOLBAR_BORDER_WIDTH (f)) | 733 2 * FRAME_REAL_BOTTOM_TOOLBAR_BORDER_WIDTH (f)) |
654 #define FRAME_BOTTOM_BORDER_END(f) \ | 734 #define FRAME_BOTTOM_BORDER_END(f) \ |
655 (FRAME_PIXHEIGHT (f) - FRAME_REAL_BOTTOM_TOOLBAR_HEIGHT (f) - \ | 735 (FRAME_PIXHEIGHT (f) - FRAME_REAL_BOTTOM_TOOLBAR_HEIGHT (f) - \ |
656 2 * FRAME_REAL_BOTTOM_TOOLBAR_BORDER_WIDTH (f)) | 736 2 * FRAME_REAL_BOTTOM_TOOLBAR_BORDER_WIDTH (f)) |
657 | 737 |
658 #define FRAME_LEFT_BORDER_START(f) \ | 738 #define FRAME_LEFT_BORDER_START(f) \ |
659 (FRAME_REAL_LEFT_TOOLBAR_WIDTH (f) + \ | 739 (FRAME_REAL_LEFT_TOOLBAR_WIDTH (f) + \ |
660 2 * FRAME_REAL_LEFT_TOOLBAR_BORDER_WIDTH (f)) | 740 2 * FRAME_REAL_LEFT_TOOLBAR_BORDER_WIDTH (f)) |
661 #define FRAME_LEFT_BORDER_END(f) \ | 741 #define FRAME_LEFT_BORDER_END(f) \ |
662 (FRAME_LEFT_BORDER_START (f) + FRAME_BORDER_WIDTH (f)) | 742 (FRAME_LEFT_BORDER_START (f) + FRAME_BORDER_WIDTH (f)) |
663 | 743 |
664 #define FRAME_RIGHT_BORDER_START(f) \ | 744 #define FRAME_RIGHT_BORDER_START(f) \ |
665 (FRAME_PIXWIDTH (f) - FRAME_BORDER_WIDTH (f) - \ | 745 (FRAME_PIXWIDTH (f) - FRAME_BORDER_WIDTH (f) - \ |
666 FRAME_REAL_RIGHT_TOOLBAR_WIDTH(f) - \ | 746 FRAME_REAL_RIGHT_TOOLBAR_WIDTH(f) - \ |
667 2 * FRAME_REAL_RIGHT_TOOLBAR_BORDER_WIDTH (f)) | 747 2 * FRAME_REAL_RIGHT_TOOLBAR_BORDER_WIDTH (f)) |
668 #define FRAME_RIGHT_BORDER_END(f) \ | 748 #define FRAME_RIGHT_BORDER_END(f) \ |
669 (FRAME_PIXWIDTH (f) - FRAME_REAL_RIGHT_TOOLBAR_WIDTH (f) - \ | 749 (FRAME_PIXWIDTH (f) - FRAME_REAL_RIGHT_TOOLBAR_WIDTH (f) - \ |
670 2 * FRAME_REAL_RIGHT_TOOLBAR_BORDER_WIDTH(f)) | 750 2 * FRAME_REAL_RIGHT_TOOLBAR_BORDER_WIDTH(f)) |
671 | 751 |
672 /* Equivalent in FSF Emacs: | 752 /* Equivalent in FSF Emacs: |
673 | 753 |
674 FOR_EACH_FRAME (LIST_VAR, FRAME_VAR) followed by a statement is a | 754 FOR_EACH_FRAME (LIST_VAR, FRAME_VAR) followed by a statement is a |
688 void update_frame_title (struct frame *f); | 768 void update_frame_title (struct frame *f); |
689 Lisp_Object next_frame (Lisp_Object f, Lisp_Object frametype, | 769 Lisp_Object next_frame (Lisp_Object f, Lisp_Object frametype, |
690 Lisp_Object console); | 770 Lisp_Object console); |
691 Lisp_Object prev_frame (Lisp_Object f, Lisp_Object frametype, | 771 Lisp_Object prev_frame (Lisp_Object f, Lisp_Object frametype, |
692 Lisp_Object console); | 772 Lisp_Object console); |
693 void store_in_alist (Lisp_Object *alistptr, | |
694 CONST char *propname, | |
695 Lisp_Object val); | |
696 void pixel_to_char_size (struct frame *f, int pixel_width, int pixel_height, | 773 void pixel_to_char_size (struct frame *f, int pixel_width, int pixel_height, |
697 int *char_width, int *char_height); | 774 int *char_width, int *char_height); |
698 void char_to_pixel_size (struct frame *f, int char_width, int char_height, | 775 void char_to_pixel_size (struct frame *f, int char_width, int char_height, |
699 int *pixel_width, int *pixel_height); | 776 int *pixel_width, int *pixel_height); |
700 void round_size_to_char (struct frame *f, int in_width, int in_height, | 777 void round_size_to_char (struct frame *f, int in_width, int in_height, |
735 void set_frame_selected_window (struct frame *f, Lisp_Object window); | 812 void set_frame_selected_window (struct frame *f, Lisp_Object window); |
736 int is_surrogate_for_selected_frame (struct frame *f); | 813 int is_surrogate_for_selected_frame (struct frame *f); |
737 void update_frame_icon (struct frame *f); | 814 void update_frame_icon (struct frame *f); |
738 void invalidate_vertical_divider_cache_in_frame (struct frame *f); | 815 void invalidate_vertical_divider_cache_in_frame (struct frame *f); |
739 | 816 |
740 #endif /* _XEMACS_FRAME_H_ */ | 817 void init_frame (void); |
818 | |
819 #endif /* INCLUDED_frame_h_ */ |