(U-0002195D): Add `ideographic-structure'; add `sound@ja/on'; add
[chise/xemacs-chise.git.1] / src / device.h
index 3395e05..3c5dcd2 100644 (file)
@@ -48,6 +48,7 @@ struct pixel_to_glyph_translation_cache
 
 #define DEVICE_TYPE_NAME(d) ((d)->devmeths->name)
 #define DEVICE_TYPE(d) ((d)->devmeths->symbol)
+#define DEVICE_IMPL_FLAG(d, f) CONMETH_IMPL_FLAG ((d)->devmeths, (f))
 #define DEVICE_SPECIFIC_FRAME_PROPS(d) \
   ((d)->devmeths->device_specific_frame_props)
 
@@ -166,6 +167,8 @@ struct device
   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 glyphs_changed :1;
   unsigned int subwindows_changed :1;
   unsigned int subwindows_state_changed :1;
@@ -273,9 +276,7 @@ error_check_device_type (struct device *d, Lisp_Object sym)
 
 #define DEVICE_DISPLAY_P(dev)                          \
   (DEVICE_LIVE_P (dev) &&                              \
-   (MAYBE_INT_DEVMETH (dev,                            \
-                      device_implementation_flags, ()) \
-    & XDEVIMPF_IS_A_PRINTER) ? 0 : 1)
+    !DEVICE_IMPL_FLAG (dev, XDEVIMPF_IS_A_PRINTER))
 
 #define CHECK_DISPLAY_DEVICE(dev)                      \
   do {                                                 \
@@ -320,6 +321,10 @@ error_check_device_type (struct device *d, Lisp_Object sym)
 #define CHECK_X_DEVICE(z) CHECK_DEVICE_TYPE (z, x)
 #define CONCHECK_X_DEVICE(z) CONCHECK_DEVICE_TYPE (z, x)
 
+#define DEVICE_GTK_P(dev) CONSOLE_TYPESYM_GTK_P (DEVICE_TYPE (dev))
+#define CHECK_GTK_DEVICE(z) CHECK_DEVICE_TYPE (z, gtk)
+#define CONCHECK_GTK_DEVICE(z) CONCHECK_DEVICE_TYPE (z, gtk)
+
 #define DEVICE_MSWINDOWS_P(dev) CONSOLE_TYPESYM_MSWINDOWS_P (DEVICE_TYPE (dev))
 #define CHECK_MSWINDOWS_DEVICE(z) CHECK_DEVICE_TYPE (z, mswindows)
 #define CONCHECK_MSWINDOWS_DEVICE(z) CONCHECK_DEVICE_TYPE (z, mswindows)
@@ -341,7 +346,7 @@ EXFUN (Fmake_device, 3);
 EXFUN (Fselected_device, 1);
 
 extern Lisp_Object Qcreate_device_hook, Qdelete_device_hook, Qgrayscale;
-extern Lisp_Object Qinit_post_tty_win, Qmono, Vdefault_x_device;
+extern Lisp_Object Qinit_post_tty_win, Qmono, Vdefault_x_device, Vdefault_gtk_device;
 extern Lisp_Object Vdevice_class_list;
 
 int valid_device_class_p (Lisp_Object class);
@@ -422,6 +427,9 @@ int valid_device_class_p (Lisp_Object class);
 #define MARK_DEVICE_FRAME_CHANGED(d)                   \
   ((void) (frame_changed = (d)->frame_changed = 1))
 
+#define MARK_DEVICE_FRAME_LAYOUT_CHANGED(d)                    \
+  ((void) (frame_layout_changed = (d)->frame_layout_changed = 1))
+
 #define MARK_DEVICE_WINDOWS_CHANGED(d)                 \
   ((void) (windows_changed = (d)->windows_changed = 1))