Mercurial > emacs
comparison src/frame.h @ 10208:9e8f603bcff4
(struct frame): New field buffer_predicate.
Move all the Lisp_Object fields to the top.
author | Richard M. Stallman <rms@gnu.org> |
---|---|
date | Wed, 21 Dec 1994 22:27:25 +0000 |
parents | 8b5ae8d2eefc |
children | e4a6f55757a9 |
comparison
equal
deleted
inserted
replaced
10207:e6618f52efe9 | 10208:9e8f603bcff4 |
---|---|
41 | 41 |
42 struct frame | 42 struct frame |
43 { | 43 { |
44 EMACS_INT size; | 44 EMACS_INT size; |
45 struct Lisp_Vector *next; | 45 struct Lisp_Vector *next; |
46 | |
47 /* All Lisp_Object components must come first. | |
48 Only EMACS_INT values can be intermixed with them. | |
49 That ensures they are all aligned normally. */ | |
50 | |
51 /* Name of this frame: a Lisp string. See also `explicit_name'. */ | |
52 Lisp_Object name; | |
53 | |
54 /* The frame which should receive keystrokes that occur in this | |
55 frame, or nil if they should go to the frame itself. This is | |
56 usually nil, but if the frame is minibufferless, we can use this | |
57 to redirect keystrokes to a surrogate minibuffer frame when | |
58 needed. | |
59 | |
60 Note that a value of nil is different than having the field point | |
61 to the frame itself. Whenever the Fselect_frame function is used | |
62 to shift from one frame to the other, any redirections to the | |
63 original frame are shifted to the newly selected frame; if | |
64 focus_frame is nil, Fselect_frame will leave it alone. */ | |
65 Lisp_Object focus_frame; | |
66 | |
67 /* This frame's root window. Every frame has one. | |
68 If the frame has only a minibuffer window, this is it. | |
69 Otherwise, if the frame has a minibuffer window, this is its sibling. */ | |
70 Lisp_Object root_window; | |
71 | |
72 /* This frame's selected window. | |
73 Each frame has its own window hierarchy | |
74 and one of the windows in it is selected within the frame. | |
75 The selected window of the selected frame is Emacs's selected window. */ | |
76 Lisp_Object selected_window; | |
77 | |
78 /* This frame's minibuffer window. | |
79 Most frames have their own minibuffer windows, | |
80 but only the selected frame's minibuffer window | |
81 can actually appear to exist. */ | |
82 Lisp_Object minibuffer_window; | |
83 | |
84 /* Parameter alist of this frame. | |
85 These are the parameters specified when creating the frame | |
86 or modified with modify-frame-parameters. */ | |
87 Lisp_Object param_alist; | |
88 | |
89 /* List of scroll bars on this frame. | |
90 Actually, we don't specify exactly what is stored here at all; the | |
91 scroll bar implementation code can use it to store anything it likes. | |
92 This field is marked by the garbage collector. It is here | |
93 instead of in the `display' structure so that the garbage | |
94 collector doesn't need to look inside the window-system-dependent | |
95 structure. */ | |
96 Lisp_Object scroll_bars; | |
97 Lisp_Object condemned_scroll_bars; | |
98 | |
99 /* List of elements to display in the menu bar. | |
100 The elements have the form (KEY STRING . nil) to start; | |
101 when they are displayed, the hpos of the left edge goes in the cddr. */ | |
102 Lisp_Object menu_bar_items; | |
103 | |
104 /* Alist of elements (FACE-NAME . FACE-VECTOR-DATA). */ | |
105 Lisp_Object face_alist; | |
106 | |
107 /* A vector that records the entire structure of this frame's menu bar. | |
108 For the format of the data, see extensive comments in xmenu.c. | |
109 Only the X toolkit version uses this. */ | |
110 Lisp_Object menu_bar_vector; | |
111 /* Number of elements in the vector that have meaningful data. */ | |
112 EMACS_INT menu_bar_items_used; | |
113 | |
114 /* Predicate for selecting buffers for other-buffer. */ | |
115 Lisp_Object buffer_predicate; | |
116 | |
117 /* Beyond here, there should be no more Lisp_Object components. */ | |
118 | |
46 | 119 |
47 /* glyphs as they appear on the frame */ | 120 /* glyphs as they appear on the frame */ |
48 struct frame_glyphs *current_glyphs; | 121 struct frame_glyphs *current_glyphs; |
49 | 122 |
50 /* glyphs we'd like to appear on the frame */ | 123 /* glyphs we'd like to appear on the frame */ |
82 EMACS_INT width; | 155 EMACS_INT width; |
83 | 156 |
84 /* New height and width for pending size change. 0 if no change pending. */ | 157 /* New height and width for pending size change. 0 if no change pending. */ |
85 int new_height, new_width; | 158 int new_height, new_width; |
86 | 159 |
87 /* Name of this frame: a Lisp string. See also `explicit_name'. */ | |
88 Lisp_Object name; | |
89 | |
90 /* The frame which should receive keystrokes that occur in this | |
91 frame, or nil if they should go to the frame itself. This is | |
92 usually nil, but if the frame is minibufferless, we can use this | |
93 to redirect keystrokes to a surrogate minibuffer frame when | |
94 needed. | |
95 | |
96 Note that a value of nil is different than having the field point | |
97 to the frame itself. Whenever the Fselect_frame function is used | |
98 to shift from one frame to the other, any redirections to the | |
99 original frame are shifted to the newly selected frame; if | |
100 focus_frame is nil, Fselect_frame will leave it alone. */ | |
101 Lisp_Object focus_frame; | |
102 | |
103 /* This frame's root window. Every frame has one. | |
104 If the frame has only a minibuffer window, this is it. | |
105 Otherwise, if the frame has a minibuffer window, this is its sibling. */ | |
106 Lisp_Object root_window; | |
107 | |
108 /* This frame's selected window. | |
109 Each frame has its own window hierarchy | |
110 and one of the windows in it is selected within the frame. | |
111 The selected window of the selected frame is Emacs's selected window. */ | |
112 Lisp_Object selected_window; | |
113 | |
114 /* This frame's minibuffer window. | |
115 Most frames have their own minibuffer windows, | |
116 but only the selected frame's minibuffer window | |
117 can actually appear to exist. */ | |
118 Lisp_Object minibuffer_window; | |
119 | |
120 /* Parameter alist of this frame. | |
121 These are the parameters specified when creating the frame | |
122 or modified with modify-frame-parameters. */ | |
123 Lisp_Object param_alist; | |
124 | |
125 /* List of scroll bars on this frame. | |
126 Actually, we don't specify exactly what is stored here at all; the | |
127 scroll bar implementation code can use it to store anything it likes. | |
128 This field is marked by the garbage collector. It is here | |
129 instead of in the `display' structure so that the garbage | |
130 collector doesn't need to look inside the window-system-dependent | |
131 structure. */ | |
132 Lisp_Object scroll_bars; | |
133 Lisp_Object condemned_scroll_bars; | |
134 | |
135 /* List of elements to display in the menu bar. | |
136 The elements have the form (KEY STRING . nil) to start; | |
137 when they are displayed, the hpos of the left edge goes in the cddr. */ | |
138 Lisp_Object menu_bar_items; | |
139 | |
140 /* Alist of elements (FACE-NAME . FACE-VECTOR-DATA). */ | |
141 Lisp_Object face_alist; | |
142 | |
143 /* The output method says how the contents of this frame | 160 /* The output method says how the contents of this frame |
144 are displayed. It could be using termcap, or using an X window. */ | 161 are displayed. It could be using termcap, or using an X window. */ |
145 enum output_method output_method; | 162 enum output_method output_method; |
146 | 163 |
147 /* A structure of auxiliary data used for displaying the contents. | 164 /* A structure of auxiliary data used for displaying the contents. |
231 char *message_buf; | 248 char *message_buf; |
232 | 249 |
233 /* Nonnegative if current redisplay should not do scroll computation | 250 /* Nonnegative if current redisplay should not do scroll computation |
234 for lines beyond a certain vpos. This is the vpos. */ | 251 for lines beyond a certain vpos. This is the vpos. */ |
235 int scroll_bottom_vpos; | 252 int scroll_bottom_vpos; |
236 | |
237 /* A vector that records the entire structure of this frame's menu bar. | |
238 For the format of the data, see extensive comments in xmenu.c. | |
239 Only the X toolkit version uses this. */ | |
240 Lisp_Object menu_bar_vector; | |
241 /* Number of elements in the vector that have meaningful data. */ | |
242 int menu_bar_items_used; | |
243 | 253 |
244 /* Width of the scroll bar, in pixels and in characters. | 254 /* Width of the scroll bar, in pixels and in characters. |
245 scroll_bar_cols tracks scroll_bar_pixel_width if the latter is positive; | 255 scroll_bar_cols tracks scroll_bar_pixel_width if the latter is positive; |
246 a zero value in scroll_bar_pixel_width means to compute the actual width | 256 a zero value in scroll_bar_pixel_width means to compute the actual width |
247 on the fly, using scroll_bar_cols and the current font width. */ | 257 on the fly, using scroll_bar_cols and the current font width. */ |