]> code.delx.au - gnu-emacs/blobdiff - src/window.h
(XMenuActivate): Fix call to lookup_derived_face.
[gnu-emacs] / src / window.h
index ab9469a26190f0a81596fc38ae27dbd1b16766aa..d8f98444ae931195d1b7f45b0c51429cd4af4e41 100644 (file)
@@ -1,5 +1,5 @@
 /* Window definitions for GNU Emacs.
-   Copyright (C) 1985, 1986, 1993, 1995, 1997, 1998, 1999, 2000, 2001, 2003
+   Copyright (C) 1985,86,93,95,97,98,99, 2000,01,03,04
    Free Software Foundation, Inc.
 
 This file is part of GNU Emacs.
@@ -179,7 +179,6 @@ struct window
        no scroll bar.  A value of t means use frame value.  */
     Lisp_Object vertical_scroll_bar_type;
 
-/* The rest are currently not used or only half used */
     /* Frame coords of mark as of last time display completed */
     /* May be nil if mark does not exist or was not on frame */
     Lisp_Object last_mark_x;
@@ -237,6 +236,11 @@ struct window
     struct glyph_matrix *current_matrix;
     struct glyph_matrix *desired_matrix;
 
+    /* Scaling factor for the glyph_matrix size calculation in this window.
+       Used if window contains many small images or uses proportional fonts,
+       as the normal  may yield a matrix which is too small.  */
+    int nrows_scale_factor, ncols_scale_factor;
+
     /* Cursor position as of last update that completed without
        pause.  This is the position of last_point.  */
     struct cursor_pos last_cursor;
@@ -255,6 +259,9 @@ struct window
     /* This is handy for undrawing the cursor.  */
     int phys_cursor_ascent, phys_cursor_height;
 
+    /* Alternate overlay-arrow-bitmap in this window.  */
+    int overlay_arrow_bitmap;
+
     /* Non-zero means the cursor is currently displayed.  This can be
        set to zero by functions overpainting the cursor image.  */
     unsigned phys_cursor_on_p : 1;
@@ -318,7 +325,7 @@ struct window
     |  |   +--------------------------- LEFT_MARGIN_COLS
     |  +------------------------------- LEFT_FRINGE_WIDTH
     +---------------------------------- LEFT_SCROLL_BAR_COLS
-    
+
 */
 
 
@@ -511,6 +518,18 @@ struct window
       / WINDOW_FRAME_COLUMN_WIDTH (W))                 \
    : FRAME_FRINGE_COLS (WINDOW_XFRAME (W)))
 
+/* Column-width of the left and right fringe.  */
+
+#define WINDOW_LEFT_FRINGE_COLS(W)                     \
+  ((WINDOW_LEFT_FRINGE_WIDTH ((W))                     \
+    + WINDOW_FRAME_COLUMN_WIDTH (W) - 1)               \
+   / WINDOW_FRAME_COLUMN_WIDTH (W))
+
+#define WINDOW_RIGHT_FRINGE_COLS(W)                    \
+  ((WINDOW_RIGHT_FRINGE_WIDTH ((W))                    \
+    + WINDOW_FRAME_COLUMN_WIDTH (W) - 1)               \
+   / WINDOW_FRAME_COLUMN_WIDTH (W))
+
 /* Pixel-width of the left and right fringe.  */
 
 #define WINDOW_LEFT_FRINGE_WIDTH(W)                    \
@@ -636,22 +655,28 @@ struct window
    : WINDOW_LEFT_EDGE_X (W))
 
 
-/* Height in pixels of the mode line.  May be zero if W doesn't have a
-   mode line.  */
+/* Height in pixels, and in lines, of the mode line.
+   May be zero if W doesn't have a mode line.  */
 
 #define WINDOW_MODE_LINE_HEIGHT(W)     \
   (WINDOW_WANTS_MODELINE_P ((W))       \
    ? CURRENT_MODE_LINE_HEIGHT (W)      \
    : 0)
 
-/* Height in pixels of the header line.  Zero if W doesn't have a header
-   line.  */
+#define WINDOW_MODE_LINE_LINES(W)              \
+  (!! WINDOW_WANTS_MODELINE_P ((W)))
+
+/* Height in pixels, and in lines, of the header line.
+   Zero if W doesn't have a header line.  */
 
 #define WINDOW_HEADER_LINE_HEIGHT(W)   \
   (WINDOW_WANTS_HEADER_LINE_P ((W))    \
    ? CURRENT_HEADER_LINE_HEIGHT (W)    \
    : 0)
 
+#define WINDOW_HEADER_LINE_LINES(W)            \
+  (!! WINDOW_WANTS_HEADER_LINE_P ((W)))
+
 /* Pixel height of window W without mode line.  */
 
 #define WINDOW_BOX_HEIGHT_NO_MODE_LINE(W)      \
@@ -747,8 +772,8 @@ EXFUN (Fdisplay_buffer, 3);
 EXFUN (Fset_window_buffer, 3);
 EXFUN (Fset_window_hscroll, 2);
 EXFUN (Fwindow_hscroll, 1);
-EXFUN (Fset_window_vscroll, 2);
-EXFUN (Fwindow_vscroll, 1);
+EXFUN (Fset_window_vscroll, 3);
+EXFUN (Fwindow_vscroll, 2);
 EXFUN (Fset_window_margins, 3);
 EXFUN (Fwindow_live_p, 1);
 EXFUN (Fset_window_point, 2);
@@ -872,5 +897,9 @@ extern void init_window P_ ((void));
 extern void syms_of_window P_ ((void));
 extern void keys_of_window P_ ((void));
 
+extern int window_box_text_cols P_ ((struct window *w));
 
 #endif /* not WINDOW_H_INCLUDED */
+
+/* arch-tag: d4a6942f-e433-4ffe-ac10-2c3574f28577
+   (do not change this comment) */