summaryrefslogtreecommitdiff
path: root/src/frame.h
diff options
context:
space:
mode:
authorJan Djärv <jan.h.d@swipnet.se>2013-05-25 13:14:38 +0200
committerJan Djärv <jan.h.d@swipnet.se>2013-05-25 13:14:38 +0200
commit6799bb2634354c06b863be027971eac0cdb04283 (patch)
treeea4ab4079d962da9fdd6006bee949b043c728242 /src/frame.h
parentc80de4562df771ff3f35db7ad9026604d0830114 (diff)
Factor out common code for multimonitors, for Gtk+, non-Gtk+ X11 and NS.
* frame.c (Qgeometry, Qworkarea, Qmm_size, Qframes, Qsource): New Lisp_Object:s. (free_monitors, make_monitor_attribute_list): New functions. (syms_of_frame): DEFSYM Qgeometry, Qworkarea, Qmm_size, Qframes, Qsource. * frame.h (Qgeometry, Qworkarea, Qmm_size, Qframes, Qsource): Declare. (struct MonitorInfo): New struct. (free_monitors, make_monitor_attribute_list): Declare. * nsfns.m (Qgeometry, Qworkarea, Qmm_size, Qframes, Qsource): Remove. (struct MonitorInfo, free_monitors): Remove. (ns_screen_name): Make static. (ns_make_monitor_attribute_list): Call make_monitor_attribute_list. (syms_of_nsfns): Remove DEFSYM for Qgeometry, Qworkarea, Qmm_size, Qframes, Qsource. * xfns.c (Qgeometry, Qworkarea, Qmm_size, Qframes, Qsource): Remove. (struct MonitorInfo, free_monitors): Remove. (x_make_monitor_attribute_list): Call make_monitor_attribute_list. (Fx_display_monitor_attributes_list): Call make_monitor_attribute_list. (syms_of_xfns): Remove DEFSYM for Qgeometry, Qworkarea, Qmm_size, Qframes, Qsource.
Diffstat (limited to 'src/frame.h')
-rw-r--r--src/frame.h24
1 files changed, 24 insertions, 0 deletions
diff --git a/src/frame.h b/src/frame.h
index fc0a1dc828..12aa48b2d9 100644
--- a/src/frame.h
+++ b/src/frame.h
@@ -1198,6 +1198,8 @@ extern Lisp_Object Qdisplay;
extern Lisp_Object Qrun_hook_with_args;
+extern Lisp_Object Qgeometry, Qworkarea, Qmm_size, Qframes, Qsource;
+
#ifdef HAVE_WINDOW_SYSTEM
/* The class of this X application. */
@@ -1288,6 +1290,28 @@ extern void x_query_colors (struct frame *f, XColor *, int);
extern void x_query_color (struct frame *f, XColor *);
#endif /* HAVE_WINDOW_SYSTEM */
+
+/***********************************************************************
+ Multimonitor data
+ ***********************************************************************/
+
+#ifdef HAVE_WINDOW_SYSTEM
+
+struct MonitorInfo {
+ XRectangle geom, work;
+ int mm_width, mm_height;
+ char *name;
+};
+
+extern void free_monitors (struct MonitorInfo *monitors, int n_monitors);
+extern Lisp_Object make_monitor_attribute_list (struct MonitorInfo *monitors,
+ int n_monitors,
+ int primary_monitor,
+ Lisp_Object monitor_frames,
+ const char *source);
+
+#endif /* HAVE_WINDOW_SYSTEM */
+
INLINE_HEADER_END