428
+ − 1 /* Definitions of marked slots in windows and window configs
+ − 2 Copyright (C) 1985, 1986, 1992, 1993, 1994, 1995 Free Software Foundation, Inc.
+ − 3 Copyright (C) 1994, 1995 Board of Trustees, University of Illinois.
+ − 4 Copyright (C) 1995, 1996 Ben Wing.
+ − 5 Copyright (C) 1996 Chuck Thompson.
+ − 6
+ − 7 This file is part of XEmacs.
+ − 8
+ − 9 XEmacs is free software; you can redistribute it and/or modify it
+ − 10 under the terms of the GNU General Public License as published by the
+ − 11 Free Software Foundation; either version 2, or (at your option) any
+ − 12 later version.
+ − 13
+ − 14 XEmacs is distributed in the hope that it will be useful, but WITHOUT
+ − 15 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ − 16 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ − 17 for more details.
+ − 18
+ − 19 You should have received a copy of the GNU General Public License
+ − 20 along with XEmacs; see the file COPYING. If not, write to
+ − 21 the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ − 22 Boston, MA 02111-1307, USA. */
+ − 23
+ − 24 /* Split out of window.h and window.c
+ − 25 by Kirill Katsnelson <kkm@kis.ru>, May 1998 */
+ − 26
+ − 27 #ifdef WINDOW_SLOT_DECLARATION
+ − 28 #define WINDOW_SLOT_ARRAY(slot, size, compare) WINDOW_SLOT (slot[size], compare)
+ − 29 #else
+ − 30 #define WINDOW_SLOT_ARRAY(slot, size, compare) do { \
+ − 31 int wsaidx; \
+ − 32 for (wsaidx = 0; wsaidx < size; wsaidx++) \
+ − 33 { \
+ − 34 WINDOW_SLOT (slot[wsaidx], compare); \
+ − 35 } \
+ − 36 } while (0);
+ − 37 #endif
+ − 38
+ − 39 #define EQUAL_WRAPPED(x,y) internal_equal ((x), (y), 0)
+ − 40
+ − 41 /*** Non-specifier vars of window and window config ***/
+ − 42
+ − 43 /* Non-nil means window is marked as dedicated. */
+ − 44 WINDOW_SLOT (dedicated, EQ);
+ − 45
+ − 46 /*** specifier values cached in the struct window ***/
+ − 47
+ − 48 /* Display-table to use for displaying chars in this window. */
+ − 49 WINDOW_SLOT (display_table, EQUAL_WRAPPED);
+ − 50 /* Thickness of modeline shadow, in pixels. If negative, draw
+ − 51 as recessed. */
+ − 52 WINDOW_SLOT (modeline_shadow_thickness, EQ);
+ − 53 /* Non-nil means to display a modeline for the buffer. */
+ − 54 WINDOW_SLOT (has_modeline_p, EQ);
+ − 55 /* Thickness of vertical divider shadow, in pixels. If negative, draw as
+ − 56 recessed. */
+ − 57 WINDOW_SLOT (vertical_divider_shadow_thickness, EQ);
+ − 58 /* Divider surface width (not counting 3-d borders) */
+ − 59 WINDOW_SLOT (vertical_divider_line_width, EQ);
442
+ − 60 /* Spacing between outer edge of divider border and window edge */
428
+ − 61 WINDOW_SLOT (vertical_divider_spacing, EQ);
+ − 62 /* Whether vertical dividers are always displayed */
+ − 63 WINDOW_SLOT (vertical_divider_always_visible_p, EQ);
+ − 64
+ − 65 #ifdef HAVE_SCROLLBARS
+ − 66 /* Width of vertical scrollbars. */
+ − 67 WINDOW_SLOT (scrollbar_width, EQ);
+ − 68 /* Height of horizontal scrollbars. */
+ − 69 WINDOW_SLOT (scrollbar_height, EQ);
+ − 70 /* Whether the scrollbars are visible */
+ − 71 WINDOW_SLOT (horizontal_scrollbar_visible_p, EQ);
+ − 72 WINDOW_SLOT (vertical_scrollbar_visible_p, EQ);
+ − 73 /* Scrollbar positions */
+ − 74 WINDOW_SLOT (scrollbar_on_left_p, EQ);
+ − 75 WINDOW_SLOT (scrollbar_on_top_p, EQ);
+ − 76 /* Pointer to use for vertical and horizontal scrollbars. */
+ − 77 WINDOW_SLOT (scrollbar_pointer, EQ);
+ − 78 #endif /* HAVE_SCROLLBARS */
+ − 79 #ifdef HAVE_TOOLBARS
+ − 80 /* Toolbar specification for each of the four positions.
+ − 81 This is not a size hog because the value here is not copied,
+ − 82 and will be shared with the specs in the specifier. */
+ − 83 WINDOW_SLOT_ARRAY (toolbar, 4, EQUAL_WRAPPED);
+ − 84 /* Toolbar size for each of the four positions. */
+ − 85 WINDOW_SLOT_ARRAY (toolbar_size, 4, EQUAL_WRAPPED);
+ − 86 /* Toolbar border width for each of the four positions. */
+ − 87 WINDOW_SLOT_ARRAY (toolbar_border_width, 4, EQUAL_WRAPPED);
+ − 88 /* Toolbar visibility status for each of the four positions. */
+ − 89 WINDOW_SLOT_ARRAY (toolbar_visible_p, 4, EQUAL_WRAPPED);
+ − 90 /* Caption status of toolbar. */
+ − 91 WINDOW_SLOT (toolbar_buttons_captioned_p, EQ);
+ − 92 /* The following five don't really need to be cached except
+ − 93 that we need to know when they've changed. */
+ − 94 WINDOW_SLOT (default_toolbar, EQUAL_WRAPPED);
+ − 95 WINDOW_SLOT (default_toolbar_width, EQ);
+ − 96 WINDOW_SLOT (default_toolbar_height, EQ);
+ − 97 WINDOW_SLOT (default_toolbar_visible_p, EQ);
+ − 98 WINDOW_SLOT (default_toolbar_border_width, EQ);
+ − 99 #endif /* HAVE_TOOLBARS */
+ − 100
+ − 101 /* Gutter specification for each of the four positions.
+ − 102 This is not a size hog because the value here is not copied,
+ − 103 and will be shared with the specs in the specifier. */
+ − 104 WINDOW_SLOT_ARRAY (gutter, 4, EQUAL_WRAPPED);
442
+ − 105 /* Real (pre-calculated) gutter specification for each of the four positions.
+ − 106 This is not a specifier, it is calculated by the specifier change
+ − 107 functions. */
+ − 108 WINDOW_SLOT_ARRAY (real_gutter, 4, EQUAL_WRAPPED);
428
+ − 109 /* Gutter size for each of the four positions. */
+ − 110 WINDOW_SLOT_ARRAY (gutter_size, 4, EQUAL_WRAPPED);
+ − 111 /* Real (pre-calculated) gutter size for each of the four positions.
+ − 112 This is not a specifier, it is calculated by the specifier change
+ − 113 functions. */
+ − 114 WINDOW_SLOT_ARRAY (real_gutter_size, 4, EQUAL_WRAPPED);
+ − 115 /* Gutter border width for each of the four positions. */
+ − 116 WINDOW_SLOT_ARRAY (gutter_border_width, 4, EQUAL_WRAPPED);
+ − 117 /* Gutter visibility status for each of the four positions. */
+ − 118 WINDOW_SLOT_ARRAY (gutter_visible_p, 4, EQUAL_WRAPPED);
+ − 119 /* The following five don't really need to be cached except
+ − 120 that we need to know when they've changed. */
+ − 121 WINDOW_SLOT (default_gutter, EQUAL_WRAPPED);
+ − 122 WINDOW_SLOT (default_gutter_width, EQ);
+ − 123 WINDOW_SLOT (default_gutter_height, EQ);
+ − 124 WINDOW_SLOT (default_gutter_visible_p, EQ);
+ − 125 WINDOW_SLOT (default_gutter_border_width, EQ);
+ − 126 /* margins */
+ − 127 WINDOW_SLOT (left_margin_width, EQ);
+ − 128 WINDOW_SLOT (right_margin_width, EQ);
+ − 129 WINDOW_SLOT (minimum_line_ascent, EQ);
+ − 130 WINDOW_SLOT (minimum_line_descent, EQ);
+ − 131 WINDOW_SLOT (use_left_overflow, EQ);
+ − 132 WINDOW_SLOT (use_right_overflow, EQ);
+ − 133 #ifdef HAVE_MENUBARS
+ − 134 /* Visibility of menubar. */
+ − 135 WINDOW_SLOT (menubar_visible_p, EQ);
+ − 136 #endif /* HAVE_MENUBARS */
+ − 137 WINDOW_SLOT (text_cursor_visible_p, EQ);
+ − 138
+ − 139 /* Hara-kiri */
+ − 140 #undef EQUAL_WRAPPED
+ − 141 #undef WINDOW_SLOT_DECLARATION
+ − 142 #undef WINDOW_SLOT
+ − 143 #undef WINDOW_SLOT_ARRAY