comparison src/frame.h @ 442:abe6d1db359e r21-2-36

Import from CVS: tag r21-2-36
author cvs
date Mon, 13 Aug 2007 11:35:02 +0200
parents 8de8e3f6228a
children 576fb035e263
comparison
equal deleted inserted replaced
441:72a7cfa4a488 442:abe6d1db359e
76 #ifdef HAVE_TTY 76 #ifdef HAVE_TTY
77 /* The count of frame number. This applies to TTY frames only. */ 77 /* The count of frame number. This applies to TTY frames only. */
78 int order_count; 78 int order_count;
79 #endif 79 #endif
80 80
81 /* Current page number for a printer frame. */
82 int page_number;
83
81 /* 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
82 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
83 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
84 dependencies. */ 87 dependencies. */
85 int internal_border_width; 88 int internal_border_width;
88 the frame's window structure but contains only pointers to the 91 the frame's window structure but contains only pointers to the
89 display structures. */ 92 display structures. */
90 struct window_mirror *root_mirror; 93 struct window_mirror *root_mirror;
91 94
92 int modiff; 95 int modiff;
93
94 /* subwindow cache elements for this frame */
95 subwindow_cachel_dynarr *subwindow_cachels;
96 96
97 struct expose_ignore* subwindow_exposures; 97 struct expose_ignore* subwindow_exposures;
98 struct expose_ignore* subwindow_exposures_tail; 98 struct expose_ignore* subwindow_exposures_tail;
99 99
100 #ifdef HAVE_SCROLLBARS 100 #ifdef HAVE_SCROLLBARS
111 whether to re-layout windows by a call to change_frame_size early 111 whether to re-layout windows by a call to change_frame_size early
112 in redisplay_frame. */ 112 in redisplay_frame. */
113 unsigned int current_toolbar_size[4]; 113 unsigned int current_toolbar_size[4];
114 #endif 114 #endif
115 115
116 /* Dynamic array of display lines for gutters */ 116 /* Size of gutters as seen by redisplay. This is used to determine
117 display_line_dynarr *current_display_lines; 117 whether to re-layout windows by a call to change_frame_size early
118 display_line_dynarr *desired_display_lines; 118 in redisplay_frame. */
119 unsigned int current_gutter_bounds[4];
120
121 /* Dynamic arrays of display lines for gutters */
122 display_line_dynarr *current_display_lines[4];
123 display_line_dynarr *desired_display_lines[4];
119 124
120 /* A structure of auxiliary data specific to the device type. 125 /* A structure of auxiliary data specific to the device type.
121 struct x_frame is used for X window frames; defined in console-x.h */ 126 struct x_frame is used for X window frames; defined in console-x.h */
122 void *frame_data; 127 void *frame_data;
123 128
134 <0 : user can access it,needs no repainting : hidden :mapped and invisible 139 <0 : user can access it,needs no repainting : hidden :mapped and invisible
135 where f-v-p is the return value of frame-visible-p */ 140 where f-v-p is the return value of frame-visible-p */
136 int visible; 141 int visible;
137 142
138 /* one-bit flags: */ 143 /* one-bit flags: */
144
145 /* Is focusing onto this frame disabled? (Modal dialog boxes) */
146 unsigned int disabled :1;
139 147
140 /* Are we finished initializing? */ 148 /* Are we finished initializing? */
141 unsigned int init_finished :1; 149 unsigned int init_finished :1;
142 150
143 /* Is frame marked for deletion? This is used in XSetErrorHandler(). */ 151 /* Is frame marked for deletion? This is used in XSetErrorHandler(). */
211 EXFUN (Fmake_frame_visible, 1); 219 EXFUN (Fmake_frame_visible, 1);
212 EXFUN (Fraise_frame, 1); 220 EXFUN (Fraise_frame, 1);
213 EXFUN (Fselect_frame, 1); 221 EXFUN (Fselect_frame, 1);
214 EXFUN (Fset_frame_pointer, 2); 222 EXFUN (Fset_frame_pointer, 2);
215 EXFUN (Fset_frame_position, 3); 223 EXFUN (Fset_frame_position, 3);
224 EXFUN (Fset_frame_properties, 2);
216 EXFUN (Fset_frame_size, 4); 225 EXFUN (Fset_frame_size, 4);
217 226
218 extern Lisp_Object Qbackground_toolbar_color, Qbell_volume, Qborder_color; 227 extern Lisp_Object Qbackground_toolbar_color, Qbell_volume, Qborder_color;
219 extern Lisp_Object Qborder_width, Qbottom_toolbar_shadow_color; 228 extern Lisp_Object Qborder_width, Qbottom_toolbar_shadow_color;
220 extern Lisp_Object Qbottom_toolbar_shadow_pixmap, Qdelete_frame; 229 extern Lisp_Object Qbottom_toolbar_shadow_pixmap, Qdelete_frame;
234 243
235 244
236 DECLARE_LRECORD (frame, struct frame); 245 DECLARE_LRECORD (frame, struct frame);
237 #define XFRAME(x) XRECORD (x, frame, struct frame) 246 #define XFRAME(x) XRECORD (x, frame, struct frame)
238 #define XSETFRAME(x, p) XSETRECORD (x, p, frame) 247 #define XSETFRAME(x, p) XSETRECORD (x, p, frame)
248 #define wrap_frame(p) wrap_object (p)
239 #define FRAMEP(x) RECORDP (x, frame) 249 #define FRAMEP(x) RECORDP (x, frame)
240 #define CHECK_FRAME(x) CHECK_RECORD (x, frame) 250 #define CHECK_FRAME(x) CHECK_RECORD (x, frame)
241 #define CONCHECK_FRAME(x) CONCHECK_RECORD (x, frame) 251 #define CONCHECK_FRAME(x) CONCHECK_RECORD (x, frame)
242 252
243 #define CHECK_LIVE_FRAME(x) do { \ 253 #define CHECK_LIVE_FRAME(x) do { \
252 } while (0) 262 } while (0)
253 263
254 #define FRAME_TYPE_P(f, type) EQ (FRAME_TYPE (f), Q##type) 264 #define FRAME_TYPE_P(f, type) EQ (FRAME_TYPE (f), Q##type)
255 265
256 #ifdef ERROR_CHECK_TYPECHECK 266 #ifdef ERROR_CHECK_TYPECHECK
257 INLINE struct frame * 267 INLINE_HEADER struct frame *
258 error_check_frame_type (struct frame * f, Lisp_Object sym); 268 error_check_frame_type (struct frame * f, Lisp_Object sym);
259 INLINE struct frame * 269 INLINE_HEADER struct frame *
260 error_check_frame_type (struct frame * f, Lisp_Object sym) 270 error_check_frame_type (struct frame * f, Lisp_Object sym)
261 { 271 {
262 assert (EQ (FRAME_TYPE (f), sym)); 272 assert (EQ (FRAME_TYPE (f), sym));
263 return f; 273 return f;
264 } 274 }
282 if (!FRAME_TYPE_P (XFRAME (x), type)) \ 292 if (!FRAME_TYPE_P (XFRAME (x), type)) \
283 x = wrong_type_argument \ 293 x = wrong_type_argument \
284 (type##_console_methods->predicate_symbol, x); \ 294 (type##_console_methods->predicate_symbol, x); \
285 } while (0) 295 } while (0)
286 296
297 #define FRAME_DISPLAY_P(frm) \
298 (DEVICE_DISPLAY_P (XDEVICE (FRAME_DEVICE (frm))))
299
300 #define CHECK_DISPLAY_FRAME(frm) \
301 do { \
302 CHECK_FRAME (frm); \
303 CHECK_LIVE_FRAME (frm); \
304 CHECK_DISPLAY_DEVICE (FRAME_DEVICE (XFRAME (frm))); \
305 } while (0)
306
307 #define CONCHECK_DISPLAY_FRAME(frm) \
308 do { \
309 CONCHECK_FRAME (frm); \
310 CONCHECK_LIVE_FRAME (frm); \
311 CONCHECK_DISPLAY_DEVICE (FRAME_DEVICE (XFRAME (frm))); \
312 } while (0)
313
314 #define FRAME_PRINTER_P(frm) \
315 (DEVICE_PRINTER_P (XDEVICE (FRAME_DEVICE (frm))))
316
317 #define CHECK_PRINTER_FRAME(frm) \
318 do { \
319 CHECK_FRAME (frm); \
320 CHECK_LIVE_FRAME (frm); \
321 CHECK_PRINTER_DEVICE (FRAME_DEVICE (XFRAME (frm))); \
322 } while (0)
323
324 #define CONCHECK_PRINTER_FRAME(frm) \
325 do { \
326 CONCHECK_FRAME (frm); \
327 CONCHECK_LIVE_FRAME (frm); \
328 CONCHECK_PRINTER_DEVICE (FRAME_DEVICE (XFRAME (frm))); \
329 } while (0)
330
287 /* #### These should be in the frame-*.h files but there are 331 /* #### These should be in the frame-*.h files but there are
288 too many places where the abstraction is broken. Need to 332 too many places where the abstraction is broken. Need to
289 fix. */ 333 fix. */
290 334
291 #define FRAME_X_P(frm) CONSOLE_TYPESYM_X_P (FRAME_TYPE (frm)) 335 #define FRAME_X_P(frm) CONSOLE_TYPESYM_X_P (FRAME_TYPE (frm))
330 glyphs_changed = 1; \ 374 glyphs_changed = 1; \
331 } while (0) 375 } while (0)
332 376
333 #define MARK_FRAME_SUBWINDOWS_CHANGED(f) do { \ 377 #define MARK_FRAME_SUBWINDOWS_CHANGED(f) do { \
334 struct frame *mfgc_f = (f); \ 378 struct frame *mfgc_f = (f); \
335 mfgc_f->subwindows_changed = 1; \ 379 mfgc_f->subwindows_changed = 1; \
336 mfgc_f->modiff++; \ 380 mfgc_f->modiff++; \
337 if (!NILP (mfgc_f->device)) \ 381 if (!NILP (mfgc_f->device)) \
338 { \ 382 { \
339 struct device *mfgc_d = XDEVICE (mfgc_f->device); \ 383 struct device *mfgc_d = XDEVICE (mfgc_f->device); \
340 MARK_DEVICE_SUBWINDOWS_CHANGED (mfgc_d); \ 384 MARK_DEVICE_SUBWINDOWS_CHANGED (mfgc_d); \
341 } \ 385 } \
342 else \ 386 else \
343 subwindows_changed = 1; \ 387 subwindows_changed = 1; \
344 } while (0) 388 } while (0)
345 389
346 #define MARK_FRAME_SUBWINDOWS_STATE_CHANGED(f) do { \ 390 #define MARK_FRAME_SUBWINDOWS_STATE_CHANGED(f) do { \
347 struct frame *mfgc_f = (f); \ 391 struct frame *mfgc_f = (f); \
348 mfgc_f->subwindows_state_changed = 1; \ 392 mfgc_f->subwindows_state_changed = 1; \
349 mfgc_f->modiff++; \ 393 mfgc_f->modiff++; \
350 if (!NILP (mfgc_f->device)) \ 394 if (!NILP (mfgc_f->device)) \
351 { \ 395 { \
352 struct device *mfgc_d = XDEVICE (mfgc_f->device); \ 396 struct device *mfgc_d = XDEVICE (mfgc_f->device); \
353 MARK_DEVICE_SUBWINDOWS_STATE_CHANGED (mfgc_d); \ 397 MARK_DEVICE_SUBWINDOWS_STATE_CHANGED (mfgc_d); \
367 } \ 411 } \
368 else \ 412 else \
369 toolbar_changed = 1; \ 413 toolbar_changed = 1; \
370 } while (0) 414 } while (0)
371 415
372 #define MARK_FRAME_GUTTERS_CHANGED(f) do { \ 416 #define MARK_FRAME_GUTTERS_CHANGED(f) do { \
373 struct frame *mftc_f = (f); \ 417 struct frame *mftc_f = (f); \
374 mftc_f->gutter_changed = 1; \ 418 mftc_f->gutter_changed = 1; \
375 mftc_f->modiff++; \ 419 mftc_f->modiff++; \
376 if (!NILP (mftc_f->device)) \ 420 if (!NILP (mftc_f->device)) \
377 { \ 421 { \
378 struct device *mftc_d = XDEVICE (mftc_f->device); \ 422 struct device *mftc_d = XDEVICE (mftc_f->device); \
379 MARK_DEVICE_GUTTERS_CHANGED (mftc_d); \ 423 MARK_DEVICE_GUTTERS_CHANGED (mftc_d); \
380 } \ 424 } \
381 else \ 425 else \
382 gutter_changed = 1; \ 426 gutter_changed = 1; \
383 } while (0) 427 } while (0)
384 428
459 #define FRAME_CONSOLE(f) DEVICE_CONSOLE (XDEVICE (FRAME_DEVICE (f))) 503 #define FRAME_CONSOLE(f) DEVICE_CONSOLE (XDEVICE (FRAME_DEVICE (f)))
460 #define FRAME_LIVE_P(f) (!(f)->dead) 504 #define FRAME_LIVE_P(f) (!(f)->dead)
461 505
462 #define FRAME_MINIBUF_ONLY_P(f) \ 506 #define FRAME_MINIBUF_ONLY_P(f) \
463 EQ (FRAME_ROOT_WINDOW (f), FRAME_MINIBUF_WINDOW (f)) 507 EQ (FRAME_ROOT_WINDOW (f), FRAME_MINIBUF_WINDOW (f))
464 #define FRAME_HAS_MINIBUF_P(f) ((f)->has_minibuffer) 508 #define FRAME_HAS_MINIBUF_P(f) ((f)->has_minibuffer)
465 #define FRAME_HEIGHT(f) ((f)->height) 509 #define FRAME_HEIGHT(f) ((f)->height)
466 #define FRAME_WIDTH(f) ((f)->width) 510 #define FRAME_WIDTH(f) ((f)->width)
467 #define FRAME_CHARHEIGHT(f) ((f)->char_height) 511 #define FRAME_CHARHEIGHT(f) ((f)->char_height)
468 #define FRAME_CHARWIDTH(f) ((f)->char_width) 512 #define FRAME_CHARWIDTH(f) ((f)->char_width)
469 #define FRAME_PIXHEIGHT(f) ((f)->pixheight) 513 #define FRAME_PIXHEIGHT(f) ((f)->pixheight)
470 #define FRAME_PIXWIDTH(f) ((f)->pixwidth) 514 #define FRAME_PIXWIDTH(f) ((f)->pixwidth)
515 #define FRAME_PAGENUMBER(f) ((f)->page_number + 0)
516 #define FRAME_SET_PAGENUMBER(f,x) (f)->page_number = (x);
471 #ifdef HAVE_SCROLLBARS 517 #ifdef HAVE_SCROLLBARS
472 #define FRAME_SCROLLBAR_WIDTH(f) \ 518 #define FRAME_SCROLLBAR_WIDTH(f) \
473 (NILP ((f)->vertical_scrollbar_visible_p) ? \ 519 (NILP ((f)->vertical_scrollbar_visible_p) ? \
474 0 : XINT ((f)->scrollbar_width)) 520 0 : XINT ((f)->scrollbar_width))
475 #define FRAME_SCROLLBAR_HEIGHT(f) \ 521 #define FRAME_SCROLLBAR_HEIGHT(f) \
480 #define FRAME_SCROLLBAR_HEIGHT(f) 0 526 #define FRAME_SCROLLBAR_HEIGHT(f) 0
481 #endif 527 #endif
482 528
483 #define FW_FRAME(obj) \ 529 #define FW_FRAME(obj) \
484 (WINDOWP (obj) ? WINDOW_FRAME (XWINDOW (obj)) \ 530 (WINDOWP (obj) ? WINDOW_FRAME (XWINDOW (obj)) \
485 : (FRAMEP (obj) ? obj \ 531 : (FRAMEP (obj) ? obj \
486 : Qnil)) 532 : Qnil))
487 533
488 #define FRAME_NEW_HEIGHT(f) ((f)->new_height) 534 #define FRAME_NEW_HEIGHT(f) ((f)->new_height)
489 #define FRAME_NEW_WIDTH(f) ((f)->new_width) 535 #define FRAME_NEW_WIDTH(f) ((f)->new_width)
490 #define FRAME_CURSOR_X(f) ((f)->cursor_x) 536 #define FRAME_CURSOR_X(f) ((f)->cursor_x)
491 #define FRAME_CURSOR_Y(f) ((f)->cursor_y) 537 #define FRAME_CURSOR_Y(f) ((f)->cursor_y)
500 #define FRAME_SELECTED_WINDOW(f) NON_LVALUE ((f)->selected_window) 546 #define FRAME_SELECTED_WINDOW(f) NON_LVALUE ((f)->selected_window)
501 #define FRAME_LAST_NONMINIBUF_WINDOW(f) \ 547 #define FRAME_LAST_NONMINIBUF_WINDOW(f) \
502 NON_LVALUE ((f)->last_nonminibuf_window) 548 NON_LVALUE ((f)->last_nonminibuf_window)
503 #define FRAME_SB_VCACHE(f) ((f)->sb_vcache) 549 #define FRAME_SB_VCACHE(f) ((f)->sb_vcache)
504 #define FRAME_SB_HCACHE(f) ((f)->sb_hcache) 550 #define FRAME_SB_HCACHE(f) ((f)->sb_hcache)
505 #define FRAME_SUBWINDOW_CACHE(f) ((f)->subwindow_cachels) 551 #define FRAME_SUBWINDOW_CACHE(f) ((f)->subwindow_instance_cache)
506 552
507 #if 0 /* FSFmacs */ 553 #if 0 /* FSFmacs */
508 554
509 #define FRAME_VISIBLE_P(f) ((f)->visible != 0) 555 #define FRAME_VISIBLE_P(f) ((f)->visible != 0)
510 #define FRAME_SET_VISIBLE(f,p) \ 556 #define FRAME_SET_VISIBLE(f,p) \
577 FRAME_THEORETICAL_TOOLBAR_SIZE (f, LEFT_TOOLBAR) 623 FRAME_THEORETICAL_TOOLBAR_SIZE (f, LEFT_TOOLBAR)
578 #define FRAME_THEORETICAL_RIGHT_TOOLBAR_WIDTH(f) \ 624 #define FRAME_THEORETICAL_RIGHT_TOOLBAR_WIDTH(f) \
579 FRAME_THEORETICAL_TOOLBAR_SIZE (f, RIGHT_TOOLBAR) 625 FRAME_THEORETICAL_TOOLBAR_SIZE (f, RIGHT_TOOLBAR)
580 626
581 #define FRAME_THEORETICAL_TOOLBAR_BORDER_WIDTH(f, pos) \ 627 #define FRAME_THEORETICAL_TOOLBAR_BORDER_WIDTH(f, pos) \
582 (FRAME_RAW_THEORETICAL_TOOLBAR_VISIBLE (f, pos) \ 628 (FRAME_RAW_THEORETICAL_TOOLBAR_VISIBLE (f, pos) \
583 ? FRAME_RAW_THEORETICAL_TOOLBAR_BORDER_WIDTH (f, pos) \ 629 ? FRAME_RAW_THEORETICAL_TOOLBAR_BORDER_WIDTH (f, pos) \
584 : 0) 630 : 0)
585 631
586 #define FRAME_THEORETICAL_TOP_TOOLBAR_BORDER_WIDTH(f) \ 632 #define FRAME_THEORETICAL_TOP_TOOLBAR_BORDER_WIDTH(f) \
587 FRAME_THEORETICAL_TOOLBAR_BORDER_WIDTH (f, TOP_TOOLBAR) 633 FRAME_THEORETICAL_TOOLBAR_BORDER_WIDTH (f, TOP_TOOLBAR)
636 sure that there aren't some places in the redisplay code 682 sure that there aren't some places in the redisplay code
637 that use these macros and expect the former semantics, so 683 that use these macros and expect the former semantics, so
638 if you encounter some odd toolbar behavior, you might want 684 if you encounter some odd toolbar behavior, you might want
639 to look into this. --ben */ 685 to look into this. --ben */
640 686
641 #define FRAME_REAL_TOOLBAR_VISIBLE(f, pos) \ 687 #define FRAME_REAL_TOOLBAR_VISIBLE(f, pos) \
642 ((!NILP (FRAME_REAL_TOOLBAR (f, pos)) \ 688 ((!NILP (FRAME_REAL_TOOLBAR (f, pos)) \
643 && FRAME_RAW_REAL_TOOLBAR_SIZE (f, pos) > 0) \ 689 && FRAME_RAW_REAL_TOOLBAR_SIZE (f, pos) > 0) \
644 ? FRAME_RAW_REAL_TOOLBAR_VISIBLE (f, pos) \ 690 ? FRAME_RAW_REAL_TOOLBAR_VISIBLE (f, pos) \
645 : 0) 691 : 0)
646 #define FRAME_REAL_TOOLBAR_SIZE(f, pos) \ 692 #define FRAME_REAL_TOOLBAR_SIZE(f, pos) \
647 ((!NILP (FRAME_REAL_TOOLBAR (f, pos)) \ 693 ((!NILP (FRAME_REAL_TOOLBAR (f, pos)) \
648 && FRAME_RAW_REAL_TOOLBAR_VISIBLE (f, pos)) \ 694 && FRAME_RAW_REAL_TOOLBAR_VISIBLE (f, pos)) \
649 ? FRAME_RAW_REAL_TOOLBAR_SIZE (f, pos) \ 695 ? FRAME_RAW_REAL_TOOLBAR_SIZE (f, pos) \
650 : 0) 696 : 0)
651 #define FRAME_REAL_TOOLBAR_BORDER_WIDTH(f, pos) \ 697 #define FRAME_REAL_TOOLBAR_BORDER_WIDTH(f, pos) \
652 ((!NILP (FRAME_REAL_TOOLBAR (f, pos)) \ 698 ((!NILP (FRAME_REAL_TOOLBAR (f, pos)) \
653 && FRAME_RAW_REAL_TOOLBAR_VISIBLE (f, pos)) \ 699 && FRAME_RAW_REAL_TOOLBAR_VISIBLE (f, pos)) \
654 ? FRAME_RAW_REAL_TOOLBAR_BORDER_WIDTH (f, pos) \ 700 ? FRAME_RAW_REAL_TOOLBAR_BORDER_WIDTH (f, pos) \
655 : 0) 701 : 0)
656 702
657 #define FRAME_REAL_TOP_TOOLBAR_HEIGHT(f) \ 703 #define FRAME_REAL_TOP_TOOLBAR_HEIGHT(f) \
679 #define FRAME_REAL_LEFT_TOOLBAR_VISIBLE(f) \ 725 #define FRAME_REAL_LEFT_TOOLBAR_VISIBLE(f) \
680 FRAME_REAL_TOOLBAR_VISIBLE (f, LEFT_TOOLBAR) 726 FRAME_REAL_TOOLBAR_VISIBLE (f, LEFT_TOOLBAR)
681 #define FRAME_REAL_RIGHT_TOOLBAR_VISIBLE(f) \ 727 #define FRAME_REAL_RIGHT_TOOLBAR_VISIBLE(f) \
682 FRAME_REAL_TOOLBAR_VISIBLE (f, RIGHT_TOOLBAR) 728 FRAME_REAL_TOOLBAR_VISIBLE (f, RIGHT_TOOLBAR)
683 729
684 #define FRAME_TOP_BORDER_START(f) \ 730 #define FRAME_TOP_BORDER_START(f) \
685 (FRAME_REAL_TOP_TOOLBAR_HEIGHT (f) + \ 731 (FRAME_REAL_TOP_TOOLBAR_HEIGHT (f) + \
686 2 * FRAME_REAL_TOP_TOOLBAR_BORDER_WIDTH (f)) 732 2 * FRAME_REAL_TOP_TOOLBAR_BORDER_WIDTH (f))
687 #define FRAME_TOP_BORDER_END(f) \ 733 #define FRAME_TOP_BORDER_END(f) \
688 (FRAME_TOP_BORDER_START (f) + FRAME_BORDER_HEIGHT (f)) 734 (FRAME_TOP_BORDER_START (f) + FRAME_BORDER_HEIGHT (f))
689 735
690 #define FRAME_BOTTOM_BORDER_START(f) \ 736 #define FRAME_BOTTOM_BORDER_START(f) \
691 (FRAME_PIXHEIGHT (f) - FRAME_BORDER_HEIGHT (f) - \ 737 (FRAME_PIXHEIGHT (f) - FRAME_BORDER_HEIGHT (f) - \
692 FRAME_REAL_BOTTOM_TOOLBAR_HEIGHT (f) - \ 738 FRAME_REAL_BOTTOM_TOOLBAR_HEIGHT (f) - \
693 2 * FRAME_REAL_BOTTOM_TOOLBAR_BORDER_WIDTH (f)) 739 2 * FRAME_REAL_BOTTOM_TOOLBAR_BORDER_WIDTH (f))
694 #define FRAME_BOTTOM_BORDER_END(f) \ 740 #define FRAME_BOTTOM_BORDER_END(f) \
695 (FRAME_PIXHEIGHT (f) - FRAME_REAL_BOTTOM_TOOLBAR_HEIGHT (f) - \ 741 (FRAME_PIXHEIGHT (f) - FRAME_REAL_BOTTOM_TOOLBAR_HEIGHT (f) - \
696 2 * FRAME_REAL_BOTTOM_TOOLBAR_BORDER_WIDTH (f)) 742 2 * FRAME_REAL_BOTTOM_TOOLBAR_BORDER_WIDTH (f))
697 743
698 #define FRAME_LEFT_BORDER_START(f) \ 744 #define FRAME_LEFT_BORDER_START(f) \
699 (FRAME_REAL_LEFT_TOOLBAR_WIDTH (f) + \ 745 (FRAME_REAL_LEFT_TOOLBAR_WIDTH (f) + \
700 2 * FRAME_REAL_LEFT_TOOLBAR_BORDER_WIDTH (f)) 746 2 * FRAME_REAL_LEFT_TOOLBAR_BORDER_WIDTH (f))
701 #define FRAME_LEFT_BORDER_END(f) \ 747 #define FRAME_LEFT_BORDER_END(f) \
702 (FRAME_LEFT_BORDER_START (f) + FRAME_BORDER_WIDTH (f)) 748 (FRAME_LEFT_BORDER_START (f) + FRAME_BORDER_WIDTH (f))
703 749
704 #define FRAME_RIGHT_BORDER_START(f) \ 750 #define FRAME_RIGHT_BORDER_START(f) \
705 (FRAME_PIXWIDTH (f) - FRAME_BORDER_WIDTH (f) - \ 751 (FRAME_PIXWIDTH (f) - FRAME_BORDER_WIDTH (f) - \
706 FRAME_REAL_RIGHT_TOOLBAR_WIDTH(f) - \ 752 FRAME_REAL_RIGHT_TOOLBAR_WIDTH(f) - \
707 2 * FRAME_REAL_RIGHT_TOOLBAR_BORDER_WIDTH (f)) 753 2 * FRAME_REAL_RIGHT_TOOLBAR_BORDER_WIDTH (f))
708 #define FRAME_RIGHT_BORDER_END(f) \ 754 #define FRAME_RIGHT_BORDER_END(f) \
709 (FRAME_PIXWIDTH (f) - FRAME_REAL_RIGHT_TOOLBAR_WIDTH (f) - \ 755 (FRAME_PIXWIDTH (f) - FRAME_REAL_RIGHT_TOOLBAR_WIDTH (f) - \
710 2 * FRAME_REAL_RIGHT_TOOLBAR_BORDER_WIDTH(f)) 756 2 * FRAME_REAL_RIGHT_TOOLBAR_BORDER_WIDTH(f))
711 757
712 /* Equivalent in FSF Emacs: 758 /* Equivalent in FSF Emacs:
713 759
714 FOR_EACH_FRAME (LIST_VAR, FRAME_VAR) followed by a statement is a 760 FOR_EACH_FRAME (LIST_VAR, FRAME_VAR) followed by a statement is a
726 DEVICE_FRAME_LOOP (frmcons, XDEVICE (XCAR (devcons))) 772 DEVICE_FRAME_LOOP (frmcons, XDEVICE (XCAR (devcons)))
727 773
728 void update_frame_title (struct frame *f); 774 void update_frame_title (struct frame *f);
729 Lisp_Object next_frame (Lisp_Object f, Lisp_Object frametype, 775 Lisp_Object next_frame (Lisp_Object f, Lisp_Object frametype,
730 Lisp_Object console); 776 Lisp_Object console);
731 Lisp_Object prev_frame (Lisp_Object f, Lisp_Object frametype, 777 Lisp_Object previous_frame (Lisp_Object f, Lisp_Object frametype,
732 Lisp_Object console); 778 Lisp_Object console);
733 void store_in_alist (Lisp_Object *alistptr,
734 CONST char *propname,
735 Lisp_Object val);
736 void pixel_to_char_size (struct frame *f, int pixel_width, int pixel_height, 779 void pixel_to_char_size (struct frame *f, int pixel_width, int pixel_height,
737 int *char_width, int *char_height); 780 int *char_width, int *char_height);
738 void char_to_pixel_size (struct frame *f, int char_width, int char_height, 781 void char_to_pixel_size (struct frame *f, int char_width, int char_height,
739 int *pixel_width, int *pixel_height); 782 int *pixel_width, int *pixel_height);
740 void round_size_to_char (struct frame *f, int in_width, int in_height, 783 void round_size_to_char (struct frame *f, int in_width, int in_height,
766 int called_from_delete_device, 809 int called_from_delete_device,
767 int from_io_error); 810 int from_io_error);
768 void io_error_delete_frame (Lisp_Object frame); 811 void io_error_delete_frame (Lisp_Object frame);
769 Lisp_Object find_some_frame (int (*predicate) (Lisp_Object, void *), 812 Lisp_Object find_some_frame (int (*predicate) (Lisp_Object, void *),
770 void *closure); 813 void *closure);
771 int device_matches_console_spec (Lisp_Object frame, Lisp_Object device, 814 int device_matches_console_spec (Lisp_Object device, Lisp_Object console);
772 Lisp_Object console);
773 Lisp_Object frame_first_window (struct frame *f); 815 Lisp_Object frame_first_window (struct frame *f);
774 int show_gc_cursor (struct frame *f, Lisp_Object cursor); 816 int show_gc_cursor (struct frame *f, Lisp_Object cursor);
775 void set_frame_selected_window (struct frame *f, Lisp_Object window); 817 void set_frame_selected_window (struct frame *f, Lisp_Object window);
776 int is_surrogate_for_selected_frame (struct frame *f); 818 int is_surrogate_for_selected_frame (struct frame *f);
777 void update_frame_icon (struct frame *f); 819 void update_frame_icon (struct frame *f);