update.
[chise/xemacs-chise.git.1] / src / window.h
index 043a9fc..8a79336 100644 (file)
@@ -24,8 +24,8 @@ Boston, MA 02111-1307, USA.  */
 
 /* Synched up with: FSF 19.30. */
 
-#ifndef _XEMACS_WINDOW_H_
-#define _XEMACS_WINDOW_H_
+#ifndef INCLUDED_window_h_
+#define INCLUDED_window_h_
 
 #include "redisplay.h"
 #ifdef HAVE_SCROLLBARS
@@ -129,7 +129,7 @@ struct window
   /* Number of columns display within the window is scrolled to the left. */
   int hscroll;
   /* Idem for the window's modeline */
-  int modeline_hscroll;
+  Charcount modeline_hscroll;
   /* Amount to clip off the top line for pixel-based scrolling. Point
      will remain constant but this will be incremented to
      incrementally shift lines up. */
@@ -184,6 +184,9 @@ struct window
      must run the redisplay-end-trigger-functions.  */
   Lisp_Object redisplay_end_trigger;
 
+  /* Set by the extent code when extents in the gutter are changed. */
+  int gutter_extent_modiff[4];
+
   /* Set by redisplay to the last position seen.  This is used
      to implement the redisplay-end-trigger-functions. */
   Bufpos last_redisplay_pos;
@@ -297,6 +300,13 @@ DECLARE_LRECORD (window, struct window);
     windows_changed = 1;                               \
 } while (0)
 
+/* #### This should be fixed not to call MARK_FRAME_CHANGED because
+   faces are cached per window.  Also, other code which changes window's
+   face should use this macro.
+*/
+#define MARK_WINDOW_FACES_CHANGED(w)   \
+  MARK_FRAME_FACES_CHANGED (XFRAME ((w)->frame))
+
 #define WINDOW_TTY_P(w) FRAME_TTY_P (XFRAME ((w)->frame))
 #define WINDOW_X_P(w)   FRAME_X_P   (XFRAME ((w)->frame))
 #define WINDOW_NS_P(w)  FRAME_NS_P  (XFRAME ((w)->frame))
@@ -307,10 +317,10 @@ DECLARE_LRECORD (window_configuration, struct window_config);
 EXFUN (Fget_buffer_window, 3);
 EXFUN (Fmove_to_window_line, 2);
 EXFUN (Frecenter, 2);
-EXFUN (Freplace_buffer_in_windows, 1);
+EXFUN (Freplace_buffer_in_windows, 3);
 EXFUN (Fselect_window, 2);
 EXFUN (Fselected_window, 1);
-EXFUN (Fset_window_buffer, 2);
+EXFUN (Fset_window_buffer, 3);
 EXFUN (Fset_window_hscroll, 2);
 EXFUN (Fset_window_point, 2);
 EXFUN (Fset_window_start, 3);
@@ -351,6 +361,7 @@ int window_left_gutter_width (struct window *w, int modeline);
 int window_right_gutter_width (struct window *w, int modeline);
 
 void delete_all_subwindows (struct window *w);
+void undedicate_windows (Lisp_Object buffer, Lisp_Object frame);
 void set_window_pixheight (Lisp_Object window, int pixheight,
                           int nodelete);
 void set_window_pixwidth (Lisp_Object window, int pixwidth,
@@ -360,6 +371,8 @@ void window_scroll (Lisp_Object window, Lisp_Object n, int direction,
 int buffer_window_count (struct buffer *b, struct frame *f);
 int buffer_window_mru (struct window *w);
 void check_frame_size (struct frame *frame, int *rows, int *cols);
+int frame_pixsize_valid_p (struct frame *frame, int width, int height);
+int frame_size_valid_p (struct frame *frame, int rows, int cols);
 struct window *decode_window (Lisp_Object window);
 struct window *find_window_by_pixel_pos (int pix_x, int pix_y, Lisp_Object win);
 
@@ -382,9 +395,13 @@ int invalidate_vertical_divider_cache_in_window (struct window *w,
 int window_divider_width (struct window *w);
 
 #define WINDOW_FRAME(w) ((w)->frame)
+#define WINDOW_XFRAME(w) XFRAME (WINDOW_FRAME (w))
 #define WINDOW_BUFFER(w) ((w)->buffer)
+#define WINDOW_XBUFFER(w) XBUFFER (WINDOW_BUFFER (w))
 #define WINDOW_DEVICE(w) FRAME_DEVICE (XFRAME (WINDOW_FRAME (w)))
+#define WINDOW_XDEVICE(w) XDEVICE (WINDOW_DEVICE (w))
 #define WINDOW_CONSOLE(w) DEVICE_CONSOLE (XDEVICE (WINDOW_DEVICE (w)))
+#define WINDOW_XCONSOLE(w) XCONSOLE (WINDOW_CONSOLE (w))
 
 /* XEmacs window size and positioning macros. */
 #define WINDOW_TOP(w) ((w)->pixel_top)
@@ -425,4 +442,4 @@ int window_divider_width (struct window *w);
 
 #endif /* emacs */
 
-#endif /* _XEMACS_WINDOW_H_ */
+#endif /* INCLUDED_window_h_ */