import xemacs-21.2.37
[chise/xemacs-chise.git.1] / src / frame.h
index a811476..9a80e8e 100644 (file)
@@ -94,9 +94,6 @@ struct frame
 
   int modiff;
 
-  /* subwindow cache elements for this frame */
-  subwindow_cachel_dynarr *subwindow_cachels;
-
   struct expose_ignore* subwindow_exposures;
   struct expose_ignore* subwindow_exposures_tail;
 
@@ -116,9 +113,14 @@ struct frame
   unsigned int current_toolbar_size[4];
 #endif
 
-  /* Dynamic array of display lines for gutters */
-  display_line_dynarr *current_display_lines;
-  display_line_dynarr *desired_display_lines;
+  /* Size of gutters as seen by redisplay. This is used to determine
+     whether to re-layout windows by a call to change_frame_size early
+     in redisplay_frame. */
+  unsigned int current_gutter_bounds[4];
+
+  /* Dynamic arrays of display lines for gutters */
+  display_line_dynarr *current_display_lines[4];
+  display_line_dynarr *desired_display_lines[4];
 
   /* A structure of auxiliary data specific to the device type.
      struct x_frame is used for X window frames; defined in console-x.h */
@@ -140,6 +142,9 @@ Value : Emacs meaning                           :f-v-p : X meaning
 
   /* one-bit flags: */
 
+  /* Is focusing onto this frame disabled? (Modal dialog boxes) */
+  unsigned int disabled :1;
+
   /* Are we finished initializing? */
   unsigned int init_finished :1;
 
@@ -240,6 +245,7 @@ extern Lisp_Object Vmouse_motion_handler;
 DECLARE_LRECORD (frame, struct frame);
 #define XFRAME(x) XRECORD (x, frame, struct frame)
 #define XSETFRAME(x, p) XSETRECORD (x, p, frame)
+#define wrap_frame(p) wrap_object (p)
 #define FRAMEP(x) RECORDP (x, frame)
 #define CHECK_FRAME(x) CHECK_RECORD (x, frame)
 #define CONCHECK_FRAME(x) CONCHECK_RECORD (x, frame)
@@ -258,9 +264,9 @@ DECLARE_LRECORD (frame, struct frame);
 #define FRAME_TYPE_P(f, type)  EQ (FRAME_TYPE (f), Q##type)
 
 #ifdef ERROR_CHECK_TYPECHECK
-INLINE struct frame *
+INLINE_HEADER struct frame *
 error_check_frame_type (struct frame * f, Lisp_Object sym);
-INLINE struct frame *
+INLINE_HEADER struct frame *
 error_check_frame_type (struct frame * f, Lisp_Object sym)
 {
   assert (EQ (FRAME_TYPE (f), sym));
@@ -542,7 +548,7 @@ extern int frame_changed;
   NON_LVALUE ((f)->last_nonminibuf_window)
 #define FRAME_SB_VCACHE(f) ((f)->sb_vcache)
 #define FRAME_SB_HCACHE(f) ((f)->sb_hcache)
-#define FRAME_SUBWINDOW_CACHE(f) ((f)->subwindow_cachels)
+#define FRAME_SUBWINDOW_CACHE(f) ((f)->subwindow_instance_cache)
 
 #if 0 /* FSFmacs */
 
@@ -766,10 +772,8 @@ extern int frame_changed;
     DEVICE_FRAME_LOOP (frmcons, XDEVICE (XCAR (devcons)))
 
 void update_frame_title (struct frame *f);
-Lisp_Object next_frame (Lisp_Object f, Lisp_Object frametype,
-                       Lisp_Object console);
-Lisp_Object prev_frame (Lisp_Object f, Lisp_Object frametype,
-                       Lisp_Object console);
+Lisp_Object next_frame (Lisp_Object, Lisp_Object, Lisp_Object);
+Lisp_Object previous_frame (Lisp_Object, Lisp_Object, Lisp_Object);
 void pixel_to_char_size (struct frame *f, int pixel_width, int pixel_height,
                         int *char_width, int *char_height);
 void char_to_pixel_size (struct frame *f, int char_width, int char_height,
@@ -805,8 +809,7 @@ void delete_frame_internal (struct frame *f, int force,
 void io_error_delete_frame (Lisp_Object frame);
 Lisp_Object find_some_frame (int (*predicate) (Lisp_Object, void *),
                             void *closure);
-int device_matches_console_spec (Lisp_Object frame, Lisp_Object device,
-                                Lisp_Object console);
+int device_matches_device_spec (Lisp_Object device, Lisp_Object device_spec);
 Lisp_Object frame_first_window (struct frame *f);
 int show_gc_cursor (struct frame *f, Lisp_Object cursor);
 void set_frame_selected_window (struct frame *f, Lisp_Object window);