12 # define EAPI __declspec(dllexport)
13 # else // ifdef BUILDING_DLL
14 # define EAPI __declspec(dllimport)
15 # endif // ifdef BUILDING_DLL
16 #else // ifdef _MSC_VER
19 # define EAPI __attribute__ ((visibility("default")))
20 # else // if __GNUC__ >= 4
22 # endif // if __GNUC__ >= 4
23 # else // ifdef __GNUC__
25 # endif // ifdef __GNUC__
26 #endif // ifdef _MSC_VER
28 #include <sys/types.h>
32 * @brief Ecore functions for dealing with the X Windows System
34 * Ecore_X provides a wrapper and convenience functions for using the
35 * X Windows System. Function groups for this part of the library
36 * include the following:
37 * @li @ref Ecore_X_Init_Group
38 * @li @ref Ecore_X_Display_Attr_Group
39 * @li @ref Ecore_X_Flush_Group
42 typedef unsigned int Ecore_X_ID;
43 #ifndef _ECORE_X_WINDOW_PREDEF
44 typedef Ecore_X_ID Ecore_X_Window;
45 #endif // ifndef _ECORE_X_WINDOW_PREDEF
46 typedef void *Ecore_X_Visual;
47 typedef Ecore_X_ID Ecore_X_Pixmap;
48 typedef Ecore_X_ID Ecore_X_Drawable;
49 #ifdef HAVE_ECORE_X_XCB
50 typedef Ecore_X_ID Ecore_X_GC;
51 #else // ifdef HAVE_ECORE_X_XCB
52 typedef void *Ecore_X_GC;
53 #endif /* HAVE_ECORE_X_XCB */
54 typedef Ecore_X_ID Ecore_X_Atom;
55 typedef Ecore_X_ID Ecore_X_Colormap;
56 typedef Ecore_X_ID Ecore_X_Time;
57 typedef Ecore_X_ID Ecore_X_Cursor;
58 typedef void Ecore_X_Display;
59 typedef void Ecore_X_Connection;
60 typedef void Ecore_X_Screen;
61 typedef Ecore_X_ID Ecore_X_Sync_Counter;
62 typedef Ecore_X_ID Ecore_X_Sync_Alarm;
63 typedef void Ecore_X_XRegion;
65 typedef Ecore_X_ID Ecore_X_Randr_Output;
66 typedef Ecore_X_ID Ecore_X_Randr_Crtc;
67 typedef Ecore_X_ID Ecore_X_Randr_Mode;
68 typedef unsigned short Ecore_X_Randr_Size_ID;
69 typedef int Ecore_X_Randr_Screen;
71 typedef Ecore_X_ID Ecore_X_Device;
75 #endif // ifdef __cplusplus
77 typedef struct _Ecore_X_Rectangle
80 unsigned int width, height;
83 typedef struct _Ecore_X_Icon
85 unsigned int width, height;
89 typedef enum _Ecore_X_GC_Value_Mask
91 ECORE_X_GC_VALUE_MASK_FUNCTION = (1L << 0),
92 ECORE_X_GC_VALUE_MASK_PLANE_MASK = (1L << 1),
93 ECORE_X_GC_VALUE_MASK_FOREGROUND = (1L << 2),
94 ECORE_X_GC_VALUE_MASK_BACKGROUND = (1L << 3),
95 ECORE_X_GC_VALUE_MASK_LINE_WIDTH = (1L << 4),
96 ECORE_X_GC_VALUE_MASK_LINE_STYLE = (1L << 5),
97 ECORE_X_GC_VALUE_MASK_CAP_STYLE = (1L << 6),
98 ECORE_X_GC_VALUE_MASK_JOIN_STYLE = (1L << 7),
99 ECORE_X_GC_VALUE_MASK_FILL_STYLE = (1L << 8),
100 ECORE_X_GC_VALUE_MASK_FILL_RULE = (1L << 9),
101 ECORE_X_GC_VALUE_MASK_TILE = (1L << 10),
102 ECORE_X_GC_VALUE_MASK_STIPPLE = (1L << 11),
103 ECORE_X_GC_VALUE_MASK_TILE_STIPPLE_ORIGIN_X = (1L << 12),
104 ECORE_X_GC_VALUE_MASK_TILE_STIPPLE_ORIGIN_Y = (1L << 13),
105 ECORE_X_GC_VALUE_MASK_FONT = (1L << 14),
106 ECORE_X_GC_VALUE_MASK_SUBWINDOW_MODE = (1L << 15),
107 ECORE_X_GC_VALUE_MASK_GRAPHICS_EXPOSURES = (1L << 16),
108 ECORE_X_GC_VALUE_MASK_CLIP_ORIGIN_X = (1L << 17),
109 ECORE_X_GC_VALUE_MASK_CLIP_ORIGIN_Y = (1L << 18),
110 ECORE_X_GC_VALUE_MASK_CLIP_MASK = (1L << 19),
111 ECORE_X_GC_VALUE_MASK_DASH_OFFSET = (1L << 20),
112 ECORE_X_GC_VALUE_MASK_DASH_LIST = (1L << 21),
113 ECORE_X_GC_VALUE_MASK_ARC_MODE = (1L << 22)
114 } Ecore_X_GC_Value_Mask;
116 typedef enum _Ecore_X_Composite_Update_Type
118 ECORE_X_COMPOSITE_UPDATE_AUTOMATIC,
119 ECORE_X_COMPOSITE_UPDATE_MANUAL
120 } Ecore_X_Composite_Update_Type;
123 * @typedef _Ecore_X_Window_State
124 * Defines the different states of the window of Ecore_X.
126 typedef enum _Ecore_X_Window_State
129 ECORE_X_WINDOW_STATE_UNKNOWN = 0, /** The window is iconified. */
130 ECORE_X_WINDOW_STATE_ICONIFIED, /** The window is a modal dialog box. */
131 ECORE_X_WINDOW_STATE_MODAL, /** The window manager should keep the window's position fixed
132 * even if the virtual desktop scrolls. */
133 ECORE_X_WINDOW_STATE_STICKY, /** The window has the maximum vertical size. */
134 ECORE_X_WINDOW_STATE_MAXIMIZED_VERT, /** The window has the maximum horizontal size. */
135 ECORE_X_WINDOW_STATE_MAXIMIZED_HORZ, /** The window is shaded. */
136 ECORE_X_WINDOW_STATE_SHADED, /** The window should not be included in the taskbar. */
137 ECORE_X_WINDOW_STATE_SKIP_TASKBAR, /** The window should not be included in the pager. */
138 ECORE_X_WINDOW_STATE_SKIP_PAGER, /** The window is invisible (i.e. minimized/iconified) */
139 ECORE_X_WINDOW_STATE_HIDDEN, /** The window should fill the entire screen and have no
140 * window border/decorations */
141 ECORE_X_WINDOW_STATE_FULLSCREEN, /* The following are not documented because they are not
142 * intended for use in applications. */
143 ECORE_X_WINDOW_STATE_ABOVE, ECORE_X_WINDOW_STATE_BELOW, /* FIXME: Documentation */
144 ECORE_X_WINDOW_STATE_DEMANDS_ATTENTION
145 } Ecore_X_Window_State;
147 typedef enum _Ecore_X_Window_State_Action
149 ECORE_X_WINDOW_STATE_ACTION_REMOVE,
150 ECORE_X_WINDOW_STATE_ACTION_ADD,
151 ECORE_X_WINDOW_STATE_ACTION_TOGGLE
152 } Ecore_X_Window_State_Action;
154 typedef enum _Ecore_X_Window_Stack_Mode
156 ECORE_X_WINDOW_STACK_ABOVE = 0,
157 ECORE_X_WINDOW_STACK_BELOW = 1,
158 ECORE_X_WINDOW_STACK_TOP_IF = 2,
159 ECORE_X_WINDOW_STACK_BOTTOM_IF = 3,
160 ECORE_X_WINDOW_STACK_OPPOSITE = 4
161 } Ecore_X_Window_Stack_Mode;
163 typedef enum _Ecore_X_Randr_Orientation
165 ECORE_X_RANDR_ORIENTATION_ROT_0 = (1 << 0),
166 ECORE_X_RANDR_ORIENTATION_ROT_90 = (1 << 1),
167 ECORE_X_RANDR_ORIENTATION_ROT_180 = (1 << 2),
168 ECORE_X_RANDR_ORIENTATION_ROT_270 = (1 << 3),
169 ECORE_X_RANDR_ORIENTATION_FLIP_X = (1 << 4),
170 ECORE_X_RANDR_ORIENTATION_FLIP_Y = (1 << 5)
171 } Ecore_X_Randr_Orientation;
173 typedef enum _Ecore_X_Randr_Connection_Status
175 ECORE_X_RANDR_CONNECTION_STATUS_CONNECTED = 0,
176 ECORE_X_RANDR_CONNECTION_STATUS_DISCONNECTED = 1,
177 ECORE_X_RANDR_CONNECTION_STATUS_UNKNOWN = 2
178 } Ecore_X_Randr_Connection_Status;
180 typedef enum _Ecore_X_Randr_Output_Policy
182 ECORE_X_RANDR_OUTPUT_POLICY_ABOVE = 1,
183 ECORE_X_RANDR_OUTPUT_POLICY_RIGHT = 2,
184 ECORE_X_RANDR_OUTPUT_POLICY_BELOW = 3,
185 ECORE_X_RANDR_OUTPUT_POLICY_LEFT = 4,
186 ECORE_X_RANDR_OUTPUT_POLICY_CLONE = 5,
187 ECORE_X_RANDR_OUTPUT_POLICY_NONE = 6,
188 ECORE_X_RANDR_OUTPUT_POLICY_ASK = 7
189 } Ecore_X_Randr_Output_Policy;
191 typedef enum _Ecore_X_Randr_Relative_Alignment
193 ECORE_X_RANDR_RELATIVE_ALIGNMENT_NONE = 0,
194 ECORE_X_RANDR_RELATIVE_ALIGNMENT_CENTER_REL = 1,
195 ECORE_X_RANDR_RELATIVE_ALIGNMENT_CENTER_SCR = 2
196 } Ecore_X_Randr_Relative_Alignment;
198 typedef enum _Ecore_X_Render_Subpixel_Order
200 ECORE_X_RENDER_SUBPIXEL_ORDER_UNKNOWN = 0,
201 ECORE_X_RENDER_SUBPIXEL_ORDER_HORIZONTAL_RGB = 1,
202 ECORE_X_RENDER_SUBPIXEL_ORDER_HORIZONTAL_BGR = 2,
203 ECORE_X_RENDER_SUBPIXEL_ORDER_VERTICAL_RGB = 3,
204 ECORE_X_RENDER_SUBPIXEL_ORDER_VERTICAL_BGR = 4,
205 ECORE_X_RENDER_SUBPIXEL_ORDER_NONE = 5
206 } Ecore_X_Render_Subpixel_Order;
208 typedef enum _Ecore_X_Randr_Edid_Display_Interface_Type
210 ECORE_X_RANDR_EDID_DISPLAY_INTERFACE_UNDEFINED,
211 ECORE_X_RANDR_EDID_DISPLAY_INTERFACE_DVI,
212 ECORE_X_RANDR_EDID_DISPLAY_INTERFACE_HDMI_A,
213 ECORE_X_RANDR_EDID_DISPLAY_INTERFACE_HDMI_B,
214 ECORE_X_RANDR_EDID_DISPLAY_INTERFACE_MDDI,
215 ECORE_X_RANDR_EDID_DISPLAY_INTERFACE_DISPLAY_PORT
216 } Ecore_X_Randr_Edid_Display_Interface_Type;
218 typedef enum _Ecore_X_Randr_Edid_Display_Colorscheme
220 ECORE_X_RANDR_EDID_DISPLAY_COLORSCHEME_MONOCHROME_GRAYSCALE = 0x00,
221 ECORE_X_RANDR_EDID_DISPLAY_COLORSCHEME_COLOR_RGB = 0x08,
222 ECORE_X_RANDR_EDID_DISPLAY_COLORSCHEME_COLOR_NON_RGB = 0x10,
223 ECORE_X_RANDR_EDID_DISPLAY_COLORSCHEME_COLOR_UNDEFINED = 0x18,
224 ECORE_X_RANDR_EDID_DISPLAY_COLORSCHEME_COLOR_RGB_4_4_4 = 0x444000,
225 ECORE_X_RANDR_EDID_DISPLAY_COLORSCHEME_COLOR_RGB_YCRCB_4_4_4 = 0x444,
226 ECORE_X_RANDR_EDID_DISPLAY_COLORSCHEME_COLOR_RGB_YCRCB_4_2_2 = 0x422
227 } Ecore_X_Randr_Edid_Display_Colorscheme;
229 typedef enum _Ecore_X_Randr_Edid_Aspect_Ratio
231 ECORE_X_RANDR_EDID_ASPECT_RATIO_4_3 = 0x0,
232 ECORE_X_RANDR_EDID_ASPECT_RATIO_16_9 = 0x1,
233 ECORE_X_RANDR_EDID_ASPECT_RATIO_16_10 = 0x2,
234 ECORE_X_RANDR_EDID_ASPECT_RATIO_5_4 = 0x4,
235 ECORE_X_RANDR_EDID_ASPECT_RATIO_15_9 = 0x8
236 } Ecore_X_Randr_Edid_Aspect_Ratio;
238 #define ECORE_X_RANDR_EDID_UNKNOWN_VALUE -1
240 #define ECORE_X_SELECTION_TARGET_TARGETS "TARGETS"
241 #define ECORE_X_SELECTION_TARGET_TEXT "TEXT"
242 #define ECORE_X_SELECTION_TARGET_COMPOUND_TEXT "COMPOUND_TEXT"
243 #define ECORE_X_SELECTION_TARGET_STRING "STRING"
244 #define ECORE_X_SELECTION_TARGET_UTF8_STRING "UTF8_STRING"
245 #define ECORE_X_SELECTION_TARGET_FILENAME "FILENAME"
247 #define ECORE_X_DND_VERSION 5
249 typedef enum _Ecore_X_Selection
251 ECORE_X_SELECTION_PRIMARY,
252 ECORE_X_SELECTION_SECONDARY,
253 ECORE_X_SELECTION_XDND,
254 ECORE_X_SELECTION_CLIPBOARD,
255 ECORE_X_SELECTION_OTHER
258 typedef enum _Ecore_X_Event_Mode
260 ECORE_X_EVENT_MODE_NORMAL,
261 ECORE_X_EVENT_MODE_WHILE_GRABBED,
262 ECORE_X_EVENT_MODE_GRAB,
263 ECORE_X_EVENT_MODE_UNGRAB
264 } Ecore_X_Event_Mode;
266 typedef enum _Ecore_X_Event_Detail
268 ECORE_X_EVENT_DETAIL_ANCESTOR,
269 ECORE_X_EVENT_DETAIL_VIRTUAL,
270 ECORE_X_EVENT_DETAIL_INFERIOR,
271 ECORE_X_EVENT_DETAIL_NON_LINEAR,
272 ECORE_X_EVENT_DETAIL_NON_LINEAR_VIRTUAL,
273 ECORE_X_EVENT_DETAIL_POINTER,
274 ECORE_X_EVENT_DETAIL_POINTER_ROOT,
275 ECORE_X_EVENT_DETAIL_DETAIL_NONE
276 } Ecore_X_Event_Detail;
278 typedef enum _Ecore_X_Event_Mask
280 ECORE_X_EVENT_MASK_NONE = 0L,
281 ECORE_X_EVENT_MASK_KEY_DOWN = (1L << 0),
282 ECORE_X_EVENT_MASK_KEY_UP = (1L << 1),
283 ECORE_X_EVENT_MASK_MOUSE_DOWN = (1L << 2),
284 ECORE_X_EVENT_MASK_MOUSE_UP = (1L << 3),
285 ECORE_X_EVENT_MASK_MOUSE_IN = (1L << 4),
286 ECORE_X_EVENT_MASK_MOUSE_OUT = (1L << 5),
287 ECORE_X_EVENT_MASK_MOUSE_MOVE = (1L << 6),
288 ECORE_X_EVENT_MASK_WINDOW_DAMAGE = (1L << 15),
289 ECORE_X_EVENT_MASK_WINDOW_VISIBILITY = (1L << 16),
290 ECORE_X_EVENT_MASK_WINDOW_CONFIGURE = (1L << 17),
291 ECORE_X_EVENT_MASK_WINDOW_RESIZE_MANAGE = (1L << 18),
292 ECORE_X_EVENT_MASK_WINDOW_MANAGE = (1L << 19),
293 ECORE_X_EVENT_MASK_WINDOW_CHILD_CONFIGURE = (1L << 20),
294 ECORE_X_EVENT_MASK_WINDOW_FOCUS_CHANGE = (1L << 21),
295 ECORE_X_EVENT_MASK_WINDOW_PROPERTY = (1L << 22),
296 ECORE_X_EVENT_MASK_WINDOW_COLORMAP = (1L << 23),
297 ECORE_X_EVENT_MASK_WINDOW_GRAB = (1L << 24),
298 ECORE_X_EVENT_MASK_MOUSE_WHEEL = (1L << 29),
299 ECORE_X_EVENT_MASK_WINDOW_FOCUS_IN = (1L << 30),
300 ECORE_X_EVENT_MASK_WINDOW_FOCUS_OUT = (1L << 31)
301 } Ecore_X_Event_Mask;
303 typedef enum _Ecore_X_Gravity
305 ECORE_X_GRAVITY_FORGET = 0,
306 ECORE_X_GRAVITY_UNMAP = 0,
307 ECORE_X_GRAVITY_NW = 1,
308 ECORE_X_GRAVITY_N = 2,
309 ECORE_X_GRAVITY_NE = 3,
310 ECORE_X_GRAVITY_W = 4,
311 ECORE_X_GRAVITY_CENTER = 5,
312 ECORE_X_GRAVITY_E = 6,
313 ECORE_X_GRAVITY_SW = 7,
314 ECORE_X_GRAVITY_S = 8,
315 ECORE_X_GRAVITY_SE = 9,
316 ECORE_X_GRAVITY_STATIC = 10
319 /* Needed for ecore_x_region_window_shape_set */
320 typedef enum _Ecore_X_Shape_Type
322 ECORE_X_SHAPE_BOUNDING,
325 } Ecore_X_Shape_Type;
327 typedef enum _Ecore_X_Mapping_Type
329 ECORE_X_MAPPING_MODIFIER,
330 ECORE_X_MAPPING_KEYBOARD,
331 ECORE_X_MAPPING_MOUSE
332 } Ecore_X_Mapping_Type;
334 typedef enum _Ecore_X_Randr_Property_Change
336 ECORE_X_RANDR_PROPERTY_CHANGE_ADD,
337 ECORE_X_RANDR_PROPERTY_CHANGE_DEL
338 } Ecore_X_Randr_Property_Change;
341 * @typedef _Ecore_X_Error_Code
342 * Defines the error codes of Ecore_X which wraps the X Window Systems
347 typedef enum _Ecore_X_Error_Code
349 /** Everything is okay. */
350 ECORE_X_ERROR_CODE_SUCCESS = 0, /** Bad request code */
351 ECORE_X_ERROR_CODE_BAD_REQUEST = 1, /** Int parameter out of range */
352 ECORE_X_ERROR_CODE_BAD_VALUE = 2, /** Parameter not a Window */
353 ECORE_X_ERROR_CODE_BAD_WINDOW = 3, /** Parameter not a Pixmap */
354 ECORE_X_ERROR_CODE_BAD_PIXMAP = 4, /** Parameter not an Atom */
355 ECORE_X_ERROR_CODE_BAD_ATOM = 5, /** Parameter not a Cursor */
356 ECORE_X_ERROR_CODE_BAD_CURSOR = 6, /** Parameter not a Font */
357 ECORE_X_ERROR_CODE_BAD_FONT = 7, /** Parameter mismatch */
358 ECORE_X_ERROR_CODE_BAD_MATCH = 8, /** Parameter not a Pixmap or Window */
359 ECORE_X_ERROR_CODE_BAD_DRAWABLE = 9, /** Bad access */
360 ECORE_X_ERROR_CODE_BAD_ACCESS = 10, /** Insufficient resources */
361 ECORE_X_ERROR_CODE_BAD_ALLOC = 11, /** No such colormap */
362 ECORE_X_ERROR_CODE_BAD_COLOR = 12, /** Parameter not a GC */
363 ECORE_X_ERROR_CODE_BAD_GC = 13, /** Choice not in range or already used */
364 ECORE_X_ERROR_CODE_BAD_ID_CHOICE = 14, /** Font or color name doesn't exist */
365 ECORE_X_ERROR_CODE_BAD_NAME = 15, /** Request length incorrect */
366 ECORE_X_ERROR_CODE_BAD_LENGTH = 16, /** Server is defective */
367 ECORE_X_ERROR_CODE_BAD_IMPLEMENTATION = 17,
368 } Ecore_X_Error_Code;
370 typedef struct _Ecore_X_Event_Mouse_In Ecore_X_Event_Mouse_In;
371 typedef struct _Ecore_X_Event_Mouse_Out Ecore_X_Event_Mouse_Out;
372 typedef struct _Ecore_X_Event_Window_Focus_In Ecore_X_Event_Window_Focus_In;
373 typedef struct _Ecore_X_Event_Window_Focus_Out Ecore_X_Event_Window_Focus_Out;
374 typedef struct _Ecore_X_Event_Window_Keymap Ecore_X_Event_Window_Keymap;
375 typedef struct _Ecore_X_Event_Window_Damage Ecore_X_Event_Window_Damage;
376 typedef struct _Ecore_X_Event_Window_Visibility_Change Ecore_X_Event_Window_Visibility_Change;
377 typedef struct _Ecore_X_Event_Window_Create Ecore_X_Event_Window_Create;
378 typedef struct _Ecore_X_Event_Window_Destroy Ecore_X_Event_Window_Destroy;
379 typedef struct _Ecore_X_Event_Window_Hide Ecore_X_Event_Window_Hide;
380 typedef struct _Ecore_X_Event_Window_Show Ecore_X_Event_Window_Show;
381 typedef struct _Ecore_X_Event_Window_Show_Request Ecore_X_Event_Window_Show_Request;
382 typedef struct _Ecore_X_Event_Window_Reparent Ecore_X_Event_Window_Reparent;
383 typedef struct _Ecore_X_Event_Window_Configure Ecore_X_Event_Window_Configure;
384 typedef struct _Ecore_X_Event_Window_Configure_Request Ecore_X_Event_Window_Configure_Request;
385 typedef struct _Ecore_X_Event_Window_Gravity Ecore_X_Event_Window_Gravity;
386 typedef struct _Ecore_X_Event_Window_Resize_Request Ecore_X_Event_Window_Resize_Request;
387 typedef struct _Ecore_X_Event_Window_Stack Ecore_X_Event_Window_Stack;
388 typedef struct _Ecore_X_Event_Window_Stack_Request Ecore_X_Event_Window_Stack_Request;
389 typedef struct _Ecore_X_Event_Window_Property Ecore_X_Event_Window_Property;
390 typedef struct _Ecore_X_Event_Window_Colormap Ecore_X_Event_Window_Colormap;
391 typedef struct _Ecore_X_Event_Mapping_Change Ecore_X_Event_Mapping_Change;
392 typedef struct _Ecore_X_Event_Window_Mapping Ecore_X_Event_Window_Mapping;
393 typedef struct _Ecore_X_Event_Selection_Clear Ecore_X_Event_Selection_Clear;
394 typedef struct _Ecore_X_Event_Selection_Request Ecore_X_Event_Selection_Request;
395 typedef struct _Ecore_X_Event_Selection_Notify Ecore_X_Event_Selection_Notify;
396 typedef struct _Ecore_X_Event_Fixes_Selection_Notify Ecore_X_Event_Fixes_Selection_Notify;
397 typedef struct _Ecore_X_Selection_Data Ecore_X_Selection_Data;
398 typedef struct _Ecore_X_Selection_Data_Files Ecore_X_Selection_Data_Files;
399 typedef struct _Ecore_X_Selection_Data_Text Ecore_X_Selection_Data_Text;
400 typedef struct _Ecore_X_Selection_Data_Targets Ecore_X_Selection_Data_Targets;
401 typedef struct _Ecore_X_Event_Xdnd_Enter Ecore_X_Event_Xdnd_Enter;
402 typedef struct _Ecore_X_Event_Xdnd_Position Ecore_X_Event_Xdnd_Position;
403 typedef struct _Ecore_X_Event_Xdnd_Status Ecore_X_Event_Xdnd_Status;
404 typedef struct _Ecore_X_Event_Xdnd_Leave Ecore_X_Event_Xdnd_Leave;
405 typedef struct _Ecore_X_Event_Xdnd_Drop Ecore_X_Event_Xdnd_Drop;
406 typedef struct _Ecore_X_Event_Xdnd_Finished Ecore_X_Event_Xdnd_Finished;
407 typedef struct _Ecore_X_Event_Client_Message Ecore_X_Event_Client_Message;
408 typedef struct _Ecore_X_Event_Window_Shape Ecore_X_Event_Window_Shape;
409 typedef struct _Ecore_X_Event_Screensaver_Notify Ecore_X_Event_Screensaver_Notify;
410 typedef struct _Ecore_X_Event_Gesture_Notify_Flick Ecore_X_Event_Gesture_Notify_Flick;
411 typedef struct _Ecore_X_Event_Gesture_Notify_Pan Ecore_X_Event_Gesture_Notify_Pan;
412 typedef struct _Ecore_X_Event_Gesture_Notify_PinchRotation Ecore_X_Event_Gesture_Notify_PinchRotation;
413 typedef struct _Ecore_X_Event_Gesture_Notify_Tap Ecore_X_Event_Gesture_Notify_Tap;
414 typedef struct _Ecore_X_Event_Gesture_Notify_TapNHold Ecore_X_Event_Gesture_Notify_TapNHold;
415 typedef struct _Ecore_X_Event_Gesture_Notify_Hold Ecore_X_Event_Gesture_Notify_Hold;
416 typedef struct _Ecore_X_Event_Gesture_Notify_Group Ecore_X_Event_Gesture_Notify_Group;
417 typedef struct _Ecore_X_Event_Sync_Counter Ecore_X_Event_Sync_Counter;
418 typedef struct _Ecore_X_Event_Sync_Alarm Ecore_X_Event_Sync_Alarm;
419 typedef struct _Ecore_X_Event_Screen_Change Ecore_X_Event_Screen_Change;
420 typedef struct _Ecore_X_Event_Randr_Crtc_Change Ecore_X_Event_Randr_Crtc_Change;
421 typedef struct _Ecore_X_Event_Randr_Output_Change Ecore_X_Event_Randr_Output_Change;
422 typedef struct _Ecore_X_Event_Randr_Output_Property_Notify Ecore_X_Event_Randr_Output_Property_Notify;
424 typedef struct _Ecore_X_Event_Window_Delete_Request Ecore_X_Event_Window_Delete_Request;
425 typedef struct _Ecore_X_Event_Window_Move_Resize_Request Ecore_X_Event_Window_Move_Resize_Request;
426 typedef struct _Ecore_X_Event_Window_State_Request Ecore_X_Event_Window_State_Request;
427 typedef struct _Ecore_X_Event_Frame_Extents_Request Ecore_X_Event_Frame_Extents_Request;
428 typedef struct _Ecore_X_Event_Ping Ecore_X_Event_Ping;
429 typedef struct _Ecore_X_Event_Desktop_Change Ecore_X_Event_Desktop_Change;
431 typedef struct _Ecore_X_Event_Startup_Sequence Ecore_X_Event_Startup_Sequence;
433 typedef struct _Ecore_X_Event_Generic Ecore_X_Event_Generic;
435 typedef struct _Ecore_X_Randr_Screen_Size Ecore_X_Randr_Screen_Size;
436 typedef struct _Ecore_X_Randr_Screen_Size_MM Ecore_X_Randr_Screen_Size_MM;
438 typedef struct _Ecore_X_Xdnd_Position Ecore_X_Xdnd_Position;
440 struct _Ecore_X_Event_Mouse_In
444 Eina_Bool same_screen : 1;
450 Ecore_X_Window event_win;
451 Ecore_X_Window root_win;
452 Ecore_X_Event_Mode mode;
453 Ecore_X_Event_Detail detail;
457 struct _Ecore_X_Event_Mouse_Out
467 Ecore_X_Window event_win;
468 Ecore_X_Window root_win;
469 Ecore_X_Event_Mode mode;
470 Ecore_X_Event_Detail detail;
474 struct _Ecore_X_Event_Window_Focus_In
477 Ecore_X_Event_Mode mode;
478 Ecore_X_Event_Detail detail;
482 struct _Ecore_X_Event_Window_Focus_Out
485 Ecore_X_Event_Mode mode;
486 Ecore_X_Event_Detail detail;
490 struct _Ecore_X_Event_Window_Keymap
495 struct _Ecore_X_Event_Window_Damage
503 struct _Ecore_X_Event_Window_Visibility_Change
510 struct _Ecore_X_Event_Window_Create
513 Ecore_X_Window parent;
520 struct _Ecore_X_Event_Window_Destroy
523 Ecore_X_Window event_win;
527 struct _Ecore_X_Event_Window_Hide
530 Ecore_X_Window event_win;
534 struct _Ecore_X_Event_Window_Show
537 Ecore_X_Window event_win;
541 struct _Ecore_X_Event_Window_Show_Request
544 Ecore_X_Window parent;
548 struct _Ecore_X_Event_Window_Reparent
551 Ecore_X_Window event_win;
552 Ecore_X_Window parent;
556 struct _Ecore_X_Event_Window_Configure
559 Ecore_X_Window event_win;
560 Ecore_X_Window abovewin;
563 Eina_Bool override : 1;
564 Eina_Bool from_wm : 1;
568 struct _Ecore_X_Event_Window_Configure_Request
571 Ecore_X_Window parent_win;
572 Ecore_X_Window abovewin;
575 Ecore_X_Window_Stack_Mode detail;
576 unsigned long value_mask;
580 struct _Ecore_X_Event_Window_Gravity
583 Ecore_X_Window event_win;
587 struct _Ecore_X_Event_Window_Resize_Request
594 struct _Ecore_X_Event_Window_Stack
597 Ecore_X_Window event_win;
598 Ecore_X_Window_Stack_Mode detail;
602 struct _Ecore_X_Event_Window_Stack_Request
605 Ecore_X_Window parent;
606 Ecore_X_Window_Stack_Mode detail;
610 struct _Ecore_X_Event_Window_Property
617 struct _Ecore_X_Event_Window_Colormap
620 Ecore_X_Colormap cmap;
621 Eina_Bool installed : 1;
625 struct _Ecore_X_Event_Mapping_Change
627 Ecore_X_Mapping_Type type;
632 struct _Ecore_X_Event_Selection_Clear
635 Ecore_X_Selection selection;
640 struct _Ecore_X_Event_Selection_Request
642 Ecore_X_Window owner;
643 Ecore_X_Window requestor;
645 Ecore_X_Atom selection;
647 Ecore_X_Atom property;
652 ECORE_X_OWNER_CHANGE_REASON_NEW_OWNER,
653 ECORE_X_OWNER_CHANGE_REASON_DESTROY,
654 ECORE_X_OWNER_CHANGE_REASON_CLOSE
655 } Ecore_X_Owner_Change_Reason;
657 struct _Ecore_X_Event_Fixes_Selection_Notify
660 Ecore_X_Window owner;
662 Ecore_X_Time selection_time;
663 Ecore_X_Selection selection;
665 Ecore_X_Owner_Change_Reason reason;
668 struct _Ecore_X_Event_Selection_Notify
672 Ecore_X_Selection selection;
678 struct _Ecore_X_Selection_Data
682 ECORE_X_SELECTION_CONTENT_NONE,
683 ECORE_X_SELECTION_CONTENT_TEXT,
684 ECORE_X_SELECTION_CONTENT_FILES,
685 ECORE_X_SELECTION_CONTENT_TARGETS,
686 ECORE_X_SELECTION_CONTENT_CUSTOM
691 int (*free)(void *data);
694 struct _Ecore_X_Selection_Data_Files
696 Ecore_X_Selection_Data data;
701 struct _Ecore_X_Selection_Data_Text
703 Ecore_X_Selection_Data data;
707 struct _Ecore_X_Selection_Data_Targets
709 Ecore_X_Selection_Data data;
714 struct _Ecore_X_Event_Xdnd_Enter
716 Ecore_X_Window win, source;
722 struct _Ecore_X_Event_Xdnd_Position
724 Ecore_X_Window win, source;
732 struct _Ecore_X_Xdnd_Position
734 Ecore_X_Window win, prev;
741 struct _Ecore_X_Event_Xdnd_Status
743 Ecore_X_Window win, target;
744 Eina_Bool will_accept : 1;
745 Ecore_X_Rectangle rectangle;
749 struct _Ecore_X_Event_Xdnd_Leave
751 Ecore_X_Window win, source;
754 struct _Ecore_X_Event_Xdnd_Drop
756 Ecore_X_Window win, source;
764 struct _Ecore_X_Event_Xdnd_Finished
766 Ecore_X_Window win, target;
767 Eina_Bool completed : 1;
771 struct _Ecore_X_Event_Client_Message
774 Ecore_X_Atom message_type;
785 struct _Ecore_X_Event_Window_Shape
789 Ecore_X_Shape_Type type;
791 Eina_Bool shaped : 1;
794 struct _Ecore_X_Event_Screensaver_Notify
801 struct _Ecore_X_Event_Sync_Counter
806 struct _Ecore_X_Event_Sync_Alarm
809 Ecore_X_Sync_Alarm alarm;
812 struct _Ecore_X_Randr_Screen_Size
817 struct _Ecore_X_Randr_Screen_Size_MM
819 int width, height, width_mm, height_mm;
822 struct _Ecore_X_Event_Screen_Change
826 Ecore_X_Randr_Screen_Size_MM size; /* in pixel and millimeters */
828 Ecore_X_Time config_time;
829 Ecore_X_Randr_Orientation orientation;
830 Ecore_X_Render_Subpixel_Order subpixel_order;
831 Ecore_X_Randr_Size_ID size_id;
834 struct _Ecore_X_Event_Randr_Crtc_Change
837 Ecore_X_Randr_Crtc crtc;
838 Ecore_X_Randr_Mode mode;
839 Ecore_X_Randr_Orientation orientation;
843 struct _Ecore_X_Event_Randr_Output_Change
846 Ecore_X_Randr_Output output;
847 Ecore_X_Randr_Crtc crtc;
848 Ecore_X_Randr_Mode mode;
849 Ecore_X_Randr_Orientation orientation;
850 Ecore_X_Randr_Connection_Status connection;
851 Ecore_X_Render_Subpixel_Order subpixel_order;
854 struct _Ecore_X_Event_Randr_Output_Property_Notify
857 Ecore_X_Randr_Output output;
858 Ecore_X_Atom property;
860 Ecore_X_Randr_Property_Change state;
863 struct _Ecore_X_Event_Window_Delete_Request
869 struct _Ecore_X_Event_Startup_Sequence
874 struct _Ecore_X_Event_Window_Move_Resize_Request
883 struct _Ecore_X_Event_Window_State_Request
886 Ecore_X_Window_State_Action action;
887 Ecore_X_Window_State state[2];
891 struct _Ecore_X_Event_Frame_Extents_Request
896 struct _Ecore_X_Event_Ping
899 Ecore_X_Window event_win;
903 struct _Ecore_X_Event_Desktop_Change
910 struct _Ecore_X_Event_Generic
918 EAPI extern int ECORE_X_EVENT_ANY; /**< low level event dependent on
919 backend in use, if Xlib will be XEvent, if XCB will be xcb_generic_event_t.
920 @warning avoid using it.
922 EAPI extern int ECORE_X_EVENT_MOUSE_IN;
923 EAPI extern int ECORE_X_EVENT_MOUSE_OUT;
924 EAPI extern int ECORE_X_EVENT_WINDOW_FOCUS_IN;
925 EAPI extern int ECORE_X_EVENT_WINDOW_FOCUS_OUT;
926 EAPI extern int ECORE_X_EVENT_WINDOW_KEYMAP;
927 EAPI extern int ECORE_X_EVENT_WINDOW_DAMAGE;
928 EAPI extern int ECORE_X_EVENT_WINDOW_VISIBILITY_CHANGE;
929 EAPI extern int ECORE_X_EVENT_WINDOW_CREATE;
930 EAPI extern int ECORE_X_EVENT_WINDOW_DESTROY;
931 EAPI extern int ECORE_X_EVENT_WINDOW_HIDE;
932 EAPI extern int ECORE_X_EVENT_WINDOW_SHOW;
933 EAPI extern int ECORE_X_EVENT_WINDOW_SHOW_REQUEST;
934 EAPI extern int ECORE_X_EVENT_WINDOW_REPARENT;
935 EAPI extern int ECORE_X_EVENT_WINDOW_CONFIGURE;
936 EAPI extern int ECORE_X_EVENT_WINDOW_CONFIGURE_REQUEST;
937 EAPI extern int ECORE_X_EVENT_WINDOW_GRAVITY;
938 EAPI extern int ECORE_X_EVENT_WINDOW_RESIZE_REQUEST;
939 EAPI extern int ECORE_X_EVENT_WINDOW_STACK;
940 EAPI extern int ECORE_X_EVENT_WINDOW_STACK_REQUEST;
941 EAPI extern int ECORE_X_EVENT_WINDOW_PROPERTY;
942 EAPI extern int ECORE_X_EVENT_WINDOW_COLORMAP;
943 EAPI extern int ECORE_X_EVENT_WINDOW_MAPPING;
944 EAPI extern int ECORE_X_EVENT_MAPPING_CHANGE;
945 EAPI extern int ECORE_X_EVENT_SELECTION_CLEAR;
946 EAPI extern int ECORE_X_EVENT_SELECTION_REQUEST;
947 EAPI extern int ECORE_X_EVENT_SELECTION_NOTIFY;
948 EAPI extern int ECORE_X_EVENT_FIXES_SELECTION_NOTIFY;
949 EAPI extern int ECORE_X_EVENT_CLIENT_MESSAGE;
950 EAPI extern int ECORE_X_EVENT_WINDOW_SHAPE;
951 EAPI extern int ECORE_X_EVENT_SCREENSAVER_NOTIFY;
952 EAPI extern int ECORE_X_EVENT_GESTURE_NOTIFY_FLICK;
953 EAPI extern int ECORE_X_EVENT_GESTURE_NOTIFY_PAN;
954 EAPI extern int ECORE_X_EVENT_GESTURE_NOTIFY_PINCHROTATION;
955 EAPI extern int ECORE_X_EVENT_GESTURE_NOTIFY_TAP;
956 EAPI extern int ECORE_X_EVENT_GESTURE_NOTIFY_TAPNHOLD;
957 EAPI extern int ECORE_X_EVENT_GESTURE_NOTIFY_HOLD;
958 EAPI extern int ECORE_X_EVENT_GESTURE_NOTIFY_GROUP;
959 EAPI extern int ECORE_X_EVENT_SYNC_COUNTER;
960 EAPI extern int ECORE_X_EVENT_SYNC_ALARM;
961 EAPI extern int ECORE_X_EVENT_SCREEN_CHANGE;
962 EAPI extern int ECORE_X_EVENT_RANDR_CRTC_CHANGE;
963 EAPI extern int ECORE_X_EVENT_RANDR_OUTPUT_CHANGE;
964 EAPI extern int ECORE_X_EVENT_RANDR_OUTPUT_PROPERTY_NOTIFY;
965 EAPI extern int ECORE_X_EVENT_DAMAGE_NOTIFY;
967 EAPI extern int ECORE_X_EVENT_WINDOW_DELETE_REQUEST;
969 EAPI extern int ECORE_X_EVENT_WINDOW_MOVE_RESIZE_REQUEST;
970 EAPI extern int ECORE_X_EVENT_WINDOW_STATE_REQUEST;
971 EAPI extern int ECORE_X_EVENT_FRAME_EXTENTS_REQUEST;
972 EAPI extern int ECORE_X_EVENT_PING;
973 EAPI extern int ECORE_X_EVENT_DESKTOP_CHANGE;
975 EAPI extern int ECORE_X_EVENT_STARTUP_SEQUENCE_NEW;
976 EAPI extern int ECORE_X_EVENT_STARTUP_SEQUENCE_CHANGE;
977 EAPI extern int ECORE_X_EVENT_STARTUP_SEQUENCE_REMOVE;
979 EAPI extern int ECORE_X_EVENT_GENERIC;
981 EAPI extern int ECORE_X_EVENT_XDND_ENTER;
982 EAPI extern int ECORE_X_EVENT_XDND_POSITION;
983 EAPI extern int ECORE_X_EVENT_XDND_STATUS;
984 EAPI extern int ECORE_X_EVENT_XDND_LEAVE;
985 EAPI extern int ECORE_X_EVENT_XDND_DROP;
986 EAPI extern int ECORE_X_EVENT_XDND_FINISHED;
988 EAPI extern int ECORE_X_LOCK_SCROLL;
989 EAPI extern int ECORE_X_LOCK_NUM;
990 EAPI extern int ECORE_X_LOCK_CAPS;
991 EAPI extern int ECORE_X_LOCK_SHIFT;
993 typedef enum _Ecore_X_WM_Protocol
995 /** If enabled the window manager will be asked to send a
996 * delete message instead of just closing (destroying) the window. */
997 ECORE_X_WM_PROTOCOL_DELETE_REQUEST,
999 /** If enabled the window manager will be told that the window
1000 * explicitly sets input focus. */
1001 ECORE_X_WM_PROTOCOL_TAKE_FOCUS,
1003 /** If enabled the window manager can ping the window to check
1004 * if it is alive. */
1005 ECORE_X_NET_WM_PROTOCOL_PING,
1007 /** If enabled the window manager can sync updating with the
1009 ECORE_X_NET_WM_PROTOCOL_SYNC_REQUEST,
1011 /** Number of defined items */
1012 ECORE_X_WM_PROTOCOL_NUM
1013 } Ecore_X_WM_Protocol;
1015 typedef enum _Ecore_X_Window_Input_Mode
1017 /** The window can never be focused */
1018 ECORE_X_WINDOW_INPUT_MODE_NONE,
1020 /** The window can be focused by the WM but doesn't focus itself */
1021 ECORE_X_WINDOW_INPUT_MODE_PASSIVE,
1023 /** The window sets the focus itself if one of its sub-windows
1024 * already is focused */
1025 ECORE_X_WINDOW_INPUT_MODE_ACTIVE_LOCAL,
1027 /** The window sets the focus itself even if another window
1028 * is currently focused */
1029 ECORE_X_WINDOW_INPUT_MODE_ACTIVE_GLOBAL
1030 } Ecore_X_Window_Input_Mode;
1033 * @typedef _Ecore_X_Window_State_Hint
1034 * Defines the different state hint of the window of Ecore_X.
1036 typedef enum _Ecore_X_Window_State_Hint
1038 /** Do not provide any state hint to the window manager */
1039 ECORE_X_WINDOW_STATE_HINT_NONE = -1,
1041 /** The window wants to remain hidden and NOT iconified */
1042 ECORE_X_WINDOW_STATE_HINT_WITHDRAWN,
1044 /** The window wants to be mapped normally */
1045 ECORE_X_WINDOW_STATE_HINT_NORMAL,
1047 /** The window wants to start in an iconified state */
1048 ECORE_X_WINDOW_STATE_HINT_ICONIC
1049 } Ecore_X_Window_State_Hint;
1051 typedef enum _Ecore_X_Window_Type
1053 ECORE_X_WINDOW_TYPE_UNKNOWN = 0,
1054 ECORE_X_WINDOW_TYPE_DESKTOP,
1055 ECORE_X_WINDOW_TYPE_DOCK,
1056 ECORE_X_WINDOW_TYPE_TOOLBAR,
1057 ECORE_X_WINDOW_TYPE_MENU,
1058 ECORE_X_WINDOW_TYPE_UTILITY,
1059 ECORE_X_WINDOW_TYPE_SPLASH,
1060 ECORE_X_WINDOW_TYPE_DIALOG,
1061 ECORE_X_WINDOW_TYPE_NORMAL,
1062 ECORE_X_WINDOW_TYPE_DROPDOWN_MENU,
1063 ECORE_X_WINDOW_TYPE_POPUP_MENU,
1064 ECORE_X_WINDOW_TYPE_TOOLTIP,
1065 ECORE_X_WINDOW_TYPE_NOTIFICATION,
1066 ECORE_X_WINDOW_TYPE_COMBO,
1067 ECORE_X_WINDOW_TYPE_DND
1068 } Ecore_X_Window_Type;
1070 typedef enum _Ecore_X_Action
1072 ECORE_X_ACTION_MOVE,
1073 ECORE_X_ACTION_RESIZE,
1074 ECORE_X_ACTION_MINIMIZE,
1075 ECORE_X_ACTION_SHADE,
1076 ECORE_X_ACTION_STICK,
1077 ECORE_X_ACTION_MAXIMIZE_HORZ,
1078 ECORE_X_ACTION_MAXIMIZE_VERT,
1079 ECORE_X_ACTION_FULLSCREEN,
1080 ECORE_X_ACTION_CHANGE_DESKTOP,
1081 ECORE_X_ACTION_CLOSE,
1082 ECORE_X_ACTION_ABOVE,
1083 ECORE_X_ACTION_BELOW
1086 typedef enum _Ecore_X_Window_Configure_Mask
1088 ECORE_X_WINDOW_CONFIGURE_MASK_X = (1 << 0),
1089 ECORE_X_WINDOW_CONFIGURE_MASK_Y = (1 << 1),
1090 ECORE_X_WINDOW_CONFIGURE_MASK_W = (1 << 2),
1091 ECORE_X_WINDOW_CONFIGURE_MASK_H = (1 << 3),
1092 ECORE_X_WINDOW_CONFIGURE_MASK_BORDER_WIDTH = (1 << 4),
1093 ECORE_X_WINDOW_CONFIGURE_MASK_SIBLING = (1 << 5),
1094 ECORE_X_WINDOW_CONFIGURE_MASK_STACK_MODE = (1 << 6)
1095 } Ecore_X_Window_Configure_Mask;
1097 typedef enum _Ecore_X_Virtual_Keyboard_State
1099 ECORE_X_VIRTUAL_KEYBOARD_STATE_UNKNOWN = 0,
1100 ECORE_X_VIRTUAL_KEYBOARD_STATE_OFF,
1101 ECORE_X_VIRTUAL_KEYBOARD_STATE_ON,
1102 ECORE_X_VIRTUAL_KEYBOARD_STATE_ALPHA,
1103 ECORE_X_VIRTUAL_KEYBOARD_STATE_NUMERIC,
1104 ECORE_X_VIRTUAL_KEYBOARD_STATE_PIN,
1105 ECORE_X_VIRTUAL_KEYBOARD_STATE_PHONE_NUMBER,
1106 ECORE_X_VIRTUAL_KEYBOARD_STATE_HEX,
1107 ECORE_X_VIRTUAL_KEYBOARD_STATE_TERMINAL,
1108 ECORE_X_VIRTUAL_KEYBOARD_STATE_PASSWORD,
1109 ECORE_X_VIRTUAL_KEYBOARD_STATE_IP,
1110 ECORE_X_VIRTUAL_KEYBOARD_STATE_HOST,
1111 ECORE_X_VIRTUAL_KEYBOARD_STATE_FILE,
1112 ECORE_X_VIRTUAL_KEYBOARD_STATE_URL,
1113 ECORE_X_VIRTUAL_KEYBOARD_STATE_KEYPAD,
1114 ECORE_X_VIRTUAL_KEYBOARD_STATE_J2ME
1115 } Ecore_X_Virtual_Keyboard_State;
1117 typedef enum _Ecore_X_Illume_Mode
1119 ECORE_X_ILLUME_MODE_UNKNOWN = 0,
1120 ECORE_X_ILLUME_MODE_SINGLE,
1121 ECORE_X_ILLUME_MODE_DUAL_TOP,
1122 ECORE_X_ILLUME_MODE_DUAL_LEFT
1123 } Ecore_X_Illume_Mode;
1125 typedef enum _Ecore_X_Illume_Quickpanel_State
1127 ECORE_X_ILLUME_QUICKPANEL_STATE_UNKNOWN = 0,
1128 ECORE_X_ILLUME_QUICKPANEL_STATE_OFF,
1129 ECORE_X_ILLUME_QUICKPANEL_STATE_ON
1130 } Ecore_X_Illume_Quickpanel_State;
1132 typedef enum _Ecore_X_Illume_Indicator_State
1134 ECORE_X_ILLUME_INDICATOR_STATE_UNKNOWN = 0,
1135 ECORE_X_ILLUME_INDICATOR_STATE_OFF,
1136 ECORE_X_ILLUME_INDICATOR_STATE_ON
1137 } Ecore_X_Illume_Indicator_State;
1139 typedef enum _Ecore_X_Illume_Clipboard_State
1141 ECORE_X_ILLUME_CLIPBOARD_STATE_UNKNOWN = 0,
1142 ECORE_X_ILLUME_CLIPBOARD_STATE_OFF,
1143 ECORE_X_ILLUME_CLIPBOARD_STATE_ON
1144 } Ecore_X_Illume_Clipboard_State;
1146 typedef enum _Ecore_X_Illume_Indicator_Opacity_Mode
1148 ECORE_X_ILLUME_INDICATOR_OPACITY_UNKNOWN = 0,
1149 ECORE_X_ILLUME_INDICATOR_OPAQUE,
1150 ECORE_X_ILLUME_INDICATOR_TRANSLUCENT,
1151 ECORE_X_ILLUME_INDICATOR_TRANSPARENT
1152 } Ecore_X_Illume_Indicator_Opacity_Mode;
1154 /* Window layer constants */
1155 #define ECORE_X_WINDOW_LAYER_BELOW 2
1156 #define ECORE_X_WINDOW_LAYER_NORMAL 4
1157 #define ECORE_X_WINDOW_LAYER_ABOVE 6
1159 /* Property list operations */
1160 #define ECORE_X_PROP_LIST_REMOVE 0
1161 #define ECORE_X_PROP_LIST_ADD 1
1162 #define ECORE_X_PROP_LIST_TOGGLE 2
1164 EAPI int ecore_x_init(const char *name);
1165 EAPI int ecore_x_shutdown(void);
1166 EAPI int ecore_x_disconnect(void);
1167 EAPI Ecore_X_Display *ecore_x_display_get(void);
1168 EAPI Ecore_X_Connection *ecore_x_connection_get(void);
1169 EAPI int ecore_x_fd_get(void);
1170 EAPI Ecore_X_Screen *ecore_x_default_screen_get(void);
1171 EAPI void ecore_x_screen_size_get(const Ecore_X_Screen *screen, int *w, int *h);
1172 EAPI int ecore_x_screen_count_get(void);
1173 EAPI int ecore_x_screen_index_get(const Ecore_X_Screen *screen);
1174 EAPI Ecore_X_Screen *ecore_x_screen_get(int index);
1176 EAPI void ecore_x_double_click_time_set(double t);
1177 EAPI double ecore_x_double_click_time_get(void);
1178 EAPI void ecore_x_flush(void);
1179 EAPI void ecore_x_sync(void);
1180 EAPI void ecore_x_killall(Ecore_X_Window root);
1181 EAPI void ecore_x_kill(Ecore_X_Window win);
1182 EAPI int ecore_x_dpi_get(void);
1183 EAPI Eina_Bool ecore_x_bell(int percent);
1184 EAPI unsigned int ecore_x_visual_id_get(Ecore_X_Visual visual);
1186 EAPI Ecore_X_Visual ecore_x_default_visual_get(Ecore_X_Display *disp, Ecore_X_Screen *screen);
1187 EAPI Ecore_X_Colormap ecore_x_default_colormap_get(Ecore_X_Display *disp, Ecore_X_Screen *screen);
1188 EAPI int ecore_x_default_depth_get(Ecore_X_Display *disp, Ecore_X_Screen *screen);
1190 EAPI Ecore_X_Time ecore_x_current_time_get(void);
1192 EAPI void ecore_x_error_handler_set(void (*func)(void *data), const void *data);
1193 EAPI void ecore_x_io_error_handler_set(void (*func)(void *data), const void *data);
1194 EAPI int ecore_x_error_request_get(void);
1195 EAPI int ecore_x_error_code_get(void);
1196 EAPI Ecore_X_ID ecore_x_error_resource_id_get(void);
1198 EAPI void ecore_x_event_mask_set(Ecore_X_Window w, Ecore_X_Event_Mask mask);
1199 EAPI void ecore_x_event_mask_unset(Ecore_X_Window w, Ecore_X_Event_Mask mask);
1201 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);
1202 EAPI Eina_Bool ecore_x_selection_primary_set(Ecore_X_Window w, const void *data, int size);
1203 EAPI Eina_Bool ecore_x_selection_primary_clear(void);
1204 EAPI Eina_Bool ecore_x_selection_secondary_set(Ecore_X_Window w, const void *data, int size);
1205 EAPI Eina_Bool ecore_x_selection_secondary_clear(void);
1206 EAPI Eina_Bool ecore_x_selection_xdnd_set(Ecore_X_Window w, const void *data, int size);
1207 EAPI Eina_Bool ecore_x_selection_xdnd_clear(void);
1208 EAPI Eina_Bool ecore_x_selection_clipboard_set(Ecore_X_Window w, const void *data, int size);
1209 EAPI Eina_Bool ecore_x_selection_clipboard_clear(void);
1210 EAPI void ecore_x_selection_primary_request(Ecore_X_Window w, const char *target);
1211 EAPI void ecore_x_selection_secondary_request(Ecore_X_Window w, const char *target);
1212 EAPI void ecore_x_selection_xdnd_request(Ecore_X_Window w, const char *target);
1213 EAPI void ecore_x_selection_clipboard_request(Ecore_X_Window w, const char *target);
1214 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);
1215 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 *));
1216 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));
1217 EAPI void ecore_x_selection_converter_del(char *target);
1218 EAPI void ecore_x_selection_converter_atom_del(Ecore_X_Atom target);
1219 EAPI void ecore_x_selection_parser_add(const char *target, void *(*func)(const char *target, void *data, int size, int format));
1220 EAPI void ecore_x_selection_parser_del(const char *target);
1221 EAPI void ecore_x_selection_owner_set(Ecore_X_Window win, Ecore_X_Atom atom, Ecore_X_Time tm);
1222 EAPI Ecore_X_Window ecore_x_selection_owner_get(Ecore_X_Atom atom);
1224 EAPI void ecore_x_dnd_aware_set(Ecore_X_Window win, Eina_Bool on);
1225 EAPI int ecore_x_dnd_version_get(Ecore_X_Window win);
1226 EAPI Eina_Bool ecore_x_dnd_type_isset(Ecore_X_Window win, const char *type);
1227 EAPI void ecore_x_dnd_type_set(Ecore_X_Window win, const char *type, Eina_Bool on);
1228 EAPI void ecore_x_dnd_types_set(Ecore_X_Window win, const char **types, unsigned int num_types);
1229 EAPI void ecore_x_dnd_actions_set(Ecore_X_Window win, Ecore_X_Atom *actions, unsigned int num_actions);
1230 EAPI Eina_Bool ecore_x_dnd_begin(Ecore_X_Window source, unsigned char *data, int size);
1231 EAPI Eina_Bool ecore_x_dnd_drop(void);
1232 EAPI void ecore_x_dnd_send_status(Eina_Bool will_accept, Eina_Bool suppress, Ecore_X_Rectangle rectangle, Ecore_X_Atom action);
1233 EAPI void ecore_x_dnd_send_finished(void);
1234 EAPI void ecore_x_dnd_source_action_set(Ecore_X_Atom action);
1235 EAPI Ecore_X_Atom ecore_x_dnd_source_action_get(void);
1236 EAPI void ecore_x_dnd_callback_pos_update_set(void (*cb)(void *, Ecore_X_Xdnd_Position *data), const void *data);
1238 EAPI Ecore_X_Window ecore_x_window_new(Ecore_X_Window parent, int x, int y, int w, int h);
1239 EAPI Ecore_X_Window ecore_x_window_override_new(Ecore_X_Window parent, int x, int y, int w, int h);
1240 EAPI int ecore_x_window_argb_get(Ecore_X_Window win);
1241 EAPI Ecore_X_Window ecore_x_window_manager_argb_new(Ecore_X_Window parent, int x, int y, int w, int h);
1242 EAPI Ecore_X_Window ecore_x_window_argb_new(Ecore_X_Window parent, int x, int y, int w, int h);
1243 EAPI Ecore_X_Window ecore_x_window_override_argb_new(Ecore_X_Window parent, int x, int y, int w, int h);
1244 EAPI Ecore_X_Window ecore_x_window_input_new(Ecore_X_Window parent, int x, int y, int w, int h);
1245 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);
1246 EAPI void ecore_x_window_cursor_set(Ecore_X_Window win, Ecore_X_Cursor c);
1247 EAPI void ecore_x_window_free(Ecore_X_Window win);
1248 EAPI void ecore_x_window_ignore_set(Ecore_X_Window win, int ignore);
1249 EAPI Ecore_X_Window *ecore_x_window_ignore_list(int *num);
1251 EAPI void ecore_x_window_delete_request_send(Ecore_X_Window win);
1252 EAPI void ecore_x_window_show(Ecore_X_Window win);
1253 EAPI void ecore_x_window_hide(Ecore_X_Window win);
1254 EAPI void ecore_x_window_move(Ecore_X_Window win, int x, int y);
1255 EAPI void ecore_x_window_resize(Ecore_X_Window win, int w, int h);
1256 EAPI void ecore_x_window_move_resize(Ecore_X_Window win, int x, int y, int w, int h);
1257 EAPI void ecore_x_window_focus(Ecore_X_Window win);
1258 EAPI void ecore_x_window_focus_at_time(Ecore_X_Window win, Ecore_X_Time t);
1259 EAPI Ecore_X_Window ecore_x_window_focus_get(void);
1260 EAPI void ecore_x_window_raise(Ecore_X_Window win);
1261 EAPI void ecore_x_window_lower(Ecore_X_Window win);
1262 EAPI void ecore_x_window_reparent(Ecore_X_Window win, Ecore_X_Window new_parent, int x, int y);
1263 EAPI void ecore_x_window_size_get(Ecore_X_Window win, int *w, int *h);
1264 EAPI void ecore_x_window_geometry_get(Ecore_X_Window win, int *x, int *y, int *w, int *h);
1265 EAPI int ecore_x_window_border_width_get(Ecore_X_Window win);
1266 EAPI void ecore_x_window_border_width_set(Ecore_X_Window win, int width);
1267 EAPI int ecore_x_window_depth_get(Ecore_X_Window win);
1268 EAPI void ecore_x_window_cursor_show(Ecore_X_Window win, Eina_Bool show);
1269 EAPI void ecore_x_window_defaults_set(Ecore_X_Window win);
1270 EAPI int ecore_x_window_visible_get(Ecore_X_Window win);
1271 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);
1272 EAPI Ecore_X_Window ecore_x_window_shadow_parent_get(Ecore_X_Window root, Ecore_X_Window win);
1273 EAPI void ecore_x_window_shadow_tree_flush(void);
1274 EAPI Ecore_X_Window ecore_x_window_root_get(Ecore_X_Window win);
1275 EAPI Ecore_X_Window ecore_x_window_at_xy_get(int x, int y);
1276 EAPI Ecore_X_Window ecore_x_window_at_xy_with_skip_get(int x, int y, Ecore_X_Window *skip, int skip_num);
1277 EAPI Ecore_X_Window ecore_x_window_at_xy_begin_get(Ecore_X_Window begin, int x, int y);
1278 EAPI Ecore_X_Window ecore_x_window_parent_get(Ecore_X_Window win);
1280 EAPI void ecore_x_window_background_color_set(Ecore_X_Window win, unsigned short r, unsigned short g, unsigned short b);
1281 EAPI void ecore_x_window_gravity_set(Ecore_X_Window win, Ecore_X_Gravity grav);
1282 EAPI void ecore_x_window_pixel_gravity_set(Ecore_X_Window win, Ecore_X_Gravity grav);
1283 EAPI void ecore_x_window_pixmap_set(Ecore_X_Window win, Ecore_X_Pixmap pmap);
1284 EAPI void ecore_x_window_area_clear(Ecore_X_Window win, int x, int y, int w, int h);
1285 EAPI void ecore_x_window_area_expose(Ecore_X_Window win, int x, int y, int w, int h);
1286 EAPI void ecore_x_window_override_set(Ecore_X_Window win, Eina_Bool override);
1288 EAPI void ecore_x_window_prop_card32_set(Ecore_X_Window win, Ecore_X_Atom atom, unsigned int *val, unsigned int num);
1289 EAPI int ecore_x_window_prop_card32_get(Ecore_X_Window win, Ecore_X_Atom atom, unsigned int *val, unsigned int len);
1290 EAPI int ecore_x_window_prop_card32_list_get(Ecore_X_Window win, Ecore_X_Atom atom, unsigned int **plst);
1292 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);
1293 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);
1294 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);
1295 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);
1296 EAPI void ecore_x_window_prop_atom_set(Ecore_X_Window win, Ecore_X_Atom atom, Ecore_X_Atom *val, unsigned int num);
1297 EAPI int ecore_x_window_prop_atom_get(Ecore_X_Window win, Ecore_X_Atom atom, Ecore_X_Atom *val, unsigned int len);
1298 EAPI int ecore_x_window_prop_atom_list_get(Ecore_X_Window win, Ecore_X_Atom atom, Ecore_X_Atom **plst);
1299 EAPI void ecore_x_window_prop_atom_list_change(Ecore_X_Window win, Ecore_X_Atom atom, Ecore_X_Atom item, int op);
1300 EAPI void ecore_x_window_prop_window_set(Ecore_X_Window win, Ecore_X_Atom atom, Ecore_X_Window *val, unsigned int num);
1301 EAPI int ecore_x_window_prop_window_get(Ecore_X_Window win, Ecore_X_Atom atom, Ecore_X_Window *val, unsigned int len);
1302 EAPI int ecore_x_window_prop_window_list_get(Ecore_X_Window win, Ecore_X_Atom atom, Ecore_X_Window **plst);
1304 EAPI Ecore_X_Atom ecore_x_window_prop_any_type(void);
1305 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);
1306 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);
1307 EAPI void ecore_x_window_prop_property_del(Ecore_X_Window win, Ecore_X_Atom property);
1308 EAPI Ecore_X_Atom *ecore_x_window_prop_list(Ecore_X_Window win, int *num_ret);
1309 EAPI void ecore_x_window_prop_string_set(Ecore_X_Window win, Ecore_X_Atom type, const char *str);
1310 EAPI char *ecore_x_window_prop_string_get(Ecore_X_Window win, Ecore_X_Atom type);
1311 EAPI Eina_Bool ecore_x_window_prop_protocol_isset(Ecore_X_Window win, Ecore_X_WM_Protocol protocol);
1312 EAPI Ecore_X_WM_Protocol *ecore_x_window_prop_protocol_list_get(Ecore_X_Window win, int *num_ret);
1314 EAPI void ecore_x_window_shape_mask_set(Ecore_X_Window win, Ecore_X_Pixmap mask);
1315 EAPI void ecore_x_window_shape_window_set(Ecore_X_Window win, Ecore_X_Window shape_win);
1316 EAPI void ecore_x_window_shape_window_set_xy(Ecore_X_Window win, Ecore_X_Window shape_win, int x, int y);
1317 EAPI void ecore_x_window_shape_rectangle_set(Ecore_X_Window win, int x, int y, int w, int h);
1318 EAPI void ecore_x_window_shape_rectangles_set(Ecore_X_Window win, Ecore_X_Rectangle *rects, int num);
1319 EAPI void ecore_x_window_shape_input_rectangle_set(Ecore_X_Window win, int x, int y, int w, int h);
1320 EAPI void ecore_x_window_shape_input_rectangles_set(Ecore_X_Window win, Ecore_X_Rectangle *rects, int num);
1321 EAPI void ecore_x_window_shape_input_rectangle_add(Ecore_X_Window win, int x, int y, int w, int h);
1322 EAPI void ecore_x_window_shape_rectangle_subtract(Ecore_X_Window win, int x, int y, int w, int h);
1323 EAPI void ecore_x_window_shape_input_rectangle_subtract(Ecore_X_Window win, int x, int y, int w, int h);
1324 EAPI void ecore_x_window_shape_input_window_set_xy(Ecore_X_Window win, Ecore_X_Window shape_win, int x, int y);
1325 EAPI void ecore_x_window_shape_input_window_set(Ecore_X_Window win, Ecore_X_Window shape_win);
1326 EAPI void ecore_x_window_shape_window_add(Ecore_X_Window win, Ecore_X_Window shape_win);
1327 EAPI void ecore_x_window_shape_window_add_xy(Ecore_X_Window win, Ecore_X_Window shape_win, int x, int y);
1328 EAPI void ecore_x_window_shape_input_window_add_xy(Ecore_X_Window win, Ecore_X_Window shape_win, int x, int y);
1329 EAPI void ecore_x_window_shape_rectangle_add(Ecore_X_Window win, int x, int y, int w, int h);
1330 EAPI void ecore_x_window_shape_rectangle_clip(Ecore_X_Window win, int x, int y, int w, int h);
1331 EAPI void ecore_x_window_shape_input_rectangle_clip(Ecore_X_Window win, int x, int y, int w, int h);
1332 EAPI void ecore_x_window_shape_rectangles_add(Ecore_X_Window win, Ecore_X_Rectangle *rects, int num);
1333 EAPI void ecore_x_window_shape_input_rectangles_add(Ecore_X_Window win, Ecore_X_Rectangle *rects, int num);
1334 EAPI Ecore_X_Rectangle *ecore_x_window_shape_rectangles_get(Ecore_X_Window win, int *num_ret);
1335 EAPI Ecore_X_Rectangle *ecore_x_window_shape_input_rectangles_get(Ecore_X_Window win, int *num_ret);
1336 EAPI void ecore_x_window_shape_events_select(Ecore_X_Window win, Eina_Bool on);
1337 EAPI void ecore_x_window_shape_input_mask_set(Ecore_X_Window win, Ecore_X_Pixmap mask);
1339 EAPI Ecore_X_Pixmap ecore_x_pixmap_new(Ecore_X_Window win, int w, int h, int dep);
1340 EAPI void ecore_x_pixmap_free(Ecore_X_Pixmap pmap);
1341 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);
1342 EAPI void ecore_x_pixmap_geometry_get(Ecore_X_Pixmap pmap, int *x, int *y, int *w, int *h);
1343 EAPI int ecore_x_pixmap_depth_get(Ecore_X_Pixmap pmap);
1345 EAPI Ecore_X_GC ecore_x_gc_new(Ecore_X_Drawable draw, Ecore_X_GC_Value_Mask value_mask, const unsigned int *value_list);
1346 EAPI void ecore_x_gc_free(Ecore_X_GC gc);
1347 EAPI void ecore_x_gc_foreground_set(Ecore_X_GC gc, unsigned long foreground);
1348 EAPI void ecore_x_gc_background_set(Ecore_X_GC gc, unsigned long background);
1350 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);
1351 EAPI Eina_Bool ecore_x_client_message8_send(Ecore_X_Window win, Ecore_X_Atom type, const void *data, int len);
1352 EAPI Eina_Bool ecore_x_mouse_move_send(Ecore_X_Window win, int x, int y);
1353 EAPI Eina_Bool ecore_x_mouse_down_send(Ecore_X_Window win, int x, int y, int b);
1354 EAPI Eina_Bool ecore_x_mouse_up_send(Ecore_X_Window win, int x, int y, int b);
1355 EAPI Eina_Bool ecore_x_mouse_in_send(Ecore_X_Window win, int x, int y);
1356 EAPI Eina_Bool ecore_x_mouse_out_send(Ecore_X_Window win, int x, int y);
1358 EAPI void ecore_x_drawable_geometry_get(Ecore_X_Drawable d, int *x, int *y, int *w, int *h);
1359 EAPI int ecore_x_drawable_border_width_get(Ecore_X_Drawable d);
1360 EAPI int ecore_x_drawable_depth_get(Ecore_X_Drawable d);
1361 EAPI void ecore_x_drawable_rectangle_fill(Ecore_X_Drawable d, Ecore_X_GC gc, int x, int y, int width, int height);
1363 EAPI Eina_Bool ecore_x_cursor_color_supported_get(void);
1364 EAPI Ecore_X_Cursor ecore_x_cursor_new(Ecore_X_Window win, int *pixels, int w, int h, int hot_x, int hot_y);
1365 EAPI void ecore_x_cursor_free(Ecore_X_Cursor c);
1366 EAPI Ecore_X_Cursor ecore_x_cursor_shape_get(int shape);
1367 EAPI void ecore_x_cursor_size_set(int size);
1368 EAPI int ecore_x_cursor_size_get(void);
1370 /* FIXME: these funcs need categorising */
1371 EAPI Ecore_X_Window *ecore_x_window_root_list(int *num_ret);
1372 EAPI Ecore_X_Window ecore_x_window_root_first_get(void);
1373 EAPI Eina_Bool ecore_x_window_manage(Ecore_X_Window win);
1374 EAPI void ecore_x_window_container_manage(Ecore_X_Window win);
1375 EAPI void ecore_x_window_client_manage(Ecore_X_Window win);
1376 EAPI void ecore_x_window_sniff(Ecore_X_Window win);
1377 EAPI void ecore_x_window_client_sniff(Ecore_X_Window win);
1379 EAPI Ecore_X_Atom ecore_x_atom_get(const char *name);
1380 EAPI void ecore_x_atoms_get(const char **names, int num, Ecore_X_Atom *atoms);
1381 EAPI char *ecore_x_atom_name_get(Ecore_X_Atom atom);
1383 EAPI void ecore_x_icccm_init(void);
1384 EAPI void ecore_x_icccm_state_set(Ecore_X_Window win, Ecore_X_Window_State_Hint state);
1385 EAPI Ecore_X_Window_State_Hint ecore_x_icccm_state_get(Ecore_X_Window win);
1386 EAPI void ecore_x_icccm_delete_window_send(Ecore_X_Window win, Ecore_X_Time t);
1387 EAPI void ecore_x_icccm_take_focus_send(Ecore_X_Window win, Ecore_X_Time t);
1388 EAPI void ecore_x_icccm_save_yourself_send(Ecore_X_Window win, Ecore_X_Time t);
1389 EAPI void ecore_x_icccm_move_resize_send(Ecore_X_Window win, int x, int y, int w, int h);
1390 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);
1391 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);
1392 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);
1393 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);
1394 EAPI void ecore_x_icccm_title_set(Ecore_X_Window win, const char *t);
1395 EAPI char *ecore_x_icccm_title_get(Ecore_X_Window win);
1396 EAPI void ecore_x_icccm_protocol_atoms_set(Ecore_X_Window win, Ecore_X_Atom *protos, int num);
1397 EAPI void ecore_x_icccm_protocol_set(Ecore_X_Window win, Ecore_X_WM_Protocol protocol, Eina_Bool on);
1398 EAPI Eina_Bool ecore_x_icccm_protocol_isset(Ecore_X_Window win, Ecore_X_WM_Protocol protocol);
1399 EAPI void ecore_x_icccm_name_class_set(Ecore_X_Window win, const char *n, const char *c);
1400 EAPI void ecore_x_icccm_name_class_get(Ecore_X_Window win, char **n, char **c);
1401 EAPI char *ecore_x_icccm_client_machine_get(Ecore_X_Window win);
1402 EAPI void ecore_x_icccm_command_set(Ecore_X_Window win, int argc, char **argv);
1403 EAPI void ecore_x_icccm_command_get(Ecore_X_Window win, int *argc, char ***argv);
1404 EAPI char *ecore_x_icccm_icon_name_get(Ecore_X_Window win);
1405 EAPI void ecore_x_icccm_icon_name_set(Ecore_X_Window win, const char *t);
1406 EAPI void ecore_x_icccm_colormap_window_set(Ecore_X_Window win, Ecore_X_Window subwin);
1407 EAPI void ecore_x_icccm_colormap_window_unset(Ecore_X_Window win, Ecore_X_Window subwin);
1408 EAPI void ecore_x_icccm_transient_for_set(Ecore_X_Window win, Ecore_X_Window forwin);
1409 EAPI void ecore_x_icccm_transient_for_unset(Ecore_X_Window win);
1410 EAPI Ecore_X_Window ecore_x_icccm_transient_for_get(Ecore_X_Window win);
1411 EAPI void ecore_x_icccm_window_role_set(Ecore_X_Window win, const char *role);
1412 EAPI char *ecore_x_icccm_window_role_get(Ecore_X_Window win);
1413 EAPI void ecore_x_icccm_client_leader_set(Ecore_X_Window win, Ecore_X_Window l);
1414 EAPI Ecore_X_Window ecore_x_icccm_client_leader_get(Ecore_X_Window win);
1415 EAPI void ecore_x_icccm_iconic_request_send(Ecore_X_Window win, Ecore_X_Window root);
1417 typedef enum _Ecore_X_MWM_Hint_Func
1419 ECORE_X_MWM_HINT_FUNC_ALL = (1 << 0),
1420 ECORE_X_MWM_HINT_FUNC_RESIZE = (1 << 1),
1421 ECORE_X_MWM_HINT_FUNC_MOVE = (1 << 2),
1422 ECORE_X_MWM_HINT_FUNC_MINIMIZE = (1 << 3),
1423 ECORE_X_MWM_HINT_FUNC_MAXIMIZE = (1 << 4),
1424 ECORE_X_MWM_HINT_FUNC_CLOSE = (1 << 5)
1425 } Ecore_X_MWM_Hint_Func;
1427 typedef enum _Ecore_X_MWM_Hint_Decor
1429 ECORE_X_MWM_HINT_DECOR_ALL = (1 << 0),
1430 ECORE_X_MWM_HINT_DECOR_BORDER = (1 << 1),
1431 ECORE_X_MWM_HINT_DECOR_RESIZEH = (1 << 2),
1432 ECORE_X_MWM_HINT_DECOR_TITLE = (1 << 3),
1433 ECORE_X_MWM_HINT_DECOR_MENU = (1 << 4),
1434 ECORE_X_MWM_HINT_DECOR_MINIMIZE = (1 << 5),
1435 ECORE_X_MWM_HINT_DECOR_MAXIMIZE = (1 << 6)
1436 } Ecore_X_MWM_Hint_Decor;
1438 typedef enum _Ecore_X_MWM_Hint_Input
1440 ECORE_X_MWM_HINT_INPUT_MODELESS = 0,
1441 ECORE_X_MWM_HINT_INPUT_PRIMARY_APPLICATION_MODAL = 1,
1442 ECORE_X_MWM_HINT_INPUT_SYSTEM_MODAL = 2,
1443 ECORE_X_MWM_HINT_INPUT_FULL_APPLICATION_MODAL = 3
1444 } Ecore_X_MWM_Hint_Input;
1446 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);
1447 EAPI void ecore_x_mwm_borderless_set(Ecore_X_Window win, Eina_Bool borderless);
1450 EAPI void ecore_x_netwm_init(void);
1451 EAPI void ecore_x_netwm_shutdown(void);
1452 EAPI void ecore_x_netwm_wm_identify(Ecore_X_Window root, Ecore_X_Window check, const char *wm_name);
1453 EAPI void ecore_x_netwm_supported_set(Ecore_X_Window root, Ecore_X_Atom *supported, int num);
1454 EAPI Eina_Bool ecore_x_netwm_supported_get(Ecore_X_Window root, Ecore_X_Atom **supported, int *num);
1455 EAPI void ecore_x_netwm_desk_count_set(Ecore_X_Window root, unsigned int n_desks);
1456 EAPI void ecore_x_netwm_desk_roots_set(Ecore_X_Window root, Ecore_X_Window *vroots, unsigned int n_desks);
1457 EAPI void ecore_x_netwm_desk_names_set(Ecore_X_Window root, const char **names, unsigned int n_desks);
1458 EAPI void ecore_x_netwm_desk_size_set(Ecore_X_Window root, unsigned int width, unsigned int height);
1459 EAPI void ecore_x_netwm_desk_workareas_set(Ecore_X_Window root, unsigned int *areas, unsigned int n_desks);
1460 EAPI unsigned int *ecore_x_netwm_desk_workareas_get(Ecore_X_Window root, unsigned int *n_desks);
1461 EAPI void ecore_x_netwm_desk_current_set(Ecore_X_Window root, unsigned int desk);
1462 EAPI void ecore_x_netwm_desk_viewports_set(Ecore_X_Window root, unsigned int *origins, unsigned int n_desks);
1463 EAPI void ecore_x_netwm_desk_layout_set(Ecore_X_Window root, int orientation, int columns, int rows, int starting_corner);
1464 EAPI void ecore_x_netwm_showing_desktop_set(Ecore_X_Window root, Eina_Bool on);
1465 EAPI void ecore_x_netwm_client_list_set(Ecore_X_Window root, Ecore_X_Window *p_clients, unsigned int n_clients);
1466 EAPI void ecore_x_netwm_client_list_stacking_set(Ecore_X_Window root, Ecore_X_Window *p_clients, unsigned int n_clients);
1467 EAPI void ecore_x_netwm_client_active_set(Ecore_X_Window root, Ecore_X_Window win);
1468 EAPI void ecore_x_netwm_client_active_request(Ecore_X_Window root, Ecore_X_Window win, int type, Ecore_X_Window current_win);
1469 EAPI void ecore_x_netwm_name_set(Ecore_X_Window win, const char *name);
1470 EAPI int ecore_x_netwm_name_get(Ecore_X_Window win, char **name);
1471 EAPI void ecore_x_netwm_startup_id_set(Ecore_X_Window win, const char *id);
1472 EAPI int ecore_x_netwm_startup_id_get(Ecore_X_Window win, char **id);
1473 EAPI void ecore_x_netwm_visible_name_set(Ecore_X_Window win, const char *name);
1474 EAPI int ecore_x_netwm_visible_name_get(Ecore_X_Window win, char **name);
1475 EAPI void ecore_x_netwm_icon_name_set(Ecore_X_Window win, const char *name);
1476 EAPI int ecore_x_netwm_icon_name_get(Ecore_X_Window win, char **name);
1477 EAPI void ecore_x_netwm_visible_icon_name_set(Ecore_X_Window win, const char *name);
1478 EAPI int ecore_x_netwm_visible_icon_name_get(Ecore_X_Window win, char **name);
1479 EAPI void ecore_x_netwm_desktop_set(Ecore_X_Window win, unsigned int desk);
1480 EAPI Eina_Bool ecore_x_netwm_desktop_get(Ecore_X_Window win, unsigned int *desk);
1481 EAPI void ecore_x_netwm_strut_set(Ecore_X_Window win, int left, int right, int top, int bottom);
1482 EAPI Eina_Bool ecore_x_netwm_strut_get(Ecore_X_Window win, int *left, int *right, int *top, int *bottom);
1483 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);
1484 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);
1486 EAPI void ecore_x_netwm_icons_set(Ecore_X_Window win, Ecore_X_Icon *icon, int num);
1488 EAPI Eina_Bool ecore_x_netwm_icons_get(Ecore_X_Window win, Ecore_X_Icon **icon, int *num);
1489 EAPI void ecore_x_netwm_icon_geometry_set(Ecore_X_Window win, int x, int y, int width, int height);
1490 EAPI Eina_Bool ecore_x_netwm_icon_geometry_get(Ecore_X_Window win, int *x, int *y, int *width, int *height);
1491 EAPI void ecore_x_netwm_pid_set(Ecore_X_Window win, int pid);
1492 EAPI Eina_Bool ecore_x_netwm_pid_get(Ecore_X_Window win, int *pid);
1493 EAPI void ecore_x_netwm_handled_icons_set(Ecore_X_Window win);
1494 EAPI Eina_Bool ecore_x_netwm_handled_icons_get(Ecore_X_Window win);
1495 EAPI void ecore_x_netwm_user_time_set(Ecore_X_Window win, unsigned int time);
1496 EAPI Eina_Bool ecore_x_netwm_user_time_get(Ecore_X_Window win, unsigned int *time);
1497 EAPI void ecore_x_netwm_window_state_set(Ecore_X_Window win, Ecore_X_Window_State *state, unsigned int num);
1498 EAPI Eina_Bool ecore_x_netwm_window_state_get(Ecore_X_Window win, Ecore_X_Window_State **state, unsigned int *num);
1499 EAPI void ecore_x_netwm_window_type_set(Ecore_X_Window win, Ecore_X_Window_Type type);
1500 EAPI Eina_Bool ecore_x_netwm_window_type_get(Ecore_X_Window win, Ecore_X_Window_Type *type);
1501 EAPI int ecore_x_netwm_window_types_get(Ecore_X_Window win, Ecore_X_Window_Type **types);
1502 EAPI Eina_Bool ecore_x_netwm_allowed_action_isset(Ecore_X_Window win, Ecore_X_Action action);
1503 EAPI void ecore_x_netwm_allowed_action_set(Ecore_X_Window win, Ecore_X_Action *action, unsigned int num);
1504 EAPI Eina_Bool ecore_x_netwm_allowed_action_get(Ecore_X_Window win, Ecore_X_Action **action, unsigned int *num);
1505 EAPI void ecore_x_netwm_opacity_set(Ecore_X_Window win, unsigned int opacity);
1506 EAPI Eina_Bool ecore_x_netwm_opacity_get(Ecore_X_Window win, unsigned int *opacity);
1507 EAPI void ecore_x_netwm_frame_size_set(Ecore_X_Window win, int fl, int fr, int ft, int fb);
1508 EAPI Eina_Bool ecore_x_netwm_frame_size_get(Ecore_X_Window win, int *fl, int *fr, int *ft, int *fb);
1509 EAPI Eina_Bool ecore_x_netwm_sync_counter_get(Ecore_X_Window win, Ecore_X_Sync_Counter *counter);
1510 EAPI void ecore_x_netwm_ping_send(Ecore_X_Window win);
1511 EAPI void ecore_x_netwm_sync_request_send(Ecore_X_Window win, unsigned int serial);
1512 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);
1513 EAPI void ecore_x_netwm_desktop_request_send(Ecore_X_Window win, Ecore_X_Window root, unsigned int desktop);
1515 EAPI void ecore_x_e_init(void);
1516 EAPI void ecore_x_e_frame_size_set(Ecore_X_Window win, int fl, int fr, int ft, int fb);
1517 EAPI void ecore_x_e_virtual_keyboard_set(Ecore_X_Window win, unsigned int is_keyboard);
1518 EAPI Eina_Bool ecore_x_e_virtual_keyboard_get(Ecore_X_Window win);
1519 EAPI void ecore_x_e_virtual_keyboard_state_set(Ecore_X_Window win, Ecore_X_Virtual_Keyboard_State state);
1520 EAPI Ecore_X_Virtual_Keyboard_State ecore_x_e_virtual_keyboard_state_get(Ecore_X_Window win);
1521 EAPI void ecore_x_e_virtual_keyboard_state_send(Ecore_X_Window win, Ecore_X_Virtual_Keyboard_State state);
1523 /* Illume functions */
1524 EAPI void ecore_x_e_illume_zone_set(Ecore_X_Window win, Ecore_X_Window zone);
1525 EAPI Ecore_X_Window ecore_x_e_illume_zone_get(Ecore_X_Window win);
1526 EAPI void ecore_x_e_illume_zone_list_set(Ecore_X_Window win, Ecore_X_Window *zones, unsigned int n_zones);
1527 EAPI void ecore_x_e_illume_conformant_set(Ecore_X_Window win, unsigned int is_conformant);
1528 EAPI Eina_Bool ecore_x_e_illume_conformant_get(Ecore_X_Window win);
1529 EAPI void ecore_x_e_illume_mode_set(Ecore_X_Window win, Ecore_X_Illume_Mode mode);
1530 EAPI Ecore_X_Illume_Mode ecore_x_e_illume_mode_get(Ecore_X_Window win);
1531 EAPI void ecore_x_e_illume_mode_send(Ecore_X_Window win, Ecore_X_Illume_Mode mode);
1532 EAPI void ecore_x_e_illume_focus_back_send(Ecore_X_Window win);
1533 EAPI void ecore_x_e_illume_focus_forward_send(Ecore_X_Window win);
1534 EAPI void ecore_x_e_illume_focus_home_send(Ecore_X_Window win);
1535 EAPI void ecore_x_e_illume_close_send(Ecore_X_Window win);
1536 EAPI void ecore_x_e_illume_home_new_send(Ecore_X_Window win);
1537 EAPI void ecore_x_e_illume_home_del_send(Ecore_X_Window win);
1538 EAPI void ecore_x_e_illume_access_action_next_send(Ecore_X_Window win);
1539 EAPI void ecore_x_e_illume_access_action_prev_send(Ecore_X_Window win);
1540 EAPI void ecore_x_e_illume_access_action_activate_send(Ecore_X_Window win);
1541 EAPI void ecore_x_e_illume_access_action_read_send(Ecore_X_Window win);
1542 EAPI void ecore_x_e_illume_access_action_read_next_send(Ecore_X_Window win);
1543 EAPI void ecore_x_e_illume_access_action_read_prev_send(Ecore_X_Window win);
1545 EAPI void ecore_x_e_illume_drag_set(Ecore_X_Window win, unsigned int drag);
1546 EAPI Eina_Bool ecore_x_e_illume_drag_get(Ecore_X_Window win);
1547 EAPI void ecore_x_e_illume_drag_locked_set(Ecore_X_Window win, unsigned int is_locked);
1548 EAPI Eina_Bool ecore_x_e_illume_drag_locked_get(Ecore_X_Window win);
1549 EAPI void ecore_x_e_illume_drag_start_send(Ecore_X_Window win);
1550 EAPI void ecore_x_e_illume_drag_end_send(Ecore_X_Window win);
1551 EAPI void ecore_x_e_illume_indicator_geometry_set(Ecore_X_Window win, int x, int y, int w, int h);
1552 EAPI Eina_Bool ecore_x_e_illume_indicator_geometry_get(Ecore_X_Window win, int *x, int *y, int *w, int *h);
1553 EAPI void ecore_x_e_illume_softkey_geometry_set(Ecore_X_Window win, int x, int y, int w, int h);
1554 EAPI Eina_Bool ecore_x_e_illume_softkey_geometry_get(Ecore_X_Window win, int *x, int *y, int *w, int *h);
1555 EAPI void ecore_x_e_illume_keyboard_geometry_set(Ecore_X_Window win, int x, int y, int w, int h);
1556 EAPI Eina_Bool ecore_x_e_illume_keyboard_geometry_get(Ecore_X_Window win, int *x, int *y, int *w, int *h);
1557 EAPI void ecore_x_e_illume_quickpanel_set(Ecore_X_Window win, unsigned int is_quickpanel);
1558 EAPI Eina_Bool ecore_x_e_illume_quickpanel_get(Ecore_X_Window win);
1559 EAPI void ecore_x_e_illume_quickpanel_state_set(Ecore_X_Window win, Ecore_X_Illume_Quickpanel_State state);
1560 EAPI Ecore_X_Illume_Quickpanel_State ecore_x_e_illume_quickpanel_state_get(Ecore_X_Window win);
1561 EAPI void ecore_x_e_illume_quickpanel_state_send(Ecore_X_Window win, Ecore_X_Illume_Quickpanel_State state);
1562 EAPI void ecore_x_e_illume_quickpanel_state_toggle(Ecore_X_Window win);
1563 EAPI void ecore_x_e_illume_quickpanel_priority_major_set(Ecore_X_Window win, unsigned int priority);
1564 EAPI int ecore_x_e_illume_quickpanel_priority_major_get(Ecore_X_Window win);
1565 EAPI void ecore_x_e_illume_quickpanel_priority_minor_set(Ecore_X_Window win, unsigned int priority);
1566 EAPI int ecore_x_e_illume_quickpanel_priority_minor_get(Ecore_X_Window win);
1567 EAPI void ecore_x_e_illume_quickpanel_zone_set(Ecore_X_Window win, unsigned int zone);
1568 EAPI int ecore_x_e_illume_quickpanel_zone_get(Ecore_X_Window win);
1569 EAPI void ecore_x_e_illume_quickpanel_zone_request_send(Ecore_X_Window win);
1570 EAPI void ecore_x_e_illume_quickpanel_position_update_send(Ecore_X_Window win);
1572 EAPI void ecore_x_e_illume_clipboard_state_set(Ecore_X_Window win, Ecore_X_Illume_Clipboard_State state);
1574 EAPI Ecore_X_Illume_Clipboard_State ecore_x_e_illume_clipboard_state_get(Ecore_X_Window win);
1576 EAPI void ecore_x_e_illume_clipboard_geometry_set(Ecore_X_Window win, int x, int y, int w, int h);
1577 EAPI Eina_Bool ecore_x_e_illume_clipboard_geometry_get(Ecore_X_Window win, int *x, int *y, int *w, int *h);
1578 EAPI void ecore_x_e_comp_sync_counter_set(Ecore_X_Window win, Ecore_X_Sync_Counter counter);
1579 EAPI Ecore_X_Sync_Counter ecore_x_e_comp_sync_counter_get(Ecore_X_Window win);
1580 EAPI void ecore_x_e_comp_sync_draw_done_send(Ecore_X_Window root, Ecore_X_Window win);
1581 EAPI void ecore_x_e_comp_sync_draw_size_done_send(Ecore_X_Window root, Ecore_X_Window win, int w, int h);
1582 EAPI void ecore_x_e_comp_sync_supported_set(Ecore_X_Window root, Eina_Bool enabled);
1583 EAPI Eina_Bool ecore_x_e_comp_sync_supported_get(Ecore_X_Window root);
1584 EAPI void ecore_x_e_comp_sync_begin_send(Ecore_X_Window win);
1585 EAPI void ecore_x_e_comp_sync_end_send(Ecore_X_Window win);
1586 EAPI void ecore_x_e_comp_sync_cancel_send(Ecore_X_Window win);
1588 EAPI void ecore_x_e_comp_flush_send(Ecore_X_Window win);
1589 EAPI void ecore_x_e_comp_dump_send(Ecore_X_Window win);
1590 EAPI void ecore_x_e_comp_pixmap_set(Ecore_X_Window win, Ecore_X_Pixmap pixmap);
1591 EAPI Ecore_X_Pixmap ecore_x_e_comp_pixmap_get(Ecore_X_Window win);
1593 EAPI Ecore_X_Sync_Alarm ecore_x_sync_alarm_new(Ecore_X_Sync_Counter counter);
1594 EAPI Eina_Bool ecore_x_sync_alarm_free(Ecore_X_Sync_Alarm alarm);
1595 EAPI Eina_Bool ecore_x_sync_counter_query(Ecore_X_Sync_Counter counter, unsigned int *val);
1596 EAPI Ecore_X_Sync_Counter ecore_x_sync_counter_new(int val);
1597 EAPI void ecore_x_sync_counter_free(Ecore_X_Sync_Counter counter);
1598 EAPI void ecore_x_sync_counter_inc(Ecore_X_Sync_Counter counter, int by);
1599 EAPI void ecore_x_sync_counter_val_wait(Ecore_X_Sync_Counter counter, int val);
1601 EAPI void ecore_x_sync_counter_set(Ecore_X_Sync_Counter counter, int val);
1602 EAPI void ecore_x_sync_counter_2_set(Ecore_X_Sync_Counter counter, int val_hi, unsigned int val_lo);
1603 EAPI Eina_Bool ecore_x_sync_counter_2_query(Ecore_X_Sync_Counter counter, int *val_hi, unsigned int *val_lo);
1605 EAPI int ecore_x_xinerama_screen_count_get(void);
1606 EAPI Eina_Bool ecore_x_xinerama_screen_geometry_get(int screen, int *x, int *y, int *w, int *h);
1608 EAPI Eina_Bool ecore_x_screensaver_event_available_get(void);
1609 EAPI int ecore_x_screensaver_idle_time_get(void);
1610 EAPI void ecore_x_screensaver_set(int timeout, int interval, int prefer_blanking, int allow_exposures);
1611 EAPI void ecore_x_screensaver_timeout_set(int timeout);
1612 EAPI int ecore_x_screensaver_timeout_get(void);
1613 EAPI void ecore_x_screensaver_blank_set(int timeout);
1614 EAPI int ecore_x_screensaver_blank_get(void);
1615 EAPI void ecore_x_screensaver_expose_set(int timeout);
1616 EAPI int ecore_x_screensaver_expose_get(void);
1617 EAPI void ecore_x_screensaver_interval_set(int timeout);
1618 EAPI int ecore_x_screensaver_interval_get(void);
1619 EAPI void ecore_x_screensaver_event_listen_set(Eina_Bool on);
1621 /* FIXME: these funcs need categorising */
1623 typedef struct _Ecore_X_Window_Attributes
1625 Ecore_X_Window root;
1629 Eina_Bool visible : 1;
1630 Eina_Bool viewable : 1;
1631 Eina_Bool override : 1;
1632 Eina_Bool input_only : 1;
1633 Eina_Bool save_under : 1;
1636 Ecore_X_Event_Mask mine;
1637 Ecore_X_Event_Mask all;
1638 Ecore_X_Event_Mask no_propagate;
1640 Ecore_X_Gravity window_gravity;
1641 Ecore_X_Gravity pixel_gravity;
1642 Ecore_X_Colormap colormap;
1643 Ecore_X_Visual visual;
1645 * int map_installed;
1648 } Ecore_X_Window_Attributes;
1650 EAPI Eina_Bool ecore_x_window_attributes_get(Ecore_X_Window win, Ecore_X_Window_Attributes *att_ret);
1651 EAPI void ecore_x_window_save_set_add(Ecore_X_Window win);
1652 EAPI void ecore_x_window_save_set_del(Ecore_X_Window win);
1653 EAPI Ecore_X_Window *ecore_x_window_children_get(Ecore_X_Window win, int *num);
1655 EAPI Eina_Bool ecore_x_pointer_control_set(int accel_num, int accel_denom, int threshold);
1656 EAPI Eina_Bool ecore_x_pointer_control_get(int *accel_num, int *accel_denom, int *threshold);
1657 EAPI Eina_Bool ecore_x_pointer_mapping_set(unsigned char *map, int nmap);
1658 EAPI Eina_Bool ecore_x_pointer_mapping_get(unsigned char *map, int nmap);
1659 EAPI Eina_Bool ecore_x_pointer_grab(Ecore_X_Window win);
1660 EAPI Eina_Bool ecore_x_pointer_confine_grab(Ecore_X_Window win);
1661 EAPI void ecore_x_pointer_ungrab(void);
1662 EAPI Eina_Bool ecore_x_pointer_warp(Ecore_X_Window win, int x, int y);
1663 EAPI Eina_Bool ecore_x_keyboard_grab(Ecore_X_Window win);
1664 EAPI void ecore_x_keyboard_ungrab(void);
1665 EAPI void ecore_x_grab(void);
1666 EAPI void ecore_x_ungrab(void);
1667 EAPI void ecore_x_passive_grab_replay_func_set(Eina_Bool (*func)(void *data, int event_type, void *event), void *data);
1668 EAPI void ecore_x_window_button_grab(Ecore_X_Window win, int button, Ecore_X_Event_Mask event_mask, int mod, int any_mod);
1669 EAPI void ecore_x_window_button_ungrab(Ecore_X_Window win, int button, int mod, int any_mod);
1670 EAPI void ecore_x_window_key_grab(Ecore_X_Window win, const char *key, int mod, int any_mod);
1671 EAPI void ecore_x_window_key_ungrab(Ecore_X_Window win, const char *key, int mod, int any_mod);
1673 EAPI void ecore_x_focus_reset(void);
1674 EAPI void ecore_x_events_allow_all(void);
1675 EAPI void ecore_x_pointer_last_xy_get(int *x, int *y);
1676 EAPI void ecore_x_pointer_xy_get(Ecore_X_Window win, int *x, int *y);
1678 /* ecore_x_region.c */
1679 EAPI Ecore_X_XRegion *ecore_x_xregion_new(void);
1680 EAPI void ecore_x_xregion_free(Ecore_X_XRegion *region);
1681 EAPI Eina_Bool ecore_x_xregion_set(Ecore_X_XRegion *region, Ecore_X_GC gc);
1682 EAPI void ecore_x_xregion_translate(Ecore_X_XRegion *region, int x, int y);
1683 EAPI Eina_Bool ecore_x_xregion_intersect(Ecore_X_XRegion *dst, Ecore_X_XRegion *r1, Ecore_X_XRegion *r2);
1684 EAPI Eina_Bool ecore_x_xregion_union(Ecore_X_XRegion *dst, Ecore_X_XRegion *r1, Ecore_X_XRegion *r2);
1685 EAPI Eina_Bool ecore_x_xregion_union_rect(Ecore_X_XRegion *dst, Ecore_X_XRegion *src, Ecore_X_Rectangle *rect);
1686 EAPI Eina_Bool ecore_x_xregion_subtract(Ecore_X_XRegion *dst, Ecore_X_XRegion *r1, Ecore_X_XRegion *r2);
1687 EAPI Eina_Bool ecore_x_xregion_is_empty(Ecore_X_XRegion *region);
1688 EAPI Eina_Bool ecore_x_xregion_is_equal(Ecore_X_XRegion *r1, Ecore_X_XRegion *r2);
1689 EAPI Eina_Bool ecore_x_xregion_point_contain(Ecore_X_XRegion *region, int x, int y);
1690 EAPI Eina_Bool ecore_x_xregion_rect_contain(Ecore_X_XRegion *region, Ecore_X_Rectangle *rect);
1692 /* ecore_x_randr.c */
1694 /* The usage of 'Ecore_X_Randr_None' or 'Ecore_X_Randr_Unset'
1695 * depends on the context. In most cases 'Ecore_X_Randr_Unset'
1696 * can be used, but in some cases -1 is a special value to
1697 * functions, thus 'Ecore_X_Randr_None' (=0) must be used.
1700 typedef short Ecore_X_Randr_Refresh_Rate;
1701 typedef int Ecore_X_Randr_Crtc_Gamma;
1702 typedef int Ecore_X_Randr_Signal_Format;
1703 typedef int Ecore_X_Randr_Signal_Property;
1704 typedef int Ecore_X_Randr_Connector_Type;
1706 typedef struct _Ecore_X_Randr_Mode_Info
1710 unsigned int height;
1711 unsigned long dotClock;
1712 unsigned int hSyncStart;
1713 unsigned int hSyncEnd;
1714 unsigned int hTotal;
1716 unsigned int vSyncStart;
1717 unsigned int vSyncEnd;
1718 unsigned int vTotal;
1720 unsigned int nameLength;
1721 unsigned long modeFlags;
1722 } Ecore_X_Randr_Mode_Info;
1724 EAPI int ecore_x_randr_version_get(void);
1725 EAPI Eina_Bool ecore_x_randr_query(void);
1727 /* ecore_x_randr_11.c */
1728 EAPI Ecore_X_Randr_Orientation ecore_x_randr_screen_primary_output_orientations_get(Ecore_X_Window root);
1729 EAPI Ecore_X_Randr_Orientation ecore_x_randr_screen_primary_output_orientation_get(Ecore_X_Window root);
1730 EAPI Eina_Bool ecore_x_randr_screen_primary_output_orientation_set(Ecore_X_Window root, Ecore_X_Randr_Orientation orientation);
1731 EAPI Ecore_X_Randr_Screen_Size_MM *ecore_x_randr_screen_primary_output_sizes_get(Ecore_X_Window root, int *num);
1734 * @brief get the current set size of a given screen's primary output
1735 * @param root window which's primary output will be queried
1736 * @param w the current size's width
1737 * @param h the current size's height
1738 * @param w_mm the current size's width in mm
1739 * @param h_mm the current size's height in mm
1740 * @param size_index of current set size to be used with ecore_x_randr_primary_output_size_set()
1742 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);
1743 EAPI Eina_Bool ecore_x_randr_screen_primary_output_size_set(Ecore_X_Window root, int size_index);
1744 EAPI Ecore_X_Randr_Refresh_Rate ecore_x_randr_screen_primary_output_current_refresh_rate_get(Ecore_X_Window root);
1745 EAPI Ecore_X_Randr_Refresh_Rate *ecore_x_randr_screen_primary_output_refresh_rates_get(Ecore_X_Window root, int size_index, int *num);
1746 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);
1748 /* ecore_x_randr_12.c */
1749 EAPI void ecore_x_randr_events_select(Ecore_X_Window win, Eina_Bool on);
1751 EAPI void ecore_x_randr_screen_current_size_get(Ecore_X_Window root, int *w, int *h, int *w_mm, int *h_mm);
1752 EAPI void ecore_x_randr_screen_size_range_get(Ecore_X_Window root, int *wmin, int *hmin, int *wmax, int *hmax);
1753 EAPI void ecore_x_randr_screen_reset(Ecore_X_Window root);
1754 EAPI Eina_Bool ecore_x_randr_screen_current_size_set(Ecore_X_Window root, int w, int h, int w_mm, int h_mm);
1755 EAPI Ecore_X_Randr_Mode_Info **ecore_x_randr_modes_info_get(Ecore_X_Window root, int *num);
1756 EAPI Ecore_X_Randr_Mode ecore_x_randr_mode_info_add(Ecore_X_Window root, Ecore_X_Randr_Mode_Info *mode_info);
1757 EAPI void ecore_x_randr_mode_del(Ecore_X_Randr_Mode mode);
1758 EAPI Ecore_X_Randr_Mode_Info *ecore_x_randr_mode_info_get(Ecore_X_Window root, Ecore_X_Randr_Mode mode);
1759 EAPI void ecore_x_randr_mode_info_free(Ecore_X_Randr_Mode_Info *mode_info);
1760 EAPI Ecore_X_Randr_Crtc *ecore_x_randr_crtcs_get(Ecore_X_Window root, int *num);
1761 EAPI Ecore_X_Randr_Output *ecore_x_randr_outputs_get(Ecore_X_Window root, int *num);
1762 EAPI Ecore_X_Randr_Output *ecore_x_randr_window_outputs_get(Ecore_X_Window window, int *num);
1763 EAPI Ecore_X_Randr_Output *ecore_x_randr_current_output_get(Ecore_X_Window window, int *num);
1764 EAPI Ecore_X_Randr_Crtc *ecore_x_randr_window_crtcs_get(Ecore_X_Window window, int *num);
1765 EAPI Ecore_X_Randr_Crtc *ecore_x_randr_current_crtc_get(Ecore_X_Window window, int *num);
1766 EAPI Ecore_X_Randr_Output *ecore_x_randr_crtc_outputs_get(Ecore_X_Window root, Ecore_X_Randr_Crtc crtc, int *num);
1767 EAPI Ecore_X_Randr_Output *ecore_x_randr_crtc_possible_outputs_get(Ecore_X_Window root, Ecore_X_Randr_Crtc crtc, int *num);
1768 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);
1769 EAPI void ecore_x_randr_crtc_pos_get(Ecore_X_Window root, Ecore_X_Randr_Crtc crtc, int *x, int *y);
1770 EAPI Eina_Bool ecore_x_randr_crtc_pos_set(Ecore_X_Window root, Ecore_X_Randr_Crtc crtc, int x, int y);
1771 EAPI Ecore_X_Randr_Mode ecore_x_randr_crtc_mode_get(Ecore_X_Window root, Ecore_X_Randr_Crtc crtc);
1772 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);
1773 EAPI void ecore_x_randr_crtc_size_get(Ecore_X_Window root, Ecore_X_Randr_Crtc crtc, int *w, int *h);
1774 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);
1775 EAPI Ecore_X_Randr_Orientation ecore_x_randr_crtc_orientations_get(Ecore_X_Window root, Ecore_X_Randr_Crtc crtc);
1776 EAPI Ecore_X_Randr_Orientation ecore_x_randr_crtc_orientation_get(Ecore_X_Window root, Ecore_X_Randr_Crtc crtc);
1777 EAPI Eina_Bool ecore_x_randr_crtc_orientation_set(Ecore_X_Window root, Ecore_X_Randr_Crtc crtc, const Ecore_X_Randr_Orientation orientation);
1778 EAPI Eina_Bool ecore_x_randr_crtc_clone_set(Ecore_X_Window root, Ecore_X_Randr_Crtc original, Ecore_X_Randr_Crtc clone);
1779 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);
1780 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);
1781 EAPI Eina_Bool ecore_x_randr_output_mode_add(Ecore_X_Randr_Output output, Ecore_X_Randr_Mode mode);
1782 EAPI void ecore_x_randr_output_mode_del(Ecore_X_Randr_Output output, Ecore_X_Randr_Mode mode);
1783 EAPI Ecore_X_Randr_Mode *ecore_x_randr_output_modes_get(Ecore_X_Window root, Ecore_X_Randr_Output output, int *num, int *npreferred);
1784 EAPI Ecore_X_Randr_Output *ecore_x_randr_output_clones_get(Ecore_X_Window root, Ecore_X_Randr_Output output, int *num);
1785 EAPI Ecore_X_Randr_Crtc *ecore_x_randr_output_possible_crtcs_get(Ecore_X_Window root, Ecore_X_Randr_Output output, int *num);
1786 EAPI Ecore_X_Randr_Crtc ecore_x_randr_output_crtc_get(Ecore_X_Window root, Ecore_X_Randr_Output output);
1787 EAPI char *ecore_x_randr_output_name_get(Ecore_X_Window root, Ecore_X_Randr_Output output, int *len);
1788 EAPI int ecore_x_randr_crtc_gamma_ramp_size_get(Ecore_X_Randr_Crtc crtc);
1789 EAPI Ecore_X_Randr_Crtc_Gamma **ecore_x_randr_crtc_gamma_ramps_get(Ecore_X_Randr_Crtc crtc);
1790 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);
1791 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);
1792 EAPI Eina_Bool ecore_x_randr_move_crtcs(Ecore_X_Window root, const Ecore_X_Randr_Crtc *crtcs, int ncrtc, int dx, int dy);
1793 EAPI void ecore_x_randr_mode_size_get(Ecore_X_Window root, Ecore_X_Randr_Mode mode, int *w, int *h);
1794 EAPI Ecore_X_Randr_Connection_Status ecore_x_randr_output_connection_status_get(Ecore_X_Window root, Ecore_X_Randr_Output output);
1795 EAPI void ecore_x_randr_output_size_mm_get(Ecore_X_Window root, Ecore_X_Randr_Output output, int *w, int *h);
1796 EAPI Eina_Bool ecore_x_randr_output_crtc_set(Ecore_X_Window root, Ecore_X_Randr_Output output, const Ecore_X_Randr_Crtc crtc);
1798 /* ecore_x_randr_12_edid.c */
1801 * @brief Validates the header from raw EDID data.
1803 * @param edid The edid structure.
1804 * @param edid_length Length of the edid structure.
1805 * @return @c EINA_TRUE, if the header is valid, @c EINA_FALSE otherwise.
1807 EAPI Eina_Bool ecore_x_randr_edid_has_valid_header(unsigned char *edid, unsigned long edid_length);
1810 * @brief Checks whether a display's EDID has a valid checksum.
1812 * @param edid The edid structure.
1813 * @param edid_length Length of the edid structure.
1814 * @return @c EINA_TRUE, if the checksum is valid, @c EINA_FALSE otherwise.
1816 EAPI Eina_Bool ecore_x_randr_edid_info_has_valid_checksum(unsigned char *edid, unsigned long edid_length);
1819 * @brief Get the encoded version from raw EDID data.
1821 * The return value has the minor version in the lowest 8 bits, and the major
1822 * version in all the rest of the bits. i.e.
1824 * minor = (version & 0x000000ff);
1825 * major = (version & 0xffffff00) >> 8;
1827 * @param edid the edid structure
1828 * @param edid_length length of the edid structure
1829 * @return The encoded major and minor version encasuplated an int.
1831 EAPI int ecore_x_randr_edid_version_get(unsigned char *edid, unsigned long edid_length);
1834 * @brief Get the encoded manufacturer from raw EDID data.
1836 * @param edid the edid structure
1837 * @param edid_length length of the edid structure
1838 * @return The encoded manufacturer identifier.
1840 EAPI char *ecore_x_randr_edid_manufacturer_name_get(unsigned char *edid, unsigned long edid_length);
1843 * @brief Get the encoded name from raw EDID data.
1845 * @param edid the edid structure
1846 * @param edid_length length of the edid structure
1847 * @return The encoded manufacturer identifier.
1849 EAPI char *ecore_x_randr_edid_display_name_get(unsigned char *edid, unsigned long edid_length);
1852 * @brief Get the encoded ASCII from raw EDID data.
1854 * @param edid the edid structure
1855 * @param edid_length length of the edid structure
1856 * @return The encoded ASCII display identifier.
1858 EAPI char *ecore_x_randr_edid_display_ascii_get(unsigned char *edid, unsigned long edid_length);
1861 * @brief Get the encoded serial identifier from raw EDID data.
1863 * @param edid the edid structure
1864 * @param edid_length length of the edid structure
1865 * @return The encoded serial identifier.
1867 EAPI char *ecore_x_randr_edid_display_serial_get(unsigned char *edid, unsigned long edid_length);
1870 * @brief Get the encoded model number from raw EDID data.
1872 * The manufacturer ID table is necessary for a useful description.
1874 * @param edid the edid structure
1875 * @param edid_length length of the edid structure
1876 * @return The encoded model number.
1878 EAPI int ecore_x_randr_edid_model_get(unsigned char *edid, unsigned long edid_length);
1881 * @brief Get the manufacturer serial number from raw EDID data.
1883 * @param edid the edid structure
1884 * @param edid_length length of the edid structure
1885 * @return The encoded serial manufacturer serial number.
1887 EAPI int ecore_x_randr_edid_manufacturer_serial_number_get(unsigned char *edid, unsigned long edid_length);
1890 * @brief Get the manufacturer model number from raw EDID data.
1892 * @param edid the edid structure
1893 * @param edid_length length of the edid structure
1894 * @return The manufacturer's model number.
1896 EAPI int ecore_x_randr_edid_manufacturer_model_get(unsigned char *edid, unsigned long edid_length);
1899 * @brief Looks up the DPMS support from raw EDID data.
1901 * @param edid The edid structure.
1902 * @param edid_length Length of the edid structure.
1903 * @return @c EINA_TRUE, if DPMS is supported in some way, @c EINA_FALSE
1906 EAPI Eina_Bool ecore_x_randr_edid_dpms_available_get(unsigned char *edid, unsigned long edid_length);
1909 * @brief Looks up the DPMS Standby support from raw EDID data.
1911 * @param edid The edid structure.
1912 * @param edid_length Length of the edid structure.
1913 * @return @c EINA_TRUE, if DPMS Standby is supported, @c EINA_FALSE otherwise.
1915 EAPI Eina_Bool ecore_x_randr_edid_dpms_standby_available_get(unsigned char *edid, unsigned long edid_length);
1918 * @brief Looks up the DPMS Suspend support from raw EDID data.
1920 * @param edid The edid structure.
1921 * @param edid_length Length of the edid structure.
1922 * @return @c EINA_TRUE, if DPMS Suspend is supported, @c EINA_FALSE otherwise.
1924 EAPI Eina_Bool ecore_x_randr_edid_dpms_suspend_available_get(unsigned char *edid, unsigned long edid_length);
1927 * @brief Looks up the DPMS Off support from raw EDID data.
1929 * @param edid The edid structure.
1930 * @param edid_length Length of the edid structure.
1931 * @return @c EINA_TRUE, if DPMS Off is supported, @c EINA_FALSE otherwise.
1933 EAPI Eina_Bool ecore_x_randr_edid_dpms_off_available_get(unsigned char *edid, unsigned long edid_length);
1936 * @brief Get the preferred aspect ratio from raw EDID data.
1938 * @param edid the edid structure
1939 * @param edid_length length of the edid structure
1940 * @return The preferred aspect ratio.
1942 EAPI Ecore_X_Randr_Edid_Aspect_Ratio ecore_x_randr_edid_display_aspect_ratio_preferred_get(unsigned char *edid, unsigned long edid_length);
1945 * @brief Get the supported aspect ratios from raw EDID data.
1947 * @param edid the edid structure
1948 * @param edid_length length of the edid structure
1949 * @return The supported aspect ratios.
1951 EAPI Ecore_X_Randr_Edid_Aspect_Ratio ecore_x_randr_edid_display_aspect_ratios_get(unsigned char *edid, unsigned long edid_length);
1954 * @brief Get the supported colorschemes from raw EDID data.
1956 * @param edid the edid structure
1957 * @param edid_length length of the edid structure
1958 * @return The supported colorschemes.
1960 EAPI Ecore_X_Randr_Edid_Display_Colorscheme ecore_x_randr_edid_display_colorscheme_get(unsigned char *edid, unsigned long edid_length);
1963 * @brief Get the display type from raw EDID data.
1965 * @param edid The edid structure.
1966 * @param edid_length Length of the edid structure.
1967 * @return @c EINA_TRUE, if the display is a digital one, @c EINA_FALSE
1970 EAPI Eina_Bool ecore_x_randr_edid_display_type_digital_get(unsigned char *edid, unsigned long edid_length);
1973 * @brief Get the display interface type from raw EDID data.
1975 * @param edid the edid structure
1976 * @param edid_length length of the edid structure
1977 * @return The interface type.
1979 EAPI Ecore_X_Randr_Edid_Display_Interface_Type ecore_x_randr_edid_display_interface_type_get(unsigned char *edid, unsigned long edid_length);
1981 /* ecore_x_randr_12.c */
1983 EAPI Eina_Bool ecore_x_randr_output_backlight_available(void);
1984 EAPI void ecore_x_randr_screen_backlight_level_set(Ecore_X_Window root, double level);
1985 EAPI double ecore_x_randr_output_backlight_level_get(Ecore_X_Window root, Ecore_X_Randr_Output output);
1986 EAPI Eina_Bool ecore_x_randr_output_backlight_level_set(Ecore_X_Window root, Ecore_X_Randr_Output output, double level);
1987 EAPI Ecore_X_Randr_Output ecore_x_randr_primary_output_get(Ecore_X_Window root);
1988 EAPI void ecore_x_randr_primary_output_set(Ecore_X_Window root, Ecore_X_Randr_Output output);
1989 EAPI Ecore_X_Render_Subpixel_Order ecore_x_randr_output_subpixel_order_get(Ecore_X_Window root, Ecore_X_Randr_Output output);
1990 EAPI unsigned char *ecore_x_randr_output_edid_get(Ecore_X_Window root, Ecore_X_Randr_Output output, unsigned long *length);
1991 EAPI Ecore_X_Randr_Output *ecore_x_randr_output_wired_clones_get(Ecore_X_Window root, Ecore_X_Randr_Output output, int *num);
1992 EAPI Ecore_X_Randr_Output **ecore_x_randr_output_compatibility_list_get(Ecore_X_Window root, Ecore_X_Randr_Output output, int *num);
1993 EAPI Ecore_X_Randr_Signal_Format *ecore_x_randr_output_signal_formats_get(Ecore_X_Window root, Ecore_X_Randr_Output output, int *num);
1994 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);
1995 EAPI Ecore_X_Randr_Signal_Property *ecore_x_randr_output_signal_properties_get(Ecore_X_Window root, Ecore_X_Randr_Output output, int *num);
1996 EAPI int ecore_x_randr_output_connector_number_get(Ecore_X_Window root, Ecore_X_Randr_Output output);
1997 EAPI Ecore_X_Randr_Connector_Type ecore_x_randr_output_connector_type_get(Ecore_X_Window root, Ecore_X_Randr_Output output);
1998 EAPI Eina_Rectangle *ecore_x_randr_crtc_panning_area_get(Ecore_X_Window root, Ecore_X_Randr_Crtc crtc, int *x, int *y, int *w, int *h);
1999 EAPI Eina_Bool ecore_x_randr_crtc_panning_area_set(Ecore_X_Window root, Ecore_X_Randr_Crtc crtc, int x, const int y, const int w, const int h);
2000 EAPI Eina_Rectangle *ecore_x_randr_crtc_tracking_area_get(Ecore_X_Window root, Ecore_X_Randr_Crtc crtc, int *x, int *y, int *w, int *h);
2001 EAPI Eina_Bool ecore_x_randr_crtc_tracking_area_set(Ecore_X_Window root, Ecore_X_Randr_Crtc crtc, int x, const int y, const int w, const int h);
2002 EAPI Eina_Rectangle *ecore_x_randr_crtc_border_area_get(Ecore_X_Window root, Ecore_X_Randr_Crtc crtc);
2003 EAPI Eina_Bool ecore_x_randr_crtc_border_area_set(Ecore_X_Window root, Ecore_X_Randr_Crtc crtc, int left, const int top, const int right, const int bottom);
2005 /* XRender Support (horrendously incomplete) */
2006 typedef Ecore_X_ID Ecore_X_Picture;
2008 /* XFixes Extension Support */
2009 typedef Ecore_X_ID Ecore_X_Region;
2011 typedef enum _Ecore_X_Region_Type
2013 ECORE_X_REGION_BOUNDING,
2015 } Ecore_X_Region_Type;
2017 EAPI Ecore_X_Region ecore_x_region_new(Ecore_X_Rectangle *rects, int num);
2018 EAPI Ecore_X_Region ecore_x_region_new_from_bitmap(Ecore_X_Pixmap bitmap);
2019 EAPI Ecore_X_Region ecore_x_region_new_from_window(Ecore_X_Window win, Ecore_X_Region_Type type);
2020 EAPI Ecore_X_Region ecore_x_region_new_from_gc(Ecore_X_GC gc);
2021 EAPI Ecore_X_Region ecore_x_region_new_from_picture(Ecore_X_Picture picture);
2022 EAPI void ecore_x_region_free(Ecore_X_Region region);
2023 EAPI void ecore_x_region_set(Ecore_X_Region region, Ecore_X_Rectangle *rects, int num);
2024 EAPI void ecore_x_region_copy(Ecore_X_Region dest, Ecore_X_Region source);
2025 EAPI void ecore_x_region_combine(Ecore_X_Region dest, Ecore_X_Region source1, Ecore_X_Region source2);
2026 EAPI void ecore_x_region_intersect(Ecore_X_Region dest, Ecore_X_Region source1, Ecore_X_Region source2);
2027 EAPI void ecore_x_region_subtract(Ecore_X_Region dest, Ecore_X_Region source1, Ecore_X_Region source2);
2028 EAPI void ecore_x_region_invert(Ecore_X_Region dest, Ecore_X_Rectangle *bounds, Ecore_X_Region source);
2029 EAPI void ecore_x_region_translate(Ecore_X_Region region, int dx, int dy);
2030 EAPI void ecore_x_region_extents(Ecore_X_Region dest, Ecore_X_Region source);
2031 EAPI Ecore_X_Rectangle *ecore_x_region_fetch(Ecore_X_Region region, int *num, Ecore_X_Rectangle *bounds);
2032 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);
2033 EAPI void ecore_x_region_gc_clip_set(Ecore_X_Region region, Ecore_X_GC gc, int x_origin, int y_origin);
2034 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);
2035 EAPI void ecore_x_region_picture_clip_set(Ecore_X_Region region, Ecore_X_Picture picture, int x_origin, int y_origin);
2038 * xfixes selection notification request.
2040 * This lets you choose which selections you want to get notifications for.
2041 * @param selection The selection atom.
2042 * @return @c EINA_TRUE on success, @c EINA_FALSE otherwise.
2045 EAPI Eina_Bool ecore_x_fixes_selection_notification_request(Ecore_X_Atom selection);
2047 /* XComposite Extension Support */
2048 EAPI Eina_Bool ecore_x_composite_query(void);
2049 EAPI void ecore_x_composite_redirect_window(Ecore_X_Window win, Ecore_X_Composite_Update_Type type);
2050 EAPI void ecore_x_composite_redirect_subwindows(Ecore_X_Window win, Ecore_X_Composite_Update_Type type);
2051 EAPI void ecore_x_composite_unredirect_window(Ecore_X_Window win, Ecore_X_Composite_Update_Type type);
2052 EAPI void ecore_x_composite_unredirect_subwindows(Ecore_X_Window win, Ecore_X_Composite_Update_Type type);
2053 EAPI Ecore_X_Pixmap ecore_x_composite_name_window_pixmap_get(Ecore_X_Window win);
2054 EAPI void ecore_x_composite_window_events_disable(Ecore_X_Window win);
2055 EAPI void ecore_x_composite_window_events_enable(Ecore_X_Window win);
2056 EAPI Ecore_X_Window ecore_x_composite_render_window_enable(Ecore_X_Window root);
2057 EAPI void ecore_x_composite_render_window_disable(Ecore_X_Window root);
2059 /* XDamage Extension Support */
2060 typedef Ecore_X_ID Ecore_X_Damage;
2062 typedef enum _Ecore_X_Damage_Report_Level
2064 ECORE_X_DAMAGE_REPORT_RAW_RECTANGLES,
2065 ECORE_X_DAMAGE_REPORT_DELTA_RECTANGLES,
2066 ECORE_X_DAMAGE_REPORT_BOUNDING_BOX,
2067 ECORE_X_DAMAGE_REPORT_NON_EMPTY
2068 } Ecore_X_Damage_Report_Level;
2070 struct _Ecore_X_Event_Damage
2072 Ecore_X_Damage_Report_Level level;
2073 Ecore_X_Drawable drawable;
2074 Ecore_X_Damage damage;
2077 Ecore_X_Rectangle area;
2078 Ecore_X_Rectangle geometry;
2081 typedef struct _Ecore_X_Event_Damage Ecore_X_Event_Damage;
2083 EAPI Eina_Bool ecore_x_damage_query(void);
2084 EAPI Ecore_X_Damage ecore_x_damage_new(Ecore_X_Drawable d, Ecore_X_Damage_Report_Level level);
2085 EAPI void ecore_x_damage_free(Ecore_X_Damage damage);
2086 EAPI void ecore_x_damage_subtract(Ecore_X_Damage damage, Ecore_X_Region repair, Ecore_X_Region parts);
2088 EAPI Eina_Bool ecore_x_screen_is_composited(int screen);
2089 EAPI void ecore_x_screen_is_composited_set(int screen, Ecore_X_Window win);
2091 EAPI Eina_Bool ecore_x_dpms_query(void);
2092 EAPI Eina_Bool ecore_x_dpms_capable_get(void);
2093 EAPI Eina_Bool ecore_x_dpms_enabled_get(void);
2094 EAPI void ecore_x_dpms_enabled_set(int enabled);
2095 EAPI void ecore_x_dpms_timeouts_get(unsigned int *standby, unsigned int *suspend, unsigned int *off);
2096 EAPI Eina_Bool ecore_x_dpms_timeouts_set(unsigned int standby, unsigned int suspend, unsigned int off);
2097 EAPI unsigned int ecore_x_dpms_timeout_standby_get(void);
2098 EAPI unsigned int ecore_x_dpms_timeout_suspend_get(void);
2099 EAPI unsigned int ecore_x_dpms_timeout_off_get(void);
2100 EAPI void ecore_x_dpms_timeout_standby_set(unsigned int new_timeout);
2101 EAPI void ecore_x_dpms_timeout_suspend_set(unsigned int new_timeout);
2102 EAPI void ecore_x_dpms_timeout_off_set(unsigned int new_timeout);
2104 EAPI Eina_Bool ecore_x_test_fake_key_down(const char *key);
2105 EAPI Eina_Bool ecore_x_test_fake_key_up(const char *key);
2106 EAPI Eina_Bool ecore_x_test_fake_key_press(const char *key);
2107 EAPI const char *ecore_x_keysym_string_get(int keysym);
2110 * Given a keyname, return the keycode representing that key
2111 * @param keyname The key from which to get the keycode.
2112 * @return The keycode of the key.
2116 EAPI int ecore_x_keysym_keycode_get(const char *keyname);
2118 typedef struct _Ecore_X_Image Ecore_X_Image;
2120 EAPI Ecore_X_Image *ecore_x_image_new(int w, int h, Ecore_X_Visual vis, int depth);
2121 EAPI void ecore_x_image_free(Ecore_X_Image *im);
2122 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);
2123 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);
2124 EAPI void *ecore_x_image_data_get(Ecore_X_Image *im, int *bpl, int *rows, int *bpp);
2125 EAPI Eina_Bool ecore_x_image_is_argb32_get(Ecore_X_Image *im);
2127 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);
2129 EAPI Eina_Bool ecore_x_input_multi_select(Ecore_X_Window win);
2131 EAPI Eina_Bool ecore_x_vsync_animator_tick_source_set(Ecore_X_Window win);
2133 typedef enum _Ecore_X_Gesture_Event_Mask
2135 ECORE_X_GESTURE_EVENT_MASK_NONE = 0L,
2136 ECORE_X_GESTURE_EVENT_MASK_FLICK = (1L << 0),
2137 ECORE_X_GESTURE_EVENT_MASK_PAN = (1L << 1),
2138 ECORE_X_GESTURE_EVENT_MASK_PINCHROTATION = (1L << 2),
2139 ECORE_X_GESTURE_EVENT_MASK_TAP = (1L << 3),
2140 ECORE_X_GESTURE_EVENT_MASK_TAPNHOLD = (1L << 4),
2141 ECORE_X_GESTURE_EVENT_MASK_HOLD = (1L << 5),
2142 ECORE_X_GESTURE_EVENT_MASK_GROUP = (1L << 6)
2143 } Ecore_X_Gesture_Event_Mask;
2145 typedef enum _Ecore_X_Gesture_Event_Type
2147 ECORE_X_GESTURE_EVENT_FLICK,
2148 ECORE_X_GESTURE_EVENT_PAN,
2149 ECORE_X_GESTURE_EVENT_PINCHROTATION,
2150 ECORE_X_GESTURE_EVENT_TAP,
2151 ECORE_X_GESTURE_EVENT_TAPNHOLD,
2152 ECORE_X_GESTURE_EVENT_HOLD,
2153 ECORE_X_GESTURE_EVENT_GROUP
2154 } Ecore_X_Gesture_Event_Type;
2156 typedef enum _Ecore_X_Gesture_Event_Subtype
2158 ECORE_X_GESTURE_END,
2159 ECORE_X_GESTURE_BEGIN,
2160 ECORE_X_GESTURE_UPDATE,
2161 ECORE_X_GESTURE_DONE
2162 } Ecore_X_Gesture_Event_Subtype;
2164 typedef enum _Ecore_X_Gesture_Group_Subtype
2166 ECORE_X_GESTURE_GROUP_REMOVED,
2167 ECORE_X_GESTURE_GROUP_ADDED,
2168 ECORE_X_GESTURE_GROUP_CURRENT
2169 } Ecore_X_Gesture_Group_Subtype;
2171 typedef enum _Ecore_X_Gesture_Direction
2173 ECORE_X_GESTURE_NORTHWARD,
2174 ECORE_X_GESTURE_NORTHEASTWARD,
2175 ECORE_X_GESTURE_EASTWARD,
2176 ECORE_X_GESTURE_SOUTHEASTWARD,
2177 ECORE_X_GESTURE_SOUTHWARD,
2178 ECORE_X_GESTURE_SOUTHWESTWARD,
2179 ECORE_X_GESTURE_WESTWARD,
2180 ECORE_X_GESTURE_NORTHWESTWARD
2181 } Ecore_X_Gesture_Direction;
2183 struct _Ecore_X_Event_Gesture_Notify_Flick
2187 Ecore_X_Gesture_Event_Subtype subtype;
2190 Ecore_X_Time duration;
2191 Ecore_X_Gesture_Direction direction;
2195 struct _Ecore_X_Event_Gesture_Notify_Pan
2199 Ecore_X_Gesture_Event_Subtype subtype;
2204 Ecore_X_Time duration;
2205 Ecore_X_Gesture_Direction direction;
2208 struct _Ecore_X_Event_Gesture_Notify_PinchRotation
2212 Ecore_X_Gesture_Event_Subtype subtype;
2221 struct _Ecore_X_Event_Gesture_Notify_Tap
2225 Ecore_X_Gesture_Event_Subtype subtype;
2230 Ecore_X_Time interval;
2233 struct _Ecore_X_Event_Gesture_Notify_TapNHold
2237 Ecore_X_Gesture_Event_Subtype subtype;
2241 Ecore_X_Time interval;
2242 Ecore_X_Time hold_time;
2245 struct _Ecore_X_Event_Gesture_Notify_Hold
2249 Ecore_X_Gesture_Event_Subtype subtype;
2253 Ecore_X_Time hold_time;
2256 struct _Ecore_X_Event_Gesture_Notify_Group
2260 Ecore_X_Gesture_Group_Subtype subtype;
2265 EAPI Eina_Bool ecore_x_gesture_supported(void);
2267 EAPI Eina_Bool ecore_x_gesture_events_select(Ecore_X_Window win, Ecore_X_Gesture_Event_Mask mask);
2269 EAPI Ecore_X_Gesture_Event_Mask ecore_x_gesture_events_selected_get(Ecore_X_Window win);
2271 EAPI Eina_Bool ecore_x_gesture_event_grab(Ecore_X_Window win, Ecore_X_Gesture_Event_Type type, int num_fingers);
2273 EAPI Eina_Bool ecore_x_gesture_event_ungrab(Ecore_X_Window win, Ecore_X_Gesture_Event_Type type, int num_fingers);
2275 EAPI void ecore_x_e_illume_indicator_state_set(Ecore_X_Window win, Ecore_X_Illume_Indicator_State state);
2276 EAPI Ecore_X_Illume_Indicator_State ecore_x_e_illume_indicator_state_get(Ecore_X_Window win);
2277 EAPI void ecore_x_e_illume_indicator_state_send(Ecore_X_Window win, Ecore_X_Illume_Indicator_State state);
2279 EAPI void ecore_x_e_illume_indicator_opacity_set(Ecore_X_Window win, Ecore_X_Illume_Indicator_Opacity_Mode mode);
2281 EAPI Ecore_X_Illume_Indicator_Opacity_Mode ecore_x_e_illume_indicator_opacity_get(Ecore_X_Window win);
2283 EAPI void ecore_x_e_illume_indicator_opacity_send(Ecore_X_Window win, Ecore_X_Illume_Indicator_Opacity_Mode mode);
2287 #endif // ifdef __cplusplus
2289 #include <Ecore_X_Atoms.h>
2290 #include <Ecore_X_Cursor.h>
2292 #endif // ifndef _ECORE_X_H