comparison src/window.h @ 284:558f606b08ae r21-0b40

Import from CVS: tag r21-0b40
author cvs
date Mon, 13 Aug 2007 10:34:13 +0200
parents c42ec1d1cded
children 8626e4521993
comparison
equal deleted inserted replaced
283:fa3d41851a08 284:558f606b08ae
162 /* Number of characters in buffer past bottom of window, 162 /* Number of characters in buffer past bottom of window,
163 as of last redisplay that finished. */ 163 as of last redisplay that finished. */
164 /* need one for each set of display structures */ 164 /* need one for each set of display structures */
165 int window_end_pos[3]; 165 int window_end_pos[3];
166 166
167 /* Non-nil means window is marked as dedicated. */
168 Lisp_Object dedicated;
169
170 #if 0 /* FSFmacs */
171 /* The column number currently displayed in this window's mode line,
172 or nil if column numbers are not being displayed. */
173 Lisp_Object column_number_displayed;
174 #endif
175 /* If redisplay in this window goes beyond this buffer position, 167 /* If redisplay in this window goes beyond this buffer position,
176 must run the redisplay-end-trigger-functions. */ 168 must run the redisplay-end-trigger-functions. */
177 Lisp_Object redisplay_end_trigger; 169 Lisp_Object redisplay_end_trigger;
178 170
179 /* Set by redisplay to the last position seen. This is used 171 /* Set by redisplay to the last position seen. This is used
180 to implement the redisplay-end-trigger-functions. */ 172 to implement the redisplay-end-trigger-functions. */
181 Bufpos last_redisplay_pos; 173 Bufpos last_redisplay_pos;
182 174
183 /* specifier values cached in the struct window: */ 175 #define WINDOW_SLOT_DECLARATION
184 176 #define WINDOW_SLOT(slot, compare) Lisp_Object slot
185 /* Display-table to use for displaying chars in this window. */ 177 #include "winslots.h"
186 Lisp_Object display_table;
187 /* Thickness of modeline shadow, in pixels. If negative, draw
188 as recessed. */
189 Lisp_Object modeline_shadow_thickness;
190 /* Non-nil means to display a modeline for the buffer. */
191 Lisp_Object has_modeline_p;
192 #ifdef HAVE_SCROLLBARS
193 /* Width of vertical scrollbars. */
194 Lisp_Object scrollbar_width;
195 /* Height of horizontal scrollbars. */
196 Lisp_Object scrollbar_height;
197 /* Whether the scrollbars are visible */
198 Lisp_Object horizontal_scrollbar_visible_p;
199 Lisp_Object vertical_scrollbar_visible_p;
200 /* Scrollbar positions */
201 Lisp_Object scrollbar_on_left_p;
202 Lisp_Object scrollbar_on_top_p;
203 /* Pointer to use for vertical and horizontal scrollbars. */
204 Lisp_Object scrollbar_pointer;
205 #endif /* HAVE_SCROLLBARS */
206 #ifdef HAVE_TOOLBARS
207 /* Toolbar specification for each of the four positions.
208 This is not a size hog because the value here is not copied,
209 and will be shared with the specs in the specifier. */
210 Lisp_Object toolbar[4];
211 /* Toolbar size for each of the four positions. */
212 Lisp_Object toolbar_size[4];
213 /* Toolbar border width for each of the four positions. */
214 Lisp_Object toolbar_border_width[4];
215 /* Toolbar visibility status for each of the four positions. */
216 Lisp_Object toolbar_visible_p[4];
217 /* Caption status of toolbar. */
218 Lisp_Object toolbar_buttons_captioned_p;
219 /* The following five don't really need to be cached except
220 that we need to know when they've changed. */
221 Lisp_Object default_toolbar;
222 Lisp_Object default_toolbar_width, default_toolbar_height;
223 Lisp_Object default_toolbar_visible_p;
224 Lisp_Object default_toolbar_border_width;
225 #endif /* HAVE_TOOLBARS */
226 Lisp_Object left_margin_width, right_margin_width;
227 Lisp_Object minimum_line_ascent, minimum_line_descent;
228 Lisp_Object use_left_overflow, use_right_overflow;
229 #ifdef HAVE_MENUBARS
230 /* Visibility of menubar. */
231 Lisp_Object menubar_visible_p;
232 #endif /* HAVE_MENUBARS */
233 Lisp_Object text_cursor_visible_p;
234 178
235 /* one-bit flags: */ 179 /* one-bit flags: */
236 180
237 /* marker used when restoring a window configuration */ 181 /* marker used when restoring a window configuration */
238 unsigned int config_mark :1; 182 unsigned int config_mark :1;
247 was the beginning of a line when it was chosen. */ 191 was the beginning of a line when it was chosen. */
248 unsigned int start_at_line_beg :1; 192 unsigned int start_at_line_beg :1;
249 /* new redisplay flag */ 193 /* new redisplay flag */
250 unsigned int windows_changed :1; 194 unsigned int windows_changed :1;
251 unsigned int shadow_thickness_changed :1; 195 unsigned int shadow_thickness_changed :1;
196 /* Vertical divider flag and validity of it */
197 unsigned int need_vertical_divider_p :1;
198 unsigned int need_vertical_divider_valid_p :1;
252 }; 199 };
253 200
254 #define CURRENT_DISP 0 201 #define CURRENT_DISP 0
255 #define DESIRED_DISP 1 202 #define DESIRED_DISP 1
256 #define CMOTION_DISP 2 203 #define CMOTION_DISP 2
407 display_line_dynarr *window_display_lines (struct window *w, int); 354 display_line_dynarr *window_display_lines (struct window *w, int);
408 struct buffer *window_display_buffer (struct window *w); 355 struct buffer *window_display_buffer (struct window *w);
409 void set_window_display_buffer (struct window *w, struct buffer *b); 356 void set_window_display_buffer (struct window *w, struct buffer *b);
410 void update_frame_window_mirror (struct frame *f); 357 void update_frame_window_mirror (struct frame *f);
411 358
412 void map_windows (struct frame *f, 359 int map_windows (struct frame *f,
413 int (*mapfun) (struct window *w, void *closure), 360 int (*mapfun) (struct window *w, void *closure),
414 void *closure); 361 void *closure);
415 void some_window_value_changed (Lisp_Object specifier, struct window *w, 362 void some_window_value_changed (Lisp_Object specifier, struct window *w,
416 Lisp_Object oldval); 363 Lisp_Object oldval);
364 int invalidate_vertical_divider_cache_in_window (struct window *w,
365 void *u_n_u_s_e_d);
366 int window_divider_width (struct window *w);
417 367
418 #define WINDOW_FRAME(w) ((w)->frame) 368 #define WINDOW_FRAME(w) ((w)->frame)
419 #define WINDOW_BUFFER(w) ((w)->buffer) 369 #define WINDOW_BUFFER(w) ((w)->buffer)
420 #define WINDOW_DEVICE(w) FRAME_DEVICE (XFRAME (WINDOW_FRAME (w))) 370 #define WINDOW_DEVICE(w) FRAME_DEVICE (XFRAME (WINDOW_FRAME (w)))
421 #define WINDOW_CONSOLE(w) DEVICE_CONSOLE (XDEVICE (WINDOW_DEVICE (w))) 371 #define WINDOW_CONSOLE(w) DEVICE_CONSOLE (XDEVICE (WINDOW_DEVICE (w)))