summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJuan Zhao <juan.j.zhao@intel.com>2013-10-09 10:51:34 +0800
committerJuan Zhao <juan.j.zhao@intel.com>2013-10-09 11:33:28 +0800
commit58f68d85e4b33607c01a5032a91f4f5d00b5a23c (patch)
treefc4d39561d3cf98ed6b06bba98f84ae60feb0adf
parentebc7d590e0cd049b8be358263287b57d21e5976f (diff)
downloadx2w-58f68d85e4b33607c01a5032a91f4f5d00b5a23c.tar.gz
x2w-58f68d85e4b33607c01a5032a91f4f5d00b5a23c.tar.bz2
x2w-58f68d85e4b33607c01a5032a91f4f5d00b5a23c.zip
split x2w.h to several files
Add the header files and the pc files like Ecore_X.h will help to hide x2w in the app level. Then the modifications to the application will be less and could help the app developer to figure out the X to Wayland changes easier.
-rw-r--r--Makefile.am2
-rwxr-xr-xecore-x.pc11
-rw-r--r--packaging/x2w.spec7
-rw-r--r--src/Ecore_X.h2409
-rw-r--r--src/Ecore_X_Atoms.h292
-rw-r--r--src/Makefile.am6
-rw-r--r--src/ecore_x_2w.h (renamed from src/x2w.h)47
-rw-r--r--src/elementary_2w.h16
-rw-r--r--src/utilx_2w.h16
-rw-r--r--src/x2w.c2
-rw-r--r--src/x2w_general.h33
-rw-r--r--src/xi_2w.h25
12 files changed, 2819 insertions, 47 deletions
diff --git a/Makefile.am b/Makefile.am
index c89ca04..8cc5871 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -5,7 +5,7 @@ ACLOCAL_AMFLAGS = -I m4
SUBDIRS = src
pkgconfigdir = $(libdir)/pkgconfig
-pkgconfig_DATA = x2w.pc
+pkgconfig_DATA = x2w.pc ecore-x.pc
EXTRA_DIST = \
x2w.pc\
diff --git a/ecore-x.pc b/ecore-x.pc
new file mode 100755
index 0000000..32578d8
--- /dev/null
+++ b/ecore-x.pc
@@ -0,0 +1,11 @@
+prefix=/usr
+exec_prefix=/usr
+libdir=/usr/lib
+includedir=/usr/include
+
+Name: ecore-x
+Description: E core library, remove X module
+Version: 1.0.0
+Libs: -L${libdir} -lx2w
+Cflags: -I${includedir}
+
diff --git a/packaging/x2w.spec b/packaging/x2w.spec
index c1b90a1..5825637 100644
--- a/packaging/x2w.spec
+++ b/packaging/x2w.spec
@@ -43,5 +43,10 @@ rm -rf %{buildroot}
%files devel
%defattr(-,root,root,-)
-%{_includedir}/x2w.h
+%{_includedir}/ecore_x_2w.h
+%{_includedir}/elementary_2w.h
+%{_includedir}/utilx_2w.h
+%{_includedir}/x2w_general.h
+%{_includedir}/xi_2w.h
%{_libdir}/pkgconfig/x2w.pc
+%{_libdir}/pkgconfig/ecore-x.pc
diff --git a/src/Ecore_X.h b/src/Ecore_X.h
new file mode 100644
index 0000000..fe59deb
--- /dev/null
+++ b/src/Ecore_X.h
@@ -0,0 +1,2409 @@
+#ifndef _ECORE_X_H
+#define _ECORE_X_H
+
+#include <Eina.h>
+
+#ifdef EAPI
+# undef EAPI
+#endif // ifdef EAPI
+
+#ifdef _MSC_VER
+# ifdef BUILDING_DLL
+# define EAPI __declspec(dllexport)
+# else // ifdef BUILDING_DLL
+# define EAPI __declspec(dllimport)
+# endif // ifdef BUILDING_DLL
+#else // ifdef _MSC_VER
+# ifdef __GNUC__
+# if __GNUC__ >= 4
+# define EAPI __attribute__ ((visibility("default")))
+# else // if __GNUC__ >= 4
+# define EAPI
+# endif // if __GNUC__ >= 4
+# else // ifdef __GNUC__
+# define EAPI
+# endif // ifdef __GNUC__
+#endif // ifdef _MSC_VER
+
+#include <sys/types.h>
+
+/**
+ * @file
+ * @brief Ecore functions for dealing with the X Windows System
+ *
+ * Ecore_X provides a wrapper and convenience functions for using the
+ * X Windows System. Function groups for this part of the library
+ * include the following:
+ * @li @ref Ecore_X_Init_Group
+ * @li @ref Ecore_X_Display_Attr_Group
+ * @li @ref Ecore_X_Flush_Group
+ */
+
+typedef unsigned int Ecore_X_ID;
+#ifndef _ECORE_X_WINDOW_PREDEF
+typedef Ecore_X_ID Ecore_X_Window;
+#endif // ifndef _ECORE_X_WINDOW_PREDEF
+typedef void *Ecore_X_Visual;
+typedef Ecore_X_ID Ecore_X_Pixmap;
+typedef Ecore_X_ID Ecore_X_Drawable;
+#ifdef HAVE_ECORE_X_XCB
+typedef Ecore_X_ID Ecore_X_GC;
+#else // ifdef HAVE_ECORE_X_XCB
+typedef void *Ecore_X_GC;
+#endif /* HAVE_ECORE_X_XCB */
+typedef Ecore_X_ID Ecore_X_Atom;
+typedef Ecore_X_ID Ecore_X_Colormap;
+typedef Ecore_X_ID Ecore_X_Time;
+typedef Ecore_X_ID Ecore_X_Cursor;
+typedef void Ecore_X_Display;
+typedef void Ecore_X_Connection;
+typedef void Ecore_X_Screen;
+typedef Ecore_X_ID Ecore_X_Sync_Counter;
+typedef Ecore_X_ID Ecore_X_Sync_Alarm;
+typedef void Ecore_X_XRegion;
+
+typedef Ecore_X_ID Ecore_X_Randr_Output;
+typedef Ecore_X_ID Ecore_X_Randr_Crtc;
+typedef Ecore_X_ID Ecore_X_Randr_Mode;
+typedef unsigned short Ecore_X_Randr_Size_ID;
+typedef int Ecore_X_Randr_Screen;
+
+typedef Ecore_X_ID Ecore_X_Device;
+
+#ifdef __cplusplus
+extern "C" {
+#endif // ifdef __cplusplus
+
+typedef struct _Ecore_X_Rectangle
+{
+ int x, y;
+ unsigned int width, height;
+} Ecore_X_Rectangle;
+
+typedef struct _Ecore_X_Icon
+{
+ unsigned int width, height;
+ unsigned int *data;
+} Ecore_X_Icon;
+
+typedef enum _Ecore_X_GC_Value_Mask
+{
+ ECORE_X_GC_VALUE_MASK_FUNCTION = (1L << 0),
+ ECORE_X_GC_VALUE_MASK_PLANE_MASK = (1L << 1),
+ ECORE_X_GC_VALUE_MASK_FOREGROUND = (1L << 2),
+ ECORE_X_GC_VALUE_MASK_BACKGROUND = (1L << 3),
+ ECORE_X_GC_VALUE_MASK_LINE_WIDTH = (1L << 4),
+ ECORE_X_GC_VALUE_MASK_LINE_STYLE = (1L << 5),
+ ECORE_X_GC_VALUE_MASK_CAP_STYLE = (1L << 6),
+ ECORE_X_GC_VALUE_MASK_JOIN_STYLE = (1L << 7),
+ ECORE_X_GC_VALUE_MASK_FILL_STYLE = (1L << 8),
+ ECORE_X_GC_VALUE_MASK_FILL_RULE = (1L << 9),
+ ECORE_X_GC_VALUE_MASK_TILE = (1L << 10),
+ ECORE_X_GC_VALUE_MASK_STIPPLE = (1L << 11),
+ ECORE_X_GC_VALUE_MASK_TILE_STIPPLE_ORIGIN_X = (1L << 12),
+ ECORE_X_GC_VALUE_MASK_TILE_STIPPLE_ORIGIN_Y = (1L << 13),
+ ECORE_X_GC_VALUE_MASK_FONT = (1L << 14),
+ ECORE_X_GC_VALUE_MASK_SUBWINDOW_MODE = (1L << 15),
+ ECORE_X_GC_VALUE_MASK_GRAPHICS_EXPOSURES = (1L << 16),
+ ECORE_X_GC_VALUE_MASK_CLIP_ORIGIN_X = (1L << 17),
+ ECORE_X_GC_VALUE_MASK_CLIP_ORIGIN_Y = (1L << 18),
+ ECORE_X_GC_VALUE_MASK_CLIP_MASK = (1L << 19),
+ ECORE_X_GC_VALUE_MASK_DASH_OFFSET = (1L << 20),
+ ECORE_X_GC_VALUE_MASK_DASH_LIST = (1L << 21),
+ ECORE_X_GC_VALUE_MASK_ARC_MODE = (1L << 22)
+} Ecore_X_GC_Value_Mask;
+
+typedef enum _Ecore_X_Composite_Update_Type
+{
+ ECORE_X_COMPOSITE_UPDATE_AUTOMATIC,
+ ECORE_X_COMPOSITE_UPDATE_MANUAL
+} Ecore_X_Composite_Update_Type;
+
+/**
+ * @typedef _Ecore_X_Window_State
+ * Defines the different states of the window of Ecore_X.
+ */
+typedef enum _Ecore_X_Window_State
+{
+ ECORE_X_WINDOW_STATE_UNKNOWN = 0,
+ ECORE_X_WINDOW_STATE_ICONIFIED, /** The window is iconified. */
+ ECORE_X_WINDOW_STATE_MODAL, /** The window is a modal dialog box. */
+ ECORE_X_WINDOW_STATE_STICKY, /** The window manager should keep the window's position fixed
+ * even if the virtual desktop scrolls. */
+ ECORE_X_WINDOW_STATE_MAXIMIZED_VERT, /** The window has the maximum vertical size. */
+ ECORE_X_WINDOW_STATE_MAXIMIZED_HORZ, /** The window has the maximum horizontal size. */
+ ECORE_X_WINDOW_STATE_SHADED, /** The window is shaded. */
+ ECORE_X_WINDOW_STATE_SKIP_TASKBAR, /** The window should not be included in the taskbar. */
+ ECORE_X_WINDOW_STATE_SKIP_PAGER, /** The window should not be included in the pager. */
+ ECORE_X_WINDOW_STATE_HIDDEN, /** The window is invisible (i.e. minimized/iconified) */
+ ECORE_X_WINDOW_STATE_FULLSCREEN, /** The window should fill the entire screen and have no
+ * window border/decorations */
+ ECORE_X_WINDOW_STATE_ABOVE,
+ ECORE_X_WINDOW_STATE_BELOW,
+ ECORE_X_WINDOW_STATE_DEMANDS_ATTENTION
+} Ecore_X_Window_State;
+
+typedef enum _Ecore_X_Window_State_Action
+{
+ ECORE_X_WINDOW_STATE_ACTION_REMOVE,
+ ECORE_X_WINDOW_STATE_ACTION_ADD,
+ ECORE_X_WINDOW_STATE_ACTION_TOGGLE
+} Ecore_X_Window_State_Action;
+
+typedef enum _Ecore_X_Window_Stack_Mode
+{
+ ECORE_X_WINDOW_STACK_ABOVE = 0,
+ ECORE_X_WINDOW_STACK_BELOW = 1,
+ ECORE_X_WINDOW_STACK_TOP_IF = 2,
+ ECORE_X_WINDOW_STACK_BOTTOM_IF = 3,
+ ECORE_X_WINDOW_STACK_OPPOSITE = 4
+} Ecore_X_Window_Stack_Mode;
+
+typedef enum _Ecore_X_Randr_Orientation
+{
+ ECORE_X_RANDR_ORIENTATION_ROT_0 = (1 << 0),
+ ECORE_X_RANDR_ORIENTATION_ROT_90 = (1 << 1),
+ ECORE_X_RANDR_ORIENTATION_ROT_180 = (1 << 2),
+ ECORE_X_RANDR_ORIENTATION_ROT_270 = (1 << 3),
+ ECORE_X_RANDR_ORIENTATION_FLIP_X = (1 << 4),
+ ECORE_X_RANDR_ORIENTATION_FLIP_Y = (1 << 5)
+} Ecore_X_Randr_Orientation;
+
+typedef enum _Ecore_X_Randr_Connection_Status
+{
+ ECORE_X_RANDR_CONNECTION_STATUS_CONNECTED = 0,
+ ECORE_X_RANDR_CONNECTION_STATUS_DISCONNECTED = 1,
+ ECORE_X_RANDR_CONNECTION_STATUS_UNKNOWN = 2
+} Ecore_X_Randr_Connection_Status;
+
+typedef enum _Ecore_X_Randr_Output_Policy
+{
+ ECORE_X_RANDR_OUTPUT_POLICY_ABOVE = 1,
+ ECORE_X_RANDR_OUTPUT_POLICY_RIGHT = 2,
+ ECORE_X_RANDR_OUTPUT_POLICY_BELOW = 3,
+ ECORE_X_RANDR_OUTPUT_POLICY_LEFT = 4,
+ ECORE_X_RANDR_OUTPUT_POLICY_CLONE = 5,
+ ECORE_X_RANDR_OUTPUT_POLICY_NONE = 6,
+ ECORE_X_RANDR_OUTPUT_POLICY_ASK = 7
+} Ecore_X_Randr_Output_Policy;
+
+typedef enum _Ecore_X_Randr_Relative_Alignment
+{
+ ECORE_X_RANDR_RELATIVE_ALIGNMENT_NONE = 0,
+ ECORE_X_RANDR_RELATIVE_ALIGNMENT_CENTER_REL = 1,
+ ECORE_X_RANDR_RELATIVE_ALIGNMENT_CENTER_SCR = 2
+} Ecore_X_Randr_Relative_Alignment;
+
+typedef enum _Ecore_X_Render_Subpixel_Order
+{
+ ECORE_X_RENDER_SUBPIXEL_ORDER_UNKNOWN = 0,
+ ECORE_X_RENDER_SUBPIXEL_ORDER_HORIZONTAL_RGB = 1,
+ ECORE_X_RENDER_SUBPIXEL_ORDER_HORIZONTAL_BGR = 2,
+ ECORE_X_RENDER_SUBPIXEL_ORDER_VERTICAL_RGB = 3,
+ ECORE_X_RENDER_SUBPIXEL_ORDER_VERTICAL_BGR = 4,
+ ECORE_X_RENDER_SUBPIXEL_ORDER_NONE = 5
+} Ecore_X_Render_Subpixel_Order;
+
+typedef enum _Ecore_X_Randr_Edid_Display_Interface_Type
+{
+ ECORE_X_RANDR_EDID_DISPLAY_INTERFACE_UNDEFINED,
+ ECORE_X_RANDR_EDID_DISPLAY_INTERFACE_DVI,
+ ECORE_X_RANDR_EDID_DISPLAY_INTERFACE_HDMI_A,
+ ECORE_X_RANDR_EDID_DISPLAY_INTERFACE_HDMI_B,
+ ECORE_X_RANDR_EDID_DISPLAY_INTERFACE_MDDI,
+ ECORE_X_RANDR_EDID_DISPLAY_INTERFACE_DISPLAY_PORT
+} Ecore_X_Randr_Edid_Display_Interface_Type;
+
+typedef enum _Ecore_X_Randr_Edid_Display_Colorscheme
+{
+ ECORE_X_RANDR_EDID_DISPLAY_COLORSCHEME_MONOCHROME_GRAYSCALE = 0x00,
+ ECORE_X_RANDR_EDID_DISPLAY_COLORSCHEME_COLOR_RGB = 0x08,
+ ECORE_X_RANDR_EDID_DISPLAY_COLORSCHEME_COLOR_NON_RGB = 0x10,
+ ECORE_X_RANDR_EDID_DISPLAY_COLORSCHEME_COLOR_UNDEFINED = 0x18,
+ ECORE_X_RANDR_EDID_DISPLAY_COLORSCHEME_COLOR_RGB_4_4_4 = 0x444000,
+ ECORE_X_RANDR_EDID_DISPLAY_COLORSCHEME_COLOR_RGB_YCRCB_4_4_4 = 0x444,
+ ECORE_X_RANDR_EDID_DISPLAY_COLORSCHEME_COLOR_RGB_YCRCB_4_2_2 = 0x422
+} Ecore_X_Randr_Edid_Display_Colorscheme;
+
+typedef enum _Ecore_X_Randr_Edid_Aspect_Ratio
+{
+ ECORE_X_RANDR_EDID_ASPECT_RATIO_4_3 = 0x0,
+ ECORE_X_RANDR_EDID_ASPECT_RATIO_16_9 = 0x1,
+ ECORE_X_RANDR_EDID_ASPECT_RATIO_16_10 = 0x2,
+ ECORE_X_RANDR_EDID_ASPECT_RATIO_5_4 = 0x4,
+ ECORE_X_RANDR_EDID_ASPECT_RATIO_15_9 = 0x8
+} Ecore_X_Randr_Edid_Aspect_Ratio;
+
+#define ECORE_X_RANDR_EDID_UNKNOWN_VALUE -1
+
+#define ECORE_X_SELECTION_TARGET_TARGETS "TARGETS"
+#define ECORE_X_SELECTION_TARGET_TEXT "TEXT"
+#define ECORE_X_SELECTION_TARGET_COMPOUND_TEXT "COMPOUND_TEXT"
+#define ECORE_X_SELECTION_TARGET_STRING "STRING"
+#define ECORE_X_SELECTION_TARGET_UTF8_STRING "UTF8_STRING"
+#define ECORE_X_SELECTION_TARGET_FILENAME "FILENAME"
+
+#define ECORE_X_DND_VERSION 5
+
+typedef enum _Ecore_X_Selection
+{
+ ECORE_X_SELECTION_PRIMARY,
+ ECORE_X_SELECTION_SECONDARY,
+ ECORE_X_SELECTION_XDND,
+ ECORE_X_SELECTION_CLIPBOARD,
+ ECORE_X_SELECTION_OTHER
+} Ecore_X_Selection;
+
+typedef enum _Ecore_X_Event_Mode
+{
+ ECORE_X_EVENT_MODE_NORMAL,
+ ECORE_X_EVENT_MODE_WHILE_GRABBED,
+ ECORE_X_EVENT_MODE_GRAB,
+ ECORE_X_EVENT_MODE_UNGRAB
+} Ecore_X_Event_Mode;
+
+typedef enum _Ecore_X_Event_Detail
+{
+ ECORE_X_EVENT_DETAIL_ANCESTOR,
+ ECORE_X_EVENT_DETAIL_VIRTUAL,
+ ECORE_X_EVENT_DETAIL_INFERIOR,
+ ECORE_X_EVENT_DETAIL_NON_LINEAR,
+ ECORE_X_EVENT_DETAIL_NON_LINEAR_VIRTUAL,
+ ECORE_X_EVENT_DETAIL_POINTER,
+ ECORE_X_EVENT_DETAIL_POINTER_ROOT,
+ ECORE_X_EVENT_DETAIL_DETAIL_NONE
+} Ecore_X_Event_Detail;
+
+typedef enum _Ecore_X_Event_Mask
+{
+ ECORE_X_EVENT_MASK_NONE = 0L,
+ ECORE_X_EVENT_MASK_KEY_DOWN = (1L << 0),
+ ECORE_X_EVENT_MASK_KEY_UP = (1L << 1),
+ ECORE_X_EVENT_MASK_MOUSE_DOWN = (1L << 2),
+ ECORE_X_EVENT_MASK_MOUSE_UP = (1L << 3),
+ ECORE_X_EVENT_MASK_MOUSE_IN = (1L << 4),
+ ECORE_X_EVENT_MASK_MOUSE_OUT = (1L << 5),
+ ECORE_X_EVENT_MASK_MOUSE_MOVE = (1L << 6),
+ ECORE_X_EVENT_MASK_WINDOW_DAMAGE = (1L << 15),
+ ECORE_X_EVENT_MASK_WINDOW_VISIBILITY = (1L << 16),
+ ECORE_X_EVENT_MASK_WINDOW_CONFIGURE = (1L << 17),
+ ECORE_X_EVENT_MASK_WINDOW_RESIZE_MANAGE = (1L << 18),
+ ECORE_X_EVENT_MASK_WINDOW_MANAGE = (1L << 19),
+ ECORE_X_EVENT_MASK_WINDOW_CHILD_CONFIGURE = (1L << 20),
+ ECORE_X_EVENT_MASK_WINDOW_FOCUS_CHANGE = (1L << 21),
+ ECORE_X_EVENT_MASK_WINDOW_PROPERTY = (1L << 22),
+ ECORE_X_EVENT_MASK_WINDOW_COLORMAP = (1L << 23),
+ ECORE_X_EVENT_MASK_WINDOW_GRAB = (1L << 24),
+ ECORE_X_EVENT_MASK_MOUSE_WHEEL = (1L << 29),
+ ECORE_X_EVENT_MASK_WINDOW_FOCUS_IN = (1L << 30),
+ ECORE_X_EVENT_MASK_WINDOW_FOCUS_OUT = (1L << 31)
+} Ecore_X_Event_Mask;
+
+typedef enum _Ecore_X_Gravity
+{
+ ECORE_X_GRAVITY_FORGET = 0,
+ ECORE_X_GRAVITY_UNMAP = 0,
+ ECORE_X_GRAVITY_NW = 1,
+ ECORE_X_GRAVITY_N = 2,
+ ECORE_X_GRAVITY_NE = 3,
+ ECORE_X_GRAVITY_W = 4,
+ ECORE_X_GRAVITY_CENTER = 5,
+ ECORE_X_GRAVITY_E = 6,
+ ECORE_X_GRAVITY_SW = 7,
+ ECORE_X_GRAVITY_S = 8,
+ ECORE_X_GRAVITY_SE = 9,
+ ECORE_X_GRAVITY_STATIC = 10
+} Ecore_X_Gravity;
+
+/* Needed for ecore_x_region_window_shape_set */
+typedef enum _Ecore_X_Shape_Type
+{
+ ECORE_X_SHAPE_BOUNDING,
+ ECORE_X_SHAPE_CLIP,
+ ECORE_X_SHAPE_INPUT
+} Ecore_X_Shape_Type;
+
+typedef enum _Ecore_X_Mapping_Type
+{
+ ECORE_X_MAPPING_MODIFIER,
+ ECORE_X_MAPPING_KEYBOARD,
+ ECORE_X_MAPPING_MOUSE
+} Ecore_X_Mapping_Type;
+
+typedef enum _Ecore_X_Randr_Property_Change
+{
+ ECORE_X_RANDR_PROPERTY_CHANGE_ADD,
+ ECORE_X_RANDR_PROPERTY_CHANGE_DEL
+} Ecore_X_Randr_Property_Change;
+
+typedef enum _Ecore_X_Netwm_Direction
+{
+ ECORE_X_NETWM_DIRECTION_SIZE_TL = 0,
+ ECORE_X_NETWM_DIRECTION_SIZE_T = 1,
+ ECORE_X_NETWM_DIRECTION_SIZE_TR = 2,
+ ECORE_X_NETWM_DIRECTION_SIZE_R = 3,
+ ECORE_X_NETWM_DIRECTION_SIZE_BR = 4,
+ ECORE_X_NETWM_DIRECTION_SIZE_B = 5,
+ ECORE_X_NETWM_DIRECTION_SIZE_BL = 6,
+ ECORE_X_NETWM_DIRECTION_SIZE_L = 7,
+ ECORE_X_NETWM_DIRECTION_MOVE = 8,
+ ECORE_X_NETWM_DIRECTION_CANCEL = 11,
+} Ecore_X_Netwm_Direction;
+
+/**
+ * @typedef _Ecore_X_Error_Code
+ * Defines the error codes of Ecore_X which wraps the X Window Systems
+ * protocol's errors.
+ *
+ * @since 1.7.0
+ */
+typedef enum _Ecore_X_Error_Code
+{
+ /** Everything is okay. */
+ ECORE_X_ERROR_CODE_SUCCESS = 0, /** Bad request code */
+ ECORE_X_ERROR_CODE_BAD_REQUEST = 1, /** Int parameter out of range */
+ ECORE_X_ERROR_CODE_BAD_VALUE = 2, /** Parameter not a Window */
+ ECORE_X_ERROR_CODE_BAD_WINDOW = 3, /** Parameter not a Pixmap */
+ ECORE_X_ERROR_CODE_BAD_PIXMAP = 4, /** Parameter not an Atom */
+ ECORE_X_ERROR_CODE_BAD_ATOM = 5, /** Parameter not a Cursor */
+ ECORE_X_ERROR_CODE_BAD_CURSOR = 6, /** Parameter not a Font */
+ ECORE_X_ERROR_CODE_BAD_FONT = 7, /** Parameter mismatch */
+ ECORE_X_ERROR_CODE_BAD_MATCH = 8, /** Parameter not a Pixmap or Window */
+ ECORE_X_ERROR_CODE_BAD_DRAWABLE = 9, /** Bad access */
+ ECORE_X_ERROR_CODE_BAD_ACCESS = 10, /** Insufficient resources */
+ ECORE_X_ERROR_CODE_BAD_ALLOC = 11, /** No such colormap */
+ ECORE_X_ERROR_CODE_BAD_COLOR = 12, /** Parameter not a GC */
+ ECORE_X_ERROR_CODE_BAD_GC = 13, /** Choice not in range or already used */
+ ECORE_X_ERROR_CODE_BAD_ID_CHOICE = 14, /** Font or color name doesn't exist */
+ ECORE_X_ERROR_CODE_BAD_NAME = 15, /** Request length incorrect */
+ ECORE_X_ERROR_CODE_BAD_LENGTH = 16, /** Server is defective */
+ ECORE_X_ERROR_CODE_BAD_IMPLEMENTATION = 17,
+} Ecore_X_Error_Code;
+
+typedef struct _Ecore_X_Event_Mouse_In Ecore_X_Event_Mouse_In;
+typedef struct _Ecore_X_Event_Mouse_Out Ecore_X_Event_Mouse_Out;
+typedef struct _Ecore_X_Event_Window_Focus_In Ecore_X_Event_Window_Focus_In;
+typedef struct _Ecore_X_Event_Window_Focus_Out Ecore_X_Event_Window_Focus_Out;
+typedef struct _Ecore_X_Event_Window_Keymap Ecore_X_Event_Window_Keymap;
+typedef struct _Ecore_X_Event_Window_Damage Ecore_X_Event_Window_Damage;
+typedef struct _Ecore_X_Event_Window_Visibility_Change Ecore_X_Event_Window_Visibility_Change;
+typedef struct _Ecore_X_Event_Window_Create Ecore_X_Event_Window_Create;
+typedef struct _Ecore_X_Event_Window_Destroy Ecore_X_Event_Window_Destroy;
+typedef struct _Ecore_X_Event_Window_Hide Ecore_X_Event_Window_Hide;
+typedef struct _Ecore_X_Event_Window_Show Ecore_X_Event_Window_Show;
+typedef struct _Ecore_X_Event_Window_Show_Request Ecore_X_Event_Window_Show_Request;
+typedef struct _Ecore_X_Event_Window_Reparent Ecore_X_Event_Window_Reparent;
+typedef struct _Ecore_X_Event_Window_Configure Ecore_X_Event_Window_Configure;
+typedef struct _Ecore_X_Event_Window_Configure_Request Ecore_X_Event_Window_Configure_Request;
+typedef struct _Ecore_X_Event_Window_Gravity Ecore_X_Event_Window_Gravity;
+typedef struct _Ecore_X_Event_Window_Resize_Request Ecore_X_Event_Window_Resize_Request;
+typedef struct _Ecore_X_Event_Window_Stack Ecore_X_Event_Window_Stack;
+typedef struct _Ecore_X_Event_Window_Stack_Request Ecore_X_Event_Window_Stack_Request;
+typedef struct _Ecore_X_Event_Window_Property Ecore_X_Event_Window_Property;
+typedef struct _Ecore_X_Event_Window_Colormap Ecore_X_Event_Window_Colormap;
+typedef struct _Ecore_X_Event_Mapping_Change Ecore_X_Event_Mapping_Change;
+typedef struct _Ecore_X_Event_Window_Mapping Ecore_X_Event_Window_Mapping;
+typedef struct _Ecore_X_Event_Selection_Clear Ecore_X_Event_Selection_Clear;
+typedef struct _Ecore_X_Event_Selection_Request Ecore_X_Event_Selection_Request;
+typedef struct _Ecore_X_Event_Selection_Notify Ecore_X_Event_Selection_Notify;
+typedef struct _Ecore_X_Event_Fixes_Selection_Notify Ecore_X_Event_Fixes_Selection_Notify;
+typedef struct _Ecore_X_Selection_Data Ecore_X_Selection_Data;
+typedef struct _Ecore_X_Selection_Data_Files Ecore_X_Selection_Data_Files;
+typedef struct _Ecore_X_Selection_Data_Text Ecore_X_Selection_Data_Text;
+typedef struct _Ecore_X_Selection_Data_Targets Ecore_X_Selection_Data_Targets;
+typedef struct _Ecore_X_Event_Xdnd_Enter Ecore_X_Event_Xdnd_Enter;
+typedef struct _Ecore_X_Event_Xdnd_Position Ecore_X_Event_Xdnd_Position;
+typedef struct _Ecore_X_Event_Xdnd_Status Ecore_X_Event_Xdnd_Status;
+typedef struct _Ecore_X_Event_Xdnd_Leave Ecore_X_Event_Xdnd_Leave;
+typedef struct _Ecore_X_Event_Xdnd_Drop Ecore_X_Event_Xdnd_Drop;
+typedef struct _Ecore_X_Event_Xdnd_Finished Ecore_X_Event_Xdnd_Finished;
+typedef struct _Ecore_X_Event_Client_Message Ecore_X_Event_Client_Message;
+typedef struct _Ecore_X_Event_Window_Shape Ecore_X_Event_Window_Shape;
+typedef struct _Ecore_X_Event_Screensaver_Notify Ecore_X_Event_Screensaver_Notify;
+typedef struct _Ecore_X_Event_Gesture_Notify_Flick Ecore_X_Event_Gesture_Notify_Flick;
+typedef struct _Ecore_X_Event_Gesture_Notify_Pan Ecore_X_Event_Gesture_Notify_Pan;
+typedef struct _Ecore_X_Event_Gesture_Notify_PinchRotation Ecore_X_Event_Gesture_Notify_PinchRotation;
+typedef struct _Ecore_X_Event_Gesture_Notify_Tap Ecore_X_Event_Gesture_Notify_Tap;
+typedef struct _Ecore_X_Event_Gesture_Notify_TapNHold Ecore_X_Event_Gesture_Notify_TapNHold;
+typedef struct _Ecore_X_Event_Gesture_Notify_Hold Ecore_X_Event_Gesture_Notify_Hold;
+typedef struct _Ecore_X_Event_Gesture_Notify_Group Ecore_X_Event_Gesture_Notify_Group;
+typedef struct _Ecore_X_Event_Sync_Counter Ecore_X_Event_Sync_Counter;
+typedef struct _Ecore_X_Event_Sync_Alarm Ecore_X_Event_Sync_Alarm;
+typedef struct _Ecore_X_Event_Screen_Change Ecore_X_Event_Screen_Change;
+typedef struct _Ecore_X_Event_Randr_Crtc_Change Ecore_X_Event_Randr_Crtc_Change;
+typedef struct _Ecore_X_Event_Randr_Output_Change Ecore_X_Event_Randr_Output_Change;
+typedef struct _Ecore_X_Event_Randr_Output_Property_Notify Ecore_X_Event_Randr_Output_Property_Notify;
+
+typedef struct _Ecore_X_Event_Window_Delete_Request Ecore_X_Event_Window_Delete_Request;
+typedef struct _Ecore_X_Event_Window_Move_Resize_Request Ecore_X_Event_Window_Move_Resize_Request;
+typedef struct _Ecore_X_Event_Window_State_Request Ecore_X_Event_Window_State_Request;
+typedef struct _Ecore_X_Event_Frame_Extents_Request Ecore_X_Event_Frame_Extents_Request;
+typedef struct _Ecore_X_Event_Ping Ecore_X_Event_Ping;
+typedef struct _Ecore_X_Event_Desktop_Change Ecore_X_Event_Desktop_Change;
+
+typedef struct _Ecore_X_Event_Startup_Sequence Ecore_X_Event_Startup_Sequence;
+
+typedef struct _Ecore_X_Event_Generic Ecore_X_Event_Generic;
+
+typedef struct _Ecore_X_Randr_Screen_Size Ecore_X_Randr_Screen_Size;
+typedef struct _Ecore_X_Randr_Screen_Size_MM Ecore_X_Randr_Screen_Size_MM;
+
+typedef struct _Ecore_X_Xdnd_Position Ecore_X_Xdnd_Position;
+
+struct _Ecore_X_Event_Mouse_In
+{
+ int modifiers;
+ int x, y;
+ Eina_Bool same_screen : 1;
+ struct
+ {
+ int x, y;
+ } root;
+ Ecore_X_Window win;
+ Ecore_X_Window event_win;
+ Ecore_X_Window root_win;
+ Ecore_X_Event_Mode mode;
+ Ecore_X_Event_Detail detail;
+ Ecore_X_Time time;
+};
+
+struct _Ecore_X_Event_Mouse_Out
+{
+ int modifiers;
+ int x, y;
+ int same_screen;
+ struct
+ {
+ int x, y;
+ } root;
+ Ecore_X_Window win;
+ Ecore_X_Window event_win;
+ Ecore_X_Window root_win;
+ Ecore_X_Event_Mode mode;
+ Ecore_X_Event_Detail detail;
+ Ecore_X_Time time;
+};
+
+struct _Ecore_X_Event_Window_Focus_In
+{
+ Ecore_X_Window win;
+ Ecore_X_Event_Mode mode;
+ Ecore_X_Event_Detail detail;
+ Ecore_X_Time time;
+};
+
+struct _Ecore_X_Event_Window_Focus_Out
+{
+ Ecore_X_Window win;
+ Ecore_X_Event_Mode mode;
+ Ecore_X_Event_Detail detail;
+ Ecore_X_Time time;
+};
+
+struct _Ecore_X_Event_Window_Keymap
+{
+ Ecore_X_Window win;
+};
+
+struct _Ecore_X_Event_Window_Damage
+{
+ Ecore_X_Window win;
+ int x, y, w, h;
+ int count;
+ Ecore_X_Time time;
+};
+
+struct _Ecore_X_Event_Window_Visibility_Change
+{
+ Ecore_X_Window win;
+ int fully_obscured;
+ Ecore_X_Time time;
+};
+
+struct _Ecore_X_Event_Window_Create
+{
+ Ecore_X_Window win;
+ Ecore_X_Window parent;
+ int override;
+ int x, y, w, h;
+ int border;
+ Ecore_X_Time time;
+};
+
+struct _Ecore_X_Event_Window_Destroy
+{
+ Ecore_X_Window win;
+ Ecore_X_Window event_win;
+ Ecore_X_Time time;
+};
+
+struct _Ecore_X_Event_Window_Hide
+{
+ Ecore_X_Window win;
+ Ecore_X_Window event_win;
+ Ecore_X_Time time;
+};
+
+struct _Ecore_X_Event_Window_Show
+{
+ Ecore_X_Window win;
+ Ecore_X_Window event_win;
+ Ecore_X_Time time;
+};
+
+struct _Ecore_X_Event_Window_Show_Request
+{
+ Ecore_X_Window win;
+ Ecore_X_Window parent;
+ Ecore_X_Time time;
+};
+
+struct _Ecore_X_Event_Window_Reparent
+{
+ Ecore_X_Window win;
+ Ecore_X_Window event_win;
+ Ecore_X_Window parent;
+ Ecore_X_Time time;
+};
+
+struct _Ecore_X_Event_Window_Configure
+{
+ Ecore_X_Window win;
+ Ecore_X_Window event_win;
+ Ecore_X_Window abovewin;
+ int x, y, w, h;
+ int border;
+ Eina_Bool override : 1;
+ Eina_Bool from_wm : 1;
+ Ecore_X_Time time;
+};
+
+struct _Ecore_X_Event_Window_Configure_Request
+{
+ Ecore_X_Window win;
+ Ecore_X_Window parent_win;
+ Ecore_X_Window abovewin;
+ int x, y, w, h;
+ int border;
+ Ecore_X_Window_Stack_Mode detail;
+ unsigned long value_mask;
+ Ecore_X_Time time;
+};
+
+struct _Ecore_X_Event_Window_Gravity
+{
+ Ecore_X_Window win;
+ Ecore_X_Window event_win;
+ Ecore_X_Time time;
+};
+
+struct _Ecore_X_Event_Window_Resize_Request
+{
+ Ecore_X_Window win;
+ int w, h;
+ Ecore_X_Time time;
+};
+
+struct _Ecore_X_Event_Window_Stack
+{
+ Ecore_X_Window win;
+ Ecore_X_Window event_win;
+ Ecore_X_Window_Stack_Mode detail;
+ Ecore_X_Time time;
+};
+
+struct _Ecore_X_Event_Window_Stack_Request
+{
+ Ecore_X_Window win;
+ Ecore_X_Window parent;
+ Ecore_X_Window_Stack_Mode detail;
+ Ecore_X_Time time;
+};
+
+struct _Ecore_X_Event_Window_Property
+{
+ Ecore_X_Window win;
+ Ecore_X_Atom atom;
+ Ecore_X_Time time;
+};
+
+struct _Ecore_X_Event_Window_Colormap
+{
+ Ecore_X_Window win;
+ Ecore_X_Colormap cmap;
+ Eina_Bool installed : 1;
+ Ecore_X_Time time;
+};
+
+struct _Ecore_X_Event_Mapping_Change
+{
+ Ecore_X_Mapping_Type type;
+ int keycode;
+ int num;
+};
+
+struct _Ecore_X_Event_Selection_Clear
+{
+ Ecore_X_Window win;
+ Ecore_X_Selection selection;
+ Ecore_X_Atom atom;
+ Ecore_X_Time time;
+};
+
+struct _Ecore_X_Event_Selection_Request
+{
+ Ecore_X_Window owner;
+ Ecore_X_Window requestor;
+ Ecore_X_Time time;
+ Ecore_X_Atom selection;
+ Ecore_X_Atom target;
+ Ecore_X_Atom property;
+};
+
+typedef enum
+{
+ ECORE_X_OWNER_CHANGE_REASON_NEW_OWNER,
+ ECORE_X_OWNER_CHANGE_REASON_DESTROY,
+ ECORE_X_OWNER_CHANGE_REASON_CLOSE
+} Ecore_X_Owner_Change_Reason;
+
+struct _Ecore_X_Event_Fixes_Selection_Notify
+{
+ Ecore_X_Window win;
+ Ecore_X_Window owner;
+ Ecore_X_Time time;
+ Ecore_X_Time selection_time;
+ Ecore_X_Selection selection;
+ Ecore_X_Atom atom;
+ Ecore_X_Owner_Change_Reason reason;
+};
+
+struct _Ecore_X_Event_Selection_Notify
+{
+ Ecore_X_Window win;
+ Ecore_X_Time time;
+ Ecore_X_Selection selection;
+ Ecore_X_Atom atom;
+ char *target;
+ void *data;
+};
+
+struct _Ecore_X_Selection_Data
+{
+ enum
+ {
+ ECORE_X_SELECTION_CONTENT_NONE,
+ ECORE_X_SELECTION_CONTENT_TEXT,
+ ECORE_X_SELECTION_CONTENT_FILES,
+ ECORE_X_SELECTION_CONTENT_TARGETS,
+ ECORE_X_SELECTION_CONTENT_CUSTOM
+ } content;
+ unsigned char *data;
+ int length;
+ int format;
+ int (*free)(void *data);
+};
+
+struct _Ecore_X_Selection_Data_Files
+{
+ Ecore_X_Selection_Data data;
+ char **files;
+ int num_files;
+};
+
+struct _Ecore_X_Selection_Data_Text
+{
+ Ecore_X_Selection_Data data;
+ char *text;
+};
+
+struct _Ecore_X_Selection_Data_Targets
+{
+ Ecore_X_Selection_Data data;
+ char **targets;
+ int num_targets;
+};
+
+struct _Ecore_X_Event_Xdnd_Enter
+{
+ Ecore_X_Window win, source;
+
+ char **types;
+ int num_types;
+};
+
+struct _Ecore_X_Event_Xdnd_Position
+{
+ Ecore_X_Window win, source;
+ struct
+ {
+ int x, y;
+ } position;
+ Ecore_X_Atom action;
+};
+
+struct _Ecore_X_Xdnd_Position
+{
+ Ecore_X_Window win, prev;
+ struct
+ {
+ int x, y;
+ } position;
+};
+
+struct _Ecore_X_Event_Xdnd_Status
+{
+ Ecore_X_Window win, target;
+ Eina_Bool will_accept : 1;
+ Ecore_X_Rectangle rectangle;
+ Ecore_X_Atom action;
+};
+
+struct _Ecore_X_Event_Xdnd_Leave
+{
+ Ecore_X_Window win, source;
+};
+
+struct _Ecore_X_Event_Xdnd_Drop
+{
+ Ecore_X_Window win, source;
+ Ecore_X_Atom action;
+ struct
+ {
+ int x, y;
+ } position;
+};
+
+struct _Ecore_X_Event_Xdnd_Finished
+{
+ Ecore_X_Window win, target;
+ Eina_Bool completed : 1;
+ Ecore_X_Atom action;
+};
+
+struct _Ecore_X_Event_Client_Message
+{
+ Ecore_X_Window win;
+ Ecore_X_Atom message_type;
+ int format;
+ union
+ {
+ char b[20];
+ short s[10];
+ long l[5];
+ } data;
+ Ecore_X_Time time;
+};
+
+struct _Ecore_X_Event_Window_Shape
+{
+ Ecore_X_Window win;
+ Ecore_X_Time time;
+ Ecore_X_Shape_Type type;
+ int x, y, w, h;
+ Eina_Bool shaped : 1;
+};
+
+struct _Ecore_X_Event_Screensaver_Notify
+{
+ Ecore_X_Window win;
+ Eina_Bool on : 1;
+ Ecore_X_Time time;
+};
+
+struct _Ecore_X_Event_Sync_Counter
+{
+ Ecore_X_Time time;
+};
+
+struct _Ecore_X_Event_Sync_Alarm
+{
+ Ecore_X_Time time;
+ Ecore_X_Sync_Alarm alarm;
+};
+
+struct _Ecore_X_Randr_Screen_Size
+{
+ int width, height;
+};
+
+struct _Ecore_X_Randr_Screen_Size_MM
+{
+ int width, height, width_mm, height_mm;
+};
+
+struct _Ecore_X_Event_Screen_Change
+{
+ Ecore_X_Window win;
+ Ecore_X_Window root;
+ Ecore_X_Randr_Screen_Size_MM size; /* in pixel and millimeters */
+ Ecore_X_Time time;
+ Ecore_X_Time config_time;
+ Ecore_X_Randr_Orientation orientation;
+ Ecore_X_Render_Subpixel_Order subpixel_order;
+ Ecore_X_Randr_Size_ID size_id;
+};
+
+struct _Ecore_X_Event_Randr_Crtc_Change
+{
+ Ecore_X_Window win;
+ Ecore_X_Randr_Crtc crtc;
+ Ecore_X_Randr_Mode mode;
+ Ecore_X_Randr_Orientation orientation;
+ Eina_Rectangle geo;
+};
+
+struct _Ecore_X_Event_Randr_Output_Change
+{
+ Ecore_X_Window win;
+ Ecore_X_Randr_Output output;
+ Ecore_X_Randr_Crtc crtc;
+ Ecore_X_Randr_Mode mode;
+ Ecore_X_Randr_Orientation orientation;
+ Ecore_X_Randr_Connection_Status connection;
+ Ecore_X_Render_Subpixel_Order subpixel_order;
+};
+
+struct _Ecore_X_Event_Randr_Output_Property_Notify
+{
+ Ecore_X_Window win;
+ Ecore_X_Randr_Output output;
+ Ecore_X_Atom property;
+ Ecore_X_Time time;
+ Ecore_X_Randr_Property_Change state;
+};
+
+struct _Ecore_X_Event_Window_Delete_Request
+{
+ Ecore_X_Window win;
+ Ecore_X_Time time;
+};
+
+struct _Ecore_X_Event_Window_Prop_Title_Change
+{
+ Ecore_X_Window win;
+ char *title;
+ Ecore_X_Time time;
+};
+
+struct _Ecore_X_Event_Window_Prop_Visible_Title_Change
+{
+ Ecore_X_Window win;
+ char *title;
+ Ecore_X_Time time;
+};
+
+struct _Ecore_X_Event_Window_Prop_Icon_Name_Change
+{
+ Ecore_X_Window win;
+ char *name;
+ Ecore_X_Time time;
+};
+
+struct _Ecore_X_Event_Window_Prop_Visible_Icon_Name_Change
+{
+ Ecore_X_Window win;
+ char *name;
+ Ecore_X_Time time;
+};
+
+struct _Ecore_X_Event_Window_Prop_Client_Machine_Change
+{
+ Ecore_X_Window win;
+ char *name;
+ Ecore_X_Time time;
+};
+
+struct _Ecore_X_Event_Window_Prop_Name_Class_Change
+{
+ Ecore_X_Window win;
+ char *name;
+ char *clas;
+ Ecore_X_Time time;
+};
+
+struct _Ecore_X_Event_Window_Prop_Pid_Change
+{
+ Ecore_X_Window win;
+ pid_t pid;
+ Ecore_X_Time time;
+};
+
+struct _Ecore_X_Event_Window_Prop_Desktop_Change
+{
+ Ecore_X_Window win;
+ long desktop;
+ Ecore_X_Time time;
+};
+
+struct _Ecore_X_Event_Startup_Sequence
+{
+ Ecore_X_Window win;
+};
+
+struct _Ecore_X_Event_Window_Move_Resize_Request
+{
+ Ecore_X_Window win;
+ int x, y;
+ int direction;
+ int button;
+ int source;
+};
+
+struct _Ecore_X_Event_Window_State_Request
+{
+ Ecore_X_Window win;
+ Ecore_X_Window_State_Action action;
+ Ecore_X_Window_State state[2];
+ int source;
+};
+
+struct _Ecore_X_Event_Frame_Extents_Request
+{
+ Ecore_X_Window win;
+};
+
+struct _Ecore_X_Event_Ping
+{
+ Ecore_X_Window win;
+ Ecore_X_Window event_win;
+ Ecore_X_Time time;
+};
+
+struct _Ecore_X_Event_Desktop_Change
+{
+ Ecore_X_Window win;
+ unsigned int desk;
+ int source;
+};
+
+struct _Ecore_X_Event_Generic
+{
+ int extension;
+ int evtype;
+ unsigned int cookie;
+ void *data;
+};
+
+extern EAPI int ECORE_X_EVENT_ANY; /**< low level event dependent on
+ backend in use, if Xlib will be XEvent, if XCB will be xcb_generic_event_t.
+ @warning avoid using it.
+ */
+
+extern EAPI int ECORE_X_EVENT_MOUSE_IN;
+extern EAPI int ECORE_X_EVENT_MOUSE_OUT;
+extern EAPI int ECORE_X_EVENT_WINDOW_FOCUS_IN;
+extern EAPI int ECORE_X_EVENT_WINDOW_FOCUS_OUT;
+extern EAPI int ECORE_X_EVENT_WINDOW_KEYMAP;
+extern EAPI int ECORE_X_EVENT_WINDOW_DAMAGE;
+extern EAPI int ECORE_X_EVENT_WINDOW_VISIBILITY_CHANGE;
+extern EAPI int ECORE_X_EVENT_WINDOW_CREATE;
+extern EAPI int ECORE_X_EVENT_WINDOW_DESTROY;
+extern EAPI int ECORE_X_EVENT_WINDOW_HIDE;
+extern EAPI int ECORE_X_EVENT_WINDOW_SHOW;
+extern EAPI int ECORE_X_EVENT_WINDOW_SHOW_REQUEST;
+extern EAPI int ECORE_X_EVENT_WINDOW_REPARENT;
+extern EAPI int ECORE_X_EVENT_WINDOW_CONFIGURE;
+extern EAPI int ECORE_X_EVENT_WINDOW_CONFIGURE_REQUEST;
+extern EAPI int ECORE_X_EVENT_WINDOW_GRAVITY;
+extern EAPI int ECORE_X_EVENT_WINDOW_RESIZE_REQUEST;
+extern EAPI int ECORE_X_EVENT_WINDOW_STACK;
+extern EAPI int ECORE_X_EVENT_WINDOW_STACK_REQUEST;
+extern EAPI int ECORE_X_EVENT_WINDOW_PROPERTY;
+extern EAPI int ECORE_X_EVENT_WINDOW_COLORMAP;
+extern EAPI int ECORE_X_EVENT_WINDOW_MAPPING;
+extern EAPI int ECORE_X_EVENT_MAPPING_CHANGE;
+extern EAPI int ECORE_X_EVENT_SELECTION_CLEAR;
+extern EAPI int ECORE_X_EVENT_SELECTION_REQUEST;
+extern EAPI int ECORE_X_EVENT_SELECTION_NOTIFY;
+extern EAPI int ECORE_X_EVENT_FIXES_SELECTION_NOTIFY;
+extern EAPI int ECORE_X_EVENT_CLIENT_MESSAGE;
+extern EAPI int ECORE_X_EVENT_WINDOW_SHAPE;
+extern EAPI int ECORE_X_EVENT_SCREENSAVER_NOTIFY;
+extern EAPI int ECORE_X_EVENT_GESTURE_NOTIFY_FLICK;
+extern EAPI int ECORE_X_EVENT_GESTURE_NOTIFY_PAN;
+extern EAPI int ECORE_X_EVENT_GESTURE_NOTIFY_PINCHROTATION;
+extern EAPI int ECORE_X_EVENT_GESTURE_NOTIFY_TAP;
+extern EAPI int ECORE_X_EVENT_GESTURE_NOTIFY_TAPNHOLD;
+extern EAPI int ECORE_X_EVENT_GESTURE_NOTIFY_HOLD;
+extern EAPI int ECORE_X_EVENT_GESTURE_NOTIFY_GROUP;
+extern EAPI int ECORE_X_EVENT_SYNC_COUNTER;
+extern EAPI int ECORE_X_EVENT_SYNC_ALARM;
+extern EAPI int ECORE_X_EVENT_SCREEN_CHANGE;
+extern EAPI int ECORE_X_EVENT_RANDR_CRTC_CHANGE;
+extern EAPI int ECORE_X_EVENT_RANDR_OUTPUT_CHANGE;
+extern EAPI int ECORE_X_EVENT_RANDR_OUTPUT_PROPERTY_NOTIFY;
+extern EAPI int ECORE_X_EVENT_DAMAGE_NOTIFY;
+
+extern EAPI int ECORE_X_EVENT_WINDOW_DELETE_REQUEST;
+
+extern EAPI int ECORE_X_EVENT_WINDOW_MOVE_RESIZE_REQUEST;
+extern EAPI int ECORE_X_EVENT_WINDOW_STATE_REQUEST;
+extern EAPI int ECORE_X_EVENT_FRAME_EXTENTS_REQUEST;
+extern EAPI int ECORE_X_EVENT_PING;
+extern EAPI int ECORE_X_EVENT_DESKTOP_CHANGE;
+
+extern EAPI int ECORE_X_EVENT_STARTUP_SEQUENCE_NEW;
+extern EAPI int ECORE_X_EVENT_STARTUP_SEQUENCE_CHANGE;
+extern EAPI int ECORE_X_EVENT_STARTUP_SEQUENCE_REMOVE;
+extern EAPI int ECORE_X_EVENT_XKB_STATE_NOTIFY; /** @since 1.7 */
+extern EAPI int ECORE_X_EVENT_XKB_NEWKBD_NOTIFY; /** @since 1.7 */
+
+extern EAPI int ECORE_X_EVENT_GENERIC;
+
+extern EAPI int ECORE_X_EVENT_XDND_ENTER;
+extern EAPI int ECORE_X_EVENT_XDND_POSITION;
+extern EAPI int ECORE_X_EVENT_XDND_STATUS;
+extern EAPI int ECORE_X_EVENT_XDND_LEAVE;
+extern EAPI int ECORE_X_EVENT_XDND_DROP;
+extern EAPI int ECORE_X_EVENT_XDND_FINISHED;
+
+extern EAPI int ECORE_X_MODIFIER_SHIFT; /**< @since 1.7 */
+extern EAPI int ECORE_X_MODIFIER_CTRL; /**< @since 1.7 */
+extern EAPI int ECORE_X_MODIFIER_ALT; /**< @since 1.7 */
+extern EAPI int ECORE_X_MODIFIER_WIN; /**< @since 1.7 */
+extern EAPI int ECORE_X_MODIFIER_ALTGR; /**< @since 1.7 */
+
+extern EAPI int ECORE_X_LOCK_SCROLL;
+extern EAPI int ECORE_X_LOCK_NUM;
+extern EAPI int ECORE_X_LOCK_CAPS;
+extern EAPI int ECORE_X_LOCK_SHIFT;
+
+extern EAPI int ECORE_X_RAW_BUTTON_PRESS; /**< @since 1.8 */
+extern EAPI int ECORE_X_RAW_BUTTON_RELEASE; /**< @since 1.8 */
+extern EAPI int ECORE_X_RAW_MOTION; /**< @since 1.8 */
+
+typedef enum _Ecore_X_WM_Protocol
+{
+ /** If enabled the window manager will be asked to send a
+ * delete message instead of just closing (destroying) the window. */
+ ECORE_X_WM_PROTOCOL_DELETE_REQUEST,
+
+ /** If enabled the window manager will be told that the window
+ * explicitly sets input focus. */
+ ECORE_X_WM_PROTOCOL_TAKE_FOCUS,
+
+ /** If enabled the window manager can ping the window to check
+ * if it is alive. */
+ ECORE_X_NET_WM_PROTOCOL_PING,
+
+ /** If enabled the window manager can sync updating with the
+ * window (?) */
+ ECORE_X_NET_WM_PROTOCOL_SYNC_REQUEST,
+
+ /** Number of defined items */
+ ECORE_X_WM_PROTOCOL_NUM
+} Ecore_X_WM_Protocol;
+
+typedef enum _Ecore_X_Window_Input_Mode
+{
+ /** The window can never be focused */
+ ECORE_X_WINDOW_INPUT_MODE_NONE,
+
+ /** The window can be focused by the WM but doesn't focus itself */
+ ECORE_X_WINDOW_INPUT_MODE_PASSIVE,
+
+ /** The window sets the focus itself if one of its sub-windows
+ * already is focused */
+ ECORE_X_WINDOW_INPUT_MODE_ACTIVE_LOCAL,
+
+ /** The window sets the focus itself even if another window
+ * is currently focused */
+ ECORE_X_WINDOW_INPUT_MODE_ACTIVE_GLOBAL
+} Ecore_X_Window_Input_Mode;
+
+/**
+ * @typedef _Ecore_X_Window_State_Hint
+ * Defines the different state hint of the window of Ecore_X.
+ */
+typedef enum _Ecore_X_Window_State_Hint
+{
+ /** Do not provide any state hint to the window manager */
+ ECORE_X_WINDOW_STATE_HINT_NONE = -1,
+
+ /** The window wants to remain hidden and NOT iconified */
+ ECORE_X_WINDOW_STATE_HINT_WITHDRAWN,
+
+ /** The window wants to be mapped normally */
+ ECORE_X_WINDOW_STATE_HINT_NORMAL,
+
+ /** The window wants to start in an iconified state */
+ ECORE_X_WINDOW_STATE_HINT_ICONIC
+} Ecore_X_Window_State_Hint;
+
+typedef enum _Ecore_X_Window_Type
+{
+ ECORE_X_WINDOW_TYPE_UNKNOWN = 0,
+ ECORE_X_WINDOW_TYPE_DESKTOP,
+ ECORE_X_WINDOW_TYPE_DOCK,
+ ECORE_X_WINDOW_TYPE_TOOLBAR,
+ ECORE_X_WINDOW_TYPE_MENU,
+ ECORE_X_WINDOW_TYPE_UTILITY,
+ ECORE_X_WINDOW_TYPE_SPLASH,
+ ECORE_X_WINDOW_TYPE_DIALOG,
+ ECORE_X_WINDOW_TYPE_NORMAL,
+ ECORE_X_WINDOW_TYPE_DROPDOWN_MENU,
+ ECORE_X_WINDOW_TYPE_POPUP_MENU,
+ ECORE_X_WINDOW_TYPE_TOOLTIP,
+ ECORE_X_WINDOW_TYPE_NOTIFICATION,
+ ECORE_X_WINDOW_TYPE_COMBO,
+ ECORE_X_WINDOW_TYPE_DND
+} Ecore_X_Window_Type;
+
+typedef enum _Ecore_X_Action
+{
+ ECORE_X_ACTION_MOVE,
+ ECORE_X_ACTION_RESIZE,
+ ECORE_X_ACTION_MINIMIZE,
+ ECORE_X_ACTION_SHADE,
+ ECORE_X_ACTION_STICK,
+ ECORE_X_ACTION_MAXIMIZE_HORZ,
+ ECORE_X_ACTION_MAXIMIZE_VERT,
+ ECORE_X_ACTION_FULLSCREEN,
+ ECORE_X_ACTION_CHANGE_DESKTOP,
+ ECORE_X_ACTION_CLOSE,
+ ECORE_X_ACTION_ABOVE,
+ ECORE_X_ACTION_BELOW
+} Ecore_X_Action;
+
+typedef enum _Ecore_X_Window_Configure_Mask
+{
+ ECORE_X_WINDOW_CONFIGURE_MASK_X = (1 << 0),
+ ECORE_X_WINDOW_CONFIGURE_MASK_Y = (1 << 1),
+ ECORE_X_WINDOW_CONFIGURE_MASK_W = (1 << 2),
+ ECORE_X_WINDOW_CONFIGURE_MASK_H = (1 << 3),
+ ECORE_X_WINDOW_CONFIGURE_MASK_BORDER_WIDTH = (1 << 4),
+ ECORE_X_WINDOW_CONFIGURE_MASK_SIBLING = (1 << 5),
+ ECORE_X_WINDOW_CONFIGURE_MASK_STACK_MODE = (1 << 6)
+} Ecore_X_Window_Configure_Mask;
+
+typedef enum _Ecore_X_Virtual_Keyboard_State
+{
+ ECORE_X_VIRTUAL_KEYBOARD_STATE_UNKNOWN = 0,
+ ECORE_X_VIRTUAL_KEYBOARD_STATE_OFF,
+ ECORE_X_VIRTUAL_KEYBOARD_STATE_ON,
+ ECORE_X_VIRTUAL_KEYBOARD_STATE_ALPHA,
+ ECORE_X_VIRTUAL_KEYBOARD_STATE_NUMERIC,
+ ECORE_X_VIRTUAL_KEYBOARD_STATE_PIN,
+ ECORE_X_VIRTUAL_KEYBOARD_STATE_PHONE_NUMBER,
+ ECORE_X_VIRTUAL_KEYBOARD_STATE_HEX,
+ ECORE_X_VIRTUAL_KEYBOARD_STATE_TERMINAL,
+ ECORE_X_VIRTUAL_KEYBOARD_STATE_PASSWORD,
+ ECORE_X_VIRTUAL_KEYBOARD_STATE_IP,
+ ECORE_X_VIRTUAL_KEYBOARD_STATE_HOST,
+ ECORE_X_VIRTUAL_KEYBOARD_STATE_FILE,
+ ECORE_X_VIRTUAL_KEYBOARD_STATE_URL,
+ ECORE_X_VIRTUAL_KEYBOARD_STATE_KEYPAD,
+ ECORE_X_VIRTUAL_KEYBOARD_STATE_J2ME
+} Ecore_X_Virtual_Keyboard_State;
+
+typedef enum _Ecore_X_Illume_Mode
+{
+ ECORE_X_ILLUME_MODE_UNKNOWN = 0,
+ ECORE_X_ILLUME_MODE_SINGLE,
+ ECORE_X_ILLUME_MODE_DUAL_TOP,
+ ECORE_X_ILLUME_MODE_DUAL_LEFT
+} Ecore_X_Illume_Mode;
+
+typedef enum _Ecore_X_Illume_Quickpanel_State
+{
+ ECORE_X_ILLUME_QUICKPANEL_STATE_UNKNOWN = 0,
+ ECORE_X_ILLUME_QUICKPANEL_STATE_OFF,
+ ECORE_X_ILLUME_QUICKPANEL_STATE_ON
+} Ecore_X_Illume_Quickpanel_State;
+
+typedef enum _Ecore_X_Illume_Indicator_State
+{
+ ECORE_X_ILLUME_INDICATOR_STATE_UNKNOWN = 0,
+ ECORE_X_ILLUME_INDICATOR_STATE_OFF,
+ ECORE_X_ILLUME_INDICATOR_STATE_ON
+} Ecore_X_Illume_Indicator_State;
+
+typedef enum _Ecore_X_Illume_Clipboard_State
+{
+ ECORE_X_ILLUME_CLIPBOARD_STATE_UNKNOWN = 0,
+ ECORE_X_ILLUME_CLIPBOARD_STATE_OFF,
+ ECORE_X_ILLUME_CLIPBOARD_STATE_ON
+} Ecore_X_Illume_Clipboard_State;
+
+typedef enum _Ecore_X_Illume_Indicator_Opacity_Mode
+{
+ ECORE_X_ILLUME_INDICATOR_OPACITY_UNKNOWN = 0,
+ ECORE_X_ILLUME_INDICATOR_OPAQUE,
+ ECORE_X_ILLUME_INDICATOR_TRANSLUCENT,
+ ECORE_X_ILLUME_INDICATOR_TRANSPARENT
+} Ecore_X_Illume_Indicator_Opacity_Mode;
+
+typedef enum _Ecore_X_Illume_Window_State
+{
+ ECORE_X_ILLUME_WINDOW_STATE_NORMAL = 0,
+ ECORE_X_ILLUME_WINDOW_STATE_FLOATING
+} Ecore_X_Illume_Window_State;
+
+/* Window layer constants */
+#define ECORE_X_WINDOW_LAYER_BELOW 2
+#define ECORE_X_WINDOW_LAYER_NORMAL 4
+#define ECORE_X_WINDOW_LAYER_ABOVE 6
+
+/* Property list operations */
+#define ECORE_X_PROP_LIST_REMOVE 0
+#define ECORE_X_PROP_LIST_ADD 1
+#define ECORE_X_PROP_LIST_TOGGLE 2
+
+EAPI int ecore_x_init(const char *name);
+EAPI int ecore_x_shutdown(void);
+EAPI int ecore_x_disconnect(void);
+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 int ecore_x_screen_count_get(void);
+EAPI int ecore_x_screen_index_get(const Ecore_X_Screen *screen);
+EAPI Ecore_X_Screen *ecore_x_screen_get(int index);
+
+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);
+EAPI void ecore_x_sync(void);
+EAPI void ecore_x_killall(Ecore_X_Window root);
+EAPI void ecore_x_kill(Ecore_X_Window win);
+EAPI int ecore_x_dpi_get(void);
+EAPI Eina_Bool ecore_x_bell(int percent);
+EAPI unsigned int ecore_x_visual_id_get(Ecore_X_Visual visual);
+
+EAPI Ecore_X_Visual ecore_x_default_visual_get(Ecore_X_Display *disp, Ecore_X_Screen *screen);
+EAPI Ecore_X_Colormap ecore_x_default_colormap_get(Ecore_X_Display *disp, Ecore_X_Screen *screen);
+EAPI int ecore_x_default_depth_get(Ecore_X_Display *disp, Ecore_X_Screen *screen);
+
+EAPI Ecore_X_Time ecore_x_current_time_get(void);
+
+EAPI void ecore_x_error_handler_set(void (*func)(void *data), const void *data);
+EAPI void ecore_x_io_error_handler_set(void (*func)(void *data), const void *data);
+EAPI int ecore_x_error_request_get(void);
+EAPI int ecore_x_error_code_get(void);
+EAPI Ecore_X_ID ecore_x_error_resource_id_get(void);
+
+EAPI void ecore_x_event_mask_set(Ecore_X_Window w, Ecore_X_Event_Mask mask);
+EAPI void ecore_x_event_mask_unset(Ecore_X_Window w, Ecore_X_Event_Mask mask);
+
+EAPI Eina_Bool ecore_x_selection_notify_send(Ecore_X_Window requestor, Ecore_X_Atom selection, Ecore_X_Atom target, Ecore_X_Atom property, Ecore_X_Time time);
+EAPI Eina_Bool ecore_x_selection_primary_set(Ecore_X_Window w, const void *data, int size);
+EAPI Eina_Bool ecore_x_selection_primary_clear(void);
+EAPI Eina_Bool ecore_x_selection_secondary_set(Ecore_X_Window w, const void *data, int size);
+EAPI Eina_Bool ecore_x_selection_secondary_clear(void);
+EAPI Eina_Bool ecore_x_selection_xdnd_set(Ecore_X_Window w, const void *data, int size);
+EAPI Eina_Bool ecore_x_selection_xdnd_clear(void);
+EAPI Eina_Bool ecore_x_selection_clipboard_set(Ecore_X_Window w, const void *data, int size);
+EAPI Eina_Bool ecore_x_selection_clipboard_clear(void);
+EAPI void ecore_x_selection_primary_request(Ecore_X_Window w, const char *target);
+EAPI void ecore_x_selection_secondary_request(Ecore_X_Window w, const char *target);
+EAPI void ecore_x_selection_xdnd_request(Ecore_X_Window w, const char *target);
+EAPI void ecore_x_selection_clipboard_request(Ecore_X_Window w, const char *target);
+EAPI Eina_Bool ecore_x_selection_convert(Ecore_X_Atom selection, Ecore_X_Atom target, void **data_ret, int *len, Ecore_X_Atom *targprop, int *targsize);
+EAPI void ecore_x_selection_converter_add(char *target, Eina_Bool (*func)(char *target, void *data, int size, void **data_ret, int *size_ret, Ecore_X_Atom *, int *));
+EAPI void ecore_x_selection_converter_atom_add(Ecore_X_Atom target, Eina_Bool (*func)(char *target, void *data, int size, void **data_ret, int *size_ret, Ecore_X_Atom *tprop, int *tsize));
+EAPI void ecore_x_selection_converter_del(char *target);
+EAPI void ecore_x_selection_converter_atom_del(Ecore_X_Atom target);
+EAPI void ecore_x_selection_parser_add(const char *target, void *(*func)(const char *target, void *data, int size, int format));
+EAPI void ecore_x_selection_parser_del(const char *target);
+EAPI void ecore_x_selection_owner_set(Ecore_X_Window win, Ecore_X_Atom atom, Ecore_X_Time tm);
+EAPI Ecore_X_Window ecore_x_selection_owner_get(Ecore_X_Atom atom);
+EAPI Eina_Bool ecore_x_selection_converter_text(char *target, void *data, int size, void **data_ret, int *size_ret, Ecore_X_Atom *targprop, int *s); /** @since 1.8 */
+
+EAPI void ecore_x_dnd_aware_set(Ecore_X_Window win, Eina_Bool on);
+EAPI int ecore_x_dnd_version_get(Ecore_X_Window win);
+EAPI Eina_Bool ecore_x_dnd_type_isset(Ecore_X_Window win, const char *type);
+EAPI void ecore_x_dnd_type_set(Ecore_X_Window win, const char *type, Eina_Bool on);
+EAPI void ecore_x_dnd_types_set(Ecore_X_Window win, const char **types, unsigned int num_types);
+EAPI void ecore_x_dnd_actions_set(Ecore_X_Window win, Ecore_X_Atom *actions, unsigned int num_actions);
+EAPI Eina_Bool ecore_x_dnd_begin(Ecore_X_Window source, unsigned char *data, int size);
+EAPI Eina_Bool ecore_x_dnd_drop(void);
+EAPI void ecore_x_dnd_send_status(Eina_Bool will_accept, Eina_Bool suppress, Ecore_X_Rectangle rectangle, Ecore_X_Atom action);
+EAPI void ecore_x_dnd_send_finished(void);
+EAPI void ecore_x_dnd_source_action_set(Ecore_X_Atom action);
+EAPI Ecore_X_Atom ecore_x_dnd_source_action_get(void);
+EAPI void ecore_x_dnd_callback_pos_update_set(void (*cb)(void *, Ecore_X_Xdnd_Position *data), const void *data);
+
+EAPI Ecore_X_Window ecore_x_window_new(Ecore_X_Window parent, int x, int y, int w, int h);
+EAPI Ecore_X_Window ecore_x_window_override_new(Ecore_X_Window parent, int x, int y, int w, int h);
+EAPI int ecore_x_window_argb_get(Ecore_X_Window win);
+EAPI Ecore_X_Window ecore_x_window_manager_argb_new(Ecore_X_Window parent, int x, int y, int w, int h);
+EAPI Ecore_X_Window ecore_x_window_argb_new(Ecore_X_Window parent, int x, int y, int w, int h);
+EAPI Ecore_X_Window ecore_x_window_override_argb_new(Ecore_X_Window parent, int x, int y, int w, int h);
+EAPI Ecore_X_Window ecore_x_window_input_new(Ecore_X_Window parent, int x, int y, int w, int h);
+EAPI void ecore_x_window_configure(Ecore_X_Window win, Ecore_X_Window_Configure_Mask mask, int x, int y, int w, int h, int border_width, Ecore_X_Window sibling, int stack_mode);
+EAPI void ecore_x_window_cursor_set(Ecore_X_Window win, Ecore_X_Cursor c);
+EAPI void ecore_x_window_free(Ecore_X_Window win);
+EAPI void ecore_x_window_ignore_set(Ecore_X_Window win, int ignore);
+EAPI Ecore_X_Window *ecore_x_window_ignore_list(int *num);
+
+EAPI void ecore_x_window_delete_request_send(Ecore_X_Window win);
+EAPI void ecore_x_window_show(Ecore_X_Window win);
+EAPI void ecore_x_window_hide(Ecore_X_Window win);
+EAPI void ecore_x_window_move(Ecore_X_Window win, int x, int y);
+EAPI void ecore_x_window_resize(Ecore_X_Window win, int w, int h);
+EAPI void ecore_x_window_move_resize(Ecore_X_Window win, int x, int y, int w, int h);
+EAPI void ecore_x_window_focus(Ecore_X_Window win);
+EAPI void ecore_x_window_focus_at_time(Ecore_X_Window win, Ecore_X_Time t);
+EAPI Ecore_X_Window ecore_x_window_focus_get(void);
+EAPI void ecore_x_window_raise(Ecore_X_Window win);
+EAPI void ecore_x_window_lower(Ecore_X_Window win);
+EAPI void ecore_x_window_reparent(Ecore_X_Window win, Ecore_X_Window new_parent, int x, int y);
+EAPI void ecore_x_window_size_get(Ecore_X_Window win, int *w, int *h);
+EAPI void ecore_x_window_geometry_get(Ecore_X_Window win, int *x, int *y, int *w, int *h);
+EAPI int ecore_x_window_border_width_get(Ecore_X_Window win);
+EAPI void ecore_x_window_border_width_set(Ecore_X_Window win, int width);
+EAPI int ecore_x_window_depth_get(Ecore_X_Window win);
+EAPI void ecore_x_window_cursor_show(Ecore_X_Window win, Eina_Bool show);
+EAPI void ecore_x_window_defaults_set(Ecore_X_Window win);
+EAPI int ecore_x_window_visible_get(Ecore_X_Window win);
+EAPI Ecore_X_Window ecore_x_window_shadow_tree_at_xy_with_skip_get(Ecore_X_Window base, int x, int y, Ecore_X_Window *skip, int skip_num);
+EAPI Ecore_X_Window ecore_x_window_shadow_parent_get(Ecore_X_Window root, Ecore_X_Window win);
+EAPI void ecore_x_window_shadow_tree_flush(void);
+EAPI Ecore_X_Window ecore_x_window_root_get(Ecore_X_Window win);
+EAPI Ecore_X_Window ecore_x_window_at_xy_get(int x, int y);
+EAPI Ecore_X_Window ecore_x_window_at_xy_with_skip_get(int x, int y, Ecore_X_Window *skip, int skip_num);
+EAPI Ecore_X_Window ecore_x_window_at_xy_begin_get(Ecore_X_Window begin, int x, int y);
+EAPI Ecore_X_Window ecore_x_window_parent_get(Ecore_X_Window win);
+
+EAPI void ecore_x_window_background_color_set(Ecore_X_Window win, unsigned short r, unsigned short g, unsigned short b);
+EAPI void ecore_x_window_gravity_set(Ecore_X_Window win, Ecore_X_Gravity grav);
+EAPI void ecore_x_window_pixel_gravity_set(Ecore_X_Window win, Ecore_X_Gravity grav);
+EAPI void ecore_x_window_pixmap_set(Ecore_X_Window win, Ecore_X_Pixmap pmap);
+EAPI void ecore_x_window_area_clear(Ecore_X_Window win, int x, int y, int w, int h);
+EAPI void ecore_x_window_area_expose(Ecore_X_Window win, int x, int y, int w, int h);
+EAPI void ecore_x_window_override_set(Ecore_X_Window win, Eina_Bool override);
+
+EAPI void ecore_x_window_prop_card32_set(Ecore_X_Window win, Ecore_X_Atom atom, unsigned int *val, unsigned int num);
+EAPI int ecore_x_window_prop_card32_get(Ecore_X_Window win, Ecore_X_Atom atom, unsigned int *val, unsigned int len);
+EAPI int ecore_x_window_prop_card32_list_get(Ecore_X_Window win, Ecore_X_Atom atom, unsigned int **plst);
+
+EAPI void ecore_x_window_prop_xid_set(Ecore_X_Window win, Ecore_X_Atom atom, Ecore_X_Atom type, Ecore_X_ID *lst, unsigned int num);
+EAPI int ecore_x_window_prop_xid_get(Ecore_X_Window win, Ecore_X_Atom atom, Ecore_X_Atom type, Ecore_X_ID *lst, unsigned int len);
+EAPI int ecore_x_window_prop_xid_list_get(Ecore_X_Window win, Ecore_X_Atom atom, Ecore_X_Atom type, Ecore_X_ID **plst);
+EAPI void ecore_x_window_prop_xid_list_change(Ecore_X_Window win, Ecore_X_Atom atom, Ecore_X_Atom type, Ecore_X_ID item, int op);
+EAPI void ecore_x_window_prop_atom_set(Ecore_X_Window win, Ecore_X_Atom atom, Ecore_X_Atom *val, unsigned int num);
+EAPI int ecore_x_window_prop_atom_get(Ecore_X_Window win, Ecore_X_Atom atom, Ecore_X_Atom *val, unsigned int len);
+EAPI int ecore_x_window_prop_atom_list_get(Ecore_X_Window win, Ecore_X_Atom atom, Ecore_X_Atom **plst);
+EAPI void ecore_x_window_prop_atom_list_change(Ecore_X_Window win, Ecore_X_Atom atom, Ecore_X_Atom item, int op);
+EAPI void ecore_x_window_prop_window_set(Ecore_X_Window win, Ecore_X_Atom atom, Ecore_X_Window *val, unsigned int num);
+EAPI int ecore_x_window_prop_window_get(Ecore_X_Window win, Ecore_X_Atom atom, Ecore_X_Window *val, unsigned int len);
+EAPI int ecore_x_window_prop_window_list_get(Ecore_X_Window win, Ecore_X_Atom atom, Ecore_X_Window **plst);
+
+EAPI Ecore_X_Atom ecore_x_window_prop_any_type(void);
+EAPI void ecore_x_window_prop_property_set(Ecore_X_Window win, Ecore_X_Atom type, Ecore_X_Atom format, int size, void *data, int number);
+EAPI int ecore_x_window_prop_property_get(Ecore_X_Window win, Ecore_X_Atom property, Ecore_X_Atom type, int size, unsigned char **data, int *num);
+EAPI void ecore_x_window_prop_property_del(Ecore_X_Window win, Ecore_X_Atom property);
+EAPI Ecore_X_Atom *ecore_x_window_prop_list(Ecore_X_Window win, int *num_ret);
+EAPI void ecore_x_window_prop_string_set(Ecore_X_Window win, Ecore_X_Atom type, const char *str);
+EAPI char *ecore_x_window_prop_string_get(Ecore_X_Window win, Ecore_X_Atom type);
+EAPI Eina_Bool ecore_x_window_prop_protocol_isset(Ecore_X_Window win, Ecore_X_WM_Protocol protocol);
+EAPI Ecore_X_WM_Protocol *ecore_x_window_prop_protocol_list_get(Ecore_X_Window win, int *num_ret);
+
+EAPI void ecore_x_window_shape_mask_set(Ecore_X_Window win, Ecore_X_Pixmap mask);
+EAPI void ecore_x_window_shape_window_set(Ecore_X_Window win, Ecore_X_Window shape_win);
+EAPI void ecore_x_window_shape_window_set_xy(Ecore_X_Window win, Ecore_X_Window shape_win, int x, int y);
+EAPI void ecore_x_window_shape_rectangle_set(Ecore_X_Window win, int x, int y, int w, int h);
+EAPI void ecore_x_window_shape_rectangles_set(Ecore_X_Window win, Ecore_X_Rectangle *rects, int num);
+EAPI void ecore_x_window_shape_input_rectangle_set(Ecore_X_Window win, int x, int y, int w, int h);
+EAPI void ecore_x_window_shape_input_rectangles_set(Ecore_X_Window win, Ecore_X_Rectangle *rects, int num);
+EAPI void ecore_x_window_shape_input_rectangle_add(Ecore_X_Window win, int x, int y, int w, int h);
+EAPI void ecore_x_window_shape_rectangle_subtract(Ecore_X_Window win, int x, int y, int w, int h);
+EAPI void ecore_x_window_shape_input_rectangle_subtract(Ecore_X_Window win, int x, int y, int w, int h);
+EAPI void ecore_x_window_shape_input_window_set_xy(Ecore_X_Window win, Ecore_X_Window shape_win, int x, int y);
+EAPI void ecore_x_window_shape_input_window_set(Ecore_X_Window win, Ecore_X_Window shape_win);
+EAPI void ecore_x_window_shape_window_add(Ecore_X_Window win, Ecore_X_Window shape_win);
+EAPI void ecore_x_window_shape_window_add_xy(Ecore_X_Window win, Ecore_X_Window shape_win, int x, int y);
+EAPI void ecore_x_window_shape_input_window_add_xy(Ecore_X_Window win, Ecore_X_Window shape_win, int x, int y);
+EAPI void ecore_x_window_shape_rectangle_add(Ecore_X_Window win, int x, int y, int w, int h);
+EAPI void ecore_x_window_shape_rectangle_clip(Ecore_X_Window win, int x, int y, int w, int h);
+EAPI void ecore_x_window_shape_input_rectangle_clip(Ecore_X_Window win, int x, int y, int w, int h);
+EAPI void ecore_x_window_shape_rectangles_add(Ecore_X_Window win, Ecore_X_Rectangle *rects, int num);
+EAPI void ecore_x_window_shape_input_rectangles_add(Ecore_X_Window win, Ecore_X_Rectangle *rects, int num);
+EAPI Ecore_X_Rectangle *ecore_x_window_shape_rectangles_get(Ecore_X_Window win, int *num_ret);
+EAPI Ecore_X_Rectangle *ecore_x_window_shape_input_rectangles_get(Ecore_X_Window win, int *num_ret);
+EAPI void ecore_x_window_shape_events_select(Ecore_X_Window win, Eina_Bool on);
+EAPI void ecore_x_window_shape_input_mask_set(Ecore_X_Window win, Ecore_X_Pixmap mask);
+
+EAPI Ecore_X_Pixmap ecore_x_pixmap_new(Ecore_X_Window win, int w, int h, int dep);
+EAPI void ecore_x_pixmap_free(Ecore_X_Pixmap pmap);
+EAPI void ecore_x_pixmap_paste(Ecore_X_Pixmap pmap, Ecore_X_Drawable dest, Ecore_X_GC gc, int sx, int sy, int w, int h, int dx, int dy);
+EAPI void ecore_x_pixmap_geometry_get(Ecore_X_Pixmap pmap, int *x, int *y, int *w, int *h);
+EAPI int ecore_x_pixmap_depth_get(Ecore_X_Pixmap pmap);
+
+EAPI Ecore_X_GC ecore_x_gc_new(Ecore_X_Drawable draw, Ecore_X_GC_Value_Mask value_mask, const unsigned int *value_list);
+EAPI void ecore_x_gc_free(Ecore_X_GC gc);
+EAPI void ecore_x_gc_foreground_set(Ecore_X_GC gc, unsigned long foreground);
+EAPI void ecore_x_gc_background_set(Ecore_X_GC gc, unsigned long background);
+
+EAPI Eina_Bool ecore_x_client_message32_send(Ecore_X_Window win, Ecore_X_Atom type, Ecore_X_Event_Mask mask, long d0, long d1, long d2, long d3, long d4);
+EAPI Eina_Bool ecore_x_client_message8_send(Ecore_X_Window win, Ecore_X_Atom type, const void *data, int len);
+EAPI Eina_Bool ecore_x_mouse_move_send(Ecore_X_Window win, int x, int y);
+EAPI Eina_Bool ecore_x_mouse_down_send(Ecore_X_Window win, int x, int y, int b);
+EAPI Eina_Bool ecore_x_mouse_up_send(Ecore_X_Window win, int x, int y, int b);
+EAPI Eina_Bool ecore_x_mouse_in_send(Ecore_X_Window win, int x, int y);
+EAPI Eina_Bool ecore_x_mouse_out_send(Ecore_X_Window win, int x, int y);
+
+EAPI void ecore_x_drawable_geometry_get(Ecore_X_Drawable d, int *x, int *y, int *w, int *h);
+EAPI int ecore_x_drawable_border_width_get(Ecore_X_Drawable d);
+EAPI int ecore_x_drawable_depth_get(Ecore_X_Drawable d);
+EAPI void ecore_x_drawable_rectangle_fill(Ecore_X_Drawable d, Ecore_X_GC gc, int x, int y, int width, int height);
+
+EAPI Eina_Bool ecore_x_cursor_color_supported_get(void);
+EAPI Ecore_X_Cursor ecore_x_cursor_new(Ecore_X_Window win, int *pixels, int w, int h, int hot_x, int hot_y);
+EAPI void ecore_x_cursor_free(Ecore_X_Cursor c);
+EAPI Ecore_X_Cursor ecore_x_cursor_shape_get(int shape);
+EAPI void ecore_x_cursor_size_set(int size);
+EAPI int ecore_x_cursor_size_get(void);
+
+/* FIXME: these funcs need categorising */
+EAPI Ecore_X_Window *ecore_x_window_root_list(int *num_ret);
+EAPI Ecore_X_Window ecore_x_window_root_first_get(void);
+EAPI Eina_Bool ecore_x_window_manage(Ecore_X_Window win);
+EAPI void ecore_x_window_container_manage(Ecore_X_Window win);
+EAPI void ecore_x_window_client_manage(Ecore_X_Window win);
+EAPI void ecore_x_window_sniff(Ecore_X_Window win);
+EAPI void ecore_x_window_client_sniff(Ecore_X_Window win);
+
+EAPI Ecore_X_Atom ecore_x_atom_get(const char *name);
+EAPI void ecore_x_atoms_get(const char **names, int num, Ecore_X_Atom *atoms);
+EAPI char *ecore_x_atom_name_get(Ecore_X_Atom atom);
+
+EAPI void ecore_x_icccm_init(void);
+EAPI void ecore_x_icccm_state_set(Ecore_X_Window win, Ecore_X_Window_State_Hint state);
+EAPI Ecore_X_Window_State_Hint ecore_x_icccm_state_get(Ecore_X_Window win);
+EAPI void ecore_x_icccm_delete_window_send(Ecore_X_Window win, Ecore_X_Time t);
+EAPI void ecore_x_icccm_take_focus_send(Ecore_X_Window win, Ecore_X_Time t);
+EAPI void ecore_x_icccm_save_yourself_send(Ecore_X_Window win, Ecore_X_Time t);
+EAPI void ecore_x_icccm_move_resize_send(Ecore_X_Window win, int x, int y, int w, int h);
+EAPI void ecore_x_icccm_hints_set(Ecore_X_Window win, Eina_Bool accepts_focus, Ecore_X_Window_State_Hint initial_state, Ecore_X_Pixmap icon_pixmap, Ecore_X_Pixmap icon_mask, Ecore_X_Window icon_window, Ecore_X_Window window_group, Eina_Bool is_urgent);
+EAPI Eina_Bool ecore_x_icccm_hints_get(Ecore_X_Window win, Eina_Bool *accepts_focus, Ecore_X_Window_State_Hint *initial_state, Ecore_X_Pixmap *icon_pixmap, Ecore_X_Pixmap *icon_mask, Ecore_X_Window *icon_window, Ecore_X_Window *window_group, Eina_Bool *is_urgent);
+EAPI void ecore_x_icccm_size_pos_hints_set(Ecore_X_Window win, Eina_Bool request_pos, Ecore_X_Gravity gravity, int min_w, int min_h, int max_w, int max_h, int base_w, int base_h, int step_x, int step_y, double min_aspect, double max_aspect);
+EAPI Eina_Bool ecore_x_icccm_size_pos_hints_get(Ecore_X_Window win, Eina_Bool *request_pos, Ecore_X_Gravity *gravity, int *min_w, int *min_h, int *max_w, int *max_h, int *base_w, int *base_h, int *step_x, int *step_y, double *min_aspect, double *max_aspect);
+EAPI void ecore_x_icccm_title_set(Ecore_X_Window win, const char *t);
+EAPI char *ecore_x_icccm_title_get(Ecore_X_Window win);
+EAPI void ecore_x_icccm_protocol_atoms_set(Ecore_X_Window win, Ecore_X_Atom *protos, int num);
+EAPI void ecore_x_icccm_protocol_set(Ecore_X_Window win, Ecore_X_WM_Protocol protocol, Eina_Bool on);
+EAPI Eina_Bool ecore_x_icccm_protocol_isset(Ecore_X_Window win, Ecore_X_WM_Protocol protocol);
+EAPI void ecore_x_icccm_name_class_set(Ecore_X_Window win, const char *n, const char *c);
+EAPI void ecore_x_icccm_name_class_get(Ecore_X_Window win, char **n, char **c);
+EAPI char *ecore_x_icccm_client_machine_get(Ecore_X_Window win);
+EAPI void ecore_x_icccm_command_set(Ecore_X_Window win, int argc, char **argv);
+EAPI void ecore_x_icccm_command_get(Ecore_X_Window win, int *argc, char ***argv);
+EAPI char *ecore_x_icccm_icon_name_get(Ecore_X_Window win);
+EAPI void ecore_x_icccm_icon_name_set(Ecore_X_Window win, const char *t);
+EAPI void ecore_x_icccm_colormap_window_set(Ecore_X_Window win, Ecore_X_Window subwin);
+EAPI void ecore_x_icccm_colormap_window_unset(Ecore_X_Window win, Ecore_X_Window subwin);
+EAPI void ecore_x_icccm_transient_for_set(Ecore_X_Window win, Ecore_X_Window forwin);
+EAPI void ecore_x_icccm_transient_for_unset(Ecore_X_Window win);
+EAPI Ecore_X_Window ecore_x_icccm_transient_for_get(Ecore_X_Window win);
+EAPI void ecore_x_icccm_window_role_set(Ecore_X_Window win, const char *role);
+EAPI char *ecore_x_icccm_window_role_get(Ecore_X_Window win);
+EAPI void ecore_x_icccm_client_leader_set(Ecore_X_Window win, Ecore_X_Window l);
+EAPI Ecore_X_Window ecore_x_icccm_client_leader_get(Ecore_X_Window win);
+EAPI void ecore_x_icccm_iconic_request_send(Ecore_X_Window win, Ecore_X_Window root);
+
+typedef enum _Ecore_X_MWM_Hint_Func
+{
+ ECORE_X_MWM_HINT_FUNC_ALL = (1 << 0),
+ ECORE_X_MWM_HINT_FUNC_RESIZE = (1 << 1),
+ ECORE_X_MWM_HINT_FUNC_MOVE = (1 << 2),
+ ECORE_X_MWM_HINT_FUNC_MINIMIZE = (1 << 3),
+ ECORE_X_MWM_HINT_FUNC_MAXIMIZE = (1 << 4),
+ ECORE_X_MWM_HINT_FUNC_CLOSE = (1 << 5)
+} Ecore_X_MWM_Hint_Func;
+
+typedef enum _Ecore_X_MWM_Hint_Decor
+{
+ ECORE_X_MWM_HINT_DECOR_ALL = (1 << 0),
+ ECORE_X_MWM_HINT_DECOR_BORDER = (1 << 1),
+ ECORE_X_MWM_HINT_DECOR_RESIZEH = (1 << 2),
+ ECORE_X_MWM_HINT_DECOR_TITLE = (1 << 3),
+ ECORE_X_MWM_HINT_DECOR_MENU = (1 << 4),
+ ECORE_X_MWM_HINT_DECOR_MINIMIZE = (1 << 5),
+ ECORE_X_MWM_HINT_DECOR_MAXIMIZE = (1 << 6)
+} Ecore_X_MWM_Hint_Decor;
+
+typedef enum _Ecore_X_MWM_Hint_Input
+{
+ ECORE_X_MWM_HINT_INPUT_MODELESS = 0,
+ ECORE_X_MWM_HINT_INPUT_PRIMARY_APPLICATION_MODAL = 1,
+ ECORE_X_MWM_HINT_INPUT_SYSTEM_MODAL = 2,
+ ECORE_X_MWM_HINT_INPUT_FULL_APPLICATION_MODAL = 3
+} Ecore_X_MWM_Hint_Input;
+
+EAPI Eina_Bool ecore_x_mwm_hints_get(Ecore_X_Window win, Ecore_X_MWM_Hint_Func *fhint, Ecore_X_MWM_Hint_Decor *dhint, Ecore_X_MWM_Hint_Input *ihint);
+EAPI void ecore_x_mwm_borderless_set(Ecore_X_Window win, Eina_Bool borderless);
+
+/* netwm */
+EAPI void ecore_x_netwm_init(void);
+EAPI void ecore_x_netwm_shutdown(void);
+EAPI void ecore_x_netwm_wm_identify(Ecore_X_Window root, Ecore_X_Window check, const char *wm_name);
+EAPI void ecore_x_netwm_supported_set(Ecore_X_Window root, Ecore_X_Atom *supported, int num);
+EAPI Eina_Bool ecore_x_netwm_supported_get(Ecore_X_Window root, Ecore_X_Atom **supported, int *num);
+EAPI void ecore_x_netwm_desk_count_set(Ecore_X_Window root, unsigned int n_desks);
+EAPI void ecore_x_netwm_desk_roots_set(Ecore_X_Window root, Ecore_X_Window *vroots, unsigned int n_desks);
+EAPI void ecore_x_netwm_desk_names_set(Ecore_X_Window root, const char **names, unsigned int n_desks);
+EAPI void ecore_x_netwm_desk_size_set(Ecore_X_Window root, unsigned int width, unsigned int height);
+EAPI void ecore_x_netwm_desk_workareas_set(Ecore_X_Window root, unsigned int *areas, unsigned int n_desks);
+EAPI unsigned int *ecore_x_netwm_desk_workareas_get(Ecore_X_Window root, unsigned int *n_desks);
+EAPI void ecore_x_netwm_desk_current_set(Ecore_X_Window root, unsigned int desk);
+EAPI void ecore_x_netwm_desk_viewports_set(Ecore_X_Window root, unsigned int *origins, unsigned int n_desks);
+EAPI void ecore_x_netwm_desk_layout_set(Ecore_X_Window root, int orientation, int columns, int rows, int starting_corner);
+EAPI void ecore_x_netwm_showing_desktop_set(Ecore_X_Window root, Eina_Bool on);
+EAPI void ecore_x_netwm_client_list_set(Ecore_X_Window root, Ecore_X_Window *p_clients, unsigned int n_clients);
+EAPI void ecore_x_netwm_client_list_stacking_set(Ecore_X_Window root, Ecore_X_Window *p_clients, unsigned int n_clients);
+EAPI void ecore_x_netwm_client_active_set(Ecore_X_Window root, Ecore_X_Window win);
+EAPI void ecore_x_netwm_client_active_request(Ecore_X_Window root, Ecore_X_Window win, int type, Ecore_X_Window current_win);
+EAPI void ecore_x_netwm_name_set(Ecore_X_Window win, const char *name);
+EAPI int ecore_x_netwm_name_get(Ecore_X_Window win, char **name);
+EAPI void ecore_x_netwm_startup_id_set(Ecore_X_Window win, const char *id);
+EAPI int ecore_x_netwm_startup_id_get(Ecore_X_Window win, char **id);
+EAPI void ecore_x_netwm_visible_name_set(Ecore_X_Window win, const char *name);
+EAPI int ecore_x_netwm_visible_name_get(Ecore_X_Window win, char **name);
+EAPI void ecore_x_netwm_icon_name_set(Ecore_X_Window win, const char *name);
+EAPI int ecore_x_netwm_icon_name_get(Ecore_X_Window win, char **name);
+EAPI void ecore_x_netwm_visible_icon_name_set(Ecore_X_Window win, const char *name);
+EAPI int ecore_x_netwm_visible_icon_name_get(Ecore_X_Window win, char **name);
+EAPI void ecore_x_netwm_desktop_set(Ecore_X_Window win, unsigned int desk);
+EAPI Eina_Bool ecore_x_netwm_desktop_get(Ecore_X_Window win, unsigned int *desk);
+EAPI void ecore_x_netwm_strut_set(Ecore_X_Window win, int left, int right, int top, int bottom);
+EAPI Eina_Bool ecore_x_netwm_strut_get(Ecore_X_Window win, int *left, int *right, int *top, int *bottom);
+EAPI void ecore_x_netwm_strut_partial_set(Ecore_X_Window win, int left, int right, int top, int bottom, int left_start_y, int left_end_y, int right_start_y, int right_end_y, int top_start_x, int top_end_x, int bottom_start_x, int bottom_end_x);
+EAPI Eina_Bool ecore_x_netwm_strut_partial_get(Ecore_X_Window win, int *left, int *right, int *top, int *bottom, int *left_start_y, int *left_end_y, int *right_start_y, int *right_end_y, int *top_start_x, int *top_end_x, int *bottom_start_x, int *bottom_end_x);
+
+EAPI void ecore_x_netwm_icons_set(Ecore_X_Window win, Ecore_X_Icon *icon, int num);
+
+EAPI Eina_Bool ecore_x_netwm_icons_get(Ecore_X_Window win, Ecore_X_Icon **icon, int *num);
+EAPI void ecore_x_netwm_icon_geometry_set(Ecore_X_Window win, int x, int y, int width, int height);
+EAPI Eina_Bool ecore_x_netwm_icon_geometry_get(Ecore_X_Window win, int *x, int *y, int *width, int *height);
+EAPI void ecore_x_netwm_pid_set(Ecore_X_Window win, int pid);
+EAPI Eina_Bool ecore_x_netwm_pid_get(Ecore_X_Window win, int *pid);
+EAPI void ecore_x_netwm_handled_icons_set(Ecore_X_Window win);
+EAPI Eina_Bool ecore_x_netwm_handled_icons_get(Ecore_X_Window win);
+EAPI void ecore_x_netwm_user_time_set(Ecore_X_Window win, unsigned int time);
+EAPI Eina_Bool ecore_x_netwm_user_time_get(Ecore_X_Window win, unsigned int *time);
+EAPI void ecore_x_netwm_window_state_set(Ecore_X_Window win, Ecore_X_Window_State *state, unsigned int num);
+EAPI Eina_Bool ecore_x_netwm_window_state_get(Ecore_X_Window win, Ecore_X_Window_State **state, unsigned int *num);
+EAPI void ecore_x_netwm_window_type_set(Ecore_X_Window win, Ecore_X_Window_Type type);
+EAPI Eina_Bool ecore_x_netwm_window_type_get(Ecore_X_Window win, Ecore_X_Window_Type *type);
+EAPI int ecore_x_netwm_window_types_get(Ecore_X_Window win, Ecore_X_Window_Type **types);
+EAPI Eina_Bool ecore_x_netwm_allowed_action_isset(Ecore_X_Window win, Ecore_X_Action action);
+EAPI void ecore_x_netwm_allowed_action_set(Ecore_X_Window win, Ecore_X_Action *action, unsigned int num);
+EAPI Eina_Bool ecore_x_netwm_allowed_action_get(Ecore_X_Window win, Ecore_X_Action **action, unsigned int *num);
+EAPI void ecore_x_netwm_opacity_set(Ecore_X_Window win, unsigned int opacity);
+EAPI Eina_Bool ecore_x_netwm_opacity_get(Ecore_X_Window win, unsigned int *opacity);
+EAPI void ecore_x_netwm_frame_size_set(Ecore_X_Window win, int fl, int fr, int ft, int fb);
+EAPI Eina_Bool ecore_x_netwm_frame_size_get(Ecore_X_Window win, int *fl, int *fr, int *ft, int *fb);
+EAPI Eina_Bool ecore_x_netwm_sync_counter_get(Ecore_X_Window win, Ecore_X_Sync_Counter *counter);
+EAPI void ecore_x_netwm_ping_send(Ecore_X_Window win);
+EAPI void ecore_x_netwm_sync_request_send(Ecore_X_Window win, unsigned int serial);
+EAPI void ecore_x_netwm_state_request_send(Ecore_X_Window win, Ecore_X_Window root, Ecore_X_Window_State s1, Ecore_X_Window_State s2, Eina_Bool set);
+EAPI void ecore_x_netwm_desktop_request_send(Ecore_X_Window win, Ecore_X_Window root, unsigned int desktop);
+EAPI void ecore_x_netwm_moveresize_request_send(Ecore_X_Window win, int x, int y, Ecore_X_Netwm_Direction direction, unsigned int button);
+
+EAPI void ecore_x_e_init(void);
+EAPI void ecore_x_e_frame_size_set(Ecore_X_Window win, int fl, int fr, int ft, int fb);
+EAPI void ecore_x_e_virtual_keyboard_set(Ecore_X_Window win, unsigned int is_keyboard);
+EAPI Eina_Bool ecore_x_e_virtual_keyboard_get(Ecore_X_Window win);
+EAPI void ecore_x_e_virtual_keyboard_state_set(Ecore_X_Window win, Ecore_X_Virtual_Keyboard_State state);
+EAPI Ecore_X_Virtual_Keyboard_State ecore_x_e_virtual_keyboard_state_get(Ecore_X_Window win);
+EAPI void ecore_x_e_virtual_keyboard_state_send(Ecore_X_Window win, Ecore_X_Virtual_Keyboard_State state);
+
+/* Illume functions */
+EAPI void ecore_x_e_illume_zone_set(Ecore_X_Window win, Ecore_X_Window zone);
+EAPI Ecore_X_Window ecore_x_e_illume_zone_get(Ecore_X_Window win);
+EAPI void ecore_x_e_illume_zone_list_set(Ecore_X_Window win, Ecore_X_Window *zones, unsigned int n_zones);
+EAPI void ecore_x_e_illume_conformant_set(Ecore_X_Window win, unsigned int is_conformant);
+EAPI Eina_Bool ecore_x_e_illume_conformant_get(Ecore_X_Window win);
+EAPI void ecore_x_e_illume_mode_set(Ecore_X_Window win, Ecore_X_Illume_Mode mode);
+EAPI Ecore_X_Illume_Mode ecore_x_e_illume_mode_get(Ecore_X_Window win);
+EAPI void ecore_x_e_illume_mode_send(Ecore_X_Window win, Ecore_X_Illume_Mode mode);
+EAPI void ecore_x_e_illume_focus_back_send(Ecore_X_Window win);
+EAPI void ecore_x_e_illume_focus_forward_send(Ecore_X_Window win);
+EAPI void ecore_x_e_illume_focus_home_send(Ecore_X_Window win);
+EAPI void ecore_x_e_illume_close_send(Ecore_X_Window win);
+EAPI void ecore_x_e_illume_home_new_send(Ecore_X_Window win);
+EAPI void ecore_x_e_illume_home_del_send(Ecore_X_Window win);
+EAPI void ecore_x_e_illume_access_action_next_send(Ecore_X_Window win);
+EAPI void ecore_x_e_illume_access_action_prev_send(Ecore_X_Window win);
+EAPI void ecore_x_e_illume_access_action_activate_send(Ecore_X_Window win);
+EAPI void ecore_x_e_illume_access_action_read_send(Ecore_X_Window win);
+EAPI void ecore_x_e_illume_access_action_read_next_send(Ecore_X_Window win);
+EAPI void ecore_x_e_illume_access_action_read_prev_send(Ecore_X_Window win);
+EAPI void ecore_x_e_illume_access_action_up_send(Ecore_X_Window win);
+EAPI void ecore_x_e_illume_access_action_down_send(Ecore_X_Window win);
+
+EAPI void ecore_x_e_illume_drag_set(Ecore_X_Window win, unsigned int drag);
+EAPI Eina_Bool ecore_x_e_illume_drag_get(Ecore_X_Window win);
+EAPI void ecore_x_e_illume_drag_locked_set(Ecore_X_Window win, unsigned int is_locked);
+EAPI Eina_Bool ecore_x_e_illume_drag_locked_get(Ecore_X_Window win);
+EAPI void ecore_x_e_illume_drag_start_send(Ecore_X_Window win);
+EAPI void ecore_x_e_illume_drag_end_send(Ecore_X_Window win);
+EAPI void ecore_x_e_illume_indicator_geometry_set(Ecore_X_Window win, int x, int y, int w, int h);
+EAPI Eina_Bool ecore_x_e_illume_indicator_geometry_get(Ecore_X_Window win, int *x, int *y, int *w, int *h);
+EAPI void ecore_x_e_illume_softkey_geometry_set(Ecore_X_Window win, int x, int y, int w, int h);
+EAPI Eina_Bool ecore_x_e_illume_softkey_geometry_get(Ecore_X_Window win, int *x, int *y, int *w, int *h);
+EAPI void ecore_x_e_illume_keyboard_geometry_set(Ecore_X_Window win, int x, int y, int w, int h);
+EAPI Eina_Bool ecore_x_e_illume_keyboard_geometry_get(Ecore_X_Window win, int *x, int *y, int *w, int *h);
+EAPI void ecore_x_e_illume_quickpanel_set(Ecore_X_Window win, unsigned int is_quickpanel);
+EAPI Eina_Bool ecore_x_e_illume_quickpanel_get(Ecore_X_Window win);
+EAPI void ecore_x_e_illume_quickpanel_state_set(Ecore_X_Window win, Ecore_X_Illume_Quickpanel_State state);
+EAPI Ecore_X_Illume_Quickpanel_State ecore_x_e_illume_quickpanel_state_get(Ecore_X_Window win);
+EAPI void ecore_x_e_illume_quickpanel_state_send(Ecore_X_Window win, Ecore_X_Illume_Quickpanel_State state);
+EAPI void ecore_x_e_illume_quickpanel_state_toggle(Ecore_X_Window win);
+EAPI void ecore_x_e_illume_quickpanel_priority_major_set(Ecore_X_Window win, unsigned int priority);
+EAPI int ecore_x_e_illume_quickpanel_priority_major_get(Ecore_X_Window win);
+EAPI void ecore_x_e_illume_quickpanel_priority_minor_set(Ecore_X_Window win, unsigned int priority);
+EAPI int ecore_x_e_illume_quickpanel_priority_minor_get(Ecore_X_Window win);
+EAPI void ecore_x_e_illume_quickpanel_zone_set(Ecore_X_Window win, unsigned int zone);
+EAPI int ecore_x_e_illume_quickpanel_zone_get(Ecore_X_Window win);
+EAPI void ecore_x_e_illume_quickpanel_zone_request_send(Ecore_X_Window win);
+EAPI void ecore_x_e_illume_quickpanel_position_update_send(Ecore_X_Window win);
+
+EAPI void ecore_x_e_illume_clipboard_state_set(Ecore_X_Window win, Ecore_X_Illume_Clipboard_State state);
+
+EAPI Ecore_X_Illume_Clipboard_State ecore_x_e_illume_clipboard_state_get(Ecore_X_Window win);
+
+EAPI void ecore_x_e_illume_clipboard_geometry_set(Ecore_X_Window win, int x, int y, int w, int h);
+EAPI Eina_Bool ecore_x_e_illume_clipboard_geometry_get(Ecore_X_Window win, int *x, int *y, int *w, int *h);
+EAPI void ecore_x_e_comp_sync_counter_set(Ecore_X_Window win, Ecore_X_Sync_Counter counter);
+EAPI Ecore_X_Sync_Counter ecore_x_e_comp_sync_counter_get(Ecore_X_Window win);
+EAPI void ecore_x_e_comp_sync_draw_done_send(Ecore_X_Window root, Ecore_X_Window win);
+EAPI void ecore_x_e_comp_sync_draw_size_done_send(Ecore_X_Window root, Ecore_X_Window win, int w, int h);
+EAPI void ecore_x_e_comp_sync_supported_set(Ecore_X_Window root, Eina_Bool enabled);
+EAPI Eina_Bool ecore_x_e_comp_sync_supported_get(Ecore_X_Window root);
+EAPI void ecore_x_e_comp_sync_begin_send(Ecore_X_Window win);
+EAPI void ecore_x_e_comp_sync_end_send(Ecore_X_Window win);
+EAPI void ecore_x_e_comp_sync_cancel_send(Ecore_X_Window win);
+
+EAPI void ecore_x_e_comp_flush_send(Ecore_X_Window win);
+EAPI void ecore_x_e_comp_dump_send(Ecore_X_Window win);
+EAPI void ecore_x_e_comp_pixmap_set(Ecore_X_Window win, Ecore_X_Pixmap pixmap);
+EAPI Ecore_X_Pixmap ecore_x_e_comp_pixmap_get(Ecore_X_Window win);
+
+EAPI char *ecore_x_e_window_profile_get(Ecore_X_Window win);
+EAPI void ecore_x_e_window_profile_set(Ecore_X_Window win, const char *profile);
+EAPI void ecore_x_e_window_profile_list_set(Ecore_X_Window win, const char **profiles, unsigned int num_profiles);
+EAPI Eina_Bool ecore_x_e_window_profile_list_get(Ecore_X_Window win, const char ***profiles, int *ret_num);
+
+EAPI Ecore_X_Sync_Alarm ecore_x_sync_alarm_new(Ecore_X_Sync_Counter counter);
+EAPI Eina_Bool ecore_x_sync_alarm_free(Ecore_X_Sync_Alarm alarm);
+EAPI Eina_Bool ecore_x_sync_counter_query(Ecore_X_Sync_Counter counter, unsigned int *val);
+EAPI Ecore_X_Sync_Counter ecore_x_sync_counter_new(int val);
+EAPI void ecore_x_sync_counter_free(Ecore_X_Sync_Counter counter);
+EAPI void ecore_x_sync_counter_inc(Ecore_X_Sync_Counter counter, int by);
+EAPI void ecore_x_sync_counter_val_wait(Ecore_X_Sync_Counter counter, int val);
+
+EAPI void ecore_x_sync_counter_set(Ecore_X_Sync_Counter counter, int val);
+EAPI void ecore_x_sync_counter_2_set(Ecore_X_Sync_Counter counter, int val_hi, unsigned int val_lo);
+EAPI Eina_Bool ecore_x_sync_counter_2_query(Ecore_X_Sync_Counter counter, int *val_hi, unsigned int *val_lo);
+
+EAPI int ecore_x_xinerama_screen_count_get(void);
+EAPI Eina_Bool ecore_x_xinerama_screen_geometry_get(int screen, int *x, int *y, int *w, int *h);
+
+EAPI Eina_Bool ecore_x_screensaver_event_available_get(void);
+EAPI int ecore_x_screensaver_idle_time_get(void);
+EAPI void ecore_x_screensaver_set(int timeout, int interval, int prefer_blanking, int allow_exposures);
+EAPI void ecore_x_screensaver_timeout_set(int timeout);
+EAPI int ecore_x_screensaver_timeout_get(void);
+EAPI void ecore_x_screensaver_blank_set(int timeout);
+EAPI int ecore_x_screensaver_blank_get(void);
+EAPI void ecore_x_screensaver_expose_set(int timeout);
+EAPI int ecore_x_screensaver_expose_get(void);
+EAPI void ecore_x_screensaver_interval_set(int timeout);
+EAPI int ecore_x_screensaver_interval_get(void);
+EAPI void ecore_x_screensaver_event_listen_set(Eina_Bool on);
+EAPI Eina_Bool ecore_x_screensaver_custom_blanking_enable(void); /** @since 1.7 */
+EAPI Eina_Bool ecore_x_screensaver_custom_blanking_disable(void); /** @since 1.7 */
+
+/* FIXME: these funcs need categorising */
+
+typedef struct _Ecore_X_Window_Attributes
+{
+ Ecore_X_Window root;
+ int x, y, w, h;
+ int border;
+ int depth;
+ Eina_Bool visible : 1;
+ Eina_Bool viewable : 1;
+ Eina_Bool override : 1;
+ Eina_Bool input_only : 1;
+ Eina_Bool save_under : 1;
+ struct
+ {
+ Ecore_X_Event_Mask mine;
+ Ecore_X_Event_Mask all;
+ Ecore_X_Event_Mask no_propagate;
+ } event_mask;
+ Ecore_X_Gravity window_gravity;
+ Ecore_X_Gravity pixel_gravity;
+ Ecore_X_Colormap colormap;
+ Ecore_X_Visual visual;
+ /* FIXME: missing
+ * int map_installed;
+ * Screen *screen;
+ */
+} Ecore_X_Window_Attributes;
+
+EAPI Eina_Bool ecore_x_window_attributes_get(Ecore_X_Window win, Ecore_X_Window_Attributes *att_ret);
+EAPI void ecore_x_window_save_set_add(Ecore_X_Window win);
+EAPI void ecore_x_window_save_set_del(Ecore_X_Window win);
+EAPI Ecore_X_Window *ecore_x_window_children_get(Ecore_X_Window win, int *num);
+
+EAPI Eina_Bool ecore_x_pointer_control_set(int accel_num, int accel_denom, int threshold);
+EAPI Eina_Bool ecore_x_pointer_control_get(int *accel_num, int *accel_denom, int *threshold);
+EAPI Eina_Bool ecore_x_pointer_mapping_set(unsigned char *map, int nmap);
+EAPI Eina_Bool ecore_x_pointer_mapping_get(unsigned char *map, int nmap);
+EAPI Eina_Bool ecore_x_pointer_grab(Ecore_X_Window win);
+EAPI Eina_Bool ecore_x_pointer_confine_grab(Ecore_X_Window win);
+EAPI void ecore_x_pointer_ungrab(void);
+EAPI Eina_Bool ecore_x_pointer_warp(Ecore_X_Window win, int x, int y);
+EAPI Eina_Bool ecore_x_keyboard_grab(Ecore_X_Window win);
+EAPI void ecore_x_keyboard_ungrab(void);
+EAPI void ecore_x_grab(void);
+EAPI void ecore_x_ungrab(void);
+EAPI void ecore_x_passive_grab_replay_func_set(Eina_Bool (*func)(void *data, int event_type, void *event), void *data);
+EAPI void ecore_x_window_button_grab(Ecore_X_Window win, int button, Ecore_X_Event_Mask event_mask, int mod, int any_mod);
+EAPI void ecore_x_window_button_ungrab(Ecore_X_Window win, int button, int mod, int any_mod);
+EAPI void ecore_x_window_key_grab(Ecore_X_Window win, const char *key, int mod, int any_mod);
+EAPI void ecore_x_window_key_ungrab(Ecore_X_Window win, const char *key, int mod, int any_mod);
+
+EAPI void ecore_x_focus_reset(void);
+EAPI void ecore_x_events_allow_all(void);
+EAPI void ecore_x_pointer_last_xy_get(int *x, int *y);
+EAPI void ecore_x_pointer_xy_get(Ecore_X_Window win, int *x, int *y);
+
+/* ecore_x_region.c */
+EAPI Ecore_X_XRegion *ecore_x_xregion_new(void);
+EAPI void ecore_x_xregion_free(Ecore_X_XRegion *region);
+EAPI Eina_Bool ecore_x_xregion_set(Ecore_X_XRegion *region, Ecore_X_GC gc);
+EAPI void ecore_x_xregion_translate(Ecore_X_XRegion *region, int x, int y);
+EAPI Eina_Bool ecore_x_xregion_intersect(Ecore_X_XRegion *dst, Ecore_X_XRegion *r1, Ecore_X_XRegion *r2);
+EAPI Eina_Bool ecore_x_xregion_union(Ecore_X_XRegion *dst, Ecore_X_XRegion *r1, Ecore_X_XRegion *r2);
+EAPI Eina_Bool ecore_x_xregion_union_rect(Ecore_X_XRegion *dst, Ecore_X_XRegion *src, Ecore_X_Rectangle *rect);
+EAPI Eina_Bool ecore_x_xregion_subtract(Ecore_X_XRegion *dst, Ecore_X_XRegion *r1, Ecore_X_XRegion *r2);
+EAPI Eina_Bool ecore_x_xregion_is_empty(Ecore_X_XRegion *region);
+EAPI Eina_Bool ecore_x_xregion_is_equal(Ecore_X_XRegion *r1, Ecore_X_XRegion *r2);
+EAPI Eina_Bool ecore_x_xregion_point_contain(Ecore_X_XRegion *region, int x, int y);
+EAPI Eina_Bool ecore_x_xregion_rect_contain(Ecore_X_XRegion *region, Ecore_X_Rectangle *rect);
+
+/* ecore_x_randr.c */
+
+/* The usage of 'Ecore_X_Randr_None' or 'Ecore_X_Randr_Unset'
+ * depends on the context. In most cases 'Ecore_X_Randr_Unset'
+ * can be used, but in some cases -1 is a special value to
+ * functions, thus 'Ecore_X_Randr_None' (=0) must be used.
+ */
+
+typedef short Ecore_X_Randr_Refresh_Rate;
+typedef int Ecore_X_Randr_Crtc_Gamma;
+typedef int Ecore_X_Randr_Signal_Format;
+typedef int Ecore_X_Randr_Signal_Property;
+typedef int Ecore_X_Randr_Connector_Type;
+
+typedef struct _Ecore_X_Randr_Mode_Info
+{
+ Ecore_X_ID xid;
+ unsigned int width;
+ unsigned int height;
+ unsigned long dotClock;
+ unsigned int hSyncStart;
+ unsigned int hSyncEnd;
+ unsigned int hTotal;
+ unsigned int hSkew;
+ unsigned int vSyncStart;
+ unsigned int vSyncEnd;
+ unsigned int vTotal;
+ char *name;
+ unsigned int nameLength;
+ unsigned long modeFlags;
+} Ecore_X_Randr_Mode_Info;
+
+EAPI int ecore_x_randr_version_get(void);
+EAPI Eina_Bool ecore_x_randr_query(void);
+
+/* ecore_x_randr_11.c */
+EAPI Ecore_X_Randr_Orientation ecore_x_randr_screen_primary_output_orientations_get(Ecore_X_Window root);
+EAPI Ecore_X_Randr_Orientation ecore_x_randr_screen_primary_output_orientation_get(Ecore_X_Window root);
+EAPI Eina_Bool ecore_x_randr_screen_primary_output_orientation_set(Ecore_X_Window root, Ecore_X_Randr_Orientation orientation);
+EAPI Ecore_X_Randr_Screen_Size_MM *ecore_x_randr_screen_primary_output_sizes_get(Ecore_X_Window root, int *num);
+
+/**
+ * @brief get the current set size of a given screen's primary output
+ * @param root window which's primary output will be queried
+ * @param w the current size's width
+ * @param h the current size's height
+ * @param w_mm the current size's width in mm
+ * @param h_mm the current size's height in mm
+ * @param size_index of current set size to be used with ecore_x_randr_primary_output_size_set()
+ */
+EAPI void ecore_x_randr_screen_primary_output_current_size_get(Ecore_X_Window root, int *w, int *h, int *w_mm, int *h_mm, int *size_index);
+EAPI Eina_Bool ecore_x_randr_screen_primary_output_size_set(Ecore_X_Window root, int size_index);
+EAPI Ecore_X_Randr_Refresh_Rate ecore_x_randr_screen_primary_output_current_refresh_rate_get(Ecore_X_Window root);
+EAPI Ecore_X_Randr_Refresh_Rate *ecore_x_randr_screen_primary_output_refresh_rates_get(Ecore_X_Window root, int size_index, int *num);
+EAPI Eina_Bool ecore_x_randr_screen_primary_output_refresh_rate_set(Ecore_X_Window root, int size_index, Ecore_X_Randr_Refresh_Rate rate);
+
+/* ecore_x_randr_12.c */
+EAPI void ecore_x_randr_events_select(Ecore_X_Window win, Eina_Bool on);
+
+EAPI void ecore_x_randr_screen_current_size_get(Ecore_X_Window root, int *w, int *h, int *w_mm, int *h_mm);
+EAPI void ecore_x_randr_screen_size_range_get(Ecore_X_Window root, int *wmin, int *hmin, int *wmax, int *hmax);
+EAPI void ecore_x_randr_screen_reset(Ecore_X_Window root);
+EAPI Eina_Bool ecore_x_randr_screen_current_size_set(Ecore_X_Window root, int w, int h, int w_mm, int h_mm);
+EAPI Ecore_X_Randr_Mode_Info **ecore_x_randr_modes_info_get(Ecore_X_Window root, int *num);
+EAPI Ecore_X_Randr_Mode ecore_x_randr_mode_info_add(Ecore_X_Window root, Ecore_X_Randr_Mode_Info *mode_info);
+EAPI void ecore_x_randr_mode_del(Ecore_X_Randr_Mode mode);
+EAPI Ecore_X_Randr_Mode_Info *ecore_x_randr_mode_info_get(Ecore_X_Window root, Ecore_X_Randr_Mode mode);
+EAPI void ecore_x_randr_mode_info_free(Ecore_X_Randr_Mode_Info *mode_info);
+EAPI Ecore_X_Randr_Crtc *ecore_x_randr_crtcs_get(Ecore_X_Window root, int *num);
+EAPI Ecore_X_Randr_Output *ecore_x_randr_outputs_get(Ecore_X_Window root, int *num);
+EAPI Ecore_X_Randr_Output *ecore_x_randr_window_outputs_get(Ecore_X_Window window, int *num);
+EAPI Ecore_X_Randr_Output *ecore_x_randr_current_output_get(Ecore_X_Window window, int *num);
+EAPI Ecore_X_Randr_Crtc *ecore_x_randr_window_crtcs_get(Ecore_X_Window window, int *num);
+EAPI Ecore_X_Randr_Crtc *ecore_x_randr_current_crtc_get(Ecore_X_Window window, int *num);
+EAPI Ecore_X_Randr_Output *ecore_x_randr_crtc_outputs_get(Ecore_X_Window root, Ecore_X_Randr_Crtc crtc, int *num);
+EAPI Ecore_X_Randr_Output *ecore_x_randr_crtc_possible_outputs_get(Ecore_X_Window root, Ecore_X_Randr_Crtc crtc, int *num);
+EAPI void ecore_x_randr_crtc_geometry_get(Ecore_X_Window root, Ecore_X_Randr_Crtc crtc, int *x, int *y, int *w, int *h);
+EAPI void ecore_x_randr_crtc_pos_get(Ecore_X_Window root, Ecore_X_Randr_Crtc crtc, int *x, int *y);
+EAPI Eina_Bool ecore_x_randr_crtc_pos_set(Ecore_X_Window root, Ecore_X_Randr_Crtc crtc, int x, int y);
+EAPI Ecore_X_Randr_Mode ecore_x_randr_crtc_mode_get(Ecore_X_Window root, Ecore_X_Randr_Crtc crtc);
+EAPI Eina_Bool ecore_x_randr_crtc_mode_set(Ecore_X_Window root, Ecore_X_Randr_Crtc crtc, Ecore_X_Randr_Output *outputs, int noutputs, Ecore_X_Randr_Mode mode);
+EAPI void ecore_x_randr_crtc_size_get(Ecore_X_Window root, Ecore_X_Randr_Crtc crtc, int *w, int *h);
+EAPI Ecore_X_Randr_Refresh_Rate ecore_x_randr_crtc_refresh_rate_get(Ecore_X_Window root, Ecore_X_Randr_Crtc crtc, Ecore_X_Randr_Mode mode);
+EAPI Ecore_X_Randr_Orientation ecore_x_randr_crtc_orientations_get(Ecore_X_Window root, Ecore_X_Randr_Crtc crtc);
+EAPI Ecore_X_Randr_Orientation ecore_x_randr_crtc_orientation_get(Ecore_X_Window root, Ecore_X_Randr_Crtc crtc);
+EAPI Eina_Bool ecore_x_randr_crtc_orientation_set(Ecore_X_Window root, Ecore_X_Randr_Crtc crtc, const Ecore_X_Randr_Orientation orientation);
+EAPI Eina_Bool ecore_x_randr_crtc_clone_set(Ecore_X_Window root, Ecore_X_Randr_Crtc original, Ecore_X_Randr_Crtc clone);
+EAPI Eina_Bool ecore_x_randr_crtc_settings_set(Ecore_X_Window root, Ecore_X_Randr_Crtc crtc, Ecore_X_Randr_Output *outputs, int noutputs, int x, int y, Ecore_X_Randr_Mode mode, Ecore_X_Randr_Orientation orientation);
+EAPI Eina_Bool ecore_x_randr_crtc_pos_relative_set(Ecore_X_Window root, Ecore_X_Randr_Crtc crtc_r1, Ecore_X_Randr_Crtc crtc_r2, Ecore_X_Randr_Output_Policy policy, Ecore_X_Randr_Relative_Alignment alignment);
+EAPI Eina_Bool ecore_x_randr_output_mode_add(Ecore_X_Randr_Output output, Ecore_X_Randr_Mode mode);
+EAPI void ecore_x_randr_output_mode_del(Ecore_X_Randr_Output output, Ecore_X_Randr_Mode mode);
+EAPI Ecore_X_Randr_Mode *ecore_x_randr_output_modes_get(Ecore_X_Window root, Ecore_X_Randr_Output output, int *num, int *npreferred);
+EAPI Ecore_X_Randr_Output *ecore_x_randr_output_clones_get(Ecore_X_Window root, Ecore_X_Randr_Output output, int *num);
+EAPI Ecore_X_Randr_Crtc *ecore_x_randr_output_possible_crtcs_get(Ecore_X_Window root, Ecore_X_Randr_Output output, int *num);
+EAPI Ecore_X_Randr_Crtc ecore_x_randr_output_crtc_get(Ecore_X_Window root, Ecore_X_Randr_Output output);
+EAPI char *ecore_x_randr_output_name_get(Ecore_X_Window root, Ecore_X_Randr_Output output, int *len);
+EAPI int ecore_x_randr_crtc_gamma_ramp_size_get(Ecore_X_Randr_Crtc crtc);
+EAPI Ecore_X_Randr_Crtc_Gamma **ecore_x_randr_crtc_gamma_ramps_get(Ecore_X_Randr_Crtc crtc);
+EAPI Eina_Bool ecore_x_randr_crtc_gamma_ramps_set(Ecore_X_Randr_Crtc crtc, const Ecore_X_Randr_Crtc_Gamma *red, const Ecore_X_Randr_Crtc_Gamma *green, const Ecore_X_Randr_Crtc_Gamma *blue);
+EAPI Eina_Bool ecore_x_randr_move_all_crtcs_but(Ecore_X_Window root, const Ecore_X_Randr_Crtc *not_moved, int nnot_moved, int dx, int dy);
+EAPI Eina_Bool ecore_x_randr_move_crtcs(Ecore_X_Window root, const Ecore_X_Randr_Crtc *crtcs, int ncrtc, int dx, int dy);
+EAPI void ecore_x_randr_mode_size_get(Ecore_X_Window root, Ecore_X_Randr_Mode mode, int *w, int *h);
+EAPI Ecore_X_Randr_Connection_Status ecore_x_randr_output_connection_status_get(Ecore_X_Window root, Ecore_X_Randr_Output output);
+EAPI void ecore_x_randr_output_size_mm_get(Ecore_X_Window root, Ecore_X_Randr_Output output, int *w, int *h);
+EAPI Eina_Bool ecore_x_randr_output_crtc_set(Ecore_X_Window root, Ecore_X_Randr_Output output, const Ecore_X_Randr_Crtc crtc);
+
+/* ecore_x_randr_12_edid.c */
+
+/**
+ * @brief Validates the header from raw EDID data.
+ *
+ * @param edid The edid structure.
+ * @param edid_length Length of the edid structure.
+ * @return @c EINA_TRUE, if the header is valid, @c EINA_FALSE otherwise.
+ */
+EAPI Eina_Bool ecore_x_randr_edid_has_valid_header(unsigned char *edid, unsigned long edid_length);
+
+/**
+ * @brief Checks whether a display's EDID has a valid checksum.
+ *
+ * @param edid The edid structure.
+ * @param edid_length Length of the edid structure.
+ * @return @c EINA_TRUE, if the checksum is valid, @c EINA_FALSE otherwise.
+ */
+EAPI Eina_Bool ecore_x_randr_edid_info_has_valid_checksum(unsigned char *edid, unsigned long edid_length);
+
+/**
+ * @brief Get the encoded version from raw EDID data.
+ *
+ * The return value has the minor version in the lowest 8 bits, and the major
+ * version in all the rest of the bits. i.e.
+ *
+ * minor = (version & 0x000000ff);
+ * major = (version & 0xffffff00) >> 8;
+ *
+ * @param edid the edid structure
+ * @param edid_length length of the edid structure
+ * @return The encoded major and minor version encasuplated an int.
+ */
+EAPI int ecore_x_randr_edid_version_get(unsigned char *edid, unsigned long edid_length);
+
+/**
+ * @brief Get the encoded manufacturer from raw EDID data.
+ *
+ * @param edid the edid structure
+ * @param edid_length length of the edid structure
+ * @return The encoded manufacturer identifier.
+ */
+EAPI char *ecore_x_randr_edid_manufacturer_name_get(unsigned char *edid, unsigned long edid_length);
+
+/**
+ * @brief Get the encoded name from raw EDID data.
+ *
+ * @param edid the edid structure
+ * @param edid_length length of the edid structure
+ * @return The encoded manufacturer identifier.
+ */
+EAPI char *ecore_x_randr_edid_display_name_get(unsigned char *edid, unsigned long edid_length);
+
+/**
+ * @brief Get the encoded ASCII from raw EDID data.
+ *
+ * @param edid the edid structure
+ * @param edid_length length of the edid structure
+ * @return The encoded ASCII display identifier.
+ */
+EAPI char *ecore_x_randr_edid_display_ascii_get(unsigned char *edid, unsigned long edid_length);
+
+/**
+ * @brief Get the encoded serial identifier from raw EDID data.
+ *
+ * @param edid the edid structure
+ * @param edid_length length of the edid structure
+ * @return The encoded serial identifier.
+ */
+EAPI char *ecore_x_randr_edid_display_serial_get(unsigned char *edid, unsigned long edid_length);
+
+/**
+ * @brief Get the encoded model number from raw EDID data.
+ *
+ * The manufacturer ID table is necessary for a useful description.
+ *
+ * @param edid the edid structure
+ * @param edid_length length of the edid structure
+ * @return The encoded model number.
+ */
+EAPI int ecore_x_randr_edid_model_get(unsigned char *edid, unsigned long edid_length);
+
+/**
+ * @brief Get the manufacturer serial number from raw EDID data.
+ *
+ * @param edid the edid structure
+ * @param edid_length length of the edid structure
+ * @return The encoded serial manufacturer serial number.
+ */
+EAPI int ecore_x_randr_edid_manufacturer_serial_number_get(unsigned char *edid, unsigned long edid_length);
+
+/**
+ * @brief Get the manufacturer model number from raw EDID data.
+ *
+ * @param edid the edid structure
+ * @param edid_length length of the edid structure
+ * @return The manufacturer's model number.
+ */
+EAPI int ecore_x_randr_edid_manufacturer_model_get(unsigned char *edid, unsigned long edid_length);
+
+/**
+ * @brief Looks up the DPMS support from raw EDID data.
+ *
+ * @param edid The edid structure.
+ * @param edid_length Length of the edid structure.
+ * @return @c EINA_TRUE, if DPMS is supported in some way, @c EINA_FALSE
+ * otherwise.
+ */
+EAPI Eina_Bool ecore_x_randr_edid_dpms_available_get(unsigned char *edid, unsigned long edid_length);
+
+/**
+ * @brief Looks up the DPMS Standby support from raw EDID data.
+ *
+ * @param edid The edid structure.
+ * @param edid_length Length of the edid structure.
+ * @return @c EINA_TRUE, if DPMS Standby is supported, @c EINA_FALSE otherwise.
+ */
+EAPI Eina_Bool ecore_x_randr_edid_dpms_standby_available_get(unsigned char *edid, unsigned long edid_length);
+
+/**
+ * @brief Looks up the DPMS Suspend support from raw EDID data.
+ *
+ * @param edid The edid structure.
+ * @param edid_length Length of the edid structure.
+ * @return @c EINA_TRUE, if DPMS Suspend is supported, @c EINA_FALSE otherwise.
+ */
+EAPI Eina_Bool ecore_x_randr_edid_dpms_suspend_available_get(unsigned char *edid, unsigned long edid_length);
+
+/**
+ * @brief Looks up the DPMS Off support from raw EDID data.
+ *
+ * @param edid The edid structure.
+ * @param edid_length Length of the edid structure.
+ * @return @c EINA_TRUE, if DPMS Off is supported, @c EINA_FALSE otherwise.
+ */
+EAPI Eina_Bool ecore_x_randr_edid_dpms_off_available_get(unsigned char *edid, unsigned long edid_length);
+
+/**
+ * @brief Get the preferred aspect ratio from raw EDID data.
+ *
+ * @param edid the edid structure
+ * @param edid_length length of the edid structure
+ * @return The preferred aspect ratio.
+ */
+EAPI Ecore_X_Randr_Edid_Aspect_Ratio ecore_x_randr_edid_display_aspect_ratio_preferred_get(unsigned char *edid, unsigned long edid_length);
+
+/**
+ * @brief Get the supported aspect ratios from raw EDID data.
+ *
+ * @param edid the edid structure
+ * @param edid_length length of the edid structure
+ * @return The supported aspect ratios.
+ */
+EAPI Ecore_X_Randr_Edid_Aspect_Ratio ecore_x_randr_edid_display_aspect_ratios_get(unsigned char *edid, unsigned long edid_length);
+
+/**
+ * @brief Get the supported colorschemes from raw EDID data.
+ *
+ * @param edid the edid structure
+ * @param edid_length length of the edid structure
+ * @return The supported colorschemes.
+ */
+EAPI Ecore_X_Randr_Edid_Display_Colorscheme ecore_x_randr_edid_display_colorscheme_get(unsigned char *edid, unsigned long edid_length);
+
+/**
+ * @brief Get the display type from raw EDID data.
+ *
+ * @param edid The edid structure.
+ * @param edid_length Length of the edid structure.
+ * @return @c EINA_TRUE, if the display is a digital one, @c EINA_FALSE
+ * otherwise.
+ */
+EAPI Eina_Bool ecore_x_randr_edid_display_type_digital_get(unsigned char *edid, unsigned long edid_length);
+
+/**
+ * @brief Get the display interface type from raw EDID data.
+ *
+ * @param edid the edid structure
+ * @param edid_length length of the edid structure
+ * @return The interface type.
+ */
+EAPI Ecore_X_Randr_Edid_Display_Interface_Type ecore_x_randr_edid_display_interface_type_get(unsigned char *edid, unsigned long edid_length);
+
+/* ecore_x_randr_12.c */
+
+EAPI Eina_Bool ecore_x_randr_output_backlight_available(void);
+EAPI void ecore_x_randr_screen_backlight_level_set(Ecore_X_Window root, double level);
+EAPI double ecore_x_randr_output_backlight_level_get(Ecore_X_Window root, Ecore_X_Randr_Output output);
+EAPI Eina_Bool ecore_x_randr_output_backlight_level_set(Ecore_X_Window root, Ecore_X_Randr_Output output, double level);
+EAPI Ecore_X_Randr_Output ecore_x_randr_primary_output_get(Ecore_X_Window root);
+EAPI void ecore_x_randr_primary_output_set(Ecore_X_Window root, Ecore_X_Randr_Output output);
+EAPI Ecore_X_Render_Subpixel_Order ecore_x_randr_output_subpixel_order_get(Ecore_X_Window root, Ecore_X_Randr_Output output);
+EAPI unsigned char *ecore_x_randr_output_edid_get(Ecore_X_Window root, Ecore_X_Randr_Output output, unsigned long *length);
+EAPI Ecore_X_Randr_Output *ecore_x_randr_output_wired_clones_get(Ecore_X_Window root, Ecore_X_Randr_Output output, int *num);
+EAPI Ecore_X_Randr_Output **ecore_x_randr_output_compatibility_list_get(Ecore_X_Window root, Ecore_X_Randr_Output output, int *num);
+EAPI Ecore_X_Randr_Signal_Format *ecore_x_randr_output_signal_formats_get(Ecore_X_Window root, Ecore_X_Randr_Output output, int *num);
+EAPI Eina_Bool ecore_x_randr_output_signal_format_set(Ecore_X_Window root, Ecore_X_Randr_Output output, Ecore_X_Randr_Signal_Format *signal);
+EAPI Ecore_X_Randr_Signal_Property *ecore_x_randr_output_signal_properties_get(Ecore_X_Window root, Ecore_X_Randr_Output output, int *num);
+EAPI int ecore_x_randr_output_connector_number_get(Ecore_X_Window root, Ecore_X_Randr_Output output);
+EAPI Ecore_X_Randr_Connector_Type ecore_x_randr_output_connector_type_get(Ecore_X_Window root, Ecore_X_Randr_Output output);
+/* WTF - these dont exist in ecore-x!!!!
+EAPI Eina_Rectangle *ecore_x_randr_crtc_panning_area_get(Ecore_X_Window root, Ecore_X_Randr_Crtc crtc, int *x, int *y, int *w, int *h);
+EAPI Eina_Bool ecore_x_randr_crtc_panning_area_set(Ecore_X_Window root, Ecore_X_Randr_Crtc crtc, int x, const int y, const int w, const int h);
+EAPI Eina_Rectangle *ecore_x_randr_crtc_tracking_area_get(Ecore_X_Window root, Ecore_X_Randr_Crtc crtc, int *x, int *y, int *w, int *h);
+EAPI Eina_Bool ecore_x_randr_crtc_tracking_area_set(Ecore_X_Window root, Ecore_X_Randr_Crtc crtc, int x, const int y, const int w, const int h);
+EAPI Eina_Rectangle *ecore_x_randr_crtc_border_area_get(Ecore_X_Window root, Ecore_X_Randr_Crtc crtc);
+EAPI Eina_Bool ecore_x_randr_crtc_border_area_set(Ecore_X_Window root, Ecore_X_Randr_Crtc crtc, int left, const int top, const int right, const int bottom);
+*/
+
+/* XRender Support (horrendously incomplete) */
+typedef Ecore_X_ID Ecore_X_Picture;
+
+/* XFixes Extension Support */
+typedef Ecore_X_ID Ecore_X_Region;
+
+typedef enum _Ecore_X_Region_Type
+{
+ ECORE_X_REGION_BOUNDING,
+ ECORE_X_REGION_CLIP
+} Ecore_X_Region_Type;
+
+EAPI Ecore_X_Region ecore_x_region_new(Ecore_X_Rectangle *rects, int num);
+EAPI Ecore_X_Region ecore_x_region_new_from_bitmap(Ecore_X_Pixmap bitmap);
+EAPI Ecore_X_Region ecore_x_region_new_from_window(Ecore_X_Window win, Ecore_X_Region_Type type);
+EAPI Ecore_X_Region ecore_x_region_new_from_gc(Ecore_X_GC gc);
+EAPI Ecore_X_Region ecore_x_region_new_from_picture(Ecore_X_Picture picture);
+EAPI void ecore_x_region_free(Ecore_X_Region region);
+EAPI void ecore_x_region_set(Ecore_X_Region region, Ecore_X_Rectangle *rects, int num);
+EAPI void ecore_x_region_copy(Ecore_X_Region dest, Ecore_X_Region source);
+EAPI void ecore_x_region_combine(Ecore_X_Region dest, Ecore_X_Region source1, Ecore_X_Region source2);
+EAPI void ecore_x_region_intersect(Ecore_X_Region dest, Ecore_X_Region source1, Ecore_X_Region source2);
+EAPI void ecore_x_region_subtract(Ecore_X_Region dest, Ecore_X_Region source1, Ecore_X_Region source2);
+EAPI void ecore_x_region_invert(Ecore_X_Region dest, Ecore_X_Rectangle *bounds, Ecore_X_Region source);
+EAPI void ecore_x_region_translate(Ecore_X_Region region, int dx, int dy);
+EAPI void ecore_x_region_extents(Ecore_X_Region dest, Ecore_X_Region source);
+EAPI Ecore_X_Rectangle *ecore_x_region_fetch(Ecore_X_Region region, int *num, Ecore_X_Rectangle *bounds);
+EAPI void ecore_x_region_expand(Ecore_X_Region dest, Ecore_X_Region source, unsigned int left, unsigned int right, unsigned int top, unsigned int bottom);
+EAPI void ecore_x_region_gc_clip_set(Ecore_X_Region region, Ecore_X_GC gc, int x_origin, int y_origin);
+EAPI void ecore_x_region_window_shape_set(Ecore_X_Region region, Ecore_X_Window win, Ecore_X_Shape_Type type, int x_offset, int y_offset);
+EAPI void ecore_x_region_picture_clip_set(Ecore_X_Region region, Ecore_X_Picture picture, int x_origin, int y_origin);
+
+/**
+ * xfixes selection notification request.
+ *
+ * This lets you choose which selections you want to get notifications for.
+ * @param selection The selection atom.
+ * @return @c EINA_TRUE on success, @c EINA_FALSE otherwise.
+ * @since 1.1.0
+ */
+EAPI Eina_Bool ecore_x_fixes_selection_notification_request(Ecore_X_Atom selection);
+
+/* XComposite Extension Support */
+EAPI Eina_Bool ecore_x_composite_query(void);
+EAPI void ecore_x_composite_redirect_window(Ecore_X_Window win, Ecore_X_Composite_Update_Type type);
+EAPI void ecore_x_composite_redirect_subwindows(Ecore_X_Window win, Ecore_X_Composite_Update_Type type);
+EAPI void ecore_x_composite_unredirect_window(Ecore_X_Window win, Ecore_X_Composite_Update_Type type);
+EAPI void ecore_x_composite_unredirect_subwindows(Ecore_X_Window win, Ecore_X_Composite_Update_Type type);
+EAPI Ecore_X_Pixmap ecore_x_composite_name_window_pixmap_get(Ecore_X_Window win);
+EAPI void ecore_x_composite_window_events_disable(Ecore_X_Window win);
+EAPI void ecore_x_composite_window_events_enable(Ecore_X_Window win);
+EAPI Ecore_X_Window ecore_x_composite_render_window_enable(Ecore_X_Window root);
+EAPI void ecore_x_composite_render_window_disable(Ecore_X_Window root);
+
+/* XDamage Extension Support */
+typedef Ecore_X_ID Ecore_X_Damage;
+
+typedef enum _Ecore_X_Damage_Report_Level
+{
+ ECORE_X_DAMAGE_REPORT_RAW_RECTANGLES,
+ ECORE_X_DAMAGE_REPORT_DELTA_RECTANGLES,
+ ECORE_X_DAMAGE_REPORT_BOUNDING_BOX,
+ ECORE_X_DAMAGE_REPORT_NON_EMPTY
+} Ecore_X_Damage_Report_Level;
+
+struct _Ecore_X_Event_Damage
+{
+ Ecore_X_Damage_Report_Level level;
+ Ecore_X_Drawable drawable;
+ Ecore_X_Damage damage;
+ int more;
+ Ecore_X_Time time;
+ Ecore_X_Rectangle area;
+ Ecore_X_Rectangle geometry;
+};
+
+typedef struct _Ecore_X_Event_Damage Ecore_X_Event_Damage;
+
+struct _Ecore_X_Event_Xkb
+{
+ int group;
+};
+typedef struct _Ecore_X_Event_Xkb Ecore_X_Event_Xkb; /** @since 1.7 */
+
+EAPI Eina_Bool ecore_x_damage_query(void);
+EAPI Ecore_X_Damage ecore_x_damage_new(Ecore_X_Drawable d, Ecore_X_Damage_Report_Level level);
+EAPI void ecore_x_damage_free(Ecore_X_Damage damage);
+EAPI void ecore_x_damage_subtract(Ecore_X_Damage damage, Ecore_X_Region repair, Ecore_X_Region parts);
+
+EAPI Eina_Bool ecore_x_screen_is_composited(int screen);
+EAPI void ecore_x_screen_is_composited_set(int screen, Ecore_X_Window win);
+
+EAPI Eina_Bool ecore_x_dpms_query(void);
+EAPI Eina_Bool ecore_x_dpms_capable_get(void);
+EAPI Eina_Bool ecore_x_dpms_enabled_get(void);
+EAPI void ecore_x_dpms_enabled_set(int enabled);
+EAPI void ecore_x_dpms_timeouts_get(unsigned int *standby, unsigned int *suspend, unsigned int *off);
+EAPI Eina_Bool ecore_x_dpms_timeouts_set(unsigned int standby, unsigned int suspend, unsigned int off);
+EAPI unsigned int ecore_x_dpms_timeout_standby_get(void);
+EAPI unsigned int ecore_x_dpms_timeout_suspend_get(void);
+EAPI unsigned int ecore_x_dpms_timeout_off_get(void);
+EAPI void ecore_x_dpms_timeout_standby_set(unsigned int new_timeout);
+EAPI void ecore_x_dpms_timeout_suspend_set(unsigned int new_timeout);
+EAPI void ecore_x_dpms_timeout_off_set(unsigned int new_timeout);
+
+EAPI Eina_Bool ecore_x_test_fake_key_down(const char *key);
+EAPI Eina_Bool ecore_x_test_fake_key_up(const char *key);
+EAPI Eina_Bool ecore_x_test_fake_key_press(const char *key);
+EAPI const char *ecore_x_keysym_string_get(int keysym);
+
+/**
+ * Given a keyname, return the keycode representing that key
+ * @param keyname The key from which to get the keycode.
+ * @return The keycode of the key.
+ *
+ * @since 1.2.0
+ */
+EAPI int ecore_x_keysym_keycode_get(const char *keyname);
+
+typedef struct _Ecore_X_Image Ecore_X_Image;
+
+EAPI Ecore_X_Image *ecore_x_image_new(int w, int h, Ecore_X_Visual vis, int depth);
+EAPI void ecore_x_image_free(Ecore_X_Image *im);
+EAPI Eina_Bool ecore_x_image_get(Ecore_X_Image *im, Ecore_X_Drawable draw, int x, int y, int sx, int sy, int w, int h);
+EAPI void ecore_x_image_put(Ecore_X_Image *im, Ecore_X_Drawable draw, Ecore_X_GC gc, int x, int y, int sx, int sy, int w, int h);
+EAPI void *ecore_x_image_data_get(Ecore_X_Image *im, int *bpl, int *rows, int *bpp);
+EAPI Eina_Bool ecore_x_image_is_argb32_get(Ecore_X_Image *im);
+
+EAPI Eina_Bool ecore_x_image_to_argb_convert(void *src, int sbpp, int sbpl, Ecore_X_Colormap c, Ecore_X_Visual v, int x, int y, int w, int h, unsigned int *dst, int dbpl, int dx, int dy);
+
+EAPI Eina_Bool ecore_x_input_multi_select(Ecore_X_Window win);
+EAPI Eina_Bool ecore_x_input_raw_select(Ecore_X_Window win); /**< @since 1.8 */
+
+EAPI Eina_Bool ecore_x_vsync_animator_tick_source_set(Ecore_X_Window win);
+
+typedef enum _Ecore_X_Gesture_Event_Mask
+{
+ ECORE_X_GESTURE_EVENT_MASK_NONE = 0L,
+ ECORE_X_GESTURE_EVENT_MASK_FLICK = (1L << 0),
+ ECORE_X_GESTURE_EVENT_MASK_PAN = (1L << 1),
+ ECORE_X_GESTURE_EVENT_MASK_PINCHROTATION = (1L << 2),
+ ECORE_X_GESTURE_EVENT_MASK_TAP = (1L << 3),
+ ECORE_X_GESTURE_EVENT_MASK_TAPNHOLD = (1L << 4),
+ ECORE_X_GESTURE_EVENT_MASK_HOLD = (1L << 5),
+ ECORE_X_GESTURE_EVENT_MASK_GROUP = (1L << 6)
+} Ecore_X_Gesture_Event_Mask;
+
+typedef enum _Ecore_X_Gesture_Event_Type
+{
+ ECORE_X_GESTURE_EVENT_FLICK,
+ ECORE_X_GESTURE_EVENT_PAN,
+ ECORE_X_GESTURE_EVENT_PINCHROTATION,
+ ECORE_X_GESTURE_EVENT_TAP,
+ ECORE_X_GESTURE_EVENT_TAPNHOLD,
+ ECORE_X_GESTURE_EVENT_HOLD,
+ ECORE_X_GESTURE_EVENT_GROUP
+} Ecore_X_Gesture_Event_Type;
+
+typedef enum _Ecore_X_Gesture_Event_Subtype
+{
+ ECORE_X_GESTURE_END,
+ ECORE_X_GESTURE_BEGIN,
+ ECORE_X_GESTURE_UPDATE,
+ ECORE_X_GESTURE_DONE
+} Ecore_X_Gesture_Event_Subtype;
+
+typedef enum _Ecore_X_Gesture_Group_Subtype
+{
+ ECORE_X_GESTURE_GROUP_REMOVED,
+ ECORE_X_GESTURE_GROUP_ADDED,
+ ECORE_X_GESTURE_GROUP_CURRENT
+} Ecore_X_Gesture_Group_Subtype;
+
+typedef enum _Ecore_X_Gesture_Direction
+{
+ ECORE_X_GESTURE_NORTHWARD,
+ ECORE_X_GESTURE_NORTHEASTWARD,
+ ECORE_X_GESTURE_EASTWARD,
+ ECORE_X_GESTURE_SOUTHEASTWARD,
+ ECORE_X_GESTURE_SOUTHWARD,
+ ECORE_X_GESTURE_SOUTHWESTWARD,
+ ECORE_X_GESTURE_WESTWARD,
+ ECORE_X_GESTURE_NORTHWESTWARD
+} Ecore_X_Gesture_Direction;
+
+struct _Ecore_X_Event_Gesture_Notify_Flick
+{
+ Ecore_X_Window win;
+ Ecore_X_Time time;
+ Ecore_X_Gesture_Event_Subtype subtype;
+ int num_fingers;
+ int distance;
+ Ecore_X_Time duration;
+ Ecore_X_Gesture_Direction direction;
+ double angle;
+};
+
+struct _Ecore_X_Event_Gesture_Notify_Pan
+{
+ Ecore_X_Window win;
+ Ecore_X_Time time;
+ Ecore_X_Gesture_Event_Subtype subtype;
+ int num_fingers;
+ int dx;
+ int dy;
+ int distance;
+ Ecore_X_Time duration;
+ Ecore_X_Gesture_Direction direction;
+};
+
+struct _Ecore_X_Event_Gesture_Notify_PinchRotation
+{
+ Ecore_X_Window win;
+ Ecore_X_Time time;
+ Ecore_X_Gesture_Event_Subtype subtype;
+ int num_fingers;
+ int distance;
+ int cx;
+ int cy;
+ double zoom;
+ double angle;
+};
+
+struct _Ecore_X_Event_Gesture_Notify_Tap
+{
+ Ecore_X_Window win;
+ Ecore_X_Time time;
+ Ecore_X_Gesture_Event_Subtype subtype;
+ int num_fingers;
+ int cx;
+ int cy;
+ int tap_repeat;
+ Ecore_X_Time interval;
+};
+
+struct _Ecore_X_Event_Gesture_Notify_TapNHold
+{
+ Ecore_X_Window win;
+ Ecore_X_Time time;
+ Ecore_X_Gesture_Event_Subtype subtype;
+ int num_fingers;
+ int cx;
+ int cy;
+ Ecore_X_Time interval;
+ Ecore_X_Time hold_time;
+};
+
+struct _Ecore_X_Event_Gesture_Notify_Hold
+{
+ Ecore_X_Window win;
+ Ecore_X_Time time;
+ Ecore_X_Gesture_Event_Subtype subtype;
+ int num_fingers;
+ int cx;
+ int cy;
+ Ecore_X_Time hold_time;
+};
+
+struct _Ecore_X_Event_Gesture_Notify_Group
+{
+ Ecore_X_Window win;
+ Ecore_X_Time time;
+ Ecore_X_Gesture_Group_Subtype subtype;
+ int num_groups;
+ int group_id;
+};
+
+EAPI Eina_Bool ecore_x_gesture_supported(void);
+
+EAPI Eina_Bool ecore_x_gesture_events_select(Ecore_X_Window win, Ecore_X_Gesture_Event_Mask mask);
+
+EAPI Ecore_X_Gesture_Event_Mask ecore_x_gesture_events_selected_get(Ecore_X_Window win);
+
+EAPI Eina_Bool ecore_x_gesture_event_grab(Ecore_X_Window win, Ecore_X_Gesture_Event_Type type, int num_fingers);
+
+EAPI Eina_Bool ecore_x_gesture_event_ungrab(Ecore_X_Window win, Ecore_X_Gesture_Event_Type type, int num_fingers);
+
+EAPI void ecore_x_e_illume_indicator_state_set(Ecore_X_Window win, Ecore_X_Illume_Indicator_State state);
+EAPI Ecore_X_Illume_Indicator_State ecore_x_e_illume_indicator_state_get(Ecore_X_Window win);
+EAPI void ecore_x_e_illume_indicator_state_send(Ecore_X_Window win, Ecore_X_Illume_Indicator_State state);
+
+EAPI void ecore_x_e_illume_indicator_opacity_set(Ecore_X_Window win, Ecore_X_Illume_Indicator_Opacity_Mode mode);
+
+EAPI Ecore_X_Illume_Indicator_Opacity_Mode ecore_x_e_illume_indicator_opacity_get(Ecore_X_Window win);
+
+EAPI void ecore_x_e_illume_indicator_opacity_send(Ecore_X_Window win, Ecore_X_Illume_Indicator_Opacity_Mode mode);
+
+EAPI void
+ecore_x_e_illume_window_state_set(Ecore_X_Window win,
+ Ecore_X_Illume_Window_State state);
+
+EAPI Ecore_X_Illume_Window_State ecore_x_e_illume_window_state_get(Ecore_X_Window win);
+EAPI void ecore_x_xkb_select_group(int group); /* @since 1.7 */
+
+#ifdef __cplusplus
+}
+#endif // ifdef __cplusplus
+
+#include <Ecore_X_Atoms.h>
+//#include <Ecore_X_Cursor.h>
+
+#include <ecore_x_2w.h>
+#endif // ifndef _ECORE_X_H
diff --git a/src/Ecore_X_Atoms.h b/src/Ecore_X_Atoms.h
new file mode 100644
index 0000000..ca6351d
--- /dev/null
+++ b/src/Ecore_X_Atoms.h
@@ -0,0 +1,292 @@
+#ifndef _ECORE_X_ATOMS_H
+#define _ECORE_X_ATOMS_H
+
+/**
+ * @file
+ * @brief Ecore X atoms
+ */
+
+/* generic atoms */
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_ATOM;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_CARDINAL;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_COMPOUND_TEXT;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_FILE_NAME;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_STRING;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_TEXT;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_UTF8_STRING;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_WINDOW;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_PIXMAP;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_VISUALID;
+
+/* dnd atoms */
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_SELECTION_XDND;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_SELECTION_PROP_XDND;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_XDND_AWARE;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_XDND_ENTER;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_XDND_TYPE_LIST;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_XDND_POSITION;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_XDND_ACTION_COPY;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_XDND_ACTION_MOVE;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_XDND_ACTION_PRIVATE;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_XDND_ACTION_ASK;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_XDND_ACTION_LIST;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_XDND_ACTION_LINK;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_XDND_ACTION_DESCRIPTION;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_XDND_PROXY;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_XDND_STATUS;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_XDND_LEAVE;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_XDND_DROP;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_XDND_FINISHED;
+
+/* dnd atoms that need to be exposed to the application interface */
+EAPI extern Ecore_X_Atom ECORE_X_DND_ACTION_COPY;
+EAPI extern Ecore_X_Atom ECORE_X_DND_ACTION_MOVE;
+EAPI extern Ecore_X_Atom ECORE_X_DND_ACTION_LINK;
+EAPI extern Ecore_X_Atom ECORE_X_DND_ACTION_ASK;
+EAPI extern Ecore_X_Atom ECORE_X_DND_ACTION_PRIVATE;
+
+/* old E atom */
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_E_FRAME_SIZE;
+
+/* old Gnome atom */
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_WIN_LAYER;
+
+/* ICCCM: client properties */
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_WM_NAME;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_WM_ICON_NAME;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_WM_NORMAL_HINTS;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_WM_SIZE_HINTS;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_WM_HINTS;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_WM_CLASS;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_WM_TRANSIENT_FOR;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_WM_PROTOCOLS;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_WM_COLORMAP_WINDOWS;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_WM_COMMAND;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_WM_CLIENT_MACHINE;
+
+/* ICCCM: window manager properties */
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_WM_STATE;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_WM_ICON_SIZE;
+
+/* ICCCM: WM_STATEproperty */
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_WM_CHANGE_STATE;
+
+/* ICCCM: WM_PROTOCOLS properties */
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_WM_TAKE_FOCUS;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_WM_SAVE_YOURSELF;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_WM_DELETE_WINDOW;
+
+/* ICCCM: WM_COLORMAP properties */
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_WM_COLORMAP_NOTIFY;
+
+/* ICCCM: session management properties */
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_SM_CLIENT_ID;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_WM_CLIENT_LEADER;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_WM_WINDOW_ROLE;
+
+/* Motif WM atom */
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_MOTIF_WM_HINTS;
+
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_NET_SUPPORTED;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_NET_CLIENT_LIST;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_NET_CLIENT_LIST_STACKING;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_NET_NUMBER_OF_DESKTOPS;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_NET_DESKTOP_GEOMETRY;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_NET_DESKTOP_VIEWPORT;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_NET_CURRENT_DESKTOP;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_NET_DESKTOP_NAMES;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_NET_ACTIVE_WINDOW;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_NET_WORKAREA;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_NET_SUPPORTING_WM_CHECK;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_NET_VIRTUAL_ROOTS;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_NET_DESKTOP_LAYOUT;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_NET_SHOWING_DESKTOP;
+
+/* pager */
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_NET_CLOSE_WINDOW;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_NET_MOVERESIZE_WINDOW;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_NET_WM_MOVERESIZE;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_NET_RESTACK_WINDOW;
+
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_NET_REQUEST_FRAME_EXTENTS;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_NET_WM_NAME;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_NET_WM_VISIBLE_NAME;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_NET_WM_ICON_NAME;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_NET_WM_VISIBLE_ICON_NAME;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_NET_WM_DESKTOP;
+
+/* window type */
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_NET_WM_WINDOW_TYPE;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_NET_WM_WINDOW_TYPE_DESKTOP;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_NET_WM_WINDOW_TYPE_DOCK;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_NET_WM_WINDOW_TYPE_TOOLBAR;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_NET_WM_WINDOW_TYPE_MENU;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_NET_WM_WINDOW_TYPE_UTILITY;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_NET_WM_WINDOW_TYPE_SPLASH;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_NET_WM_WINDOW_TYPE_DIALOG;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_NET_WM_WINDOW_TYPE_NORMAL;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_NET_WM_WINDOW_TYPE_DROPDOWN_MENU;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_NET_WM_WINDOW_TYPE_POPUP_MENU;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_NET_WM_WINDOW_TYPE_TOOLTIP;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_NET_WM_WINDOW_TYPE_NOTIFICATION;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_NET_WM_WINDOW_TYPE_COMBO;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_NET_WM_WINDOW_TYPE_DND;
+
+/* state */
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_NET_WM_STATE;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_NET_WM_STATE_MODAL;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_NET_WM_STATE_STICKY;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_NET_WM_STATE_MAXIMIZED_VERT;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_NET_WM_STATE_MAXIMIZED_HORZ;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_NET_WM_STATE_SHADED;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_NET_WM_STATE_SKIP_TASKBAR;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_NET_WM_STATE_SKIP_PAGER;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_NET_WM_STATE_HIDDEN;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_NET_WM_STATE_FULLSCREEN;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_NET_WM_STATE_ABOVE;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_NET_WM_STATE_BELOW;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_NET_WM_STATE_DEMANDS_ATTENTION;
+
+/* allowed actions */
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_NET_WM_ALLOWED_ACTIONS;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_NET_WM_ACTION_MOVE;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_NET_WM_ACTION_RESIZE;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_NET_WM_ACTION_MINIMIZE;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_NET_WM_ACTION_SHADE;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_NET_WM_ACTION_STICK;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_NET_WM_ACTION_MAXIMIZE_HORZ;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_NET_WM_ACTION_MAXIMIZE_VERT;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_NET_WM_ACTION_FULLSCREEN;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_NET_WM_ACTION_CHANGE_DESKTOP;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_NET_WM_ACTION_CLOSE;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_NET_WM_ACTION_ABOVE;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_NET_WM_ACTION_BELOW;
+
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_NET_WM_STRUT;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_NET_WM_STRUT_PARTIAL;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_NET_WM_ICON_GEOMETRY;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_NET_WM_ICON;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_NET_WM_PID;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_NET_WM_HANDLED_ICONS;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_NET_WM_USER_TIME;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_NET_STARTUP_ID;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_NET_FRAME_EXTENTS;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_NET_WM_PING;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_NET_WM_SYNC_REQUEST;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_NET_WM_SYNC_REQUEST_COUNTER;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_NET_WM_WINDOW_OPACITY;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_NET_WM_WINDOW_SHADOW;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_NET_WM_WINDOW_SHADE;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_NET_STARTUP_INFO_BEGIN;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_NET_STARTUP_INFO;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_SELECTION_TARGETS;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_SELECTION_PRIMARY;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_SELECTION_SECONDARY;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_SELECTION_CLIPBOARD;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_SELECTION_PROP_PRIMARY;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_SELECTION_PROP_SECONDARY;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_SELECTION_PROP_CLIPBOARD;
+
+/* currently E specific virtual keyboard extension, aim to submit to netwm spec
+ * later */
+
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_E_VIRTUAL_KEYBOARD;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_STATE;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_ON;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_OFF;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_ALPHA;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_NUMERIC;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_PIN;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_PHONE_NUMBER;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_HEX;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_TERMINAL;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_PASSWORD;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_IP;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_HOST;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_FILE;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_URL;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_KEYPAD;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_J2ME;
+
+/* Illume specific atoms */
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_ZONE;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_ZONE_LIST;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_CONFORMANT;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_MODE;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_MODE_SINGLE;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_MODE_DUAL_TOP;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_MODE_DUAL_LEFT;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_FOCUS_BACK;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_FOCUS_FORWARD;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_FOCUS_HOME;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_HOME_NEW;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_HOME_DEL;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_CLOSE;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_DRAG;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_DRAG_LOCKED;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_DRAG_START;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_DRAG_END;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_INDICATOR_GEOMETRY;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_SOFTKEY_GEOMETRY;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_KEYBOARD_GEOMETRY;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_QUICKPANEL;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_QUICKPANEL_STATE;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_QUICKPANEL_STATE_TOGGLE;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_QUICKPANEL_ON;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_QUICKPANEL_OFF;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_QUICKPANEL_PRIORITY_MAJOR;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_QUICKPANEL_PRIORITY_MINOR;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_QUICKPANEL_ZONE;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_QUICKPANEL_POSITION_UPDATE;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_INDICATOR_STATE;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_INDICATOR_ON;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_INDICATOR_OFF;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_INDICATOR_OPACITY_MODE;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_INDICATOR_OPAQUE;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_INDICATOR_TRANSLUCENT;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_INDICATOR_TRANSPARENT;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_ROTATE_WINDOW_AVAILABLE_ANGLE;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_ROTATE_WINDOW_ANGLE;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_ROTATE_ROOT_ANGLE;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_CLIPBOARD_STATE;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_CLIPBOARD_ON;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_CLIPBOARD_OFF;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_CLIPBOARD_GEOMETRY;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_WINDOW_STATE;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_WINDOW_STATE_NORMAL;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_WINDOW_STATE_FLOATING;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_ACCESS_CONTROL;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_ACCESS_ACTION_NEXT;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_ACCESS_ACTION_PREV;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_ACCESS_ACTION_ACTIVATE;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_ACCESS_ACTION_READ;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_ACCESS_ACTION_READ_NEXT;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_ACCESS_ACTION_READ_PREV;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_ACCESS_ACTION_UP;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_ACCESS_ACTION_DOWN;
+
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_E_COMP_SYNC_COUNTER;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_E_COMP_SYNC_DRAW_DONE;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_E_COMP_SYNC_SUPPORTED;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_E_COMP_SYNC_BEGIN;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_E_COMP_SYNC_END;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_E_COMP_SYNC_CANCEL;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_E_COMP_FLUSH;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_E_COMP_DUMP;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_E_COMP_PIXMAP;
+
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_E_VIDEO_PARENT;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_E_VIDEO_POSITION;
+
+/* currently elementary and E specific extension */
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_E_PROFILE;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_E_PROFILE_LIST;
+
+/* for sliding window */
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_SLIDING_WIN_STATE;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_SLIDING_WIN_GEOMETRY;
+
+/* for SDB(Samsung Debug Bridge) */
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_SDB_SERVER_CONNECT;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_SDB_SERVER_DISCONNECT;
+#endif /* _ECORE_X_ATOMS_H */
diff --git a/src/Makefile.am b/src/Makefile.am
index df271ca..76f4f7e 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -2,7 +2,11 @@ MAINTAINERCLEANFILES = Makefile.in
lib_LTLIBRARIES = libx2w.la
include_HEADERS = \
-x2w.h
+ecore_x_2w.h \
+elementary_2w.h \
+utilx_2w.h \
+x2w_general.h \
+xi_2w.h
libx2w_la_SOURCES = \
x2w.c
diff --git a/src/x2w.h b/src/ecore_x_2w.h
index e675aa0..4942f4e 100644
--- a/src/x2w.h
+++ b/src/ecore_x_2w.h
@@ -1,33 +1,9 @@
-#ifndef __X2W_HEADER__
-#define __X2W_HEADER__
+#ifndef __ECORE_X_2W_HEADER__
+#define __ECORE_X_2W_HEADER__
#ifdef __cplusplus
extern "C" {
#endif
-
-#define GCC_VERSION (__GNUC__ * 10000 \
- + __GNUC_MINOR__ * 100 \
- + __GNUC_PATCHLEVEL__)
-#include <stdio.h>
-
-#define ROOT_WIN_ID 1
-#define FAKE_RETURN_INT ROOT_WIN_ID
-#define FAKE_RETURN_POINTER NULL
-#define WIDTH 720
-#define HEIGHT 1280
-#define PRINT_LOCATIONS(string) fprintf(stderr, "file: %s, \tfunc: %s, \tline: %d, using %s\n", __FILE__, __FUNCTION__, __LINE__, string);
-#define PRINT_LOCATION fprintf(stderr, "file: %s, \tfunc: %s, \tline: %d\n", __FILE__, __FUNCTION__, __LINE__);
-#if GCC_VERSION > 40800
-#define DO_PRAGMA _Pragma ("GCC warning \"X-func\"")
-#else
-#define DO_PRAGMA
-#endif
-
-#define RETURN_INT(a) ({DO_PRAGMA PRINT_LOCATIONS(a); FAKE_RETURN_INT;})
-#define RETURN_POINTER(a) ({DO_PRAGMA PRINT_LOCATIONS(a); FAKE_RETURN_POINTER;})
-#define RETURN_VOID(a) do {DO_PRAGMA PRINT_LOCATIONS(a);} while(0)
-
-#define elm_win_xwindow_get(win) \
- RETURN_INT("e_lm_win_xwindow_get")
+#include "x2w_general.h"
#define ecore_x_window_size_get(win, w, h) \
({ \
@@ -165,23 +141,8 @@ extern "C" {
#define ecore_x_netwm_opacity_set(win, opacity) \
RETURN_VOID("e_core_x_netwm_opacity_set")
-#define utilx_hide_fake_effect(dpy, win) \
- RETURN_VOID("u_tilx_hide_fake_effect")
-
-#define XIQueryVersion( dpy, major_version_inout, minor_version_inout ) \
- RETURN_INT("X_IQueryVersion")
-
-#define XIGetProperty(dis,dev,prop,o,l,d,t,ct,f,n, b, d2) \
- RETURN_INT("X_IGetProperty")
-
-#define XIQueryDevice( dpy,deviceid,ndevices_return) \
- RETURN_POINT("X_IQueryDevice")
-
-#define XIFreeDeviceInfo(info) \
- RETURN_VOID("X_IFreeDeviceInfo")
-
#ifdef __cplusplus
} /* extern "C" */
#endif
-#endif /*__X2W_HEADER__*/
+#endif /*__ECORE_X_2W_HEADER__*/
diff --git a/src/elementary_2w.h b/src/elementary_2w.h
new file mode 100644
index 0000000..dcbd9a0
--- /dev/null
+++ b/src/elementary_2w.h
@@ -0,0 +1,16 @@
+#ifndef __ELEMENTARY_2W_HEADER__
+#define __ELEMENTARY_2W_HEADER__
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include "x2w_general.h"
+
+#define elm_win_xwindow_get(win) \
+ RETURN_INT("e_lm_win_xwindow_get")
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /*__ELEMENTARY_2W_HEADER__*/
diff --git a/src/utilx_2w.h b/src/utilx_2w.h
new file mode 100644
index 0000000..d7d22c3
--- /dev/null
+++ b/src/utilx_2w.h
@@ -0,0 +1,16 @@
+#ifndef __UTILX_2W_HEADER__
+#define __UTILX_2W_HEADER__
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include "x2w_general.h"
+
+#define utilx_hide_fake_effect(dpy, win) \
+ RETURN_VOID("u_tilx_hide_fake_effect")
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /*__UTILX_2W_HEADER__*/
diff --git a/src/x2w.c b/src/x2w.c
index fd67822..5a52883 100644
--- a/src/x2w.c
+++ b/src/x2w.c
@@ -1,5 +1,5 @@
#include <stdlib.h>
-#include "x2w.h"
+#include "elementary_2w.h"
void ecore_x_func_is_used()
{
int win,w,h;
diff --git a/src/x2w_general.h b/src/x2w_general.h
new file mode 100644
index 0000000..02f5b6d
--- /dev/null
+++ b/src/x2w_general.h
@@ -0,0 +1,33 @@
+#ifndef __X2W_GENERAL_HEADER__
+#define __X2W_GENERAL_HEADER__
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define GCC_VERSION (__GNUC__ * 10000 \
+ + __GNUC_MINOR__ * 100 \
+ + __GNUC_PATCHLEVEL__)
+#include <stdio.h>
+
+#define ROOT_WIN_ID 1
+#define FAKE_RETURN_INT ROOT_WIN_ID
+#define FAKE_RETURN_POINTER NULL
+#define WIDTH 720
+#define HEIGHT 1280
+#define PRINT_LOCATIONS(string) fprintf(stderr, "file: %s, \tfunc: %s, \tline: %d, using %s\n", __FILE__, __FUNCTION__, __LINE__, string);
+#define PRINT_LOCATION fprintf(stderr, "file: %s, \tfunc: %s, \tline: %d\n", __FILE__, __FUNCTION__, __LINE__);
+#if GCC_VERSION > 40800
+#define DO_PRAGMA _Pragma ("GCC warning \"X-func\"")
+#else
+#define DO_PRAGMA
+#endif
+
+#define RETURN_INT(a) ({DO_PRAGMA PRINT_LOCATIONS(a); FAKE_RETURN_INT;})
+#define RETURN_POINTER(a) ({DO_PRAGMA PRINT_LOCATIONS(a); FAKE_RETURN_POINTER;})
+#define RETURN_VOID(a) do {DO_PRAGMA PRINT_LOCATIONS(a);} while(0)
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /*__X2W_GENERAL_HEADER__*/
diff --git a/src/xi_2w.h b/src/xi_2w.h
new file mode 100644
index 0000000..e2dd99e
--- /dev/null
+++ b/src/xi_2w.h
@@ -0,0 +1,25 @@
+#ifndef __XI_2W_HEADER__
+#define __XI_2W_HEADER__
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include "x2w_general.h"
+
+#define XIQueryVersion( dpy, major_version_inout, minor_version_inout ) \
+ RETURN_INT("X_IQueryVersion")
+
+#define XIGetProperty(dis,dev,prop,o,l,d,t,ct,f,n, b, d2) \
+ RETURN_INT("X_IGetProperty")
+
+#define XIQueryDevice( dpy,deviceid,ndevices_return) \
+ RETURN_POINT("X_IQueryDevice")
+
+#define XIFreeDeviceInfo(info) \
+ RETURN_VOID("X_IFreeDeviceInfo")
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /*__XI_2W_HEADER__*/