5 #include <Efl_Config.h>
13 # define EAPI __declspec(dllexport)
14 # else // ifdef BUILDING_DLL
15 # define EAPI __declspec(dllimport)
16 # endif // ifdef BUILDING_DLL
17 #else // ifdef _MSC_VER
20 # define EAPI __attribute__ ((visibility("default")))
21 # else // if __GNUC__ >= 4
23 # endif // if __GNUC__ >= 4
24 # else // ifdef __GNUC__
26 # endif // ifdef __GNUC__
27 #endif // ifdef _MSC_VER
29 #define ECORE_X_VERSION_MAJOR EFL_VERSION_MAJOR
30 #define ECORE_X_VERSION_MINOR EFL_VERSION_MINOR
32 * @typedef Ecore_X_Version
33 * Represents the current version of Ecore_X
35 typedef struct _Ecore_X_Version
37 int major; /** < major (binary or source incompatible changes) */
38 int minor; /** < minor (new features, bugfixes, major improvements version) */
39 int micro; /** < micro (bugfix, internal improvements, no new features version) */
40 int revision; /** < git revision (0 if a proper release or the git revision number Ecore_X is built from) */
43 EAPI extern Ecore_X_Version *ecore_x_version;
45 #include "ecore_x_version.h"
47 #include <sys/types.h>
51 * @brief Ecore functions for dealing with the X Windows System
53 * @defgroup Ecore_X_Group Ecore_X - X11 Integration
56 * Ecore_X provides a wrapper and convenience functions for using the
57 * X Windows System. Function groups for this part of the library
58 * include the following:
59 * @li @ref Ecore_X_Init_Group
60 * @li @ref Ecore_X_Display_Attr_Group
61 * @li @ref Ecore_X_Flush_Group
62 * @li @ref Ecore_X_DPMS_Group
63 * @li @ref Ecore_X_Drawable_Group
64 * @li @ref Ecore_X_Pixmap_Group
65 * @li @ref Ecore_X_Window_Create_Group
66 * @li @ref Ecore_X_Window_Properties_Group
67 * @li @ref Ecore_X_Window_Destroy_Group
68 * @li @ref Ecore_X_Window_Visibility_Group
69 * @li @ref Ecore_X_Window_Geometry_Group
70 * @li @ref Ecore_X_Window_Focus_Functions
71 * @li @ref Ecore_X_Window_Z_Order_Group
72 * @li @ref Ecore_X_Window_Parent_Group
73 * @li @ref Ecore_X_Window_Shape
75 * The ECORE_X_SYNC environment variable will cause X calls to be run
76 * synchronously for easier debugging.
79 typedef unsigned int Ecore_X_ID;
80 #ifndef _ECORE_X_WINDOW_PREDEF
81 typedef Ecore_X_ID Ecore_X_Window;
82 typedef Ecore_X_ID Ecore_X_Pixmap;
83 typedef Ecore_X_ID Ecore_X_Atom;
84 typedef struct _Ecore_X_Icon
86 unsigned int width, height;
89 #endif // ifndef _ECORE_X_WINDOW_PREDEF
90 typedef void *Ecore_X_Visual;
91 typedef Ecore_X_ID Ecore_X_Drawable;
92 typedef void *Ecore_X_GC;
93 typedef Ecore_X_ID Ecore_X_Colormap;
94 typedef Ecore_X_ID Ecore_X_Time;
95 typedef Ecore_X_ID Ecore_X_Cursor;
96 typedef void Ecore_X_Display;
97 typedef void Ecore_X_Connection;
98 typedef void Ecore_X_Screen;
99 typedef Ecore_X_ID Ecore_X_Sync_Counter;
100 typedef Ecore_X_ID Ecore_X_Sync_Alarm;
101 typedef Ecore_X_ID Ecore_X_Sync_Fence; /**< @since 1.9 */
102 typedef void Ecore_X_XRegion;
104 typedef Ecore_X_ID Ecore_X_Randr_Output;
105 typedef Ecore_X_ID Ecore_X_Randr_Crtc;
106 typedef Ecore_X_ID Ecore_X_Randr_Mode;
107 typedef unsigned short Ecore_X_Randr_Size_ID;
108 typedef int Ecore_X_Randr_Screen;
110 typedef Ecore_X_ID Ecore_X_Device;
114 #endif // ifdef __cplusplus
116 typedef struct _Ecore_X_Rectangle
119 unsigned int width, height;
122 typedef enum _Ecore_X_GC_Value_Mask
124 ECORE_X_GC_VALUE_MASK_FUNCTION = (1L << 0),
125 ECORE_X_GC_VALUE_MASK_PLANE_MASK = (1L << 1),
126 ECORE_X_GC_VALUE_MASK_FOREGROUND = (1L << 2),
127 ECORE_X_GC_VALUE_MASK_BACKGROUND = (1L << 3),
128 ECORE_X_GC_VALUE_MASK_LINE_WIDTH = (1L << 4),
129 ECORE_X_GC_VALUE_MASK_LINE_STYLE = (1L << 5),
130 ECORE_X_GC_VALUE_MASK_CAP_STYLE = (1L << 6),
131 ECORE_X_GC_VALUE_MASK_JOIN_STYLE = (1L << 7),
132 ECORE_X_GC_VALUE_MASK_FILL_STYLE = (1L << 8),
133 ECORE_X_GC_VALUE_MASK_FILL_RULE = (1L << 9),
134 ECORE_X_GC_VALUE_MASK_TILE = (1L << 10),
135 ECORE_X_GC_VALUE_MASK_STIPPLE = (1L << 11),
136 ECORE_X_GC_VALUE_MASK_TILE_STIPPLE_ORIGIN_X = (1L << 12),
137 ECORE_X_GC_VALUE_MASK_TILE_STIPPLE_ORIGIN_Y = (1L << 13),
138 ECORE_X_GC_VALUE_MASK_FONT = (1L << 14),
139 ECORE_X_GC_VALUE_MASK_SUBWINDOW_MODE = (1L << 15),
140 ECORE_X_GC_VALUE_MASK_GRAPHICS_EXPOSURES = (1L << 16),
141 ECORE_X_GC_VALUE_MASK_CLIP_ORIGIN_X = (1L << 17),
142 ECORE_X_GC_VALUE_MASK_CLIP_ORIGIN_Y = (1L << 18),
143 ECORE_X_GC_VALUE_MASK_CLIP_MASK = (1L << 19),
144 ECORE_X_GC_VALUE_MASK_DASH_OFFSET = (1L << 20),
145 ECORE_X_GC_VALUE_MASK_DASH_LIST = (1L << 21),
146 ECORE_X_GC_VALUE_MASK_ARC_MODE = (1L << 22)
147 } Ecore_X_GC_Value_Mask;
149 typedef enum _Ecore_X_Composite_Update_Type
151 ECORE_X_COMPOSITE_UPDATE_AUTOMATIC,
152 ECORE_X_COMPOSITE_UPDATE_MANUAL
153 } Ecore_X_Composite_Update_Type;
156 * @typedef _Ecore_X_Window_State
157 * Defines the different states of the window of Ecore_X.
159 typedef enum _Ecore_X_Window_State
161 ECORE_X_WINDOW_STATE_UNKNOWN = 0,
162 ECORE_X_WINDOW_STATE_ICONIFIED, /** The window is iconified. */
163 ECORE_X_WINDOW_STATE_MODAL, /** The window is a modal dialog box. */
164 ECORE_X_WINDOW_STATE_STICKY, /** The window manager should keep the window's position fixed
165 * even if the virtual desktop scrolls. */
166 ECORE_X_WINDOW_STATE_MAXIMIZED_VERT, /** The window has the maximum vertical size. */
167 ECORE_X_WINDOW_STATE_MAXIMIZED_HORZ, /** The window has the maximum horizontal size. */
168 ECORE_X_WINDOW_STATE_SHADED, /** The window is shaded. */
169 ECORE_X_WINDOW_STATE_SKIP_TASKBAR, /** The window should not be included in the taskbar. */
170 ECORE_X_WINDOW_STATE_SKIP_PAGER, /** The window should not be included in the pager. */
171 ECORE_X_WINDOW_STATE_HIDDEN, /** The window is invisible (i.e. minimized/iconified) */
172 ECORE_X_WINDOW_STATE_FULLSCREEN, /** The window should fill the entire screen and have no
173 * window border/decorations */
174 ECORE_X_WINDOW_STATE_ABOVE,
175 ECORE_X_WINDOW_STATE_BELOW,
176 ECORE_X_WINDOW_STATE_DEMANDS_ATTENTION
177 } Ecore_X_Window_State;
179 typedef enum _Ecore_X_Window_State_Action
181 ECORE_X_WINDOW_STATE_ACTION_REMOVE,
182 ECORE_X_WINDOW_STATE_ACTION_ADD,
183 ECORE_X_WINDOW_STATE_ACTION_TOGGLE
184 } Ecore_X_Window_State_Action;
186 typedef enum _Ecore_X_Window_Stack_Mode
188 ECORE_X_WINDOW_STACK_ABOVE = 0,
189 ECORE_X_WINDOW_STACK_BELOW = 1,
190 ECORE_X_WINDOW_STACK_TOP_IF = 2,
191 ECORE_X_WINDOW_STACK_BOTTOM_IF = 3,
192 ECORE_X_WINDOW_STACK_OPPOSITE = 4
193 } Ecore_X_Window_Stack_Mode;
195 typedef enum _Ecore_X_Randr_Orientation
197 ECORE_X_RANDR_ORIENTATION_ROT_0 = (1 << 0),
198 ECORE_X_RANDR_ORIENTATION_ROT_90 = (1 << 1),
199 ECORE_X_RANDR_ORIENTATION_ROT_180 = (1 << 2),
200 ECORE_X_RANDR_ORIENTATION_ROT_270 = (1 << 3),
201 ECORE_X_RANDR_ORIENTATION_FLIP_X = (1 << 4),
202 ECORE_X_RANDR_ORIENTATION_FLIP_Y = (1 << 5)
203 } Ecore_X_Randr_Orientation;
205 typedef enum _Ecore_X_Randr_Connection_Status
207 ECORE_X_RANDR_CONNECTION_STATUS_CONNECTED = 0,
208 ECORE_X_RANDR_CONNECTION_STATUS_DISCONNECTED = 1,
209 ECORE_X_RANDR_CONNECTION_STATUS_UNKNOWN = 2
210 } Ecore_X_Randr_Connection_Status;
212 typedef enum _Ecore_X_Randr_Output_Policy
214 ECORE_X_RANDR_OUTPUT_POLICY_ABOVE = 1,
215 ECORE_X_RANDR_OUTPUT_POLICY_RIGHT = 2,
216 ECORE_X_RANDR_OUTPUT_POLICY_BELOW = 3,
217 ECORE_X_RANDR_OUTPUT_POLICY_LEFT = 4,
218 ECORE_X_RANDR_OUTPUT_POLICY_CLONE = 5,
219 ECORE_X_RANDR_OUTPUT_POLICY_NONE = 6,
220 ECORE_X_RANDR_OUTPUT_POLICY_ASK = 7
221 } Ecore_X_Randr_Output_Policy;
223 typedef enum _Ecore_X_Randr_Relative_Alignment
225 ECORE_X_RANDR_RELATIVE_ALIGNMENT_NONE = 0,
226 ECORE_X_RANDR_RELATIVE_ALIGNMENT_CENTER_REL = 1,
227 ECORE_X_RANDR_RELATIVE_ALIGNMENT_CENTER_SCR = 2
228 } Ecore_X_Randr_Relative_Alignment;
230 typedef enum _Ecore_X_Render_Subpixel_Order
232 ECORE_X_RENDER_SUBPIXEL_ORDER_UNKNOWN = 0,
233 ECORE_X_RENDER_SUBPIXEL_ORDER_HORIZONTAL_RGB = 1,
234 ECORE_X_RENDER_SUBPIXEL_ORDER_HORIZONTAL_BGR = 2,
235 ECORE_X_RENDER_SUBPIXEL_ORDER_VERTICAL_RGB = 3,
236 ECORE_X_RENDER_SUBPIXEL_ORDER_VERTICAL_BGR = 4,
237 ECORE_X_RENDER_SUBPIXEL_ORDER_NONE = 5
238 } Ecore_X_Render_Subpixel_Order;
240 typedef enum _Ecore_X_Randr_Edid_Display_Interface_Type
242 ECORE_X_RANDR_EDID_DISPLAY_INTERFACE_UNDEFINED,
243 ECORE_X_RANDR_EDID_DISPLAY_INTERFACE_DVI,
244 ECORE_X_RANDR_EDID_DISPLAY_INTERFACE_HDMI_A,
245 ECORE_X_RANDR_EDID_DISPLAY_INTERFACE_HDMI_B,
246 ECORE_X_RANDR_EDID_DISPLAY_INTERFACE_MDDI,
247 ECORE_X_RANDR_EDID_DISPLAY_INTERFACE_DISPLAY_PORT
248 } Ecore_X_Randr_Edid_Display_Interface_Type;
250 typedef enum _Ecore_X_Randr_Edid_Display_Colorscheme
252 ECORE_X_RANDR_EDID_DISPLAY_COLORSCHEME_MONOCHROME_GRAYSCALE = 0x00,
253 ECORE_X_RANDR_EDID_DISPLAY_COLORSCHEME_COLOR_RGB = 0x08,
254 ECORE_X_RANDR_EDID_DISPLAY_COLORSCHEME_COLOR_NON_RGB = 0x10,
255 ECORE_X_RANDR_EDID_DISPLAY_COLORSCHEME_COLOR_UNDEFINED = 0x18,
256 ECORE_X_RANDR_EDID_DISPLAY_COLORSCHEME_COLOR_RGB_4_4_4 = 0x444000,
257 ECORE_X_RANDR_EDID_DISPLAY_COLORSCHEME_COLOR_RGB_YCRCB_4_4_4 = 0x444,
258 ECORE_X_RANDR_EDID_DISPLAY_COLORSCHEME_COLOR_RGB_YCRCB_4_2_2 = 0x422
259 } Ecore_X_Randr_Edid_Display_Colorscheme;
261 typedef enum _Ecore_X_Randr_Edid_Aspect_Ratio
263 ECORE_X_RANDR_EDID_ASPECT_RATIO_4_3 = 0x0,
264 ECORE_X_RANDR_EDID_ASPECT_RATIO_16_9 = 0x1,
265 ECORE_X_RANDR_EDID_ASPECT_RATIO_16_10 = 0x2,
266 ECORE_X_RANDR_EDID_ASPECT_RATIO_5_4 = 0x4,
267 ECORE_X_RANDR_EDID_ASPECT_RATIO_15_9 = 0x8
268 } Ecore_X_Randr_Edid_Aspect_Ratio;
270 #define ECORE_X_RANDR_EDID_UNKNOWN_VALUE -1
272 #define ECORE_X_SELECTION_TARGET_TARGETS "TARGETS"
273 #define ECORE_X_SELECTION_TARGET_TEXT "TEXT"
274 #define ECORE_X_SELECTION_TARGET_COMPOUND_TEXT "COMPOUND_TEXT"
275 #define ECORE_X_SELECTION_TARGET_STRING "STRING"
276 #define ECORE_X_SELECTION_TARGET_UTF8_STRING "UTF8_STRING"
277 #define ECORE_X_SELECTION_TARGET_FILENAME "FILENAME"
278 #define ECORE_X_SELECTION_TARGET_X_MOZ_URL "X_MOZ_URL"
280 #define ECORE_X_DND_VERSION 5
282 typedef enum _Ecore_X_Selection
284 ECORE_X_SELECTION_PRIMARY,
285 ECORE_X_SELECTION_SECONDARY,
286 ECORE_X_SELECTION_XDND,
287 ECORE_X_SELECTION_CLIPBOARD,
288 ECORE_X_SELECTION_OTHER
291 typedef enum _Ecore_X_Event_Mode
293 ECORE_X_EVENT_MODE_NORMAL,
294 ECORE_X_EVENT_MODE_WHILE_GRABBED,
295 ECORE_X_EVENT_MODE_GRAB,
296 ECORE_X_EVENT_MODE_UNGRAB
297 } Ecore_X_Event_Mode;
299 typedef enum _Ecore_X_Event_Detail
301 ECORE_X_EVENT_DETAIL_ANCESTOR,
302 ECORE_X_EVENT_DETAIL_VIRTUAL,
303 ECORE_X_EVENT_DETAIL_INFERIOR,
304 ECORE_X_EVENT_DETAIL_NON_LINEAR,
305 ECORE_X_EVENT_DETAIL_NON_LINEAR_VIRTUAL,
306 ECORE_X_EVENT_DETAIL_POINTER,
307 ECORE_X_EVENT_DETAIL_POINTER_ROOT,
308 ECORE_X_EVENT_DETAIL_DETAIL_NONE
309 } Ecore_X_Event_Detail;
311 typedef enum _Ecore_X_Event_Mask
313 ECORE_X_EVENT_MASK_NONE = 0L,
314 ECORE_X_EVENT_MASK_KEY_DOWN = (1L << 0),
315 ECORE_X_EVENT_MASK_KEY_UP = (1L << 1),
316 ECORE_X_EVENT_MASK_MOUSE_DOWN = (1L << 2),
317 ECORE_X_EVENT_MASK_MOUSE_UP = (1L << 3),
318 ECORE_X_EVENT_MASK_MOUSE_IN = (1L << 4),
319 ECORE_X_EVENT_MASK_MOUSE_OUT = (1L << 5),
320 ECORE_X_EVENT_MASK_MOUSE_MOVE = (1L << 6),
321 ECORE_X_EVENT_MASK_WINDOW_DAMAGE = (1L << 15),
322 ECORE_X_EVENT_MASK_WINDOW_VISIBILITY = (1L << 16),
323 ECORE_X_EVENT_MASK_WINDOW_CONFIGURE = (1L << 17),
324 ECORE_X_EVENT_MASK_WINDOW_RESIZE_MANAGE = (1L << 18),
325 ECORE_X_EVENT_MASK_WINDOW_MANAGE = (1L << 19),
326 ECORE_X_EVENT_MASK_WINDOW_CHILD_CONFIGURE = (1L << 20),
327 ECORE_X_EVENT_MASK_WINDOW_FOCUS_CHANGE = (1L << 21),
328 ECORE_X_EVENT_MASK_WINDOW_PROPERTY = (1L << 22),
329 ECORE_X_EVENT_MASK_WINDOW_COLORMAP = (1L << 23),
330 ECORE_X_EVENT_MASK_WINDOW_GRAB = (1L << 24),
331 ECORE_X_EVENT_MASK_MOUSE_WHEEL = (1L << 29),
332 ECORE_X_EVENT_MASK_WINDOW_FOCUS_IN = (1L << 30),
333 ECORE_X_EVENT_MASK_WINDOW_FOCUS_OUT = (1L << 31)
334 } Ecore_X_Event_Mask;
336 typedef enum _Ecore_X_Gravity
338 ECORE_X_GRAVITY_FORGET = 0,
339 ECORE_X_GRAVITY_UNMAP = 0,
340 ECORE_X_GRAVITY_NW = 1,
341 ECORE_X_GRAVITY_N = 2,
342 ECORE_X_GRAVITY_NE = 3,
343 ECORE_X_GRAVITY_W = 4,
344 ECORE_X_GRAVITY_CENTER = 5,
345 ECORE_X_GRAVITY_E = 6,
346 ECORE_X_GRAVITY_SW = 7,
347 ECORE_X_GRAVITY_S = 8,
348 ECORE_X_GRAVITY_SE = 9,
349 ECORE_X_GRAVITY_STATIC = 10
352 /* Needed for ecore_x_region_window_shape_set */
353 typedef enum _Ecore_X_Shape_Type
355 ECORE_X_SHAPE_BOUNDING,
358 } Ecore_X_Shape_Type;
360 typedef enum _Ecore_X_Mapping_Type
362 ECORE_X_MAPPING_MODIFIER,
363 ECORE_X_MAPPING_KEYBOARD,
364 ECORE_X_MAPPING_MOUSE
365 } Ecore_X_Mapping_Type;
367 typedef enum _Ecore_X_Randr_Property_Change
369 ECORE_X_RANDR_PROPERTY_CHANGE_ADD,
370 ECORE_X_RANDR_PROPERTY_CHANGE_DEL
371 } Ecore_X_Randr_Property_Change;
373 typedef enum _Ecore_X_Netwm_Direction
375 ECORE_X_NETWM_DIRECTION_SIZE_TL = 0,
376 ECORE_X_NETWM_DIRECTION_SIZE_T = 1,
377 ECORE_X_NETWM_DIRECTION_SIZE_TR = 2,
378 ECORE_X_NETWM_DIRECTION_SIZE_R = 3,
379 ECORE_X_NETWM_DIRECTION_SIZE_BR = 4,
380 ECORE_X_NETWM_DIRECTION_SIZE_B = 5,
381 ECORE_X_NETWM_DIRECTION_SIZE_BL = 6,
382 ECORE_X_NETWM_DIRECTION_SIZE_L = 7,
383 ECORE_X_NETWM_DIRECTION_MOVE = 8,
384 ECORE_X_NETWM_DIRECTION_CANCEL = 11,
385 } Ecore_X_Netwm_Direction;
388 * @typedef _Ecore_X_Error_Code
389 * Defines the error codes of Ecore_X which wraps the X Window Systems
394 typedef enum _Ecore_X_Error_Code
396 /** Everything is okay. */
397 ECORE_X_ERROR_CODE_SUCCESS = 0, /** Bad request code */
398 ECORE_X_ERROR_CODE_BAD_REQUEST = 1, /** Int parameter out of range */
399 ECORE_X_ERROR_CODE_BAD_VALUE = 2, /** Parameter not a Window */
400 ECORE_X_ERROR_CODE_BAD_WINDOW = 3, /** Parameter not a Pixmap */
401 ECORE_X_ERROR_CODE_BAD_PIXMAP = 4, /** Parameter not an Atom */
402 ECORE_X_ERROR_CODE_BAD_ATOM = 5, /** Parameter not a Cursor */
403 ECORE_X_ERROR_CODE_BAD_CURSOR = 6, /** Parameter not a Font */
404 ECORE_X_ERROR_CODE_BAD_FONT = 7, /** Parameter mismatch */
405 ECORE_X_ERROR_CODE_BAD_MATCH = 8, /** Parameter not a Pixmap or Window */
406 ECORE_X_ERROR_CODE_BAD_DRAWABLE = 9, /** Bad access */
407 ECORE_X_ERROR_CODE_BAD_ACCESS = 10, /** Insufficient resources */
408 ECORE_X_ERROR_CODE_BAD_ALLOC = 11, /** No such colormap */
409 ECORE_X_ERROR_CODE_BAD_COLOR = 12, /** Parameter not a GC */
410 ECORE_X_ERROR_CODE_BAD_GC = 13, /** Choice not in range or already used */
411 ECORE_X_ERROR_CODE_BAD_ID_CHOICE = 14, /** Font or color name doesn't exist */
412 ECORE_X_ERROR_CODE_BAD_NAME = 15, /** Request length incorrect */
413 ECORE_X_ERROR_CODE_BAD_LENGTH = 16, /** Server is defective */
414 ECORE_X_ERROR_CODE_BAD_IMPLEMENTATION = 17,
415 } Ecore_X_Error_Code;
417 typedef enum _Ecore_X_Dpms_Mode
419 ECORE_X_DPMS_MODE_ON = 0,
420 ECORE_X_DPMS_MODE_STANDBY = 1,
421 ECORE_X_DPMS_MODE_SUSPEND = 2,
422 ECORE_X_DPMS_MODE_OFF = 3
425 typedef struct _Ecore_X_Event_Mouse_In Ecore_X_Event_Mouse_In;
426 typedef struct _Ecore_X_Event_Mouse_Out Ecore_X_Event_Mouse_Out;
427 typedef struct _Ecore_X_Event_Window_Focus_In Ecore_X_Event_Window_Focus_In;
428 typedef struct _Ecore_X_Event_Window_Focus_Out Ecore_X_Event_Window_Focus_Out;
429 typedef struct _Ecore_X_Event_Window_Keymap Ecore_X_Event_Window_Keymap;
430 typedef struct _Ecore_X_Event_Window_Damage Ecore_X_Event_Window_Damage;
431 typedef struct _Ecore_X_Event_Window_Visibility_Change Ecore_X_Event_Window_Visibility_Change;
432 typedef struct _Ecore_X_Event_Window_Create Ecore_X_Event_Window_Create;
433 typedef struct _Ecore_X_Event_Window_Destroy Ecore_X_Event_Window_Destroy;
434 typedef struct _Ecore_X_Event_Window_Hide Ecore_X_Event_Window_Hide;
435 typedef struct _Ecore_X_Event_Window_Show Ecore_X_Event_Window_Show;
436 typedef struct _Ecore_X_Event_Window_Show_Request Ecore_X_Event_Window_Show_Request;
437 typedef struct _Ecore_X_Event_Window_Reparent Ecore_X_Event_Window_Reparent;
438 typedef struct _Ecore_X_Event_Window_Configure Ecore_X_Event_Window_Configure;
439 typedef struct _Ecore_X_Event_Window_Configure_Request Ecore_X_Event_Window_Configure_Request;
440 typedef struct _Ecore_X_Event_Window_Gravity Ecore_X_Event_Window_Gravity;
441 typedef struct _Ecore_X_Event_Window_Resize_Request Ecore_X_Event_Window_Resize_Request;
442 typedef struct _Ecore_X_Event_Window_Stack Ecore_X_Event_Window_Stack;
443 typedef struct _Ecore_X_Event_Window_Stack_Request Ecore_X_Event_Window_Stack_Request;
444 typedef struct _Ecore_X_Event_Window_Property Ecore_X_Event_Window_Property;
445 typedef struct _Ecore_X_Event_Window_Colormap Ecore_X_Event_Window_Colormap;
446 typedef struct _Ecore_X_Event_Mapping_Change Ecore_X_Event_Mapping_Change;
447 typedef struct _Ecore_X_Event_Window_Mapping Ecore_X_Event_Window_Mapping;
448 typedef struct _Ecore_X_Event_Selection_Clear Ecore_X_Event_Selection_Clear;
449 typedef struct _Ecore_X_Event_Selection_Request Ecore_X_Event_Selection_Request;
450 typedef struct _Ecore_X_Event_Selection_Notify Ecore_X_Event_Selection_Notify;
451 typedef struct _Ecore_X_Event_Fixes_Selection_Notify Ecore_X_Event_Fixes_Selection_Notify;
452 typedef struct _Ecore_X_Selection_Data Ecore_X_Selection_Data;
453 typedef struct _Ecore_X_Selection_Data_Files Ecore_X_Selection_Data_Files;
454 typedef struct _Ecore_X_Selection_Data_Text Ecore_X_Selection_Data_Text;
455 typedef struct _Ecore_X_Selection_Data_X_Moz_Url Ecore_X_Selection_Data_X_Moz_Url;
456 typedef struct _Ecore_X_Selection_Data_Targets Ecore_X_Selection_Data_Targets;
457 typedef struct _Ecore_X_Event_Xdnd_Enter Ecore_X_Event_Xdnd_Enter;
458 typedef struct _Ecore_X_Event_Xdnd_Position Ecore_X_Event_Xdnd_Position;
459 typedef struct _Ecore_X_Event_Xdnd_Status Ecore_X_Event_Xdnd_Status;
460 typedef struct _Ecore_X_Event_Xdnd_Leave Ecore_X_Event_Xdnd_Leave;
461 typedef struct _Ecore_X_Event_Xdnd_Drop Ecore_X_Event_Xdnd_Drop;
462 typedef struct _Ecore_X_Event_Xdnd_Finished Ecore_X_Event_Xdnd_Finished;
463 typedef struct _Ecore_X_Event_Client_Message Ecore_X_Event_Client_Message;
464 typedef struct _Ecore_X_Event_Window_Shape Ecore_X_Event_Window_Shape;
465 typedef struct _Ecore_X_Event_Screensaver_Notify Ecore_X_Event_Screensaver_Notify;
466 typedef struct _Ecore_X_Event_Gesture_Notify_Flick Ecore_X_Event_Gesture_Notify_Flick;
467 typedef struct _Ecore_X_Event_Gesture_Notify_Pan Ecore_X_Event_Gesture_Notify_Pan;
468 typedef struct _Ecore_X_Event_Gesture_Notify_PinchRotation Ecore_X_Event_Gesture_Notify_PinchRotation;
469 typedef struct _Ecore_X_Event_Gesture_Notify_Tap Ecore_X_Event_Gesture_Notify_Tap;
470 typedef struct _Ecore_X_Event_Gesture_Notify_TapNHold Ecore_X_Event_Gesture_Notify_TapNHold;
471 typedef struct _Ecore_X_Event_Gesture_Notify_Hold Ecore_X_Event_Gesture_Notify_Hold;
472 typedef struct _Ecore_X_Event_Gesture_Notify_Group Ecore_X_Event_Gesture_Notify_Group;
473 typedef struct _Ecore_X_Event_Sync_Counter Ecore_X_Event_Sync_Counter;
474 typedef struct _Ecore_X_Event_Sync_Alarm Ecore_X_Event_Sync_Alarm;
475 typedef struct _Ecore_X_Event_Screen_Change Ecore_X_Event_Screen_Change;
476 typedef struct _Ecore_X_Event_Randr_Crtc_Change Ecore_X_Event_Randr_Crtc_Change;
477 typedef struct _Ecore_X_Event_Randr_Output_Change Ecore_X_Event_Randr_Output_Change;
478 typedef struct _Ecore_X_Event_Randr_Output_Property_Notify Ecore_X_Event_Randr_Output_Property_Notify;
480 typedef struct _Ecore_X_Event_Window_Delete_Request Ecore_X_Event_Window_Delete_Request;
481 typedef struct _Ecore_X_Event_Window_Move_Resize_Request Ecore_X_Event_Window_Move_Resize_Request;
482 typedef struct _Ecore_X_Event_Window_State_Request Ecore_X_Event_Window_State_Request;
483 typedef struct _Ecore_X_Event_Frame_Extents_Request Ecore_X_Event_Frame_Extents_Request;
484 typedef struct _Ecore_X_Event_Ping Ecore_X_Event_Ping;
485 typedef struct _Ecore_X_Event_Desktop_Change Ecore_X_Event_Desktop_Change;
487 typedef struct _Ecore_X_Event_Startup_Sequence Ecore_X_Event_Startup_Sequence;
489 typedef struct _Ecore_X_Event_Generic Ecore_X_Event_Generic;
492 typedef struct Ecore_X_Event_Present_Configure Ecore_X_Event_Present_Configure; /**< @since 1.9 */
493 typedef struct Ecore_X_Event_Present_Complete Ecore_X_Event_Present_Complete; /**< @since 1.9 */
494 typedef struct Ecore_X_Event_Present_Idle Ecore_X_Event_Present_Idle; /**< @since 1.9 */
496 typedef struct _Ecore_X_Randr_Screen_Size Ecore_X_Randr_Screen_Size;
497 typedef struct _Ecore_X_Randr_Screen_Size_MM Ecore_X_Randr_Screen_Size_MM;
498 typedef struct _Ecore_X_Randr_Crtc_Info Ecore_X_Randr_Crtc_Info; /**< @since 1.8 */
500 typedef struct _Ecore_X_Xdnd_Position Ecore_X_Xdnd_Position;
503 struct _Ecore_X_Event_Mouse_In
507 Eina_Bool same_screen : 1;
513 Ecore_X_Window event_win;
514 Ecore_X_Window root_win;
515 Ecore_X_Event_Mode mode;
516 Ecore_X_Event_Detail detail;
520 struct _Ecore_X_Event_Mouse_Out
530 Ecore_X_Window event_win;
531 Ecore_X_Window root_win;
532 Ecore_X_Event_Mode mode;
533 Ecore_X_Event_Detail detail;
537 struct _Ecore_X_Event_Window_Focus_In
540 Ecore_X_Event_Mode mode;
541 Ecore_X_Event_Detail detail;
545 struct _Ecore_X_Event_Window_Focus_Out
548 Ecore_X_Event_Mode mode;
549 Ecore_X_Event_Detail detail;
553 struct _Ecore_X_Event_Window_Keymap
558 struct _Ecore_X_Event_Window_Damage
566 struct _Ecore_X_Event_Window_Visibility_Change
573 struct _Ecore_X_Event_Window_Create
576 Ecore_X_Window parent;
583 struct _Ecore_X_Event_Window_Destroy
586 Ecore_X_Window event_win;
590 struct _Ecore_X_Event_Window_Hide
593 Ecore_X_Window event_win;
595 Eina_Bool send_event : 1; /**< @since 1.8 */
598 struct _Ecore_X_Event_Window_Show
601 Ecore_X_Window event_win;
605 struct _Ecore_X_Event_Window_Show_Request
608 Ecore_X_Window parent;
612 struct _Ecore_X_Event_Window_Reparent
615 Ecore_X_Window event_win;
616 Ecore_X_Window parent;
620 struct _Ecore_X_Event_Window_Configure
623 Ecore_X_Window event_win;
624 Ecore_X_Window abovewin;
627 Eina_Bool override : 1;
628 Eina_Bool from_wm : 1;
632 struct _Ecore_X_Event_Window_Configure_Request
635 Ecore_X_Window parent_win;
636 Ecore_X_Window abovewin;
639 Ecore_X_Window_Stack_Mode detail;
640 unsigned long value_mask;
644 struct _Ecore_X_Event_Window_Gravity
647 Ecore_X_Window event_win;
651 struct _Ecore_X_Event_Window_Resize_Request
658 struct _Ecore_X_Event_Window_Stack
661 Ecore_X_Window event_win;
662 Ecore_X_Window_Stack_Mode detail;
666 struct _Ecore_X_Event_Window_Stack_Request
669 Ecore_X_Window parent;
670 Ecore_X_Window_Stack_Mode detail;
674 struct _Ecore_X_Event_Window_Property
679 Eina_Bool state; /**< @since 1.16 If @c EINA_TRUE, property was deleted */
682 struct _Ecore_X_Event_Window_Colormap
685 Ecore_X_Colormap cmap;
686 Eina_Bool installed : 1;
690 struct _Ecore_X_Event_Mapping_Change
692 Ecore_X_Mapping_Type type;
697 struct _Ecore_X_Event_Selection_Clear
700 Ecore_X_Selection selection;
705 struct _Ecore_X_Event_Selection_Request
707 Ecore_X_Window owner;
708 Ecore_X_Window requestor;
710 Ecore_X_Atom selection;
712 Ecore_X_Atom property;
717 ECORE_X_OWNER_CHANGE_REASON_NEW_OWNER,
718 ECORE_X_OWNER_CHANGE_REASON_DESTROY,
719 ECORE_X_OWNER_CHANGE_REASON_CLOSE
720 } Ecore_X_Owner_Change_Reason;
722 struct _Ecore_X_Event_Fixes_Selection_Notify
725 Ecore_X_Window owner;
727 Ecore_X_Time selection_time;
728 Ecore_X_Selection selection;
730 Ecore_X_Owner_Change_Reason reason;
733 struct _Ecore_X_Event_Selection_Notify
737 Ecore_X_Selection selection;
741 Ecore_X_Atom property; /**< @since 1.16 */
744 struct _Ecore_X_Selection_Data
748 ECORE_X_SELECTION_CONTENT_NONE,
749 ECORE_X_SELECTION_CONTENT_TEXT,
750 ECORE_X_SELECTION_CONTENT_FILES,
751 ECORE_X_SELECTION_CONTENT_X_MOZ_URL,
752 ECORE_X_SELECTION_CONTENT_TARGETS,
753 ECORE_X_SELECTION_CONTENT_CUSTOM
758 int (*free)(void *data);
761 struct _Ecore_X_Selection_Data_Files
763 Ecore_X_Selection_Data data;
768 struct _Ecore_X_Selection_Data_Text
770 Ecore_X_Selection_Data data;
774 struct _Ecore_X_Selection_Data_X_Moz_Url
776 Ecore_X_Selection_Data data;
778 Eina_Inarray *link_names;
781 struct _Ecore_X_Selection_Data_Targets
783 Ecore_X_Selection_Data data;
788 struct _Ecore_X_Event_Xdnd_Enter
790 Ecore_X_Window win, source;
796 struct _Ecore_X_Event_Xdnd_Position
798 Ecore_X_Window win, source;
806 struct _Ecore_X_Xdnd_Position
808 Ecore_X_Window win, prev;
815 struct _Ecore_X_Event_Xdnd_Status
817 Ecore_X_Window win, target;
818 Eina_Bool will_accept : 1;
819 Ecore_X_Rectangle rectangle;
823 struct _Ecore_X_Event_Xdnd_Leave
825 Ecore_X_Window win, source;
828 struct _Ecore_X_Event_Xdnd_Drop
830 Ecore_X_Window win, source;
838 struct _Ecore_X_Event_Xdnd_Finished
840 Ecore_X_Window win, target;
841 Eina_Bool completed : 1;
845 struct _Ecore_X_Event_Client_Message
848 Ecore_X_Atom message_type;
859 struct _Ecore_X_Event_Window_Shape
863 Ecore_X_Shape_Type type;
865 Eina_Bool shaped : 1;
868 struct _Ecore_X_Event_Screensaver_Notify
875 struct _Ecore_X_Event_Sync_Counter
880 struct _Ecore_X_Event_Sync_Alarm
883 Ecore_X_Sync_Alarm alarm;
886 struct _Ecore_X_Randr_Screen_Size
891 struct _Ecore_X_Randr_Screen_Size_MM
893 int width, height, width_mm, height_mm;
896 struct _Ecore_X_Randr_Crtc_Info
898 Ecore_X_Time timestamp;
900 unsigned int width, height;
901 Ecore_X_Randr_Mode mode;
902 Ecore_X_Randr_Orientation rotation;
904 Ecore_X_Randr_Output *outputs;
905 Ecore_X_Randr_Orientation rotations;
907 Ecore_X_Randr_Output *possible;
908 }; /**< @since 1.8 */
910 struct _Ecore_X_Event_Screen_Change
914 Ecore_X_Randr_Screen_Size_MM size; /* in pixel and millimeters */
916 Ecore_X_Time config_time;
917 Ecore_X_Randr_Orientation orientation;
918 Ecore_X_Render_Subpixel_Order subpixel_order;
919 Ecore_X_Randr_Size_ID size_id;
922 struct _Ecore_X_Event_Randr_Crtc_Change
925 Ecore_X_Randr_Crtc crtc;
926 Ecore_X_Randr_Mode mode;
927 Ecore_X_Randr_Orientation orientation;
931 struct _Ecore_X_Event_Randr_Output_Change
934 Ecore_X_Randr_Output output;
935 Ecore_X_Randr_Crtc crtc;
936 Ecore_X_Randr_Mode mode;
937 Ecore_X_Randr_Orientation orientation;
938 Ecore_X_Randr_Connection_Status connection;
939 Ecore_X_Render_Subpixel_Order subpixel_order;
942 struct _Ecore_X_Event_Randr_Output_Property_Notify
945 Ecore_X_Randr_Output output;
946 Ecore_X_Atom property;
948 Ecore_X_Randr_Property_Change state;
951 struct _Ecore_X_Event_Window_Delete_Request
957 struct _Ecore_X_Event_Window_Prop_Title_Change
964 struct _Ecore_X_Event_Window_Prop_Visible_Title_Change
971 struct _Ecore_X_Event_Window_Prop_Icon_Name_Change
978 struct _Ecore_X_Event_Window_Prop_Visible_Icon_Name_Change
985 struct _Ecore_X_Event_Window_Prop_Client_Machine_Change
992 struct _Ecore_X_Event_Window_Prop_Name_Class_Change
1000 struct _Ecore_X_Event_Window_Prop_Pid_Change
1007 struct _Ecore_X_Event_Window_Prop_Desktop_Change
1014 struct _Ecore_X_Event_Startup_Sequence
1019 struct _Ecore_X_Event_Window_Move_Resize_Request
1028 struct _Ecore_X_Event_Window_State_Request
1031 Ecore_X_Window_State_Action action;
1032 Ecore_X_Window_State state[2];
1036 struct _Ecore_X_Event_Frame_Extents_Request
1041 struct _Ecore_X_Event_Ping
1044 Ecore_X_Window event_win;
1048 struct _Ecore_X_Event_Desktop_Change
1055 struct _Ecore_X_Event_Generic
1059 unsigned int cookie;
1063 typedef enum Ecore_X_Present_Event_Mask
1065 ECORE_X_PRESENT_EVENT_MASK_NO_EVENT = 0,
1066 ECORE_X_PRESENT_EVENT_MASK_CONFIGURE_NOTIFY = 1,
1067 ECORE_X_PRESENT_EVENT_MASK_COMPLETE_NOTIFY = 2,
1068 ECORE_X_PRESENT_EVENT_MASK_IDLE_NOTIFY = 4,
1069 } Ecore_X_Present_Event_Mask; /**< @since 1.9 */
1071 typedef struct Ecore_X_Present
1074 unsigned int serial;
1075 } Ecore_X_Present; /**< @since 1.9 */
1077 struct Ecore_X_Event_Present_Configure
1082 unsigned int width, height;
1084 int pixmap_width, pixmap_height;
1086 }; /**< @since 1.9 */
1090 ECORE_X_PRESENT_COMPLETE_MODE_COPY,
1091 ECORE_X_PRESENT_COMPLETE_MODE_FLIP,
1092 ECORE_X_PRESENT_COMPLETE_MODE_SKIP,
1093 } Ecore_X_Present_Complete_Mode;
1095 struct Ecore_X_Event_Present_Complete
1099 unsigned int serial; // value provided when generating request
1100 unsigned long long ust; // system time of presentation
1101 unsigned long long msc; // frame count at time of presentation
1102 Eina_Bool kind : 1; /* 0 for PresentCompleteKindPixmap (PresentPixmap completion),
1103 1 for PresentCompleteKindNotifyMsc (PresentNotifyMSC completion) */
1104 Ecore_X_Present_Complete_Mode mode;
1105 }; /**< @since 1.9 */
1107 struct Ecore_X_Event_Present_Idle
1111 unsigned int serial;
1112 Ecore_X_Pixmap pixmap;
1113 Ecore_X_Sync_Fence idle_fence;
1114 }; /**< @since 1.9 */
1116 EAPI extern int ECORE_X_EVENT_ANY; /**< low level event dependent on
1117 backend in use, will be XEvent.
1118 @warning avoid using it.
1120 EAPI extern int ECORE_X_EVENT_MOUSE_IN;
1121 EAPI extern int ECORE_X_EVENT_MOUSE_OUT;
1122 EAPI extern int ECORE_X_EVENT_WINDOW_FOCUS_IN;
1123 EAPI extern int ECORE_X_EVENT_WINDOW_FOCUS_OUT;
1124 EAPI extern int ECORE_X_EVENT_WINDOW_KEYMAP;
1125 EAPI extern int ECORE_X_EVENT_WINDOW_DAMAGE;
1126 EAPI extern int ECORE_X_EVENT_WINDOW_VISIBILITY_CHANGE;
1127 EAPI extern int ECORE_X_EVENT_WINDOW_CREATE;
1128 EAPI extern int ECORE_X_EVENT_WINDOW_DESTROY;
1129 EAPI extern int ECORE_X_EVENT_WINDOW_HIDE;
1130 EAPI extern int ECORE_X_EVENT_WINDOW_SHOW;
1131 EAPI extern int ECORE_X_EVENT_WINDOW_SHOW_REQUEST;
1132 EAPI extern int ECORE_X_EVENT_WINDOW_REPARENT;
1133 EAPI extern int ECORE_X_EVENT_WINDOW_CONFIGURE;
1134 EAPI extern int ECORE_X_EVENT_WINDOW_CONFIGURE_REQUEST;
1135 EAPI extern int ECORE_X_EVENT_WINDOW_GRAVITY;
1136 EAPI extern int ECORE_X_EVENT_WINDOW_RESIZE_REQUEST;
1137 EAPI extern int ECORE_X_EVENT_WINDOW_STACK;
1138 EAPI extern int ECORE_X_EVENT_WINDOW_STACK_REQUEST;
1139 EAPI extern int ECORE_X_EVENT_WINDOW_PROPERTY;
1140 EAPI extern int ECORE_X_EVENT_WINDOW_COLORMAP;
1141 EAPI extern int ECORE_X_EVENT_WINDOW_MAPPING;
1142 EAPI extern int ECORE_X_EVENT_MAPPING_CHANGE;
1143 EAPI extern int ECORE_X_EVENT_SELECTION_CLEAR;
1144 EAPI extern int ECORE_X_EVENT_SELECTION_REQUEST;
1145 EAPI extern int ECORE_X_EVENT_SELECTION_NOTIFY;
1146 EAPI extern int ECORE_X_EVENT_FIXES_SELECTION_NOTIFY;
1147 EAPI extern int ECORE_X_EVENT_CLIENT_MESSAGE;
1148 EAPI extern int ECORE_X_EVENT_WINDOW_SHAPE;
1149 EAPI extern int ECORE_X_EVENT_SCREENSAVER_NOTIFY;
1150 EAPI extern int ECORE_X_EVENT_GESTURE_NOTIFY_FLICK;
1151 EAPI extern int ECORE_X_EVENT_GESTURE_NOTIFY_PAN;
1152 EAPI extern int ECORE_X_EVENT_GESTURE_NOTIFY_PINCHROTATION;
1153 EAPI extern int ECORE_X_EVENT_GESTURE_NOTIFY_TAP;
1154 EAPI extern int ECORE_X_EVENT_GESTURE_NOTIFY_TAPNHOLD;
1155 EAPI extern int ECORE_X_EVENT_GESTURE_NOTIFY_HOLD;
1156 EAPI extern int ECORE_X_EVENT_GESTURE_NOTIFY_GROUP;
1157 EAPI extern int ECORE_X_EVENT_SYNC_COUNTER;
1158 EAPI extern int ECORE_X_EVENT_SYNC_ALARM;
1159 EAPI extern int ECORE_X_EVENT_SCREEN_CHANGE;
1160 EAPI extern int ECORE_X_EVENT_RANDR_CRTC_CHANGE;
1161 EAPI extern int ECORE_X_EVENT_RANDR_OUTPUT_CHANGE;
1162 EAPI extern int ECORE_X_EVENT_RANDR_OUTPUT_PROPERTY_NOTIFY;
1163 EAPI extern int ECORE_X_EVENT_DAMAGE_NOTIFY;
1165 EAPI extern int ECORE_X_EVENT_WINDOW_DELETE_REQUEST;
1167 EAPI extern int ECORE_X_EVENT_WINDOW_MOVE_RESIZE_REQUEST;
1168 EAPI extern int ECORE_X_EVENT_WINDOW_STATE_REQUEST;
1169 EAPI extern int ECORE_X_EVENT_FRAME_EXTENTS_REQUEST;
1170 EAPI extern int ECORE_X_EVENT_PING;
1171 EAPI extern int ECORE_X_EVENT_DESKTOP_CHANGE;
1173 EAPI extern int ECORE_X_EVENT_STARTUP_SEQUENCE_NEW;
1174 EAPI extern int ECORE_X_EVENT_STARTUP_SEQUENCE_CHANGE;
1175 EAPI extern int ECORE_X_EVENT_STARTUP_SEQUENCE_REMOVE;
1176 EAPI extern int ECORE_X_EVENT_XKB_STATE_NOTIFY; /** @since 1.7 */
1177 EAPI extern int ECORE_X_EVENT_XKB_NEWKBD_NOTIFY; /** @since 1.7 */
1179 EAPI extern int ECORE_X_EVENT_GENERIC;
1181 EAPI extern int ECORE_X_EVENT_PRESENT_CONFIGURE; /**< @since 1.9 */
1182 EAPI extern int ECORE_X_EVENT_PRESENT_COMPLETE; /**< @since 1.9 */
1183 EAPI extern int ECORE_X_EVENT_PRESENT_IDLE; /**< @since 1.9 */
1185 EAPI extern int ECORE_X_EVENT_XDND_ENTER;
1186 EAPI extern int ECORE_X_EVENT_XDND_POSITION;
1187 EAPI extern int ECORE_X_EVENT_XDND_STATUS;
1188 EAPI extern int ECORE_X_EVENT_XDND_LEAVE;
1189 EAPI extern int ECORE_X_EVENT_XDND_DROP;
1190 EAPI extern int ECORE_X_EVENT_XDND_FINISHED;
1192 EAPI extern int ECORE_X_MODIFIER_SHIFT; /**< @since 1.7 */
1193 EAPI extern int ECORE_X_MODIFIER_CTRL; /**< @since 1.7 */
1194 EAPI extern int ECORE_X_MODIFIER_ALT; /**< @since 1.7 */
1195 EAPI extern int ECORE_X_MODIFIER_WIN; /**< @since 1.7 */
1196 EAPI extern int ECORE_X_MODIFIER_ALTGR; /**< @since 1.7 */
1198 EAPI extern int ECORE_X_LOCK_SCROLL;
1199 EAPI extern int ECORE_X_LOCK_NUM;
1200 EAPI extern int ECORE_X_LOCK_CAPS;
1201 EAPI extern int ECORE_X_LOCK_SHIFT;
1203 EAPI extern int ECORE_X_RAW_BUTTON_PRESS; /**< @since 1.8 */
1204 EAPI extern int ECORE_X_RAW_BUTTON_RELEASE; /**< @since 1.8 */
1205 EAPI extern int ECORE_X_RAW_MOTION; /**< @since 1.8 */
1207 typedef enum _Ecore_X_WM_Protocol
1209 /** If enabled the window manager will be asked to send a
1210 * delete message instead of just closing (destroying) the window. */
1211 ECORE_X_WM_PROTOCOL_DELETE_REQUEST,
1213 /** If enabled the window manager will be told that the window
1214 * explicitly sets input focus. */
1215 ECORE_X_WM_PROTOCOL_TAKE_FOCUS,
1217 /** If enabled the window manager can ping the window to check
1218 * if it is alive. */
1219 ECORE_X_NET_WM_PROTOCOL_PING,
1221 /** If enabled the window manager can sync updating with the
1223 ECORE_X_NET_WM_PROTOCOL_SYNC_REQUEST,
1225 /** Number of defined items */
1226 ECORE_X_WM_PROTOCOL_NUM
1227 } Ecore_X_WM_Protocol;
1229 typedef enum _Ecore_X_Window_Input_Mode
1231 /** The window can never be focused */
1232 ECORE_X_WINDOW_INPUT_MODE_NONE,
1234 /** The window can be focused by the WM but doesn't focus itself */
1235 ECORE_X_WINDOW_INPUT_MODE_PASSIVE,
1237 /** The window sets the focus itself if one of its sub-windows
1238 * already is focused */
1239 ECORE_X_WINDOW_INPUT_MODE_ACTIVE_LOCAL,
1241 /** The window sets the focus itself even if another window
1242 * is currently focused */
1243 ECORE_X_WINDOW_INPUT_MODE_ACTIVE_GLOBAL
1244 } Ecore_X_Window_Input_Mode;
1247 * @typedef _Ecore_X_Window_State_Hint
1248 * Defines the different state hint of the window of Ecore_X.
1250 typedef enum _Ecore_X_Window_State_Hint
1252 /** Do not provide any state hint to the window manager */
1253 ECORE_X_WINDOW_STATE_HINT_NONE = -1,
1255 /** The window wants to remain hidden and NOT iconified */
1256 ECORE_X_WINDOW_STATE_HINT_WITHDRAWN,
1258 /** The window wants to be mapped normally */
1259 ECORE_X_WINDOW_STATE_HINT_NORMAL,
1261 /** The window wants to start in an iconified state */
1262 ECORE_X_WINDOW_STATE_HINT_ICONIC
1263 } Ecore_X_Window_State_Hint;
1265 typedef enum _Ecore_X_Window_Type
1267 ECORE_X_WINDOW_TYPE_UNKNOWN = 0,
1268 ECORE_X_WINDOW_TYPE_DESKTOP,
1269 ECORE_X_WINDOW_TYPE_DOCK,
1270 ECORE_X_WINDOW_TYPE_TOOLBAR,
1271 ECORE_X_WINDOW_TYPE_MENU,
1272 ECORE_X_WINDOW_TYPE_UTILITY,
1273 ECORE_X_WINDOW_TYPE_SPLASH,
1274 ECORE_X_WINDOW_TYPE_DIALOG,
1275 ECORE_X_WINDOW_TYPE_NORMAL,
1276 ECORE_X_WINDOW_TYPE_DROPDOWN_MENU,
1277 ECORE_X_WINDOW_TYPE_POPUP_MENU,
1278 ECORE_X_WINDOW_TYPE_TOOLTIP,
1279 ECORE_X_WINDOW_TYPE_NOTIFICATION,
1280 ECORE_X_WINDOW_TYPE_COMBO,
1281 ECORE_X_WINDOW_TYPE_DND
1282 } Ecore_X_Window_Type;
1284 typedef enum _Ecore_X_Action
1286 ECORE_X_ACTION_MOVE,
1287 ECORE_X_ACTION_RESIZE,
1288 ECORE_X_ACTION_MINIMIZE,
1289 ECORE_X_ACTION_SHADE,
1290 ECORE_X_ACTION_STICK,
1291 ECORE_X_ACTION_MAXIMIZE_HORZ,
1292 ECORE_X_ACTION_MAXIMIZE_VERT,
1293 ECORE_X_ACTION_FULLSCREEN,
1294 ECORE_X_ACTION_CHANGE_DESKTOP,
1295 ECORE_X_ACTION_CLOSE,
1296 ECORE_X_ACTION_ABOVE,
1297 ECORE_X_ACTION_BELOW
1300 typedef enum _Ecore_X_Window_Configure_Mask
1302 ECORE_X_WINDOW_CONFIGURE_MASK_X = (1 << 0),
1303 ECORE_X_WINDOW_CONFIGURE_MASK_Y = (1 << 1),
1304 ECORE_X_WINDOW_CONFIGURE_MASK_W = (1 << 2),
1305 ECORE_X_WINDOW_CONFIGURE_MASK_H = (1 << 3),
1306 ECORE_X_WINDOW_CONFIGURE_MASK_BORDER_WIDTH = (1 << 4),
1307 ECORE_X_WINDOW_CONFIGURE_MASK_SIBLING = (1 << 5),
1308 ECORE_X_WINDOW_CONFIGURE_MASK_STACK_MODE = (1 << 6)
1309 } Ecore_X_Window_Configure_Mask;
1311 typedef enum _Ecore_X_Virtual_Keyboard_State
1313 ECORE_X_VIRTUAL_KEYBOARD_STATE_UNKNOWN = 0,
1314 ECORE_X_VIRTUAL_KEYBOARD_STATE_OFF,
1315 ECORE_X_VIRTUAL_KEYBOARD_STATE_ON,
1316 ECORE_X_VIRTUAL_KEYBOARD_STATE_ALPHA,
1317 ECORE_X_VIRTUAL_KEYBOARD_STATE_NUMERIC,
1318 ECORE_X_VIRTUAL_KEYBOARD_STATE_PIN,
1319 ECORE_X_VIRTUAL_KEYBOARD_STATE_PHONE_NUMBER,
1320 ECORE_X_VIRTUAL_KEYBOARD_STATE_HEX,
1321 ECORE_X_VIRTUAL_KEYBOARD_STATE_TERMINAL,
1322 ECORE_X_VIRTUAL_KEYBOARD_STATE_PASSWORD,
1323 ECORE_X_VIRTUAL_KEYBOARD_STATE_IP,
1324 ECORE_X_VIRTUAL_KEYBOARD_STATE_HOST,
1325 ECORE_X_VIRTUAL_KEYBOARD_STATE_FILE,
1326 ECORE_X_VIRTUAL_KEYBOARD_STATE_URL,
1327 ECORE_X_VIRTUAL_KEYBOARD_STATE_KEYPAD,
1328 ECORE_X_VIRTUAL_KEYBOARD_STATE_J2ME
1329 } Ecore_X_Virtual_Keyboard_State;
1331 typedef enum _Ecore_X_Illume_Mode
1333 ECORE_X_ILLUME_MODE_UNKNOWN = 0,
1334 ECORE_X_ILLUME_MODE_SINGLE,
1335 ECORE_X_ILLUME_MODE_DUAL_TOP,
1336 ECORE_X_ILLUME_MODE_DUAL_LEFT
1337 } Ecore_X_Illume_Mode;
1339 typedef enum _Ecore_X_Illume_Quickpanel_State
1341 ECORE_X_ILLUME_QUICKPANEL_STATE_UNKNOWN = 0,
1342 ECORE_X_ILLUME_QUICKPANEL_STATE_OFF,
1343 ECORE_X_ILLUME_QUICKPANEL_STATE_ON
1344 } Ecore_X_Illume_Quickpanel_State;
1346 typedef enum _Ecore_X_Illume_Indicator_State
1348 ECORE_X_ILLUME_INDICATOR_STATE_UNKNOWN = 0,
1349 ECORE_X_ILLUME_INDICATOR_STATE_OFF,
1350 ECORE_X_ILLUME_INDICATOR_STATE_ON
1351 } Ecore_X_Illume_Indicator_State;
1353 typedef enum _Ecore_X_Illume_Clipboard_State
1355 ECORE_X_ILLUME_CLIPBOARD_STATE_UNKNOWN = 0,
1356 ECORE_X_ILLUME_CLIPBOARD_STATE_OFF,
1357 ECORE_X_ILLUME_CLIPBOARD_STATE_ON
1358 } Ecore_X_Illume_Clipboard_State;
1360 typedef enum _Ecore_X_Illume_Indicator_Opacity_Mode
1362 ECORE_X_ILLUME_INDICATOR_OPACITY_UNKNOWN = 0,
1363 ECORE_X_ILLUME_INDICATOR_OPAQUE,
1364 ECORE_X_ILLUME_INDICATOR_TRANSLUCENT,
1365 ECORE_X_ILLUME_INDICATOR_TRANSPARENT
1366 } Ecore_X_Illume_Indicator_Opacity_Mode;
1368 typedef enum _Ecore_X_Illume_Indicator_Type_Mode
1370 ECORE_X_ILLUME_INDICATOR_TYPE_UNKNOWN = 0,
1371 ECORE_X_ILLUME_INDICATOR_TYPE_1,
1372 ECORE_X_ILLUME_INDICATOR_TYPE_2,
1373 ECORE_X_ILLUME_INDICATOR_TYPE_3
1374 } Ecore_X_Illume_Indicator_Type_Mode; /**< @since 1.8 */
1376 typedef enum _Ecore_X_Illume_Window_State
1378 ECORE_X_ILLUME_WINDOW_STATE_NORMAL = 0,
1379 ECORE_X_ILLUME_WINDOW_STATE_FLOATING
1380 } Ecore_X_Illume_Window_State;
1382 /* Window layer constants */
1383 #define ECORE_X_WINDOW_LAYER_BELOW 2
1384 #define ECORE_X_WINDOW_LAYER_NORMAL 4
1385 #define ECORE_X_WINDOW_LAYER_ABOVE 6
1387 /* Property list operations */
1388 #define ECORE_X_PROP_LIST_REMOVE 0
1389 #define ECORE_X_PROP_LIST_ADD 1
1390 #define ECORE_X_PROP_LIST_TOGGLE 2
1392 EAPI int ecore_x_init(const char *name);
1393 EAPI int ecore_x_init_from_display(Ecore_X_Display *display); /**< @since 1.15 */
1394 EAPI int ecore_x_shutdown(void);
1395 EAPI int ecore_x_disconnect(void);
1396 EAPI Ecore_X_Display *ecore_x_display_get(void);
1397 EAPI Ecore_X_Connection *ecore_x_connection_get(void);
1398 EAPI int ecore_x_fd_get(void);
1399 EAPI Ecore_X_Screen *ecore_x_default_screen_get(void);
1400 EAPI void ecore_x_screen_size_get(const Ecore_X_Screen *screen, int *w, int *h);
1401 EAPI int ecore_x_screen_count_get(void);
1402 EAPI int ecore_x_screen_index_get(const Ecore_X_Screen *screen);
1403 EAPI Ecore_X_Screen *ecore_x_screen_get(int index);
1405 EAPI void ecore_x_double_click_time_set(double t);
1406 EAPI double ecore_x_double_click_time_get(void);
1407 EAPI void ecore_x_flush(void);
1408 EAPI void ecore_x_sync(void);
1409 EAPI void ecore_x_killall(Ecore_X_Window root);
1410 EAPI void ecore_x_kill(Ecore_X_Window win);
1411 EAPI int ecore_x_dpi_get(void);
1412 EAPI Eina_Bool ecore_x_bell(int percent);
1413 EAPI unsigned int ecore_x_visual_id_get(Ecore_X_Visual visual);
1415 EAPI Ecore_X_Visual ecore_x_default_visual_get(Ecore_X_Display *disp, Ecore_X_Screen *screen);
1416 EAPI Ecore_X_Colormap ecore_x_default_colormap_get(Ecore_X_Display *disp, Ecore_X_Screen *screen);
1417 EAPI int ecore_x_default_depth_get(Ecore_X_Display *disp, Ecore_X_Screen *screen);
1419 EAPI Ecore_X_Time ecore_x_current_time_get(void);
1421 EAPI void ecore_x_error_handler_set(void (*func)(void *data), const void *data);
1422 EAPI void ecore_x_io_error_handler_set(void (*func)(void *data), const void *data);
1423 EAPI int ecore_x_error_request_get(void);
1424 EAPI int ecore_x_error_code_get(void);
1425 EAPI Ecore_X_ID ecore_x_error_resource_id_get(void);
1427 EAPI void ecore_x_event_mask_set(Ecore_X_Window w, Ecore_X_Event_Mask mask);
1428 EAPI void ecore_x_event_mask_unset(Ecore_X_Window w, Ecore_X_Event_Mask mask);
1430 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);
1431 EAPI Eina_Bool ecore_x_selection_primary_set(Ecore_X_Window w, const void *data, int size);
1432 EAPI Eina_Bool ecore_x_selection_primary_clear(void);
1433 EAPI Eina_Bool ecore_x_selection_secondary_set(Ecore_X_Window w, const void *data, int size);
1434 EAPI Eina_Bool ecore_x_selection_secondary_clear(void);
1435 EAPI Eina_Bool ecore_x_selection_xdnd_set(Ecore_X_Window w, const void *data, int size);
1436 EAPI Eina_Bool ecore_x_selection_xdnd_clear(void);
1437 EAPI Eina_Bool ecore_x_selection_clipboard_set(Ecore_X_Window w, const void *data, int size);
1438 EAPI Eina_Bool ecore_x_selection_clipboard_clear(void);
1439 EAPI void ecore_x_selection_primary_request(Ecore_X_Window w, const char *target);
1440 EAPI void ecore_x_selection_secondary_request(Ecore_X_Window w, const char *target);
1441 EAPI void ecore_x_selection_xdnd_request(Ecore_X_Window w, const char *target);
1442 EAPI void ecore_x_selection_clipboard_request(Ecore_X_Window w, const char *target);
1443 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);
1444 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 *));
1445 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));
1446 EAPI void ecore_x_selection_converter_del(char *target);
1447 EAPI void ecore_x_selection_converter_atom_del(Ecore_X_Atom target);
1448 EAPI void ecore_x_selection_parser_add(const char *target, void *(*func)(const char *target, void *data, int size, int format));
1449 EAPI void ecore_x_selection_parser_del(const char *target);
1450 EAPI void ecore_x_selection_owner_set(Ecore_X_Window win, Ecore_X_Atom atom, Ecore_X_Time tm);
1451 EAPI Ecore_X_Window ecore_x_selection_owner_get(Ecore_X_Atom atom);
1452 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 */
1454 EAPI void ecore_x_dnd_aware_set(Ecore_X_Window win, Eina_Bool on);
1455 EAPI int ecore_x_dnd_version_get(Ecore_X_Window win);
1456 EAPI Eina_Bool ecore_x_dnd_type_isset(Ecore_X_Window win, const char *type);
1457 EAPI void ecore_x_dnd_type_set(Ecore_X_Window win, const char *type, Eina_Bool on);
1458 EAPI void ecore_x_dnd_types_set(Ecore_X_Window win, const char **types, unsigned int num_types);
1459 EAPI void ecore_x_dnd_actions_set(Ecore_X_Window win, Ecore_X_Atom *actions, unsigned int num_actions);
1460 EAPI Eina_Bool ecore_x_dnd_begin(Ecore_X_Window source, unsigned char *data, int size);
1461 EAPI Eina_Bool ecore_x_dnd_drop(void);
1462 EAPI Eina_Bool ecore_x_dnd_self_begin(Ecore_X_Window source, unsigned char *data, int size); /**< @since 1.8 */
1463 EAPI Eina_Bool ecore_x_dnd_self_drop(void); /**< @since 1.8 */
1464 EAPI void ecore_x_dnd_send_status(Eina_Bool will_accept, Eina_Bool suppress, Ecore_X_Rectangle rectangle, Ecore_X_Atom action);
1465 EAPI void ecore_x_dnd_send_finished(void);
1466 EAPI void ecore_x_dnd_source_action_set(Ecore_X_Atom action);
1467 EAPI Ecore_X_Atom ecore_x_dnd_source_action_get(void);
1468 EAPI void ecore_x_dnd_callback_pos_update_set(void (*cb)(void *, Ecore_X_Xdnd_Position *data), const void *data);
1469 EAPI Eina_Bool ecore_x_dnd_abort(Ecore_X_Window xwin_source); /**< @since 1.9 */
1472 ecore_x_window_full_new(Ecore_X_Window parent,
1477 Ecore_X_Visual *visual,
1478 Ecore_X_Colormap colormap,
1480 Eina_Bool override); /**< @since 1.12 */
1482 EAPI Ecore_X_Window ecore_x_window_new(Ecore_X_Window parent, int x, int y, int w, int h);
1483 EAPI Ecore_X_Window ecore_x_window_override_new(Ecore_X_Window parent, int x, int y, int w, int h);
1484 EAPI int ecore_x_window_argb_get(Ecore_X_Window win);
1485 EAPI Ecore_X_Window ecore_x_window_manager_argb_new(Ecore_X_Window parent, int x, int y, int w, int h);
1486 EAPI Ecore_X_Window ecore_x_window_argb_new(Ecore_X_Window parent, int x, int y, int w, int h);
1487 EAPI Ecore_X_Window ecore_x_window_override_argb_new(Ecore_X_Window parent, int x, int y, int w, int h);
1488 EAPI Ecore_X_Window ecore_x_window_permanent_new(Ecore_X_Window parent, Ecore_X_Atom unique_atom); /* @since 1.9 */
1489 EAPI Ecore_X_Window ecore_x_window_input_new(Ecore_X_Window parent, int x, int y, int w, int h);
1490 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);
1491 EAPI void ecore_x_window_cursor_set(Ecore_X_Window win, Ecore_X_Cursor c);
1492 EAPI void ecore_x_window_free(Ecore_X_Window win);
1493 EAPI void ecore_x_window_ignore_set(Ecore_X_Window win, int ignore);
1494 EAPI Ecore_X_Window *ecore_x_window_ignore_list(int *num);
1496 EAPI void ecore_x_window_delete_request_send(Ecore_X_Window win);
1497 EAPI void ecore_x_window_show(Ecore_X_Window win);
1498 EAPI void ecore_x_window_hide(Ecore_X_Window win);
1499 EAPI void ecore_x_window_move(Ecore_X_Window win, int x, int y);
1500 EAPI void ecore_x_window_resize(Ecore_X_Window win, int w, int h);
1501 EAPI void ecore_x_window_move_resize(Ecore_X_Window win, int x, int y, int w, int h);
1502 EAPI void ecore_x_window_focus(Ecore_X_Window win);
1503 EAPI void ecore_x_window_focus_at_time(Ecore_X_Window win, Ecore_X_Time t);
1504 EAPI Ecore_X_Window ecore_x_window_focus_get(void);
1505 EAPI void ecore_x_window_raise(Ecore_X_Window win);
1506 EAPI void ecore_x_window_lower(Ecore_X_Window win);
1507 EAPI void ecore_x_window_reparent(Ecore_X_Window win, Ecore_X_Window new_parent, int x, int y);
1508 EAPI void ecore_x_window_size_get(Ecore_X_Window win, int *w, int *h);
1509 EAPI void ecore_x_window_geometry_get(Ecore_X_Window win, int *x, int *y, int *w, int *h);
1510 EAPI int ecore_x_window_border_width_get(Ecore_X_Window win);
1511 EAPI void ecore_x_window_border_width_set(Ecore_X_Window win, int width);
1512 EAPI int ecore_x_window_depth_get(Ecore_X_Window win);
1513 EAPI void ecore_x_window_cursor_show(Ecore_X_Window win, Eina_Bool show);
1514 EAPI void ecore_x_window_defaults_set(Ecore_X_Window win);
1515 EAPI int ecore_x_window_visible_get(Ecore_X_Window win);
1516 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);
1517 EAPI Ecore_X_Window ecore_x_window_shadow_parent_get(Ecore_X_Window root, Ecore_X_Window win);
1518 EAPI void ecore_x_window_shadow_tree_flush(void);
1519 EAPI Ecore_X_Window ecore_x_window_root_get(Ecore_X_Window win);
1520 EAPI Ecore_X_Window ecore_x_window_at_xy_get(int x, int y);
1521 EAPI Ecore_X_Window ecore_x_window_at_xy_with_skip_get(int x, int y, Ecore_X_Window *skip, int skip_num);
1522 EAPI Ecore_X_Window ecore_x_window_at_xy_begin_get(Ecore_X_Window begin, int x, int y);
1523 EAPI Ecore_X_Window ecore_x_window_parent_get(Ecore_X_Window win);
1525 EAPI void ecore_x_window_background_color_set(Ecore_X_Window win, unsigned short r, unsigned short g, unsigned short b);
1526 EAPI void ecore_x_window_gravity_set(Ecore_X_Window win, Ecore_X_Gravity grav);
1527 EAPI void ecore_x_window_pixel_gravity_set(Ecore_X_Window win, Ecore_X_Gravity grav);
1528 EAPI void ecore_x_window_pixmap_set(Ecore_X_Window win, Ecore_X_Pixmap pmap);
1529 EAPI void ecore_x_window_area_clear(Ecore_X_Window win, int x, int y, int w, int h);
1530 EAPI void ecore_x_window_area_expose(Ecore_X_Window win, int x, int y, int w, int h);
1531 EAPI void ecore_x_window_override_set(Ecore_X_Window win, Eina_Bool override);
1533 EAPI void ecore_x_window_prop_card32_set(Ecore_X_Window win, Ecore_X_Atom atom, unsigned int *val, unsigned int num);
1534 EAPI int ecore_x_window_prop_card32_get(Ecore_X_Window win, Ecore_X_Atom atom, unsigned int *val, unsigned int len);
1535 EAPI int ecore_x_window_prop_card32_list_get(Ecore_X_Window win, Ecore_X_Atom atom, unsigned int **plst);
1537 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);
1538 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);
1539 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);
1540 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);
1541 EAPI void ecore_x_window_prop_atom_set(Ecore_X_Window win, Ecore_X_Atom atom, Ecore_X_Atom *val, unsigned int num);
1542 EAPI int ecore_x_window_prop_atom_get(Ecore_X_Window win, Ecore_X_Atom atom, Ecore_X_Atom *val, unsigned int len);
1543 EAPI int ecore_x_window_prop_atom_list_get(Ecore_X_Window win, Ecore_X_Atom atom, Ecore_X_Atom **plst);
1544 EAPI void ecore_x_window_prop_atom_list_change(Ecore_X_Window win, Ecore_X_Atom atom, Ecore_X_Atom item, int op);
1545 EAPI void ecore_x_window_prop_window_set(Ecore_X_Window win, Ecore_X_Atom atom, Ecore_X_Window *val, unsigned int num);
1546 EAPI int ecore_x_window_prop_window_get(Ecore_X_Window win, Ecore_X_Atom atom, Ecore_X_Window *val, unsigned int len);
1547 EAPI int ecore_x_window_prop_window_list_get(Ecore_X_Window win, Ecore_X_Atom atom, Ecore_X_Window **plst);
1549 EAPI Ecore_X_Atom ecore_x_window_prop_any_type(void);
1550 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);
1551 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);
1552 EAPI void ecore_x_window_prop_property_del(Ecore_X_Window win, Ecore_X_Atom property);
1553 EAPI Ecore_X_Atom *ecore_x_window_prop_list(Ecore_X_Window win, int *num_ret);
1554 EAPI void ecore_x_window_prop_string_set(Ecore_X_Window win, Ecore_X_Atom type, const char *str);
1555 EAPI char *ecore_x_window_prop_string_get(Ecore_X_Window win, Ecore_X_Atom type);
1556 EAPI Eina_Bool ecore_x_window_prop_protocol_isset(Ecore_X_Window win, Ecore_X_WM_Protocol protocol);
1557 EAPI Ecore_X_WM_Protocol *ecore_x_window_prop_protocol_list_get(Ecore_X_Window win, int *num_ret);
1559 EAPI void ecore_x_window_shape_mask_set(Ecore_X_Window win, Ecore_X_Pixmap mask);
1560 EAPI void ecore_x_window_shape_window_set(Ecore_X_Window win, Ecore_X_Window shape_win);
1561 EAPI void ecore_x_window_shape_window_set_xy(Ecore_X_Window win, Ecore_X_Window shape_win, int x, int y);
1562 EAPI void ecore_x_window_shape_rectangle_set(Ecore_X_Window win, int x, int y, int w, int h);
1563 EAPI void ecore_x_window_shape_rectangles_set(Ecore_X_Window win, Ecore_X_Rectangle *rects, int num);
1564 EAPI void ecore_x_window_shape_input_rectangle_set(Ecore_X_Window win, int x, int y, int w, int h);
1565 EAPI void ecore_x_window_shape_input_rectangles_set(Ecore_X_Window win, Ecore_X_Rectangle *rects, int num);
1566 EAPI void ecore_x_window_shape_input_rectangle_add(Ecore_X_Window win, int x, int y, int w, int h);
1567 EAPI void ecore_x_window_shape_rectangle_subtract(Ecore_X_Window win, int x, int y, int w, int h);
1568 EAPI void ecore_x_window_shape_input_rectangle_subtract(Ecore_X_Window win, int x, int y, int w, int h);
1569 EAPI void ecore_x_window_shape_input_window_set_xy(Ecore_X_Window win, Ecore_X_Window shape_win, int x, int y);
1570 EAPI void ecore_x_window_shape_input_window_set(Ecore_X_Window win, Ecore_X_Window shape_win);
1571 EAPI void ecore_x_window_shape_window_add(Ecore_X_Window win, Ecore_X_Window shape_win);
1572 EAPI void ecore_x_window_shape_window_add_xy(Ecore_X_Window win, Ecore_X_Window shape_win, int x, int y);
1573 EAPI void ecore_x_window_shape_input_window_add_xy(Ecore_X_Window win, Ecore_X_Window shape_win, int x, int y);
1574 EAPI void ecore_x_window_shape_rectangle_add(Ecore_X_Window win, int x, int y, int w, int h);
1575 EAPI void ecore_x_window_shape_rectangle_clip(Ecore_X_Window win, int x, int y, int w, int h);
1576 EAPI void ecore_x_window_shape_input_rectangle_clip(Ecore_X_Window win, int x, int y, int w, int h);
1577 EAPI void ecore_x_window_shape_rectangles_add(Ecore_X_Window win, Ecore_X_Rectangle *rects, int num);
1578 EAPI void ecore_x_window_shape_input_rectangles_add(Ecore_X_Window win, Ecore_X_Rectangle *rects, int num);
1579 EAPI Ecore_X_Rectangle *ecore_x_window_shape_rectangles_get(Ecore_X_Window win, int *num_ret);
1580 EAPI Ecore_X_Rectangle *ecore_x_window_shape_input_rectangles_get(Ecore_X_Window win, int *num_ret);
1581 EAPI void ecore_x_window_shape_events_select(Ecore_X_Window win, Eina_Bool on);
1582 EAPI void ecore_x_window_shape_input_mask_set(Ecore_X_Window win, Ecore_X_Pixmap mask);
1584 EAPI Ecore_X_Pixmap ecore_x_pixmap_new(Ecore_X_Window win, int w, int h, int dep);
1585 EAPI void ecore_x_pixmap_free(Ecore_X_Pixmap pmap);
1586 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);
1587 EAPI void ecore_x_pixmap_geometry_get(Ecore_X_Pixmap pmap, int *x, int *y, int *w, int *h);
1588 EAPI int ecore_x_pixmap_depth_get(Ecore_X_Pixmap pmap);
1590 EAPI Ecore_X_GC ecore_x_gc_new(Ecore_X_Drawable draw, Ecore_X_GC_Value_Mask value_mask, const unsigned int *value_list);
1591 EAPI void ecore_x_gc_free(Ecore_X_GC gc);
1592 EAPI void ecore_x_gc_foreground_set(Ecore_X_GC gc, unsigned long foreground);
1593 EAPI void ecore_x_gc_background_set(Ecore_X_GC gc, unsigned long background);
1595 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);
1596 EAPI Eina_Bool ecore_x_client_message8_send(Ecore_X_Window win, Ecore_X_Atom type, const void *data, int len);
1597 EAPI Eina_Bool ecore_x_mouse_move_send(Ecore_X_Window win, int x, int y);
1598 EAPI Eina_Bool ecore_x_mouse_down_send(Ecore_X_Window win, int x, int y, int b);
1599 EAPI Eina_Bool ecore_x_mouse_up_send(Ecore_X_Window win, int x, int y, int b);
1600 EAPI Eina_Bool ecore_x_mouse_in_send(Ecore_X_Window win, int x, int y);
1601 EAPI Eina_Bool ecore_x_mouse_out_send(Ecore_X_Window win, int x, int y);
1603 EAPI void ecore_x_drawable_geometry_get(Ecore_X_Drawable d, int *x, int *y, int *w, int *h);
1604 EAPI int ecore_x_drawable_border_width_get(Ecore_X_Drawable d);
1605 EAPI int ecore_x_drawable_depth_get(Ecore_X_Drawable d);
1606 EAPI void ecore_x_drawable_rectangle_fill(Ecore_X_Drawable d, Ecore_X_GC gc, int x, int y, int width, int height);
1608 EAPI Eina_Bool ecore_x_cursor_color_supported_get(void);
1609 EAPI Ecore_X_Cursor ecore_x_cursor_new(Ecore_X_Window win, int *pixels, int w, int h, int hot_x, int hot_y);
1610 EAPI void ecore_x_cursor_free(Ecore_X_Cursor c);
1611 EAPI Ecore_X_Cursor ecore_x_cursor_shape_get(int shape);
1612 EAPI void ecore_x_cursor_size_set(int size);
1613 EAPI int ecore_x_cursor_size_get(void);
1615 /* FIXME: these funcs need categorising */
1616 EAPI Ecore_X_Window *ecore_x_window_root_list(int *num_ret);
1617 EAPI Ecore_X_Window ecore_x_window_root_first_get(void);
1618 EAPI Eina_Bool ecore_x_window_manage(Ecore_X_Window win);
1619 EAPI void ecore_x_window_container_manage(Ecore_X_Window win);
1620 EAPI void ecore_x_window_client_manage(Ecore_X_Window win);
1621 EAPI void ecore_x_window_sniff(Ecore_X_Window win);
1622 EAPI void ecore_x_window_client_sniff(Ecore_X_Window win);
1624 EAPI Ecore_X_Atom ecore_x_atom_get(const char *name);
1625 EAPI void ecore_x_atoms_get(const char **names, int num, Ecore_X_Atom *atoms);
1626 EAPI char *ecore_x_atom_name_get(Ecore_X_Atom atom);
1628 EAPI void ecore_x_icccm_init(void);
1629 EAPI void ecore_x_icccm_state_set(Ecore_X_Window win, Ecore_X_Window_State_Hint state);
1630 EAPI Ecore_X_Window_State_Hint ecore_x_icccm_state_get(Ecore_X_Window win);
1631 EAPI void ecore_x_icccm_delete_window_send(Ecore_X_Window win, Ecore_X_Time t);
1632 EAPI void ecore_x_icccm_take_focus_send(Ecore_X_Window win, Ecore_X_Time t);
1633 EAPI void ecore_x_icccm_save_yourself_send(Ecore_X_Window win, Ecore_X_Time t);
1634 EAPI void ecore_x_icccm_move_resize_send(Ecore_X_Window win, int x, int y, int w, int h);
1635 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);
1636 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);
1637 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);
1638 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);
1639 EAPI void ecore_x_icccm_title_set(Ecore_X_Window win, const char *t);
1640 EAPI char *ecore_x_icccm_title_get(Ecore_X_Window win);
1641 EAPI void ecore_x_icccm_protocol_atoms_set(Ecore_X_Window win, Ecore_X_Atom *protos, int num);
1642 EAPI void ecore_x_icccm_protocol_set(Ecore_X_Window win, Ecore_X_WM_Protocol protocol, Eina_Bool on);
1643 EAPI Eina_Bool ecore_x_icccm_protocol_isset(Ecore_X_Window win, Ecore_X_WM_Protocol protocol);
1644 EAPI void ecore_x_icccm_name_class_set(Ecore_X_Window win, const char *n, const char *c);
1645 EAPI void ecore_x_icccm_name_class_get(Ecore_X_Window win, char **n, char **c);
1646 EAPI char *ecore_x_icccm_client_machine_get(Ecore_X_Window win);
1647 EAPI void ecore_x_icccm_command_set(Ecore_X_Window win, int argc, char **argv);
1648 EAPI void ecore_x_icccm_command_get(Ecore_X_Window win, int *argc, char ***argv);
1649 EAPI char *ecore_x_icccm_icon_name_get(Ecore_X_Window win);
1650 EAPI void ecore_x_icccm_icon_name_set(Ecore_X_Window win, const char *t);
1651 EAPI void ecore_x_icccm_colormap_window_set(Ecore_X_Window win, Ecore_X_Window subwin);
1652 EAPI void ecore_x_icccm_colormap_window_unset(Ecore_X_Window win, Ecore_X_Window subwin);
1653 EAPI void ecore_x_icccm_transient_for_set(Ecore_X_Window win, Ecore_X_Window forwin);
1654 EAPI void ecore_x_icccm_transient_for_unset(Ecore_X_Window win);
1655 EAPI Ecore_X_Window ecore_x_icccm_transient_for_get(Ecore_X_Window win);
1656 EAPI void ecore_x_icccm_window_role_set(Ecore_X_Window win, const char *role);
1657 EAPI char *ecore_x_icccm_window_role_get(Ecore_X_Window win);
1658 EAPI void ecore_x_icccm_client_leader_set(Ecore_X_Window win, Ecore_X_Window l);
1659 EAPI Ecore_X_Window ecore_x_icccm_client_leader_get(Ecore_X_Window win);
1660 EAPI void ecore_x_icccm_iconic_request_send(Ecore_X_Window win, Ecore_X_Window root);
1662 typedef enum _Ecore_X_MWM_Hint_Func
1664 ECORE_X_MWM_HINT_FUNC_ALL = (1 << 0),
1665 ECORE_X_MWM_HINT_FUNC_RESIZE = (1 << 1),
1666 ECORE_X_MWM_HINT_FUNC_MOVE = (1 << 2),
1667 ECORE_X_MWM_HINT_FUNC_MINIMIZE = (1 << 3),
1668 ECORE_X_MWM_HINT_FUNC_MAXIMIZE = (1 << 4),
1669 ECORE_X_MWM_HINT_FUNC_CLOSE = (1 << 5)
1670 } Ecore_X_MWM_Hint_Func;
1672 typedef enum _Ecore_X_MWM_Hint_Decor
1674 ECORE_X_MWM_HINT_DECOR_ALL = (1 << 0),
1675 ECORE_X_MWM_HINT_DECOR_BORDER = (1 << 1),
1676 ECORE_X_MWM_HINT_DECOR_RESIZEH = (1 << 2),
1677 ECORE_X_MWM_HINT_DECOR_TITLE = (1 << 3),
1678 ECORE_X_MWM_HINT_DECOR_MENU = (1 << 4),
1679 ECORE_X_MWM_HINT_DECOR_MINIMIZE = (1 << 5),
1680 ECORE_X_MWM_HINT_DECOR_MAXIMIZE = (1 << 6)
1681 } Ecore_X_MWM_Hint_Decor;
1683 typedef enum _Ecore_X_MWM_Hint_Input
1685 ECORE_X_MWM_HINT_INPUT_MODELESS = 0,
1686 ECORE_X_MWM_HINT_INPUT_PRIMARY_APPLICATION_MODAL = 1,
1687 ECORE_X_MWM_HINT_INPUT_SYSTEM_MODAL = 2,
1688 ECORE_X_MWM_HINT_INPUT_FULL_APPLICATION_MODAL = 3
1689 } Ecore_X_MWM_Hint_Input;
1691 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);
1692 EAPI void ecore_x_mwm_borderless_set(Ecore_X_Window win, Eina_Bool borderless);
1695 EAPI void ecore_x_netwm_init(void);
1696 EAPI void ecore_x_netwm_shutdown(void);
1697 EAPI void ecore_x_netwm_wm_identify(Ecore_X_Window root, Ecore_X_Window check, const char *wm_name);
1698 EAPI void ecore_x_netwm_supported_set(Ecore_X_Window root, Ecore_X_Atom *supported, int num);
1699 EAPI Eina_Bool ecore_x_netwm_supported_get(Ecore_X_Window root, Ecore_X_Atom **supported, int *num);
1700 EAPI void ecore_x_netwm_desk_count_set(Ecore_X_Window root, unsigned int n_desks);
1701 EAPI void ecore_x_netwm_desk_roots_set(Ecore_X_Window root, Ecore_X_Window *vroots, unsigned int n_desks);
1702 EAPI void ecore_x_netwm_desk_names_set(Ecore_X_Window root, const char **names, unsigned int n_desks);
1703 EAPI void ecore_x_netwm_desk_size_set(Ecore_X_Window root, unsigned int width, unsigned int height);
1704 EAPI void ecore_x_netwm_desk_workareas_set(Ecore_X_Window root, unsigned int *areas, unsigned int n_desks);
1705 EAPI unsigned int *ecore_x_netwm_desk_workareas_get(Ecore_X_Window root, unsigned int *n_desks);
1706 EAPI void ecore_x_netwm_desk_current_set(Ecore_X_Window root, unsigned int desk);
1707 EAPI void ecore_x_netwm_desk_viewports_set(Ecore_X_Window root, unsigned int *origins, unsigned int n_desks);
1708 EAPI void ecore_x_netwm_desk_layout_set(Ecore_X_Window root, int orientation, int columns, int rows, int starting_corner);
1709 EAPI void ecore_x_netwm_showing_desktop_set(Ecore_X_Window root, Eina_Bool on);
1710 EAPI void ecore_x_netwm_client_list_set(Ecore_X_Window root, Ecore_X_Window *p_clients, unsigned int n_clients);
1711 EAPI void ecore_x_netwm_client_list_stacking_set(Ecore_X_Window root, Ecore_X_Window *p_clients, unsigned int n_clients);
1712 EAPI void ecore_x_netwm_client_active_set(Ecore_X_Window root, Ecore_X_Window win);
1713 EAPI void ecore_x_netwm_client_active_request(Ecore_X_Window root, Ecore_X_Window win, int type, Ecore_X_Window current_win);
1714 EAPI void ecore_x_netwm_name_set(Ecore_X_Window win, const char *name);
1715 EAPI int ecore_x_netwm_name_get(Ecore_X_Window win, char **name);
1716 EAPI void ecore_x_netwm_startup_id_set(Ecore_X_Window win, const char *id);
1717 EAPI int ecore_x_netwm_startup_id_get(Ecore_X_Window win, char **id);
1718 EAPI void ecore_x_netwm_visible_name_set(Ecore_X_Window win, const char *name);
1719 EAPI int ecore_x_netwm_visible_name_get(Ecore_X_Window win, char **name);
1720 EAPI void ecore_x_netwm_icon_name_set(Ecore_X_Window win, const char *name);
1721 EAPI int ecore_x_netwm_icon_name_get(Ecore_X_Window win, char **name);
1722 EAPI void ecore_x_netwm_visible_icon_name_set(Ecore_X_Window win, const char *name);
1723 EAPI int ecore_x_netwm_visible_icon_name_get(Ecore_X_Window win, char **name);
1724 EAPI void ecore_x_netwm_desktop_set(Ecore_X_Window win, unsigned int desk);
1725 EAPI Eina_Bool ecore_x_netwm_desktop_get(Ecore_X_Window win, unsigned int *desk);
1726 EAPI void ecore_x_netwm_strut_set(Ecore_X_Window win, int left, int right, int top, int bottom);
1727 EAPI Eina_Bool ecore_x_netwm_strut_get(Ecore_X_Window win, int *left, int *right, int *top, int *bottom);
1728 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);
1729 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);
1731 EAPI void ecore_x_netwm_icons_set(Ecore_X_Window win, Ecore_X_Icon *icon, int num);
1733 EAPI Eina_Bool ecore_x_netwm_icons_get(Ecore_X_Window win, Ecore_X_Icon **icon, int *num);
1734 EAPI void ecore_x_netwm_icon_geometry_set(Ecore_X_Window win, int x, int y, int width, int height);
1735 EAPI Eina_Bool ecore_x_netwm_icon_geometry_get(Ecore_X_Window win, int *x, int *y, int *width, int *height);
1736 EAPI void ecore_x_netwm_pid_set(Ecore_X_Window win, int pid);
1737 EAPI Eina_Bool ecore_x_netwm_pid_get(Ecore_X_Window win, int *pid);
1738 EAPI void ecore_x_netwm_handled_icons_set(Ecore_X_Window win);
1739 EAPI Eina_Bool ecore_x_netwm_handled_icons_get(Ecore_X_Window win);
1740 EAPI void ecore_x_netwm_user_time_set(Ecore_X_Window win, unsigned int time);
1741 EAPI Eina_Bool ecore_x_netwm_user_time_get(Ecore_X_Window win, unsigned int *time);
1742 EAPI void ecore_x_netwm_window_state_set(Ecore_X_Window win, Ecore_X_Window_State *state, unsigned int num);
1743 EAPI Eina_Bool ecore_x_netwm_window_state_get(Ecore_X_Window win, Ecore_X_Window_State **state, unsigned int *num);
1744 EAPI void ecore_x_netwm_window_type_set(Ecore_X_Window win, Ecore_X_Window_Type type);
1745 EAPI Eina_Bool ecore_x_netwm_window_type_get(Ecore_X_Window win, Ecore_X_Window_Type *type);
1746 EAPI int ecore_x_netwm_window_types_get(Ecore_X_Window win, Ecore_X_Window_Type **types);
1747 EAPI Eina_Bool ecore_x_netwm_allowed_action_isset(Ecore_X_Window win, Ecore_X_Action action);
1748 EAPI void ecore_x_netwm_allowed_action_set(Ecore_X_Window win, Ecore_X_Action *action, unsigned int num);
1749 EAPI Eina_Bool ecore_x_netwm_allowed_action_get(Ecore_X_Window win, Ecore_X_Action **action, unsigned int *num);
1750 EAPI void ecore_x_netwm_opacity_set(Ecore_X_Window win, unsigned int opacity);
1751 EAPI Eina_Bool ecore_x_netwm_opacity_get(Ecore_X_Window win, unsigned int *opacity);
1752 EAPI void ecore_x_netwm_frame_size_set(Ecore_X_Window win, int fl, int fr, int ft, int fb);
1753 EAPI Eina_Bool ecore_x_netwm_frame_size_get(Ecore_X_Window win, int *fl, int *fr, int *ft, int *fb);
1754 EAPI Eina_Bool ecore_x_netwm_sync_counter_get(Ecore_X_Window win, Ecore_X_Sync_Counter *counter);
1755 EAPI void ecore_x_netwm_ping_send(Ecore_X_Window win);
1756 EAPI void ecore_x_netwm_sync_request_send(Ecore_X_Window win, unsigned int serial);
1757 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);
1758 EAPI void ecore_x_netwm_desktop_request_send(Ecore_X_Window win, Ecore_X_Window root, unsigned int desktop);
1759 EAPI void ecore_x_netwm_moveresize_request_send(Ecore_X_Window win, int x, int y, Ecore_X_Netwm_Direction direction, unsigned int button);
1761 EAPI void ecore_x_e_init(void);
1762 EAPI void ecore_x_e_frame_size_set(Ecore_X_Window win, int fl, int fr, int ft, int fb);
1763 EAPI void ecore_x_e_virtual_keyboard_set(Ecore_X_Window win, unsigned int is_keyboard);
1764 EAPI Eina_Bool ecore_x_e_virtual_keyboard_get(Ecore_X_Window win);
1765 EAPI void ecore_x_e_virtual_keyboard_state_set(Ecore_X_Window win, Ecore_X_Virtual_Keyboard_State state);
1766 EAPI Ecore_X_Virtual_Keyboard_State ecore_x_e_virtual_keyboard_state_get(Ecore_X_Window win);
1767 EAPI void ecore_x_e_virtual_keyboard_state_send(Ecore_X_Window win, Ecore_X_Virtual_Keyboard_State state);
1769 /* Illume functions */
1770 EAPI void ecore_x_e_illume_zone_set(Ecore_X_Window win, Ecore_X_Window zone);
1771 EAPI Ecore_X_Window ecore_x_e_illume_zone_get(Ecore_X_Window win);
1772 EAPI void ecore_x_e_illume_zone_list_set(Ecore_X_Window win, Ecore_X_Window *zones, unsigned int n_zones);
1773 EAPI void ecore_x_e_illume_conformant_set(Ecore_X_Window win, unsigned int is_conformant);
1774 EAPI Eina_Bool ecore_x_e_illume_conformant_get(Ecore_X_Window win);
1775 EAPI void ecore_x_e_illume_mode_set(Ecore_X_Window win, Ecore_X_Illume_Mode mode);
1776 EAPI Ecore_X_Illume_Mode ecore_x_e_illume_mode_get(Ecore_X_Window win);
1777 EAPI void ecore_x_e_illume_mode_send(Ecore_X_Window win, Ecore_X_Illume_Mode mode);
1778 EAPI void ecore_x_e_illume_focus_back_send(Ecore_X_Window win);
1779 EAPI void ecore_x_e_illume_focus_forward_send(Ecore_X_Window win);
1780 EAPI void ecore_x_e_illume_focus_home_send(Ecore_X_Window win);
1781 EAPI void ecore_x_e_illume_close_send(Ecore_X_Window win);
1782 EAPI void ecore_x_e_illume_home_new_send(Ecore_X_Window win);
1783 EAPI void ecore_x_e_illume_home_del_send(Ecore_X_Window win);
1784 EAPI void ecore_x_e_illume_access_action_next_send(Ecore_X_Window win);
1785 EAPI void ecore_x_e_illume_access_action_prev_send(Ecore_X_Window win);
1786 EAPI void ecore_x_e_illume_access_action_activate_send(Ecore_X_Window win);
1787 EAPI void ecore_x_e_illume_access_action_over_send(Ecore_X_Window win);
1788 EAPI void ecore_x_e_illume_access_action_read_send(Ecore_X_Window win);
1789 EAPI void ecore_x_e_illume_access_action_read_next_send(Ecore_X_Window win);
1790 EAPI void ecore_x_e_illume_access_action_read_prev_send(Ecore_X_Window win);
1791 EAPI void ecore_x_e_illume_access_action_up_send(Ecore_X_Window win);
1792 EAPI void ecore_x_e_illume_access_action_down_send(Ecore_X_Window win);
1794 EAPI void ecore_x_e_illume_drag_set(Ecore_X_Window win, unsigned int drag);
1795 EAPI Eina_Bool ecore_x_e_illume_drag_get(Ecore_X_Window win);
1796 EAPI void ecore_x_e_illume_drag_locked_set(Ecore_X_Window win, unsigned int is_locked);
1797 EAPI Eina_Bool ecore_x_e_illume_drag_locked_get(Ecore_X_Window win);
1798 EAPI void ecore_x_e_illume_drag_start_send(Ecore_X_Window win);
1799 EAPI void ecore_x_e_illume_drag_end_send(Ecore_X_Window win);
1800 EAPI void ecore_x_e_illume_indicator_geometry_set(Ecore_X_Window win, int x, int y, int w, int h);
1801 EAPI Eina_Bool ecore_x_e_illume_indicator_geometry_get(Ecore_X_Window win, int *x, int *y, int *w, int *h);
1802 EAPI void ecore_x_e_illume_softkey_geometry_set(Ecore_X_Window win, int x, int y, int w, int h);
1803 EAPI Eina_Bool ecore_x_e_illume_softkey_geometry_get(Ecore_X_Window win, int *x, int *y, int *w, int *h);
1804 EAPI void ecore_x_e_illume_keyboard_geometry_set(Ecore_X_Window win, int x, int y, int w, int h);
1805 EAPI Eina_Bool ecore_x_e_illume_keyboard_geometry_get(Ecore_X_Window win, int *x, int *y, int *w, int *h);
1806 EAPI void ecore_x_e_illume_quickpanel_set(Ecore_X_Window win, unsigned int is_quickpanel);
1807 EAPI Eina_Bool ecore_x_e_illume_quickpanel_get(Ecore_X_Window win);
1808 EAPI void ecore_x_e_illume_quickpanel_state_set(Ecore_X_Window win, Ecore_X_Illume_Quickpanel_State state);
1809 EAPI Ecore_X_Illume_Quickpanel_State ecore_x_e_illume_quickpanel_state_get(Ecore_X_Window win);
1810 EAPI void ecore_x_e_illume_quickpanel_state_send(Ecore_X_Window win, Ecore_X_Illume_Quickpanel_State state);
1811 EAPI void ecore_x_e_illume_quickpanel_state_toggle(Ecore_X_Window win);
1812 EAPI void ecore_x_e_illume_quickpanel_priority_major_set(Ecore_X_Window win, unsigned int priority);
1813 EAPI int ecore_x_e_illume_quickpanel_priority_major_get(Ecore_X_Window win);
1814 EAPI void ecore_x_e_illume_quickpanel_priority_minor_set(Ecore_X_Window win, unsigned int priority);
1815 EAPI int ecore_x_e_illume_quickpanel_priority_minor_get(Ecore_X_Window win);
1816 EAPI void ecore_x_e_illume_quickpanel_zone_set(Ecore_X_Window win, unsigned int zone);
1817 EAPI int ecore_x_e_illume_quickpanel_zone_get(Ecore_X_Window win);
1818 EAPI void ecore_x_e_illume_quickpanel_zone_request_send(Ecore_X_Window win);
1819 EAPI void ecore_x_e_illume_quickpanel_position_update_send(Ecore_X_Window win);
1821 EAPI void ecore_x_e_illume_clipboard_state_set(Ecore_X_Window win, Ecore_X_Illume_Clipboard_State state);
1823 EAPI Ecore_X_Illume_Clipboard_State ecore_x_e_illume_clipboard_state_get(Ecore_X_Window win);
1825 EAPI void ecore_x_e_illume_clipboard_geometry_set(Ecore_X_Window win, int x, int y, int w, int h);
1826 EAPI Eina_Bool ecore_x_e_illume_clipboard_geometry_get(Ecore_X_Window win, int *x, int *y, int *w, int *h);
1827 EAPI void ecore_x_e_comp_sync_counter_set(Ecore_X_Window win, Ecore_X_Sync_Counter counter);
1828 EAPI Ecore_X_Sync_Counter ecore_x_e_comp_sync_counter_get(Ecore_X_Window win);
1829 EAPI void ecore_x_e_comp_sync_draw_done_send(Ecore_X_Window root, Ecore_X_Window win);
1830 EAPI void ecore_x_e_comp_sync_draw_size_done_send(Ecore_X_Window root, Ecore_X_Window win, int w, int h);
1831 EAPI void ecore_x_e_comp_sync_supported_set(Ecore_X_Window root, Eina_Bool enabled);
1832 EAPI Eina_Bool ecore_x_e_comp_sync_supported_get(Ecore_X_Window root);
1833 EAPI void ecore_x_e_comp_sync_begin_send(Ecore_X_Window win);
1834 EAPI void ecore_x_e_comp_sync_end_send(Ecore_X_Window win);
1835 EAPI void ecore_x_e_comp_sync_cancel_send(Ecore_X_Window win);
1837 EAPI void ecore_x_e_comp_flush_send(Ecore_X_Window win);
1838 EAPI void ecore_x_e_comp_dump_send(Ecore_X_Window win);
1839 EAPI void ecore_x_e_comp_pixmap_set(Ecore_X_Window win, Ecore_X_Pixmap pixmap);
1840 EAPI Ecore_X_Pixmap ecore_x_e_comp_pixmap_get(Ecore_X_Window win);
1843 * @brief Get the window profile
1845 * @param win The client x window
1846 * @return The string value of the window profile, or NULL if none exists
1848 EAPI char *ecore_x_e_window_profile_get(Ecore_X_Window win);
1850 * @brief Set the window profile
1852 * @param win The client x window
1853 * @param profile The string value of the window profile
1855 EAPI void ecore_x_e_window_profile_set(Ecore_X_Window win, const char *profile);
1857 * @brief Set the array of window profiles
1859 * @param win The client x window
1860 * @param profiles The string array of window profiles
1861 * @param num_profiles The number of window profiles
1863 * @deprecated use ecore_x_e_window_available_profiles_set
1865 EAPI void ecore_x_e_window_profile_list_set(Ecore_X_Window win, const char **profiles, unsigned int num_profiles);
1867 * @brief Get the array of window profiles
1869 * @param win The client x window
1870 * @param profiles Where to return the string array of window profiles
1871 * @param ret_num Where to return the number of window profiles
1872 * @return EINA_TRUE if window profiles exist, EINA_FALSE otherwise
1874 * @deprecated use ecore_x_e_window_available_profiles_get
1876 EAPI Eina_Bool ecore_x_e_window_profile_list_get(Ecore_X_Window win, const char ***profiles, int *ret_num);
1878 * @brief Set the status for the window profile support
1880 * @param root The root window
1881 * @param enabled The enabled value for the window profile support
1885 EAPI void ecore_x_e_window_profile_supported_set(Ecore_X_Window root, Eina_Bool enabled);
1887 * @brief Query if the window profile is supported
1889 * @param root The root window
1890 * @return EINA_TRUE if it is supported, EINA_FALSE otherwise
1894 EAPI Eina_Bool ecore_x_e_window_profile_supported_get(Ecore_X_Window root);
1896 * @brief Set the array of available window profiles
1898 * @param win The client x window
1899 * @param profiles The string array of available window profiles
1900 * @param count The number of available window profiles
1904 EAPI void ecore_x_e_window_available_profiles_set(Ecore_X_Window win, const char **profiles, unsigned int count);
1906 * @brief Get the array of avaialbe window profiles
1908 * @param win The client x window
1909 * @param profiles Where to return the string array of available window profiles
1910 * @param count Where to return the number of members in profiles
1911 * @return EINA_TRUE if available window profiles exist, EINA_FALSE otherwise
1915 EAPI Eina_Bool ecore_x_e_window_available_profiles_get(Ecore_X_Window win, const char ***profiles, int *count);
1917 * @brief Send a profile change event to the window manager
1919 * This function sends a request to the window manager to change the profile.
1920 * If honored by the window manager, the client will receive a profile change
1921 * request event back. If the client has replied, the window manager will move
1922 * the client window on the virtual desktop associated with changed profile.
1924 * @param root The root x window
1925 * @param win The client x window
1926 * @param profile The string value of the window profile
1930 EAPI void ecore_x_e_window_profile_change_send(Ecore_X_Window root, Ecore_X_Window win, const char *profile);
1932 * @brief Send a profile change request event to the client
1934 * This function sends a request to the client to change the profile.
1935 * If the client has replied, the window manager will move the client window
1936 * on the virtual desktop associated with changed profile.
1938 * @param win The client x window
1939 * @param profile The string value of the window profile
1943 EAPI void ecore_x_e_window_profile_change_request_send(Ecore_X_Window win, const char *profile);
1945 * @brief Send a profile change done event to the window manager
1947 * This function sends a profile change done event to the window manager.
1948 * Upon receiving, the window manager will move the client window
1949 * on the virtual desktop associated with changed profile.
1951 * @param root The root x window
1952 * @param win The client x window
1953 * @param profile The string value of the window profile
1957 EAPI void ecore_x_e_window_profile_change_done_send(Ecore_X_Window root, Ecore_X_Window win, const char *profile);
1959 EAPI Ecore_X_Sync_Alarm ecore_x_sync_alarm_new(Ecore_X_Sync_Counter counter);
1960 EAPI Eina_Bool ecore_x_sync_alarm_free(Ecore_X_Sync_Alarm alarm);
1961 EAPI Eina_Bool ecore_x_sync_counter_query(Ecore_X_Sync_Counter counter, unsigned int *val);
1962 EAPI Ecore_X_Sync_Counter ecore_x_sync_counter_new(int val);
1963 EAPI void ecore_x_sync_counter_free(Ecore_X_Sync_Counter counter);
1964 EAPI void ecore_x_sync_counter_inc(Ecore_X_Sync_Counter counter, int by);
1965 EAPI void ecore_x_sync_counter_val_wait(Ecore_X_Sync_Counter counter, int val);
1967 EAPI void ecore_x_sync_counter_set(Ecore_X_Sync_Counter counter, int val);
1968 EAPI void ecore_x_sync_counter_2_set(Ecore_X_Sync_Counter counter, int val_hi, unsigned int val_lo);
1969 EAPI Eina_Bool ecore_x_sync_counter_2_query(Ecore_X_Sync_Counter counter, int *val_hi, unsigned int *val_lo);
1971 EAPI int ecore_x_xinerama_screen_count_get(void);
1972 EAPI Eina_Bool ecore_x_xinerama_screen_geometry_get(int screen, int *x, int *y, int *w, int *h);
1974 EAPI Eina_Bool ecore_x_screensaver_event_available_get(void);
1975 EAPI int ecore_x_screensaver_idle_time_get(void);
1976 EAPI void ecore_x_screensaver_set(int timeout, int interval, int prefer_blanking, int allow_exposures);
1977 EAPI void ecore_x_screensaver_timeout_set(int timeout);
1978 EAPI int ecore_x_screensaver_timeout_get(void);
1979 EAPI void ecore_x_screensaver_blank_set(int timeout);
1980 EAPI int ecore_x_screensaver_blank_get(void);
1981 EAPI void ecore_x_screensaver_expose_set(int timeout);
1982 EAPI int ecore_x_screensaver_expose_get(void);
1983 EAPI void ecore_x_screensaver_interval_set(int timeout);
1984 EAPI int ecore_x_screensaver_interval_get(void);
1985 EAPI void ecore_x_screensaver_event_listen_set(Eina_Bool on);
1986 EAPI Eina_Bool ecore_x_screensaver_custom_blanking_enable(void); /** @since 1.7 */
1987 EAPI Eina_Bool ecore_x_screensaver_custom_blanking_disable(void); /** @since 1.7 */
1988 EINA_DEPRECATED EAPI void ecore_x_screensaver_supend(void); /** @since 1.11 */
1989 EAPI void ecore_x_screensaver_resume(void); /** @since 1.11 */
1990 EAPI void ecore_x_screensaver_reset(void); /** @since 1.11 */
1991 EAPI void ecore_x_screensaver_activate(void); /** @since 1.11 */
1992 EAPI void ecore_x_screensaver_suspend(void); /** @since 1.13 */
1994 /* FIXME: these funcs need categorising */
1996 typedef struct _Ecore_X_Window_Attributes
1998 Ecore_X_Window root;
2002 Eina_Bool visible : 1;
2003 Eina_Bool viewable : 1;
2004 Eina_Bool override : 1;
2005 Eina_Bool input_only : 1;
2006 Eina_Bool save_under : 1;
2009 Ecore_X_Event_Mask mine;
2010 Ecore_X_Event_Mask all;
2011 Ecore_X_Event_Mask no_propagate;
2013 Ecore_X_Gravity window_gravity;
2014 Ecore_X_Gravity pixel_gravity;
2015 Ecore_X_Colormap colormap;
2016 Ecore_X_Visual visual;
2018 * int map_installed;
2021 } Ecore_X_Window_Attributes;
2023 EAPI Eina_Bool ecore_x_window_attributes_get(Ecore_X_Window win, Ecore_X_Window_Attributes *att_ret);
2024 EAPI void ecore_x_window_save_set_add(Ecore_X_Window win);
2025 EAPI void ecore_x_window_save_set_del(Ecore_X_Window win);
2026 EAPI Ecore_X_Window *ecore_x_window_children_get(Ecore_X_Window win, int *num);
2028 EAPI Eina_Bool ecore_x_pointer_control_set(int accel_num, int accel_denom, int threshold);
2029 EAPI Eina_Bool ecore_x_pointer_control_get(int *accel_num, int *accel_denom, int *threshold);
2030 EAPI Eina_Bool ecore_x_pointer_mapping_set(unsigned char *map, int nmap);
2031 EAPI Eina_Bool ecore_x_pointer_mapping_get(unsigned char *map, int nmap);
2032 EAPI Eina_Bool ecore_x_pointer_grab(Ecore_X_Window win);
2033 EAPI Eina_Bool ecore_x_pointer_confine_grab(Ecore_X_Window win);
2034 EAPI void ecore_x_pointer_ungrab(void);
2035 EAPI Eina_Bool ecore_x_pointer_warp(Ecore_X_Window win, int x, int y);
2036 EAPI Eina_Bool ecore_x_keyboard_grab(Ecore_X_Window win);
2037 EAPI void ecore_x_keyboard_ungrab(void);
2038 EAPI void ecore_x_grab(void);
2039 EAPI void ecore_x_ungrab(void);
2040 EAPI void ecore_x_passive_grab_replay_func_set(Eina_Bool (*func)(void *data, int event_type, void *event), void *data);
2041 EAPI void ecore_x_window_button_grab(Ecore_X_Window win, int button, Ecore_X_Event_Mask event_mask, int mod, int any_mod);
2042 EAPI void ecore_x_window_button_ungrab(Ecore_X_Window win, int button, int mod, int any_mod);
2043 EAPI void ecore_x_window_key_grab(Ecore_X_Window win, const char *key, int mod, int any_mod);
2044 EAPI void ecore_x_window_key_ungrab(Ecore_X_Window win, const char *key, int mod, int any_mod);
2046 EAPI void ecore_x_focus_reset(void);
2047 EAPI void ecore_x_events_allow_all(void);
2048 EAPI void ecore_x_pointer_last_xy_get(int *x, int *y);
2049 EAPI void ecore_x_pointer_xy_get(Ecore_X_Window win, int *x, int *y);
2050 EAPI void ecore_x_pointer_root_xy_get(int *x, int *y);
2052 /* ecore_x_region.c */
2053 EAPI Ecore_X_XRegion *ecore_x_xregion_new(void);
2054 EAPI void ecore_x_xregion_free(Ecore_X_XRegion *region);
2055 EAPI Eina_Bool ecore_x_xregion_set(Ecore_X_XRegion *region, Ecore_X_GC gc);
2056 EAPI void ecore_x_xregion_translate(Ecore_X_XRegion *region, int x, int y);
2057 EAPI Eina_Bool ecore_x_xregion_intersect(Ecore_X_XRegion *dst, Ecore_X_XRegion *r1, Ecore_X_XRegion *r2);
2058 EAPI Eina_Bool ecore_x_xregion_union(Ecore_X_XRegion *dst, Ecore_X_XRegion *r1, Ecore_X_XRegion *r2);
2059 EAPI Eina_Bool ecore_x_xregion_union_rect(Ecore_X_XRegion *dst, Ecore_X_XRegion *src, Ecore_X_Rectangle *rect);
2060 EAPI Eina_Bool ecore_x_xregion_subtract(Ecore_X_XRegion *dst, Ecore_X_XRegion *r1, Ecore_X_XRegion *r2);
2061 EAPI Eina_Bool ecore_x_xregion_is_empty(Ecore_X_XRegion *region);
2062 EAPI Eina_Bool ecore_x_xregion_is_equal(Ecore_X_XRegion *r1, Ecore_X_XRegion *r2);
2063 EAPI Eina_Bool ecore_x_xregion_point_contain(Ecore_X_XRegion *region, int x, int y);
2064 EAPI Eina_Bool ecore_x_xregion_rect_contain(Ecore_X_XRegion *region, Ecore_X_Rectangle *rect);
2066 /* ecore_x_randr.c */
2068 /* The usage of 'Ecore_X_Randr_None' or 'Ecore_X_Randr_Unset'
2069 * depends on the context. In most cases 'Ecore_X_Randr_Unset'
2070 * can be used, but in some cases -1 is a special value to
2071 * functions, thus 'Ecore_X_Randr_None' (=0) must be used.
2074 typedef short Ecore_X_Randr_Refresh_Rate;
2075 typedef int Ecore_X_Randr_Crtc_Gamma;
2076 typedef int Ecore_X_Randr_Signal_Format;
2077 typedef int Ecore_X_Randr_Signal_Property;
2078 typedef int Ecore_X_Randr_Connector_Type;
2080 typedef struct _Ecore_X_Randr_Mode_Info
2084 unsigned int height;
2085 unsigned long dotClock;
2086 unsigned int hSyncStart;
2087 unsigned int hSyncEnd;
2088 unsigned int hTotal;
2090 unsigned int vSyncStart;
2091 unsigned int vSyncEnd;
2092 unsigned int vTotal;
2094 unsigned int nameLength;
2095 unsigned long modeFlags;
2096 } Ecore_X_Randr_Mode_Info;
2098 typedef struct _Ecore_X_Randr_Crtc_Gamma_Info
2101 unsigned short *red;
2102 unsigned short *green;
2103 unsigned short *blue;
2104 } Ecore_X_Randr_Crtc_Gamma_Info;
2106 EAPI int ecore_x_randr_version_get(void);
2107 EAPI Eina_Bool ecore_x_randr_query(void);
2108 EAPI Ecore_X_Time ecore_x_randr_config_timestamp_get(Ecore_X_Window root); /** @since 1.8 */
2109 EAPI Ecore_X_Randr_Orientation ecore_x_randr_screen_primary_output_orientations_get(Ecore_X_Window root);
2110 EAPI Ecore_X_Randr_Orientation ecore_x_randr_screen_primary_output_orientation_get(Ecore_X_Window root);
2111 EAPI Eina_Bool ecore_x_randr_screen_primary_output_orientation_set(Ecore_X_Window root, Ecore_X_Randr_Orientation orientation);
2112 EAPI Ecore_X_Randr_Screen_Size_MM *ecore_x_randr_screen_primary_output_sizes_get(Ecore_X_Window root, int *num);
2115 * @brief get the current set size of a given screen's primary output
2116 * @param root window which's primary output will be queried
2117 * @param w the current size's width
2118 * @param h the current size's height
2119 * @param w_mm the current size's width in mm
2120 * @param h_mm the current size's height in mm
2121 * @param size_index of current set size to be used with ecore_x_randr_primary_output_size_set()
2123 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);
2124 EAPI Eina_Bool ecore_x_randr_screen_primary_output_size_set(Ecore_X_Window root, int size_index);
2125 EAPI Ecore_X_Randr_Refresh_Rate ecore_x_randr_screen_primary_output_current_refresh_rate_get(Ecore_X_Window root);
2126 EAPI Ecore_X_Randr_Refresh_Rate *ecore_x_randr_screen_primary_output_refresh_rates_get(Ecore_X_Window root, int size_index, int *num);
2127 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);
2129 EAPI void ecore_x_randr_events_select(Ecore_X_Window win, Eina_Bool on);
2131 EAPI void ecore_x_randr_screen_current_size_get(Ecore_X_Window root, int *w, int *h, int *w_mm, int *h_mm);
2132 EAPI void ecore_x_randr_screen_size_range_get(Ecore_X_Window root, int *wmin, int *hmin, int *wmax, int *hmax);
2133 EAPI void ecore_x_randr_screen_reset(Ecore_X_Window root);
2134 EAPI Eina_Bool ecore_x_randr_screen_current_size_set(Ecore_X_Window root, int w, int h, int w_mm, int h_mm);
2135 EAPI Ecore_X_Randr_Mode_Info **ecore_x_randr_modes_info_get(Ecore_X_Window root, int *num);
2136 EAPI Ecore_X_Randr_Mode ecore_x_randr_mode_info_add(Ecore_X_Window root, Ecore_X_Randr_Mode_Info *mode_info);
2137 EAPI void ecore_x_randr_mode_del(Ecore_X_Randr_Mode mode);
2138 EAPI Ecore_X_Randr_Mode_Info *ecore_x_randr_mode_info_get(Ecore_X_Window root, Ecore_X_Randr_Mode mode);
2139 EAPI void ecore_x_randr_mode_info_free(Ecore_X_Randr_Mode_Info *mode_info);
2140 EAPI Ecore_X_Randr_Crtc *ecore_x_randr_crtcs_get(Ecore_X_Window root, int *num);
2141 EAPI Ecore_X_Randr_Output *ecore_x_randr_outputs_get(Ecore_X_Window root, int *num);
2142 EAPI Ecore_X_Randr_Output *ecore_x_randr_window_outputs_get(Ecore_X_Window window, int *num);
2143 EAPI Ecore_X_Randr_Output *ecore_x_randr_current_output_get(Ecore_X_Window window, int *num);
2144 EAPI Ecore_X_Randr_Crtc *ecore_x_randr_window_crtcs_get(Ecore_X_Window window, int *num);
2145 EAPI Ecore_X_Randr_Crtc *ecore_x_randr_current_crtc_get(Ecore_X_Window window, int *num);
2146 EAPI Ecore_X_Randr_Output *ecore_x_randr_crtc_outputs_get(Ecore_X_Window root, Ecore_X_Randr_Crtc crtc, int *num);
2147 EAPI Ecore_X_Randr_Output *ecore_x_randr_crtc_possible_outputs_get(Ecore_X_Window root, Ecore_X_Randr_Crtc crtc, int *num);
2148 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);
2149 EAPI void ecore_x_randr_crtc_pos_get(Ecore_X_Window root, Ecore_X_Randr_Crtc crtc, int *x, int *y);
2150 EAPI Eina_Bool ecore_x_randr_crtc_pos_set(Ecore_X_Window root, Ecore_X_Randr_Crtc crtc, int x, int y);
2151 EAPI Ecore_X_Randr_Mode ecore_x_randr_crtc_mode_get(Ecore_X_Window root, Ecore_X_Randr_Crtc crtc);
2152 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);
2153 EAPI void ecore_x_randr_crtc_size_get(Ecore_X_Window root, Ecore_X_Randr_Crtc crtc, int *w, int *h);
2154 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);
2155 EAPI Ecore_X_Randr_Orientation ecore_x_randr_crtc_orientations_get(Ecore_X_Window root, Ecore_X_Randr_Crtc crtc);
2156 EAPI Ecore_X_Randr_Orientation ecore_x_randr_crtc_orientation_get(Ecore_X_Window root, Ecore_X_Randr_Crtc crtc);
2157 EAPI Eina_Bool ecore_x_randr_crtc_orientation_set(Ecore_X_Window root, Ecore_X_Randr_Crtc crtc, const Ecore_X_Randr_Orientation orientation);
2158 EAPI Eina_Bool ecore_x_randr_crtc_clone_set(Ecore_X_Window root, Ecore_X_Randr_Crtc original, Ecore_X_Randr_Crtc clone);
2159 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);
2160 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);
2161 EAPI Ecore_X_Randr_Crtc_Info *ecore_x_randr_crtc_info_get(Ecore_X_Window root, const Ecore_X_Randr_Crtc crtc); /**< @since 1.8 */
2162 EAPI void ecore_x_randr_crtc_info_free(Ecore_X_Randr_Crtc_Info *info); /**< @since 1.8 */
2163 EAPI Eina_Bool ecore_x_randr_output_mode_add(Ecore_X_Randr_Output output, Ecore_X_Randr_Mode mode);
2164 EAPI void ecore_x_randr_output_mode_del(Ecore_X_Randr_Output output, Ecore_X_Randr_Mode mode);
2165 EAPI Ecore_X_Randr_Mode *ecore_x_randr_output_modes_get(Ecore_X_Window root, Ecore_X_Randr_Output output, int *num, int *npreferred);
2166 EAPI Ecore_X_Randr_Output *ecore_x_randr_output_clones_get(Ecore_X_Window root, Ecore_X_Randr_Output output, int *num);
2167 EAPI Ecore_X_Randr_Crtc *ecore_x_randr_output_possible_crtcs_get(Ecore_X_Window root, Ecore_X_Randr_Output output, int *num);
2168 EAPI Ecore_X_Randr_Crtc ecore_x_randr_output_crtc_get(Ecore_X_Window root, Ecore_X_Randr_Output output);
2169 EAPI char *ecore_x_randr_output_name_get(Ecore_X_Window root, Ecore_X_Randr_Output output, int *len);
2170 EINA_DEPRECATED EAPI int ecore_x_randr_crtc_gamma_ramp_size_get(Ecore_X_Randr_Crtc crtc);
2171 EINA_DEPRECATED EAPI Ecore_X_Randr_Crtc_Gamma **ecore_x_randr_crtc_gamma_ramps_get(Ecore_X_Randr_Crtc crtc);
2172 EINA_DEPRECATED 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);
2173 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);
2174 EAPI Eina_Bool ecore_x_randr_move_crtcs(Ecore_X_Window root, const Ecore_X_Randr_Crtc *crtcs, int ncrtc, int dx, int dy);
2175 EAPI void ecore_x_randr_mode_size_get(Ecore_X_Window root, Ecore_X_Randr_Mode mode, int *w, int *h);
2176 EAPI Ecore_X_Randr_Connection_Status ecore_x_randr_output_connection_status_get(Ecore_X_Window root, Ecore_X_Randr_Output output);
2177 EAPI void ecore_x_randr_output_size_mm_get(Ecore_X_Window root, Ecore_X_Randr_Output output, int *w, int *h);
2178 EAPI Eina_Bool ecore_x_randr_output_crtc_set(Ecore_X_Window root, Ecore_X_Randr_Output output, const Ecore_X_Randr_Crtc crtc);
2180 EAPI int ecore_x_randr_crtc_gamma_size_get(Ecore_X_Randr_Crtc crtc); /**< @since 1.8 */
2181 EAPI Ecore_X_Randr_Crtc_Gamma_Info *ecore_x_randr_crtc_gamma_get(Ecore_X_Randr_Crtc crtc); /**< @since 1.8 */
2182 EAPI Eina_Bool ecore_x_randr_crtc_gamma_set(Ecore_X_Randr_Crtc crtc, const Ecore_X_Randr_Crtc_Gamma_Info *gamma); /**< @since 1.8 */
2185 * @brief Validates the header from raw EDID data.
2187 * @param edid The edid structure.
2188 * @param edid_length Length of the edid structure.
2189 * @return @c EINA_TRUE, if the header is valid, @c EINA_FALSE otherwise.
2191 EAPI Eina_Bool ecore_x_randr_edid_has_valid_header(unsigned char *edid, unsigned long edid_length);
2194 * @brief Checks whether a display's EDID has a valid checksum.
2196 * @param edid The edid structure.
2197 * @param edid_length Length of the edid structure.
2198 * @return @c EINA_TRUE, if the checksum is valid, @c EINA_FALSE otherwise.
2200 EAPI Eina_Bool ecore_x_randr_edid_info_has_valid_checksum(unsigned char *edid, unsigned long edid_length);
2203 * @brief Get the encoded version from raw EDID data.
2205 * The return value has the minor version in the lowest 8 bits, and the major
2206 * version in all the rest of the bits. i.e.
2208 * minor = (version & 0x000000ff);
2209 * major = (version & 0xffffff00) >> 8;
2211 * @param edid the edid structure
2212 * @param edid_length length of the edid structure
2213 * @return The encoded major and minor version encasuplated an int.
2215 EAPI int ecore_x_randr_edid_version_get(unsigned char *edid, unsigned long edid_length);
2218 * @brief Get the encoded manufacturer from raw EDID data.
2220 * @param edid the edid structure
2221 * @param edid_length length of the edid structure
2222 * @return The encoded manufacturer identifier.
2224 EAPI char *ecore_x_randr_edid_manufacturer_name_get(unsigned char *edid, unsigned long edid_length);
2227 * @brief Get the encoded name from raw EDID data.
2229 * @param edid the edid structure
2230 * @param edid_length length of the edid structure
2231 * @return The encoded manufacturer identifier.
2233 EAPI char *ecore_x_randr_edid_display_name_get(unsigned char *edid, unsigned long edid_length);
2236 * @brief Get the encoded ASCII from raw EDID data.
2238 * @param edid the edid structure
2239 * @param edid_length length of the edid structure
2240 * @return The encoded ASCII display identifier.
2242 EAPI char *ecore_x_randr_edid_display_ascii_get(unsigned char *edid, unsigned long edid_length);
2245 * @brief Get the encoded serial identifier from raw EDID data.
2247 * @param edid the edid structure
2248 * @param edid_length length of the edid structure
2249 * @return The encoded serial identifier.
2251 EAPI char *ecore_x_randr_edid_display_serial_get(unsigned char *edid, unsigned long edid_length);
2254 * @brief Get the encoded model number from raw EDID data.
2256 * The manufacturer ID table is necessary for a useful description.
2258 * @param edid the edid structure
2259 * @param edid_length length of the edid structure
2260 * @return The encoded model number.
2262 EAPI int ecore_x_randr_edid_model_get(unsigned char *edid, unsigned long edid_length);
2265 * @brief Get the manufacturer serial number from raw EDID data.
2267 * @param edid the edid structure
2268 * @param edid_length length of the edid structure
2269 * @return The encoded serial manufacturer serial number.
2271 EAPI int ecore_x_randr_edid_manufacturer_serial_number_get(unsigned char *edid, unsigned long edid_length);
2274 * @brief Get the manufacturer model number from raw EDID data.
2276 * @param edid the edid structure
2277 * @param edid_length length of the edid structure
2278 * @return The manufacturer's model number.
2280 EAPI int ecore_x_randr_edid_manufacturer_model_get(unsigned char *edid, unsigned long edid_length);
2283 * @brief Looks up the DPMS support from raw EDID data.
2285 * @param edid The edid structure.
2286 * @param edid_length Length of the edid structure.
2287 * @return @c EINA_TRUE, if DPMS is supported in some way, @c EINA_FALSE
2290 EAPI Eina_Bool ecore_x_randr_edid_dpms_available_get(unsigned char *edid, unsigned long edid_length);
2293 * @brief Looks up the DPMS Standby support from raw EDID data.
2295 * @param edid The edid structure.
2296 * @param edid_length Length of the edid structure.
2297 * @return @c EINA_TRUE, if DPMS Standby is supported, @c EINA_FALSE otherwise.
2299 EAPI Eina_Bool ecore_x_randr_edid_dpms_standby_available_get(unsigned char *edid, unsigned long edid_length);
2302 * @brief Looks up the DPMS Suspend support from raw EDID data.
2304 * @param edid The edid structure.
2305 * @param edid_length Length of the edid structure.
2306 * @return @c EINA_TRUE, if DPMS Suspend is supported, @c EINA_FALSE otherwise.
2308 EAPI Eina_Bool ecore_x_randr_edid_dpms_suspend_available_get(unsigned char *edid, unsigned long edid_length);
2311 * @brief Looks up the DPMS Off support from raw EDID data.
2313 * @param edid The edid structure.
2314 * @param edid_length Length of the edid structure.
2315 * @return @c EINA_TRUE, if DPMS Off is supported, @c EINA_FALSE otherwise.
2317 EAPI Eina_Bool ecore_x_randr_edid_dpms_off_available_get(unsigned char *edid, unsigned long edid_length);
2320 * @brief Get the preferred aspect ratio from raw EDID data.
2322 * @param edid the edid structure
2323 * @param edid_length length of the edid structure
2324 * @return The preferred aspect ratio.
2326 EAPI Ecore_X_Randr_Edid_Aspect_Ratio ecore_x_randr_edid_display_aspect_ratio_preferred_get(unsigned char *edid, unsigned long edid_length);
2329 * @brief Get the supported aspect ratios from raw EDID data.
2331 * @param edid the edid structure
2332 * @param edid_length length of the edid structure
2333 * @return The supported aspect ratios.
2335 EAPI Ecore_X_Randr_Edid_Aspect_Ratio ecore_x_randr_edid_display_aspect_ratios_get(unsigned char *edid, unsigned long edid_length);
2338 * @brief Get the supported colorschemes from raw EDID data.
2340 * @param edid the edid structure
2341 * @param edid_length length of the edid structure
2342 * @return The supported colorschemes.
2344 EAPI Ecore_X_Randr_Edid_Display_Colorscheme ecore_x_randr_edid_display_colorscheme_get(unsigned char *edid, unsigned long edid_length);
2347 * @brief Get the display type from raw EDID data.
2349 * @param edid The edid structure.
2350 * @param edid_length Length of the edid structure.
2351 * @return @c EINA_TRUE, if the display is a digital one, @c EINA_FALSE
2354 EAPI Eina_Bool ecore_x_randr_edid_display_type_digital_get(unsigned char *edid, unsigned long edid_length);
2357 * @brief Get the display interface type from raw EDID data.
2359 * @param edid the edid structure
2360 * @param edid_length length of the edid structure
2361 * @return The interface type.
2363 EAPI Ecore_X_Randr_Edid_Display_Interface_Type ecore_x_randr_edid_display_interface_type_get(unsigned char *edid, unsigned long edid_length);
2365 EAPI Eina_Bool ecore_x_randr_output_backlight_available(void);
2366 EAPI void ecore_x_randr_screen_backlight_level_set(Ecore_X_Window root, double level);
2367 EAPI double ecore_x_randr_output_backlight_level_get(Ecore_X_Window root, Ecore_X_Randr_Output output);
2368 EAPI Eina_Bool ecore_x_randr_output_backlight_level_set(Ecore_X_Window root, Ecore_X_Randr_Output output, double level);
2369 EAPI Ecore_X_Randr_Output ecore_x_randr_primary_output_get(Ecore_X_Window root);
2370 EAPI void ecore_x_randr_primary_output_set(Ecore_X_Window root, Ecore_X_Randr_Output output);
2371 EAPI Ecore_X_Render_Subpixel_Order ecore_x_randr_output_subpixel_order_get(Ecore_X_Window root, Ecore_X_Randr_Output output);
2372 EAPI unsigned char *ecore_x_randr_output_edid_get(Ecore_X_Window root, Ecore_X_Randr_Output output, unsigned long *length);
2373 EAPI Ecore_X_Randr_Output *ecore_x_randr_output_wired_clones_get(Ecore_X_Window root, Ecore_X_Randr_Output output, int *num);
2374 EAPI Ecore_X_Randr_Output **ecore_x_randr_output_compatibility_list_get(Ecore_X_Window root, Ecore_X_Randr_Output output, int *num);
2375 EAPI Ecore_X_Randr_Signal_Format *ecore_x_randr_output_signal_formats_get(Ecore_X_Window root, Ecore_X_Randr_Output output, int *num);
2376 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);
2377 EAPI Ecore_X_Randr_Signal_Property *ecore_x_randr_output_signal_properties_get(Ecore_X_Window root, Ecore_X_Randr_Output output, int *num);
2378 EAPI int ecore_x_randr_output_connector_number_get(Ecore_X_Window root, Ecore_X_Randr_Output output);
2379 EAPI Ecore_X_Randr_Connector_Type ecore_x_randr_output_connector_type_get(Ecore_X_Window root, Ecore_X_Randr_Output output);
2380 EAPI void ecore_x_randr_crtc_panning_area_get(Ecore_X_Window root, Ecore_X_Randr_Crtc crtc, int *x, int *y, int *w, int *h); /**< @since 1.8 */
2381 EAPI Eina_Bool ecore_x_randr_crtc_panning_area_set(Ecore_X_Window root, Ecore_X_Randr_Crtc crtc, const int x, const int y, const int w, const int h); /**< @since 1.8 */
2382 EAPI void ecore_x_randr_crtc_tracking_area_get(Ecore_X_Window root, Ecore_X_Randr_Crtc crtc, int *x, int *y, int *w, int *h); /**< @since 1.8 */
2383 EAPI Eina_Bool ecore_x_randr_crtc_tracking_area_set(Ecore_X_Window root, Ecore_X_Randr_Crtc crtc, const int x, const int y, const int w, const int h); /**< @since 1.8 */
2384 EAPI void ecore_x_randr_crtc_border_area_get(Ecore_X_Window root, Ecore_X_Randr_Crtc crtc, int *x, int *y, int *w, int *h); /**< @since 1.8 */
2385 EAPI Eina_Bool ecore_x_randr_crtc_border_area_set(Ecore_X_Window root, Ecore_X_Randr_Crtc crtc, const int left, const int top, const int right, const int bottom); /**< @since 1.8 */
2387 /* XRender Support (horrendously incomplete) */
2388 typedef Ecore_X_ID Ecore_X_Picture;
2390 /* XFixes Extension Support */
2391 typedef Ecore_X_ID Ecore_X_Region;
2393 typedef enum _Ecore_X_Region_Type
2395 ECORE_X_REGION_BOUNDING,
2397 } Ecore_X_Region_Type;
2399 EAPI Ecore_X_Region ecore_x_region_new(Ecore_X_Rectangle *rects, int num);
2400 EAPI Ecore_X_Region ecore_x_region_new_from_bitmap(Ecore_X_Pixmap bitmap);
2401 EAPI Ecore_X_Region ecore_x_region_new_from_window(Ecore_X_Window win, Ecore_X_Region_Type type);
2402 EAPI Ecore_X_Region ecore_x_region_new_from_gc(Ecore_X_GC gc);
2403 EAPI Ecore_X_Region ecore_x_region_new_from_picture(Ecore_X_Picture picture);
2404 EAPI void ecore_x_region_free(Ecore_X_Region region);
2405 EAPI void ecore_x_region_set(Ecore_X_Region region, Ecore_X_Rectangle *rects, int num);
2406 EAPI void ecore_x_region_copy(Ecore_X_Region dest, Ecore_X_Region source);
2407 EAPI void ecore_x_region_combine(Ecore_X_Region dest, Ecore_X_Region source1, Ecore_X_Region source2);
2408 EAPI void ecore_x_region_intersect(Ecore_X_Region dest, Ecore_X_Region source1, Ecore_X_Region source2);
2409 EAPI void ecore_x_region_subtract(Ecore_X_Region dest, Ecore_X_Region source1, Ecore_X_Region source2);
2410 EAPI void ecore_x_region_invert(Ecore_X_Region dest, Ecore_X_Rectangle *bounds, Ecore_X_Region source);
2411 EAPI void ecore_x_region_translate(Ecore_X_Region region, int dx, int dy);
2412 EAPI void ecore_x_region_extents(Ecore_X_Region dest, Ecore_X_Region source);
2413 EAPI Ecore_X_Rectangle *ecore_x_region_fetch(Ecore_X_Region region, int *num, Ecore_X_Rectangle *bounds);
2414 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);
2415 EAPI void ecore_x_region_gc_clip_set(Ecore_X_Region region, Ecore_X_GC gc, int x_origin, int y_origin);
2416 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);
2417 EAPI void ecore_x_region_picture_clip_set(Ecore_X_Region region, Ecore_X_Picture picture, int x_origin, int y_origin);
2420 * xfixes selection notification request.
2422 * This lets you choose which selections you want to get notifications for.
2423 * @param selection The selection atom.
2424 * @return @c EINA_TRUE on success, @c EINA_FALSE otherwise.
2427 EAPI Eina_Bool ecore_x_fixes_selection_notification_request(Ecore_X_Atom selection);
2429 /* XComposite Extension Support */
2430 EAPI Eina_Bool ecore_x_composite_query(void);
2431 EAPI void ecore_x_composite_redirect_window(Ecore_X_Window win, Ecore_X_Composite_Update_Type type);
2432 EAPI void ecore_x_composite_redirect_subwindows(Ecore_X_Window win, Ecore_X_Composite_Update_Type type);
2433 EAPI void ecore_x_composite_unredirect_window(Ecore_X_Window win, Ecore_X_Composite_Update_Type type);
2434 EAPI void ecore_x_composite_unredirect_subwindows(Ecore_X_Window win, Ecore_X_Composite_Update_Type type);
2435 EAPI Ecore_X_Pixmap ecore_x_composite_name_window_pixmap_get(Ecore_X_Window win);
2436 EAPI void ecore_x_composite_window_events_disable(Ecore_X_Window win);
2437 EAPI void ecore_x_composite_window_events_enable(Ecore_X_Window win);
2438 EAPI Ecore_X_Window ecore_x_composite_render_window_enable(Ecore_X_Window root);
2439 EAPI void ecore_x_composite_render_window_disable(Ecore_X_Window root);
2441 /* XPresent Extension Support */
2443 EAPI void ecore_x_present_select_events(Ecore_X_Window win, unsigned int events);
2445 EAPI void ecore_x_present_notify_msc(Ecore_X_Window win, unsigned int serial, unsigned long long target_msc, unsigned long long divisor, unsigned long long remainder);
2447 EAPI void ecore_x_present_pixmap(Ecore_X_Window win, Ecore_X_Pixmap pixmap, unsigned int serial, Ecore_X_Region valid,
2448 Ecore_X_Region update, int x_off, int y_off, Ecore_X_Randr_Crtc target_crtc,
2449 Ecore_X_Sync_Fence wait_fence, Ecore_X_Sync_Fence idle_fence, unsigned int options,
2450 unsigned long long target_msc, unsigned long long divisor, unsigned long long remainder,
2451 Ecore_X_Present *notifies, int num_notifies);
2453 EAPI Eina_Bool ecore_x_present_exists(void);
2455 /* XDamage Extension Support */
2456 typedef Ecore_X_ID Ecore_X_Damage;
2458 typedef enum _Ecore_X_Damage_Report_Level
2460 ECORE_X_DAMAGE_REPORT_RAW_RECTANGLES,
2461 ECORE_X_DAMAGE_REPORT_DELTA_RECTANGLES,
2462 ECORE_X_DAMAGE_REPORT_BOUNDING_BOX,
2463 ECORE_X_DAMAGE_REPORT_NON_EMPTY
2464 } Ecore_X_Damage_Report_Level;
2466 struct _Ecore_X_Event_Damage
2468 Ecore_X_Damage_Report_Level level;
2469 Ecore_X_Drawable drawable;
2470 Ecore_X_Damage damage;
2473 Ecore_X_Rectangle area;
2474 Ecore_X_Rectangle geometry;
2477 typedef struct _Ecore_X_Event_Damage Ecore_X_Event_Damage;
2479 struct _Ecore_X_Event_Xkb
2483 typedef struct _Ecore_X_Event_Xkb Ecore_X_Event_Xkb; /** @since 1.7 */
2485 EAPI Eina_Bool ecore_x_damage_query(void);
2486 EAPI Ecore_X_Damage ecore_x_damage_new(Ecore_X_Drawable d, Ecore_X_Damage_Report_Level level);
2487 EAPI void ecore_x_damage_free(Ecore_X_Damage damage);
2488 EAPI void ecore_x_damage_subtract(Ecore_X_Damage damage, Ecore_X_Region repair, Ecore_X_Region parts);
2490 EAPI Eina_Bool ecore_x_screen_is_composited(int screen);
2491 EAPI void ecore_x_screen_is_composited_set(int screen, Ecore_X_Window win);
2493 EAPI Eina_Bool ecore_x_dpms_query(void);
2494 EAPI Eina_Bool ecore_x_dpms_capable_get(void);
2495 EAPI Eina_Bool ecore_x_dpms_enabled_get(void);
2496 EAPI void ecore_x_dpms_enabled_set(int enabled);
2497 EAPI Ecore_X_Dpms_Mode ecore_x_dpms_power_level_get(void);
2498 EAPI void ecore_x_dpms_timeouts_get(unsigned int *standby, unsigned int *suspend, unsigned int *off);
2499 EAPI Eina_Bool ecore_x_dpms_timeouts_set(unsigned int standby, unsigned int suspend, unsigned int off);
2500 EAPI unsigned int ecore_x_dpms_timeout_standby_get(void);
2501 EAPI unsigned int ecore_x_dpms_timeout_suspend_get(void);
2502 EAPI unsigned int ecore_x_dpms_timeout_off_get(void);
2503 EAPI void ecore_x_dpms_timeout_standby_set(unsigned int new_timeout);
2504 EAPI void ecore_x_dpms_timeout_suspend_set(unsigned int new_timeout);
2505 EAPI void ecore_x_dpms_timeout_off_set(unsigned int new_timeout);
2507 EAPI Eina_Bool ecore_x_test_fake_key_down(const char *key);
2508 EAPI Eina_Bool ecore_x_test_fake_key_up(const char *key);
2509 EAPI Eina_Bool ecore_x_test_fake_key_press(const char *key);
2510 EAPI const char *ecore_x_keysym_string_get(int keysym);
2513 * Given a keyname, return the keycode representing that key
2514 * @param keyname The key from which to get the keycode.
2515 * @return The keycode of the key.
2519 EAPI int ecore_x_keysym_keycode_get(const char *keyname);
2522 * Return the X-specific keysym for a given key string
2523 * @param string The key to get the keysym for
2524 * @return the keysym value
2527 * @note The returned value is not portable.
2529 EAPI unsigned int ecore_x_keysym_get(const char *string);
2531 typedef struct _Ecore_X_Image Ecore_X_Image;
2533 EAPI Ecore_X_Image *ecore_x_image_new(int w, int h, Ecore_X_Visual vis, int depth);
2534 EAPI void ecore_x_image_free(Ecore_X_Image *im);
2535 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);
2536 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);
2537 EAPI void *ecore_x_image_data_get(Ecore_X_Image *im, int *bpl, int *rows, int *bpp);
2538 EAPI Eina_Bool ecore_x_image_is_argb32_get(Ecore_X_Image *im);
2540 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);
2542 EAPI Eina_Bool ecore_x_input_multi_select(Ecore_X_Window win); /**< @since 1.13 */
2543 EAPI Eina_Bool ecore_x_input_raw_select(Ecore_X_Window win); /**< @since 1.8 */
2544 EAPI Eina_Bool ecore_x_input_touch_devices_grab(Ecore_X_Window win); /**< @since 1.15 */
2545 EAPI Eina_Bool ecore_x_input_touch_devices_ungrab(void); /**< @since 1.15 */
2547 EAPI Eina_Bool ecore_x_vsync_animator_tick_source_set(Ecore_X_Window win);
2549 typedef enum _Ecore_X_Gesture_Event_Mask
2551 ECORE_X_GESTURE_EVENT_MASK_NONE = 0L,
2552 ECORE_X_GESTURE_EVENT_MASK_FLICK = (1L << 0),
2553 ECORE_X_GESTURE_EVENT_MASK_PAN = (1L << 1),
2554 ECORE_X_GESTURE_EVENT_MASK_PINCHROTATION = (1L << 2),
2555 ECORE_X_GESTURE_EVENT_MASK_TAP = (1L << 3),
2556 ECORE_X_GESTURE_EVENT_MASK_TAPNHOLD = (1L << 4),
2557 ECORE_X_GESTURE_EVENT_MASK_HOLD = (1L << 5),
2558 ECORE_X_GESTURE_EVENT_MASK_GROUP = (1L << 6)
2559 } Ecore_X_Gesture_Event_Mask;
2561 typedef enum _Ecore_X_Gesture_Event_Type
2563 ECORE_X_GESTURE_EVENT_FLICK,
2564 ECORE_X_GESTURE_EVENT_PAN,
2565 ECORE_X_GESTURE_EVENT_PINCHROTATION,
2566 ECORE_X_GESTURE_EVENT_TAP,
2567 ECORE_X_GESTURE_EVENT_TAPNHOLD,
2568 ECORE_X_GESTURE_EVENT_HOLD,
2569 ECORE_X_GESTURE_EVENT_GROUP
2570 } Ecore_X_Gesture_Event_Type;
2572 typedef enum _Ecore_X_Gesture_Event_Subtype
2574 ECORE_X_GESTURE_END,
2575 ECORE_X_GESTURE_BEGIN,
2576 ECORE_X_GESTURE_UPDATE,
2577 ECORE_X_GESTURE_DONE
2578 } Ecore_X_Gesture_Event_Subtype;
2580 typedef enum _Ecore_X_Gesture_Group_Subtype
2582 ECORE_X_GESTURE_GROUP_REMOVED,
2583 ECORE_X_GESTURE_GROUP_ADDED,
2584 ECORE_X_GESTURE_GROUP_CURRENT
2585 } Ecore_X_Gesture_Group_Subtype;
2587 typedef enum _Ecore_X_Gesture_Direction
2589 ECORE_X_GESTURE_NORTHWARD,
2590 ECORE_X_GESTURE_NORTHEASTWARD,
2591 ECORE_X_GESTURE_EASTWARD,
2592 ECORE_X_GESTURE_SOUTHEASTWARD,
2593 ECORE_X_GESTURE_SOUTHWARD,
2594 ECORE_X_GESTURE_SOUTHWESTWARD,
2595 ECORE_X_GESTURE_WESTWARD,
2596 ECORE_X_GESTURE_NORTHWESTWARD
2597 } Ecore_X_Gesture_Direction;
2599 struct _Ecore_X_Event_Gesture_Notify_Flick
2603 Ecore_X_Gesture_Event_Subtype subtype;
2606 Ecore_X_Time duration;
2607 Ecore_X_Gesture_Direction direction;
2611 struct _Ecore_X_Event_Gesture_Notify_Pan
2615 Ecore_X_Gesture_Event_Subtype subtype;
2620 Ecore_X_Time duration;
2621 Ecore_X_Gesture_Direction direction;
2624 struct _Ecore_X_Event_Gesture_Notify_PinchRotation
2628 Ecore_X_Gesture_Event_Subtype subtype;
2637 struct _Ecore_X_Event_Gesture_Notify_Tap
2641 Ecore_X_Gesture_Event_Subtype subtype;
2646 Ecore_X_Time interval;
2649 struct _Ecore_X_Event_Gesture_Notify_TapNHold
2653 Ecore_X_Gesture_Event_Subtype subtype;
2657 Ecore_X_Time interval;
2658 Ecore_X_Time hold_time;
2661 struct _Ecore_X_Event_Gesture_Notify_Hold
2665 Ecore_X_Gesture_Event_Subtype subtype;
2669 Ecore_X_Time hold_time;
2672 struct _Ecore_X_Event_Gesture_Notify_Group
2676 Ecore_X_Gesture_Group_Subtype subtype;
2681 EAPI Eina_Bool ecore_x_gesture_supported(void);
2683 EAPI Eina_Bool ecore_x_gesture_events_select(Ecore_X_Window win, Ecore_X_Gesture_Event_Mask mask);
2685 EAPI Ecore_X_Gesture_Event_Mask ecore_x_gesture_events_selected_get(Ecore_X_Window win);
2687 EAPI Eina_Bool ecore_x_gesture_event_grab(Ecore_X_Window win, Ecore_X_Gesture_Event_Type type, int num_fingers);
2689 EAPI Eina_Bool ecore_x_gesture_event_ungrab(Ecore_X_Window win, Ecore_X_Gesture_Event_Type type, int num_fingers);
2691 EAPI void ecore_x_e_illume_indicator_state_set(Ecore_X_Window win, Ecore_X_Illume_Indicator_State state);
2692 EAPI Ecore_X_Illume_Indicator_State ecore_x_e_illume_indicator_state_get(Ecore_X_Window win);
2693 EAPI void ecore_x_e_illume_indicator_state_send(Ecore_X_Window win, Ecore_X_Illume_Indicator_State state);
2695 EAPI void ecore_x_e_illume_indicator_opacity_set(Ecore_X_Window win, Ecore_X_Illume_Indicator_Opacity_Mode mode);
2696 EAPI Ecore_X_Illume_Indicator_Opacity_Mode ecore_x_e_illume_indicator_opacity_get(Ecore_X_Window win);
2697 EAPI void ecore_x_e_illume_indicator_opacity_send(Ecore_X_Window win, Ecore_X_Illume_Indicator_Opacity_Mode mode);
2699 EAPI void ecore_x_e_illume_indicator_type_set(Ecore_X_Window win, Ecore_X_Illume_Indicator_Type_Mode mode); /**< @since 1.8 */
2700 EAPI Ecore_X_Illume_Indicator_Type_Mode ecore_x_e_illume_indicator_type_get(Ecore_X_Window win); /**< @since 1.8 */
2701 EAPI void ecore_x_e_illume_indicator_type_send(Ecore_X_Window win, Ecore_X_Illume_Indicator_Type_Mode mode); /**< @since 1.8 */
2703 EAPI void ecore_x_e_illume_window_state_set(Ecore_X_Window win, Ecore_X_Illume_Window_State state);
2704 EAPI Ecore_X_Illume_Window_State ecore_x_e_illume_window_state_get(Ecore_X_Window win);
2705 EAPI void ecore_x_e_illume_window_state_send(Ecore_X_Window win, Ecore_X_Illume_Window_State state); /**< @since 1.9 */
2707 EAPI void ecore_x_xkb_select_group(int group); /* @since 1.7 */
2709 EAPI void ecore_x_e_window_rotation_supported_set(Ecore_X_Window root, Eina_Bool enabled); /**< @since 1.9 */
2710 EAPI Eina_Bool ecore_x_e_window_rotation_supported_get(Ecore_X_Window root); /**< @since 1.9 */
2711 EAPI void ecore_x_e_window_rotation_app_set(Ecore_X_Window win, Eina_Bool set); /**< @since 1.9 */
2712 EAPI Eina_Bool ecore_x_e_window_rotation_app_get(Ecore_X_Window win); /**< @since 1.9 */
2713 EAPI void ecore_x_e_window_rotation_preferred_rotation_set(Ecore_X_Window win, int rot); /**< @since 1.9 */
2714 EAPI Eina_Bool ecore_x_e_window_rotation_preferred_rotation_get(Ecore_X_Window win, int *rot); /**< @since 1.9 */
2715 EAPI void ecore_x_e_window_rotation_available_rotations_set(Ecore_X_Window win, const int *rots, unsigned int count); /**< @since 1.9 */
2716 EAPI Eina_Bool ecore_x_e_window_rotation_available_rotations_get(Ecore_X_Window win, int **rots, unsigned int *count); /**< @since 1.9 */
2717 EAPI void ecore_x_e_window_rotation_change_prepare_send(Ecore_X_Window win, int rot, Eina_Bool resize, int w, int h); /**< @since 1.9 */
2718 EAPI void ecore_x_e_window_rotation_change_prepare_done_send(Ecore_X_Window root, Ecore_X_Window win, int rot); /**< @since 1.9 */
2719 EAPI void ecore_x_e_window_rotation_change_request_send(Ecore_X_Window win, int rot); /**< @since 1.9 */
2720 EAPI void ecore_x_e_window_rotation_change_done_send(Ecore_X_Window root, Ecore_X_Window win, int rot, int w, int h); /**< @since 1.9 */
2722 //this enum and API for keyrouter and client window side
2726 ECORE_X_WIN_KEYGRAB_UNKNOWN = 0, /**< Unknown keygrab mode */
2727 ECORE_X_WIN_KEYGRAB_SHARED = (1 << 8), /**< Getting the grabbed-key together with the other client windows */
2728 ECORE_X_WIN_KEYGRAB_TOPMOST = (1 << 9), /**< Getting the grabbed-key only when window is top of the stack */
2729 ECORE_X_WIN_KEYGRAB_EXCLUSIVE = (1 << 10), /**< Getting the grabbed-key exclusively regardless of window's position */
2730 ECORE_X_WIN_KEYGRAB_OVERRIDE_EXCLUSIVE = (1 << 11) /**< Getting the grabbed-key exclusively regardless of window's position. Being overrided the grab by the other client window */
2731 } Ecore_X_Win_Keygrab_Mode;
2733 //add mod, anymod, priority for the future.
2734 //we will support modifier and priority feature later.
2735 EAPI Eina_Bool ecore_x_window_keygrab_set(Ecore_X_Window win, const char *key, int mod, int any_mod, int priority, Ecore_X_Win_Keygrab_Mode grab_mode); /**< @since 1.15 */
2736 EAPI Eina_Bool ecore_x_window_keygrab_unset(Ecore_X_Window win, const char *key, int mod, int any_mod); /**< @since 1.15 */
2738 //this API for keyrouter protocol
2739 EAPI void ecore_x_e_keyrouter_set(Ecore_X_Window root, Eina_Bool on); /**< @since 1.15 */ //Key router set keyrouter flag using this
2740 EAPI Eina_Bool ecore_x_e_keyrouter_get(Ecore_X_Window root); /**< @since 1.15 */ //Client check the existance of keyrouter using this
2742 #include <Ecore_X_Atoms.h>
2743 #include <Ecore_X_Cursor.h>
2747 #endif // ifdef __cplusplus
2752 #endif // ifndef _ECORE_X_H