X-Git-Url: http://git.chise.org/gitweb/?a=blobdiff_plain;f=src%2Fdevice.h;h=3c5dcd2377e164089c5b5723757f48dc9d161126;hb=09ea9552234731fb1cd73d93e1805d7fc5b7ccf8;hp=d33b1eadd194c2de5bd4e922195c441cc7a93897;hpb=2fd9701a4f902054649dde9143a3f77809afee8f;p=chise%2Fxemacs-chise.git.1 diff --git a/src/device.h b/src/device.h index d33b1ea..3c5dcd2 100644 --- a/src/device.h +++ b/src/device.h @@ -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; @@ -220,6 +223,7 @@ struct device DECLARE_LRECORD (device, struct device); #define XDEVICE(x) XRECORD (x, device, struct device) #define XSETDEVICE(x, p) XSETRECORD (x, p, device) +#define wrap_device(p) wrap_object (p) #define DEVICEP(x) RECORDP (x, device) #define CHECK_DEVICE(x) CHECK_RECORD (x, device) #define CONCHECK_DEVICE(x) CONCHECK_RECORD (x, device) @@ -272,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 { \ @@ -319,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) @@ -335,11 +341,12 @@ error_check_device_type (struct device *d, Lisp_Object sym) EXFUN (Fdevice_console, 1); EXFUN (Fdevice_name, 1); +EXFUN (Ffind_device, 2); 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); @@ -420,12 +427,17 @@ 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)) #define MARK_DEVICE_WINDOWS_STRUCTURE_CHANGED(d) \ ((void) (windows_structure_changed = (d)->windows_structure_changed = 1)) +/* #### unify this with DOMAIN_DEVICE once the latter has image instances + expunged from it. */ /* This turns out to be used heavily so we make it a macro to make it inline. Also, the majority of the time the object will turn out to be a window so we move it from being checked last to being checked