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);
|
|
60 /* Spacing between outer egde of divider border and window edge */
|
|
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);
|
|
105 /* Gutter size for each of the four positions. */
|
|
106 WINDOW_SLOT_ARRAY (gutter_size, 4, EQUAL_WRAPPED);
|
|
107 /* Real (pre-calculated) gutter size for each of the four positions.
|
|
108 This is not a specifier, it is calculated by the specifier change
|
|
109 functions. */
|
|
110 WINDOW_SLOT_ARRAY (real_gutter_size, 4, EQUAL_WRAPPED);
|
|
111 /* Gutter border width for each of the four positions. */
|
|
112 WINDOW_SLOT_ARRAY (gutter_border_width, 4, EQUAL_WRAPPED);
|
|
113 /* Gutter visibility status for each of the four positions. */
|
|
114 WINDOW_SLOT_ARRAY (gutter_visible_p, 4, EQUAL_WRAPPED);
|
|
115 /* The following five don't really need to be cached except
|
|
116 that we need to know when they've changed. */
|
|
117 WINDOW_SLOT (default_gutter, EQUAL_WRAPPED);
|
|
118 WINDOW_SLOT (default_gutter_width, EQ);
|
|
119 WINDOW_SLOT (default_gutter_height, EQ);
|
|
120 WINDOW_SLOT (default_gutter_visible_p, EQ);
|
|
121 WINDOW_SLOT (default_gutter_border_width, EQ);
|
|
122 /* margins */
|
|
123 WINDOW_SLOT (left_margin_width, EQ);
|
|
124 WINDOW_SLOT (right_margin_width, EQ);
|
|
125 WINDOW_SLOT (minimum_line_ascent, EQ);
|
|
126 WINDOW_SLOT (minimum_line_descent, EQ);
|
|
127 WINDOW_SLOT (use_left_overflow, EQ);
|
|
128 WINDOW_SLOT (use_right_overflow, EQ);
|
|
129 #ifdef HAVE_MENUBARS
|
|
130 /* Visibility of menubar. */
|
|
131 WINDOW_SLOT (menubar_visible_p, EQ);
|
|
132 #endif /* HAVE_MENUBARS */
|
|
133 WINDOW_SLOT (text_cursor_visible_p, EQ);
|
|
134
|
|
135 /* Hara-kiri */
|
|
136 #undef EQUAL_WRAPPED
|
|
137 #undef WINDOW_SLOT_DECLARATION
|
|
138 #undef WINDOW_SLOT
|
|
139 #undef WINDOW_SLOT_ARRAY
|