diff src/device.h @ 398:74fd4e045ea6 r21-2-29

Import from CVS: tag r21-2-29
author cvs
date Mon, 13 Aug 2007 11:13:30 +0200
parents bbff43aa5eb7
children 2f8bb876ab1d
line wrap: on
line diff
--- a/src/device.h	Mon Aug 13 11:12:06 2007 +0200
+++ b/src/device.h	Mon Aug 13 11:13:30 2007 +0200
@@ -24,8 +24,8 @@
 
 /* Written by Chuck Thompson and Ben Wing. */
 
-#ifndef _XEMACS_DEVICE_H_
-#define _XEMACS_DEVICE_H_
+#ifndef INCLUDED_device_h_
+#define INCLUDED_device_h_
 
 #include "console.h"
 
@@ -168,11 +168,13 @@
   unsigned int frame_changed :1;
   unsigned int glyphs_changed :1;
   unsigned int subwindows_changed :1;
+  unsigned int subwindows_state_changed :1;
   unsigned int icon_changed :1;
   unsigned int menubar_changed :1;
   unsigned int modeline_changed :1;
   unsigned int point_changed :1;
   unsigned int size_changed :1;
+  unsigned int gutter_changed :1;
   unsigned int toolbar_changed :1;
   unsigned int windows_changed :1;
   unsigned int windows_structure_changed :1;
@@ -219,7 +221,6 @@
 #define XDEVICE(x) XRECORD (x, device, struct device)
 #define XSETDEVICE(x, p) XSETRECORD (x, p, device)
 #define DEVICEP(x) RECORDP (x, device)
-#define GC_DEVICEP(x) GC_RECORDP (x, device)
 #define CHECK_DEVICE(x) CHECK_RECORD (x, device)
 #define CONCHECK_DEVICE(x) CONCHECK_RECORD (x, device)
 
@@ -246,7 +247,7 @@
   return d;
 }
 # define DEVICE_TYPE_DATA(d, type)			\
-  ((struct type##_device *) (error_check_device_type (d, Q##type))->device_data)
+  ((struct type##_device *) error_check_device_type (d, Q##type)->device_data)
 #else
 # define DEVICE_TYPE_DATA(d, type)			\
   ((struct type##_device *) (d)->device_data)
@@ -269,6 +270,47 @@
 	(type##_console_methods->predicate_symbol, x);	\
   } while (0)
 
+#define DEVICE_DISPLAY_P(dev)				\
+  (DEVICE_LIVE_P (dev) &&				\
+   (MAYBE_INT_DEVMETH (dev,				\
+		       device_implementation_flags, ())	\
+    & XDEVIMPF_IS_A_PRINTER) ? 0 : 1)
+
+#define CHECK_DISPLAY_DEVICE(dev)			\
+  do {							\
+    CHECK_DEVICE (dev);					\
+    if (!(DEVICEP (dev)					\
+          && DEVICE_DISPLAY_P (XDEVICE (dev))))		\
+      dead_wrong_type_argument (Qdisplay, dev);		\
+  } while (0)
+
+#define CONCHECK_DISPLAY_DEVICE(dev)			\
+  do {							\
+    CONCHECK_DEVICE (dev);				\
+    if (!(DEVICEP (dev)					\
+          && DEVICE_DISPLAY_P (XDEVICE (dev))))		\
+      wrong_type_argument (Qdisplay, dev);		\
+  } while (0)
+
+#define DEVICE_PRINTER_P(dev)				\
+  (DEVICE_LIVE_P (dev) && !DEVICE_DISPLAY_P (dev))
+
+#define CHECK_PRINTER_DEVICE(dev)			\
+  do {							\
+    CHECK_DEVICE (dev);					\
+    if (!(DEVICEP (dev)					\
+          && DEVICE_PRINTER_P (XDEVICE (dev))))		\
+      dead_wrong_type_argument (Qprinter, dev);		\
+  } while (0)
+
+#define CONCHECK_PRINTER_DEVICE(dev)			\
+  do {							\
+    CONCHECK_DEVICE (dev);				\
+    if (!(DEVICEP (dev)					\
+          && DEVICE_PRINTER_P (XDEVICE (dev))))		\
+      wrong_type_argument (Qprinter, dev);		\
+  } while (0)
+
 /* #### These should be in the device-*.h files but there are
    too many places where the abstraction is broken.  Need to
    fix. */
@@ -347,9 +389,15 @@
 #define MARK_DEVICE_SUBWINDOWS_CHANGED(d)			\
   ((void) (subwindows_changed = (d)->subwindows_changed = 1))
 
+#define MARK_DEVICE_SUBWINDOWS_STATE_CHANGED(d)		\
+  ((void) (subwindows_state_changed = (d)->subwindows_state_changed = 1))
+
 #define MARK_DEVICE_TOOLBARS_CHANGED(d)			\
   ((void) (toolbar_changed = (d)->toolbar_changed = 1))
 
+#define MARK_DEVICE_GUTTERS_CHANGED(d)		\
+  ((void) (gutter_changed = (d)->gutter_changed = 1))
+
 #define MARK_DEVICE_SIZE_CHANGED(d)			\
   ((void) (size_changed = (d)->size_changed = 1))
 
@@ -361,6 +409,14 @@
   MARK_DEVICE_FACES_CHANGED (mdffc_d);			\
 } while (0)
 
+#define MARK_DEVICE_FRAMES_GLYPHS_CHANGED(d) do {	\
+  struct device *mdffc_d = (d);				\
+  Lisp_Object frmcons;					\
+  DEVICE_FRAME_LOOP (frmcons, mdffc_d)			\
+    XFRAME (XCAR (frmcons))->glyphs_changed = 1;		\
+  MARK_DEVICE_GLYPHS_CHANGED (mdffc_d);		\
+} while (0)
+
 #define MARK_DEVICE_FRAME_CHANGED(d)			\
   ((void) (frame_changed = (d)->frame_changed = 1))
 
@@ -405,4 +461,4 @@
 Lisp_Object domain_device_type (Lisp_Object domain);
 int window_system_pixelated_geometry (Lisp_Object domain);
 
-#endif /* _XEMACS_DEVICE_H_ */
+#endif /* INCLUDED_device_h_ */