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_ */