provide a way to query screen size (just the default screen right now).
authorbarbieri <barbieri@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Fri, 27 May 2011 19:17:04 +0000 (19:17 +0000)
committerbarbieri <barbieri@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Fri, 27 May 2011 19:17:04 +0000 (19:17 +0000)
NOTE: I don't have xcb, so it's untested. It is supposed to work given
http://www.x.org/releases/X11R7.5/doc/libxcb/tutorial/#DefaultScreen

git-svn-id: http://svn.enlightenment.org/svn/e/trunk/ecore@59760 7cbeb6ba-43b4-40fd-8cce-4c39aea84d33

src/lib/ecore_x/Ecore_X.h
src/lib/ecore_x/xcb/ecore_xcb.c
src/lib/ecore_x/xlib/ecore_x.c

index 245bf56..206691f 100644 (file)
@@ -1069,6 +1069,7 @@ EAPI Ecore_X_Display *       ecore_x_display_get(void);
 EAPI Ecore_X_Connection *    ecore_x_connection_get(void);
 EAPI int                     ecore_x_fd_get(void);
 EAPI Ecore_X_Screen *        ecore_x_default_screen_get(void);
+EAPI void                    ecore_x_screen_size_get(const Ecore_X_Screen *screen, int *w, int *h);
 EAPI void                    ecore_x_double_click_time_set(double t);
 EAPI double                  ecore_x_double_click_time_get(void);
 EAPI void                    ecore_x_flush(void);
index a0519f8..b929273 100644 (file)
@@ -784,6 +784,26 @@ ecore_x_default_screen_get(void)
 } /* ecore_x_default_screen_get */
 
 /**
+ * Retrieves the size of an Ecore_X_Screen.
+ * @param screen the handle to the screen to query.
+ * @param w where to return the width. May be NULL. Returns 0 on errors.
+ * @param h where to return the height. May be NULL. Returns 0 on errors.
+ * @ingroup Ecore_X_Display_Attr_Group
+ * @see ecore_x_default_screen_get()
+ */
+EAPI void
+ecore_x_screen_size_get(const Ecore_X_Screen *screen, int *w, int *h)
+{
+   xcb_screen_t *s = (xcb_screen_t *)screen;
+   LOGFN(__FILE__, __LINE__, __FUNCTION__);
+   if (w) *w = 0;
+   if (h) *h = 0;
+   if (!s) return;
+   if (w) *w = s->width_in_pixels;
+   if (h) *h = s->height_in_pixels;
+}
+
+/**
  * Sets the timeout for a double and triple clicks to be flagged.
  *
  * This sets the time between clicks before the double_click flag is
index ee4f457..6373429 100644 (file)
@@ -754,6 +754,26 @@ ecore_x_default_screen_get(void)
 } /* ecore_x_default_screen_get */
 
 /**
+ * Retrieves the size of an Ecore_X_Screen.
+ * @param screen the handle to the screen to query.
+ * @param w where to return the width. May be NULL. Returns 0 on errors.
+ * @param h where to return the height. May be NULL. Returns 0 on errors.
+ * @ingroup Ecore_X_Display_Attr_Group
+ * @see ecore_x_default_screen_get()
+ */
+EAPI void
+ecore_x_screen_size_get(const Ecore_X_Screen *screen, int *w, int *h)
+{
+   Screen *s = (Screen *)screen;
+   LOGFN(__FILE__, __LINE__, __FUNCTION__);
+   if (w) *w = 0;
+   if (h) *h = 0;
+   if (!s) return;
+   if (w) *w = s->width;
+   if (h) *h = s->height;
+}
+
+/**
  * Sets the timeout for a double and triple clicks to be flagged.
  *
  * This sets the time between clicks before the double_click flag is