comparison src/window.h @ 272:c5d627a313b1 r21-0b34

Import from CVS: tag r21-0b34
author cvs
date Mon, 13 Aug 2007 10:28:48 +0200
parents 65c19d2020f7
children c42ec1d1cded
comparison
equal deleted inserted replaced
271:c7b7086b0a39 272:c5d627a313b1
295 #define WINDOWP(x) RECORDP (x, window) 295 #define WINDOWP(x) RECORDP (x, window)
296 #define GC_WINDOWP(x) GC_RECORDP (x, window) 296 #define GC_WINDOWP(x) GC_RECORDP (x, window)
297 #define CHECK_WINDOW(x) CHECK_RECORD (x, window) 297 #define CHECK_WINDOW(x) CHECK_RECORD (x, window)
298 #define CONCHECK_WINDOW(x) CONCHECK_RECORD (x, window) 298 #define CONCHECK_WINDOW(x) CONCHECK_RECORD (x, window)
299 299
300 extern Lisp_Object Qwindow_live_p;
301
302 #define WINDOW_LIVE_P(x) (!(x)->dead) 300 #define WINDOW_LIVE_P(x) (!(x)->dead)
303 #define CHECK_LIVE_WINDOW(x) do { \ 301 #define CHECK_LIVE_WINDOW(x) do { \
304 CHECK_WINDOW (x); \ 302 CHECK_WINDOW (x); \
305 if (!WINDOW_LIVE_P (XWINDOW (x))) \ 303 if (!WINDOW_LIVE_P (XWINDOW (x))) \
306 dead_wrong_type_argument (Qwindow_live_p, (x)); \ 304 dead_wrong_type_argument (Qwindow_live_p, (x)); \
310 if (!WINDOW_LIVE_P (XWINDOW (x))) \ 308 if (!WINDOW_LIVE_P (XWINDOW (x))) \
311 x = wrong_type_argument (Qwindow_live_p, (x)); \ 309 x = wrong_type_argument (Qwindow_live_p, (x)); \
312 } while (0) 310 } while (0)
313 311
314 /* 1 if W is a minibuffer window. */ 312 /* 1 if W is a minibuffer window. */
315 #define MINI_WINDOW_P(W) (!EQ ((W)->mini_p, Qnil)) 313 #define MINI_WINDOW_P(W) (!NILP ((W)->mini_p))
316 314
317 /* 1 if we are dealing with a parentless window (this includes the 315 /* 1 if we are dealing with a parentless window (this includes the
318 root window on a frame and the minibuffer window; both of these 316 root window on a frame and the minibuffer window; both of these
319 are siblings). */ 317 are siblings). */
320 #define TOP_LEVEL_WINDOW_P(w) NILP ((w)->parent) 318 #define TOP_LEVEL_WINDOW_P(w) NILP ((w)->parent)
321 319
322 /* Set all redisplay flags indicating a window has changed */ 320 /* Set all redisplay flags indicating a window has changed */
323 #define MARK_WINDOWS_CHANGED(w) do { \ 321 #define MARK_WINDOWS_CHANGED(w) do { \
324 (w)->windows_changed = 1; \ 322 (w)->windows_changed = 1; \
325 if (!NILP (w->frame)) \ 323 if (!NILP (w->frame)) \
326 MARK_FRAME_WINDOWS_CHANGED (XFRAME (w->frame)); \ 324 { \
325 struct frame *mwc_frame = XFRAME (w->frame); \
326 MARK_FRAME_WINDOWS_CHANGED (mwc_frame); \
327 } \
327 else \ 328 else \
328 windows_changed = 1; \ 329 windows_changed = 1; \
329 } while (0) 330 } while (0)
330 331
331 #define WINDOW_TTY_P(w) FRAME_TTY_P (XFRAME ((w)->frame)) 332 #define WINDOW_TTY_P(w) FRAME_TTY_P (XFRAME ((w)->frame))
332 #define WINDOW_X_P(w) FRAME_X_P (XFRAME ((w)->frame)) 333 #define WINDOW_X_P(w) FRAME_X_P (XFRAME ((w)->frame))
333 #define WINDOW_NS_P(w) FRAME_NS_P (XFRAME ((w)->frame)) 334 #define WINDOW_NS_P(w) FRAME_NS_P (XFRAME ((w)->frame))
334 #define WINDOW_WIN_P(w) FRAME_WIN_P (XFRAME ((w)->frame)) 335 #define WINDOW_WIN_P(w) FRAME_WIN_P (XFRAME ((w)->frame))
335 336
336 DECLARE_LRECORD (window_configuration, struct window_config); 337 DECLARE_LRECORD (window_configuration, struct window_config);
338
339 EXFUN (Fget_buffer_window, 3);
340 EXFUN (Fmove_to_window_line, 2);
341 EXFUN (Frecenter, 2);
342 EXFUN (Freplace_buffer_in_windows, 1);
343 EXFUN (Fselect_window, 1);
344 EXFUN (Fselected_window, 1);
345 EXFUN (Fset_window_buffer, 2);
346 EXFUN (Fset_window_hscroll, 2);
347 EXFUN (Fset_window_point, 2);
348 EXFUN (Fset_window_start, 3);
349 EXFUN (Fwindow_buffer, 1);
350 EXFUN (Fwindow_highest_p, 1);
351 EXFUN (Fwindow_point, 1);
352 EXFUN (Fwindow_start, 1);
337 353
338 /* The minibuffer window of the selected frame. 354 /* The minibuffer window of the selected frame.
339 Note that you cannot test for minibufferness of an arbitrary window 355 Note that you cannot test for minibufferness of an arbitrary window
340 by comparing against this; but you can test for minibufferness of 356 by comparing against this; but you can test for minibufferness of
341 the selected window or of any window that is displayed. */ 357 the selected window or of any window that is displayed. */
342 extern Lisp_Object minibuf_window; 358 extern Lisp_Object minibuf_window;
343 359
344 /* Non-nil => window to for C-M-v to scroll
345 when the minibuffer is selected. */
346 extern Lisp_Object Vminibuf_scroll_window;
347
348 /* Prompt to display in front of the minibuffer contents, or nil */ 360 /* Prompt to display in front of the minibuffer contents, or nil */
349 extern Lisp_Object Vminibuf_prompt; 361 extern Lisp_Object Vminibuf_prompt;
350 /* Prompt to display in front of the minibuffer prompt, or nil */ 362 /* Prompt to display in front of the minibuffer prompt, or nil */
351 extern Lisp_Object Vminibuf_preprompt; 363 extern Lisp_Object Vminibuf_preprompt;
352
353 /* Depth in minibuffer invocations */
354 extern int minibuf_level;
355 364
356 Lisp_Object allocate_window (void); 365 Lisp_Object allocate_window (void);
357 int window_char_width (struct window *, int include_margins_p); 366 int window_char_width (struct window *, int include_margins_p);
358 int window_char_height (struct window *, int include_gutters_p); 367 int window_char_height (struct window *, int include_gutters_p);
359 int window_displayed_height (struct window *); 368 int window_displayed_height (struct window *);
381 Error_behavior errb); 390 Error_behavior errb);
382 int buffer_window_count (struct buffer *b, struct frame *f); 391 int buffer_window_count (struct buffer *b, struct frame *f);
383 int buffer_window_mru (struct window *w); 392 int buffer_window_mru (struct window *w);
384 void check_frame_size (struct frame *frame, int *rows, int *cols); 393 void check_frame_size (struct frame *frame, int *rows, int *cols);
385 struct window *decode_window (Lisp_Object window); 394 struct window *decode_window (Lisp_Object window);
386 struct window *find_window_by_pixel_pos (unsigned int pix_x, 395 struct window *find_window_by_pixel_pos (int pix_x, int pix_y, Lisp_Object win);
387 unsigned int pix_y,
388 Lisp_Object win);
389 396
390 /* new functions to handle the window mirror */ 397 /* new functions to handle the window mirror */
391 void free_window_mirror (struct window_mirror *mir); 398 void free_window_mirror (struct window_mirror *mir);
392 Lisp_Object real_window (struct window_mirror *mir, int no_abort); 399 Lisp_Object real_window (struct window_mirror *mir, int no_abort);
393 struct window_mirror *find_window_mirror (struct window *w); 400 struct window_mirror *find_window_mirror (struct window *w);