XEmacs 21.4.9 "Informed Management".
[chise/xemacs-chise.git.1] / src / frame.h
index ceae5b0..0a341c5 100644 (file)
@@ -110,13 +110,13 @@ struct frame
   /* Size of toolbars 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_toolbar_size[4];
+  int current_toolbar_size[4];
 #endif
 
   /* 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];
+  int current_gutter_bounds[4];
 
   /* Dynamic arrays of display lines for gutters */
   display_line_dynarr *current_display_lines[4];
@@ -142,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;
 
@@ -185,6 +188,8 @@ Value : Emacs meaning                           :f-v-p : X meaning
   unsigned int extents_changed :1;
   unsigned int faces_changed :1;
   unsigned int frame_changed :1;
+  unsigned int frame_layout_changed :1;               /* The layout of frame
+                                                 elements has changed. */
   unsigned int subwindows_changed :1;
   unsigned int subwindows_state_changed :1;
   unsigned int glyphs_changed :1;
@@ -242,6 +247,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)
@@ -332,6 +338,10 @@ error_check_frame_type (struct frame * f, Lisp_Object sym)
 #define CHECK_X_FRAME(z) CHECK_FRAME_TYPE (z, x)
 #define CONCHECK_X_FRAME(z) CONCHECK_FRAME_TYPE (z, x)
 
+#define FRAME_GTK_P(frm) CONSOLE_TYPESYM_GTK_P (FRAME_TYPE (frm))
+#define CHECK_GTK_FRAME(z) CHECK_FRAME_TYPE (z, gtk)
+#define CONCHECK_GTK_FRAME(z) CONCHECK_FRAME_TYPE (z, gtk)
+
 #define FRAME_TTY_P(frm) CONSOLE_TYPESYM_TTY_P (FRAME_TYPE (frm))
 #define CHECK_TTY_FRAME(z) CHECK_FRAME_TYPE (z, tty)
 #define CONCHECK_TTY_FRAME(z) CONCHECK_FRAME_TYPE (z, tty)
@@ -449,6 +459,19 @@ extern int frame_changed;
     frame_changed = 1;                                 \
 } while (0)
 
+#define MARK_FRAME_LAYOUT_CHANGED(f) do {              \
+  struct frame *mfc_f = (f);                           \
+  mfc_f->frame_layout_changed = 1;                     \
+  mfc_f->modiff++;                                     \
+  if (!NILP (mfc_f->device))                           \
+    {                                                  \
+      struct device *mfc_d = XDEVICE (mfc_f->device);  \
+      MARK_DEVICE_FRAME_LAYOUT_CHANGED (mfc_d);                \
+    }                                                  \
+  else                                                 \
+    frame_layout_changed = 1;                          \
+} while (0)
+
 #define MARK_FRAME_WINDOWS_CHANGED(f) do {             \
   struct frame *mfwc_f = (f);                          \
   mfwc_f->windows_changed = 1;                         \
@@ -768,10 +791,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,
@@ -807,8 +828,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);