1 #ifndef _ECORE_X_H 2 #define _ECORE_X_H 3 4 #include <Eina.h> 5 #include <Efl_Config.h> 6 7 #ifdef EAPI 8 # undef EAPI 9 #endif // ifdef EAPI 10 11 #ifdef __GNUC__ 12 # if __GNUC__ >= 4 13 # define EAPI __attribute__ ((visibility("default"))) 14 # else // if __GNUC__ >= 4 15 # define EAPI 16 # endif // if __GNUC__ >= 4 17 #else // ifdef __GNUC__ 18 # define EAPI 19 #endif // ifdef __GNUC__ 20 21 EAPI double _ecore_x_vsync_wakeup_time_get(void); 22 23 #define ECORE_X_VERSION_MAJOR EFL_VERSION_MAJOR 24 #define ECORE_X_VERSION_MINOR EFL_VERSION_MINOR 25 /** 26 * @typedef Ecore_X_Version 27 * Represents the current version of Ecore_X 28 */ 29 typedef struct _Ecore_X_Version 30 { 31 int major; /** < major (binary or source incompatible changes) */ 32 int minor; /** < minor (new features, bugfixes, major improvements version) */ 33 int micro; /** < micro (bugfix, internal improvements, no new features version) */ 34 int revision; /** < git revision (0 if a proper release or the git revision number Ecore_X is built from) */ 35 } Ecore_X_Version; 36 37 EAPI extern Ecore_X_Version *ecore_x_version; 38 39 //legacy this was earlier there to indicate if we are running under xlib or xcb 40 #define HAVE_ECORE_X_XLIB 1 41 42 #include <sys/types.h> 43 44 /** 45 * @file 46 * @brief Ecore functions for dealing with the X Windows System 47 * 48 * @defgroup Ecore_X_Group Ecore_X - X11 Integration 49 * @ingroup Ecore 50 * 51 * Ecore_X provides a wrapper and convenience functions for using the 52 * X Windows System. Function groups for this part of the library 53 * include the following: 54 * @li @ref Ecore_X_Init_Group 55 * @li @ref Ecore_X_Display_Attr_Group 56 * @li @ref Ecore_X_Flush_Group 57 * @li @ref Ecore_X_DPMS_Group 58 * @li @ref Ecore_X_Drawable_Group 59 * @li @ref Ecore_X_Pixmap_Group 60 * @li @ref Ecore_X_Window_Create_Group 61 * @li @ref Ecore_X_Window_Properties_Group 62 * @li @ref Ecore_X_Window_Destroy_Group 63 * @li @ref Ecore_X_Window_Visibility_Group 64 * @li @ref Ecore_X_Window_Geometry_Group 65 * @li @ref Ecore_X_Window_Focus_Functions 66 * @li @ref Ecore_X_Window_Z_Order_Group 67 * @li @ref Ecore_X_Window_Parent_Group 68 * @li @ref Ecore_X_Window_Shape 69 * 70 * The ECORE_X_SYNC environment variable will cause X calls to be run 71 * synchronously for easier debugging. 72 */ 73 74 typedef unsigned int Ecore_X_ID; 75 #ifndef _ECORE_X_WINDOW_PREDEF 76 typedef Ecore_X_ID Ecore_X_Window; 77 typedef Ecore_X_ID Ecore_X_Pixmap; 78 typedef Ecore_X_ID Ecore_X_Atom; 79 typedef struct _Ecore_X_Icon 80 { 81 unsigned int width, height; 82 unsigned int *data; 83 } Ecore_X_Icon; 84 #endif // ifndef _ECORE_X_WINDOW_PREDEF 85 typedef void *Ecore_X_Visual; 86 typedef Ecore_X_ID Ecore_X_Drawable; 87 typedef void *Ecore_X_GC; 88 typedef Ecore_X_ID Ecore_X_Colormap; 89 typedef Ecore_X_ID Ecore_X_Time; 90 typedef Ecore_X_ID Ecore_X_Cursor; 91 typedef void Ecore_X_Display; 92 typedef void Ecore_X_Connection; 93 typedef void Ecore_X_Screen; 94 typedef Ecore_X_ID Ecore_X_Sync_Counter; 95 typedef Ecore_X_ID Ecore_X_Sync_Alarm; 96 typedef Ecore_X_ID Ecore_X_Sync_Fence; /**< @since 1.9 */ 97 typedef void Ecore_X_XRegion; 98 99 typedef Ecore_X_ID Ecore_X_Randr_Output; 100 typedef Ecore_X_ID Ecore_X_Randr_Crtc; 101 typedef Ecore_X_ID Ecore_X_Randr_Mode; 102 typedef unsigned short Ecore_X_Randr_Size_ID; 103 typedef int Ecore_X_Randr_Screen; 104 105 typedef Ecore_X_ID Ecore_X_Device; 106 107 #ifdef __cplusplus 108 extern "C" { 109 #endif // ifdef __cplusplus 110 111 typedef struct _Ecore_X_Rectangle 112 { 113 int x, y; 114 unsigned int width, height; 115 } Ecore_X_Rectangle; 116 117 typedef enum _Ecore_X_GC_Value_Mask 118 { 119 ECORE_X_GC_VALUE_MASK_FUNCTION = (1L << 0), 120 ECORE_X_GC_VALUE_MASK_PLANE_MASK = (1L << 1), 121 ECORE_X_GC_VALUE_MASK_FOREGROUND = (1L << 2), 122 ECORE_X_GC_VALUE_MASK_BACKGROUND = (1L << 3), 123 ECORE_X_GC_VALUE_MASK_LINE_WIDTH = (1L << 4), 124 ECORE_X_GC_VALUE_MASK_LINE_STYLE = (1L << 5), 125 ECORE_X_GC_VALUE_MASK_CAP_STYLE = (1L << 6), 126 ECORE_X_GC_VALUE_MASK_JOIN_STYLE = (1L << 7), 127 ECORE_X_GC_VALUE_MASK_FILL_STYLE = (1L << 8), 128 ECORE_X_GC_VALUE_MASK_FILL_RULE = (1L << 9), 129 ECORE_X_GC_VALUE_MASK_TILE = (1L << 10), 130 ECORE_X_GC_VALUE_MASK_STIPPLE = (1L << 11), 131 ECORE_X_GC_VALUE_MASK_TILE_STIPPLE_ORIGIN_X = (1L << 12), 132 ECORE_X_GC_VALUE_MASK_TILE_STIPPLE_ORIGIN_Y = (1L << 13), 133 ECORE_X_GC_VALUE_MASK_FONT = (1L << 14), 134 ECORE_X_GC_VALUE_MASK_SUBWINDOW_MODE = (1L << 15), 135 ECORE_X_GC_VALUE_MASK_GRAPHICS_EXPOSURES = (1L << 16), 136 ECORE_X_GC_VALUE_MASK_CLIP_ORIGIN_X = (1L << 17), 137 ECORE_X_GC_VALUE_MASK_CLIP_ORIGIN_Y = (1L << 18), 138 ECORE_X_GC_VALUE_MASK_CLIP_MASK = (1L << 19), 139 ECORE_X_GC_VALUE_MASK_DASH_OFFSET = (1L << 20), 140 ECORE_X_GC_VALUE_MASK_DASH_LIST = (1L << 21), 141 ECORE_X_GC_VALUE_MASK_ARC_MODE = (1L << 22) 142 } Ecore_X_GC_Value_Mask; 143 144 typedef enum _Ecore_X_Composite_Update_Type 145 { 146 ECORE_X_COMPOSITE_UPDATE_AUTOMATIC, 147 ECORE_X_COMPOSITE_UPDATE_MANUAL 148 } Ecore_X_Composite_Update_Type; 149 150 /** 151 * @typedef _Ecore_X_Window_State 152 * Defines the different states of the window of Ecore_X. 153 */ 154 typedef enum _Ecore_X_Window_State 155 { 156 ECORE_X_WINDOW_STATE_UNKNOWN = 0, 157 ECORE_X_WINDOW_STATE_ICONIFIED, /** The window is iconified. */ 158 ECORE_X_WINDOW_STATE_MODAL, /** The window is a modal dialog box. */ 159 ECORE_X_WINDOW_STATE_STICKY, /** The window manager should keep the window's position fixed 160 * even if the virtual desktop scrolls. */ 161 ECORE_X_WINDOW_STATE_MAXIMIZED_VERT, /** The window has the maximum vertical size. */ 162 ECORE_X_WINDOW_STATE_MAXIMIZED_HORZ, /** The window has the maximum horizontal size. */ 163 ECORE_X_WINDOW_STATE_SHADED, /** The window is shaded. */ 164 ECORE_X_WINDOW_STATE_SKIP_TASKBAR, /** The window should not be included in the taskbar. */ 165 ECORE_X_WINDOW_STATE_SKIP_PAGER, /** The window should not be included in the pager. */ 166 ECORE_X_WINDOW_STATE_HIDDEN, /** The window is invisible (i.e. minimized/iconified) */ 167 ECORE_X_WINDOW_STATE_FULLSCREEN, /** The window should fill the entire screen and have no 168 * window border/decorations */ 169 ECORE_X_WINDOW_STATE_ABOVE, 170 ECORE_X_WINDOW_STATE_BELOW, 171 ECORE_X_WINDOW_STATE_DEMANDS_ATTENTION 172 } Ecore_X_Window_State; 173 174 typedef enum _Ecore_X_Window_State_Action 175 { 176 ECORE_X_WINDOW_STATE_ACTION_REMOVE, 177 ECORE_X_WINDOW_STATE_ACTION_ADD, 178 ECORE_X_WINDOW_STATE_ACTION_TOGGLE 179 } Ecore_X_Window_State_Action; 180 181 typedef enum _Ecore_X_Window_Stack_Mode 182 { 183 ECORE_X_WINDOW_STACK_ABOVE = 0, 184 ECORE_X_WINDOW_STACK_BELOW = 1, 185 ECORE_X_WINDOW_STACK_TOP_IF = 2, 186 ECORE_X_WINDOW_STACK_BOTTOM_IF = 3, 187 ECORE_X_WINDOW_STACK_OPPOSITE = 4 188 } Ecore_X_Window_Stack_Mode; 189 190 typedef enum _Ecore_X_Randr_Orientation 191 { 192 ECORE_X_RANDR_ORIENTATION_ROT_0 = (1 << 0), 193 ECORE_X_RANDR_ORIENTATION_ROT_90 = (1 << 1), 194 ECORE_X_RANDR_ORIENTATION_ROT_180 = (1 << 2), 195 ECORE_X_RANDR_ORIENTATION_ROT_270 = (1 << 3), 196 ECORE_X_RANDR_ORIENTATION_FLIP_X = (1 << 4), 197 ECORE_X_RANDR_ORIENTATION_FLIP_Y = (1 << 5) 198 } Ecore_X_Randr_Orientation; 199 200 typedef enum _Ecore_X_Randr_Connection_Status 201 { 202 ECORE_X_RANDR_CONNECTION_STATUS_CONNECTED = 0, 203 ECORE_X_RANDR_CONNECTION_STATUS_DISCONNECTED = 1, 204 ECORE_X_RANDR_CONNECTION_STATUS_UNKNOWN = 2 205 } Ecore_X_Randr_Connection_Status; 206 207 typedef enum _Ecore_X_Randr_Output_Policy 208 { 209 ECORE_X_RANDR_OUTPUT_POLICY_ABOVE = 1, 210 ECORE_X_RANDR_OUTPUT_POLICY_RIGHT = 2, 211 ECORE_X_RANDR_OUTPUT_POLICY_BELOW = 3, 212 ECORE_X_RANDR_OUTPUT_POLICY_LEFT = 4, 213 ECORE_X_RANDR_OUTPUT_POLICY_CLONE = 5, 214 ECORE_X_RANDR_OUTPUT_POLICY_NONE = 6, 215 ECORE_X_RANDR_OUTPUT_POLICY_ASK = 7 216 } Ecore_X_Randr_Output_Policy; 217 218 typedef enum _Ecore_X_Randr_Relative_Alignment 219 { 220 ECORE_X_RANDR_RELATIVE_ALIGNMENT_NONE = 0, 221 ECORE_X_RANDR_RELATIVE_ALIGNMENT_CENTER_REL = 1, 222 ECORE_X_RANDR_RELATIVE_ALIGNMENT_CENTER_SCR = 2 223 } Ecore_X_Randr_Relative_Alignment; 224 225 typedef enum _Ecore_X_Render_Subpixel_Order 226 { 227 ECORE_X_RENDER_SUBPIXEL_ORDER_UNKNOWN = 0, 228 ECORE_X_RENDER_SUBPIXEL_ORDER_HORIZONTAL_RGB = 1, 229 ECORE_X_RENDER_SUBPIXEL_ORDER_HORIZONTAL_BGR = 2, 230 ECORE_X_RENDER_SUBPIXEL_ORDER_VERTICAL_RGB = 3, 231 ECORE_X_RENDER_SUBPIXEL_ORDER_VERTICAL_BGR = 4, 232 ECORE_X_RENDER_SUBPIXEL_ORDER_NONE = 5 233 } Ecore_X_Render_Subpixel_Order; 234 235 typedef enum _Ecore_X_Randr_Edid_Display_Interface_Type 236 { 237 ECORE_X_RANDR_EDID_DISPLAY_INTERFACE_UNDEFINED, 238 ECORE_X_RANDR_EDID_DISPLAY_INTERFACE_DVI, 239 ECORE_X_RANDR_EDID_DISPLAY_INTERFACE_HDMI_A, 240 ECORE_X_RANDR_EDID_DISPLAY_INTERFACE_HDMI_B, 241 ECORE_X_RANDR_EDID_DISPLAY_INTERFACE_MDDI, 242 ECORE_X_RANDR_EDID_DISPLAY_INTERFACE_DISPLAY_PORT 243 } Ecore_X_Randr_Edid_Display_Interface_Type; 244 245 typedef enum _Ecore_X_Randr_Edid_Display_Colorscheme 246 { 247 ECORE_X_RANDR_EDID_DISPLAY_COLORSCHEME_MONOCHROME_GRAYSCALE = 0x00, 248 ECORE_X_RANDR_EDID_DISPLAY_COLORSCHEME_COLOR_RGB = 0x08, 249 ECORE_X_RANDR_EDID_DISPLAY_COLORSCHEME_COLOR_NON_RGB = 0x10, 250 ECORE_X_RANDR_EDID_DISPLAY_COLORSCHEME_COLOR_UNDEFINED = 0x18, 251 ECORE_X_RANDR_EDID_DISPLAY_COLORSCHEME_COLOR_RGB_4_4_4 = 0x444000, 252 ECORE_X_RANDR_EDID_DISPLAY_COLORSCHEME_COLOR_RGB_YCRCB_4_4_4 = 0x444, 253 ECORE_X_RANDR_EDID_DISPLAY_COLORSCHEME_COLOR_RGB_YCRCB_4_2_2 = 0x422 254 } Ecore_X_Randr_Edid_Display_Colorscheme; 255 256 typedef enum _Ecore_X_Randr_Edid_Aspect_Ratio 257 { 258 ECORE_X_RANDR_EDID_ASPECT_RATIO_4_3 = 0x0, 259 ECORE_X_RANDR_EDID_ASPECT_RATIO_16_9 = 0x1, 260 ECORE_X_RANDR_EDID_ASPECT_RATIO_16_10 = 0x2, 261 ECORE_X_RANDR_EDID_ASPECT_RATIO_5_4 = 0x4, 262 ECORE_X_RANDR_EDID_ASPECT_RATIO_15_9 = 0x8 263 } Ecore_X_Randr_Edid_Aspect_Ratio; 264 265 #define ECORE_X_RANDR_EDID_UNKNOWN_VALUE -1 266 267 #define ECORE_X_SELECTION_TARGET_TARGETS "TARGETS" 268 #define ECORE_X_SELECTION_TARGET_TEXT "TEXT" 269 #define ECORE_X_SELECTION_TARGET_COMPOUND_TEXT "COMPOUND_TEXT" 270 #define ECORE_X_SELECTION_TARGET_STRING "STRING" 271 #define ECORE_X_SELECTION_TARGET_UTF8_STRING "UTF8_STRING" 272 #define ECORE_X_SELECTION_TARGET_FILENAME "FILENAME" 273 #define ECORE_X_SELECTION_TARGET_X_MOZ_URL "X_MOZ_URL" 274 275 #define ECORE_X_DND_VERSION 5 276 277 typedef enum _Ecore_X_Selection 278 { 279 ECORE_X_SELECTION_PRIMARY, 280 ECORE_X_SELECTION_SECONDARY, 281 ECORE_X_SELECTION_XDND, 282 ECORE_X_SELECTION_CLIPBOARD, 283 ECORE_X_SELECTION_OTHER 284 } Ecore_X_Selection; 285 286 typedef enum _Ecore_X_Event_Mode 287 { 288 ECORE_X_EVENT_MODE_NORMAL, 289 ECORE_X_EVENT_MODE_WHILE_GRABBED, 290 ECORE_X_EVENT_MODE_GRAB, 291 ECORE_X_EVENT_MODE_UNGRAB 292 } Ecore_X_Event_Mode; 293 294 typedef enum _Ecore_X_Event_Detail 295 { 296 ECORE_X_EVENT_DETAIL_ANCESTOR, 297 ECORE_X_EVENT_DETAIL_VIRTUAL, 298 ECORE_X_EVENT_DETAIL_INFERIOR, 299 ECORE_X_EVENT_DETAIL_NON_LINEAR, 300 ECORE_X_EVENT_DETAIL_NON_LINEAR_VIRTUAL, 301 ECORE_X_EVENT_DETAIL_POINTER, 302 ECORE_X_EVENT_DETAIL_POINTER_ROOT, 303 ECORE_X_EVENT_DETAIL_DETAIL_NONE 304 } Ecore_X_Event_Detail; 305 306 typedef enum _Ecore_X_Event_Mask 307 { 308 ECORE_X_EVENT_MASK_NONE = 0L, 309 ECORE_X_EVENT_MASK_KEY_DOWN = (1L << 0), 310 ECORE_X_EVENT_MASK_KEY_UP = (1L << 1), 311 ECORE_X_EVENT_MASK_MOUSE_DOWN = (1L << 2), 312 ECORE_X_EVENT_MASK_MOUSE_UP = (1L << 3), 313 ECORE_X_EVENT_MASK_MOUSE_IN = (1L << 4), 314 ECORE_X_EVENT_MASK_MOUSE_OUT = (1L << 5), 315 ECORE_X_EVENT_MASK_MOUSE_MOVE = (1L << 6), 316 ECORE_X_EVENT_MASK_WINDOW_DAMAGE = (1L << 15), 317 ECORE_X_EVENT_MASK_WINDOW_VISIBILITY = (1L << 16), 318 ECORE_X_EVENT_MASK_WINDOW_CONFIGURE = (1L << 17), 319 ECORE_X_EVENT_MASK_WINDOW_RESIZE_MANAGE = (1L << 18), 320 ECORE_X_EVENT_MASK_WINDOW_MANAGE = (1L << 19), 321 ECORE_X_EVENT_MASK_WINDOW_CHILD_CONFIGURE = (1L << 20), 322 ECORE_X_EVENT_MASK_WINDOW_FOCUS_CHANGE = (1L << 21), 323 ECORE_X_EVENT_MASK_WINDOW_PROPERTY = (1L << 22), 324 ECORE_X_EVENT_MASK_WINDOW_COLORMAP = (1L << 23), 325 ECORE_X_EVENT_MASK_WINDOW_GRAB = (1L << 24), 326 ECORE_X_EVENT_MASK_MOUSE_WHEEL = (1L << 29), 327 ECORE_X_EVENT_MASK_WINDOW_FOCUS_IN = (1L << 30), 328 ECORE_X_EVENT_MASK_WINDOW_FOCUS_OUT = (1L << 31) 329 } Ecore_X_Event_Mask; 330 331 typedef enum _Ecore_X_Gravity 332 { 333 ECORE_X_GRAVITY_FORGET = 0, 334 ECORE_X_GRAVITY_UNMAP = 0, 335 ECORE_X_GRAVITY_NW = 1, 336 ECORE_X_GRAVITY_N = 2, 337 ECORE_X_GRAVITY_NE = 3, 338 ECORE_X_GRAVITY_W = 4, 339 ECORE_X_GRAVITY_CENTER = 5, 340 ECORE_X_GRAVITY_E = 6, 341 ECORE_X_GRAVITY_SW = 7, 342 ECORE_X_GRAVITY_S = 8, 343 ECORE_X_GRAVITY_SE = 9, 344 ECORE_X_GRAVITY_STATIC = 10 345 } Ecore_X_Gravity; 346 347 /* Needed for ecore_x_region_window_shape_set */ 348 typedef enum _Ecore_X_Shape_Type 349 { 350 ECORE_X_SHAPE_BOUNDING, 351 ECORE_X_SHAPE_CLIP, 352 ECORE_X_SHAPE_INPUT 353 } Ecore_X_Shape_Type; 354 355 typedef enum _Ecore_X_Mapping_Type 356 { 357 ECORE_X_MAPPING_MODIFIER, 358 ECORE_X_MAPPING_KEYBOARD, 359 ECORE_X_MAPPING_MOUSE 360 } Ecore_X_Mapping_Type; 361 362 typedef enum _Ecore_X_Randr_Property_Change 363 { 364 ECORE_X_RANDR_PROPERTY_CHANGE_ADD, 365 ECORE_X_RANDR_PROPERTY_CHANGE_DEL 366 } Ecore_X_Randr_Property_Change; 367 368 typedef enum _Ecore_X_Netwm_Direction 369 { 370 ECORE_X_NETWM_DIRECTION_SIZE_TL = 0, 371 ECORE_X_NETWM_DIRECTION_SIZE_T = 1, 372 ECORE_X_NETWM_DIRECTION_SIZE_TR = 2, 373 ECORE_X_NETWM_DIRECTION_SIZE_R = 3, 374 ECORE_X_NETWM_DIRECTION_SIZE_BR = 4, 375 ECORE_X_NETWM_DIRECTION_SIZE_B = 5, 376 ECORE_X_NETWM_DIRECTION_SIZE_BL = 6, 377 ECORE_X_NETWM_DIRECTION_SIZE_L = 7, 378 ECORE_X_NETWM_DIRECTION_MOVE = 8, 379 ECORE_X_NETWM_DIRECTION_CANCEL = 11, 380 } Ecore_X_Netwm_Direction; 381 382 /** 383 * @typedef _Ecore_X_Error_Code 384 * Defines the error codes of Ecore_X which wraps the X Window Systems 385 * protocol's errors. 386 * 387 * @since 1.7.0 388 */ 389 typedef enum _Ecore_X_Error_Code 390 { 391 /** Everything is okay. */ 392 ECORE_X_ERROR_CODE_SUCCESS = 0, /** Bad request code */ 393 ECORE_X_ERROR_CODE_BAD_REQUEST = 1, /** Int parameter out of range */ 394 ECORE_X_ERROR_CODE_BAD_VALUE = 2, /** Parameter not a Window */ 395 ECORE_X_ERROR_CODE_BAD_WINDOW = 3, /** Parameter not a Pixmap */ 396 ECORE_X_ERROR_CODE_BAD_PIXMAP = 4, /** Parameter not an Atom */ 397 ECORE_X_ERROR_CODE_BAD_ATOM = 5, /** Parameter not a Cursor */ 398 ECORE_X_ERROR_CODE_BAD_CURSOR = 6, /** Parameter not a Font */ 399 ECORE_X_ERROR_CODE_BAD_FONT = 7, /** Parameter mismatch */ 400 ECORE_X_ERROR_CODE_BAD_MATCH = 8, /** Parameter not a Pixmap or Window */ 401 ECORE_X_ERROR_CODE_BAD_DRAWABLE = 9, /** Bad access */ 402 ECORE_X_ERROR_CODE_BAD_ACCESS = 10, /** Insufficient resources */ 403 ECORE_X_ERROR_CODE_BAD_ALLOC = 11, /** No such colormap */ 404 ECORE_X_ERROR_CODE_BAD_COLOR = 12, /** Parameter not a GC */ 405 ECORE_X_ERROR_CODE_BAD_GC = 13, /** Choice not in range or already used */ 406 ECORE_X_ERROR_CODE_BAD_ID_CHOICE = 14, /** Font or color name doesn't exist */ 407 ECORE_X_ERROR_CODE_BAD_NAME = 15, /** Request length incorrect */ 408 ECORE_X_ERROR_CODE_BAD_LENGTH = 16, /** Server is defective */ 409 ECORE_X_ERROR_CODE_BAD_IMPLEMENTATION = 17, 410 } Ecore_X_Error_Code; 411 412 typedef enum _Ecore_X_Dpms_Mode 413 { 414 ECORE_X_DPMS_MODE_ON = 0, 415 ECORE_X_DPMS_MODE_STANDBY = 1, 416 ECORE_X_DPMS_MODE_SUSPEND = 2, 417 ECORE_X_DPMS_MODE_OFF = 3 418 } Ecore_X_Dpms_Mode; 419 420 typedef struct _Ecore_X_Event_Mouse_In Ecore_X_Event_Mouse_In; 421 typedef struct _Ecore_X_Event_Mouse_Out Ecore_X_Event_Mouse_Out; 422 typedef struct _Ecore_X_Event_Window_Focus_In Ecore_X_Event_Window_Focus_In; 423 typedef struct _Ecore_X_Event_Window_Focus_Out Ecore_X_Event_Window_Focus_Out; 424 typedef struct _Ecore_X_Event_Window_Keymap Ecore_X_Event_Window_Keymap; 425 typedef struct _Ecore_X_Event_Window_Damage Ecore_X_Event_Window_Damage; 426 typedef struct _Ecore_X_Event_Window_Visibility_Change Ecore_X_Event_Window_Visibility_Change; 427 typedef struct _Ecore_X_Event_Window_Create Ecore_X_Event_Window_Create; 428 typedef struct _Ecore_X_Event_Window_Destroy Ecore_X_Event_Window_Destroy; 429 typedef struct _Ecore_X_Event_Window_Hide Ecore_X_Event_Window_Hide; 430 typedef struct _Ecore_X_Event_Window_Show Ecore_X_Event_Window_Show; 431 typedef struct _Ecore_X_Event_Window_Show_Request Ecore_X_Event_Window_Show_Request; 432 typedef struct _Ecore_X_Event_Window_Reparent Ecore_X_Event_Window_Reparent; 433 typedef struct _Ecore_X_Event_Window_Configure Ecore_X_Event_Window_Configure; 434 typedef struct _Ecore_X_Event_Window_Configure_Request Ecore_X_Event_Window_Configure_Request; 435 typedef struct _Ecore_X_Event_Window_Gravity Ecore_X_Event_Window_Gravity; 436 typedef struct _Ecore_X_Event_Window_Resize_Request Ecore_X_Event_Window_Resize_Request; 437 typedef struct _Ecore_X_Event_Window_Stack Ecore_X_Event_Window_Stack; 438 typedef struct _Ecore_X_Event_Window_Stack_Request Ecore_X_Event_Window_Stack_Request; 439 typedef struct _Ecore_X_Event_Window_Property Ecore_X_Event_Window_Property; 440 typedef struct _Ecore_X_Event_Window_Colormap Ecore_X_Event_Window_Colormap; 441 typedef struct _Ecore_X_Event_Mapping_Change Ecore_X_Event_Mapping_Change; 442 typedef struct _Ecore_X_Event_Window_Mapping Ecore_X_Event_Window_Mapping; 443 typedef struct _Ecore_X_Event_Selection_Clear Ecore_X_Event_Selection_Clear; 444 typedef struct _Ecore_X_Event_Selection_Request Ecore_X_Event_Selection_Request; 445 typedef struct _Ecore_X_Event_Selection_Notify Ecore_X_Event_Selection_Notify; 446 typedef struct _Ecore_X_Event_Fixes_Selection_Notify Ecore_X_Event_Fixes_Selection_Notify; 447 typedef struct _Ecore_X_Selection_Data Ecore_X_Selection_Data; 448 typedef struct _Ecore_X_Selection_Data_Files Ecore_X_Selection_Data_Files; 449 typedef struct _Ecore_X_Selection_Data_Text Ecore_X_Selection_Data_Text; 450 typedef struct _Ecore_X_Selection_Data_X_Moz_Url Ecore_X_Selection_Data_X_Moz_Url; 451 typedef struct _Ecore_X_Selection_Data_Targets Ecore_X_Selection_Data_Targets; 452 typedef struct _Ecore_X_Event_Xdnd_Enter Ecore_X_Event_Xdnd_Enter; 453 typedef struct _Ecore_X_Event_Xdnd_Position Ecore_X_Event_Xdnd_Position; 454 typedef struct _Ecore_X_Event_Xdnd_Status Ecore_X_Event_Xdnd_Status; 455 typedef struct _Ecore_X_Event_Xdnd_Leave Ecore_X_Event_Xdnd_Leave; 456 typedef struct _Ecore_X_Event_Xdnd_Drop Ecore_X_Event_Xdnd_Drop; 457 typedef struct _Ecore_X_Event_Xdnd_Finished Ecore_X_Event_Xdnd_Finished; 458 typedef struct _Ecore_X_Event_Client_Message Ecore_X_Event_Client_Message; 459 typedef struct _Ecore_X_Event_Window_Shape Ecore_X_Event_Window_Shape; 460 typedef struct _Ecore_X_Event_Screensaver_Notify Ecore_X_Event_Screensaver_Notify; 461 typedef struct _Ecore_X_Event_Gesture_Notify_Flick Ecore_X_Event_Gesture_Notify_Flick; 462 typedef struct _Ecore_X_Event_Gesture_Notify_Pan Ecore_X_Event_Gesture_Notify_Pan; 463 typedef struct _Ecore_X_Event_Gesture_Notify_PinchRotation Ecore_X_Event_Gesture_Notify_PinchRotation; 464 typedef struct _Ecore_X_Event_Gesture_Notify_Tap Ecore_X_Event_Gesture_Notify_Tap; 465 typedef struct _Ecore_X_Event_Gesture_Notify_TapNHold Ecore_X_Event_Gesture_Notify_TapNHold; 466 typedef struct _Ecore_X_Event_Gesture_Notify_Hold Ecore_X_Event_Gesture_Notify_Hold; 467 typedef struct _Ecore_X_Event_Gesture_Notify_Group Ecore_X_Event_Gesture_Notify_Group; 468 typedef struct _Ecore_X_Event_Sync_Counter Ecore_X_Event_Sync_Counter; 469 typedef struct _Ecore_X_Event_Sync_Alarm Ecore_X_Event_Sync_Alarm; 470 typedef struct _Ecore_X_Event_Screen_Change Ecore_X_Event_Screen_Change; 471 typedef struct _Ecore_X_Event_Randr_Crtc_Change Ecore_X_Event_Randr_Crtc_Change; 472 typedef struct _Ecore_X_Event_Randr_Output_Change Ecore_X_Event_Randr_Output_Change; 473 typedef struct _Ecore_X_Event_Randr_Output_Property_Notify Ecore_X_Event_Randr_Output_Property_Notify; 474 475 typedef struct _Ecore_X_Event_Window_Delete_Request Ecore_X_Event_Window_Delete_Request; 476 typedef struct _Ecore_X_Event_Window_Move_Resize_Request Ecore_X_Event_Window_Move_Resize_Request; 477 typedef struct _Ecore_X_Event_Window_State_Request Ecore_X_Event_Window_State_Request; 478 typedef struct _Ecore_X_Event_Frame_Extents_Request Ecore_X_Event_Frame_Extents_Request; 479 typedef struct _Ecore_X_Event_Ping Ecore_X_Event_Ping; 480 typedef struct _Ecore_X_Event_Desktop_Change Ecore_X_Event_Desktop_Change; 481 482 typedef struct _Ecore_X_Event_Startup_Sequence Ecore_X_Event_Startup_Sequence; 483 484 typedef struct _Ecore_X_Event_Generic Ecore_X_Event_Generic; 485 486 487 typedef struct Ecore_X_Event_Present_Configure Ecore_X_Event_Present_Configure; /**< @since 1.9 */ 488 typedef struct Ecore_X_Event_Present_Complete Ecore_X_Event_Present_Complete; /**< @since 1.9 */ 489 typedef struct Ecore_X_Event_Present_Idle Ecore_X_Event_Present_Idle; /**< @since 1.9 */ 490 491 typedef struct _Ecore_X_Randr_Screen_Size Ecore_X_Randr_Screen_Size; 492 typedef struct _Ecore_X_Randr_Screen_Size_MM Ecore_X_Randr_Screen_Size_MM; 493 typedef struct _Ecore_X_Randr_Crtc_Info Ecore_X_Randr_Crtc_Info; /**< @since 1.8 */ 494 495 typedef struct _Ecore_X_Xdnd_Position Ecore_X_Xdnd_Position; 496 497 498 struct _Ecore_X_Event_Mouse_In 499 { 500 int modifiers; 501 int x, y; 502 Eina_Bool same_screen : 1; 503 struct 504 { 505 int x, y; 506 } root; 507 Ecore_X_Window win; 508 Ecore_X_Window event_win; 509 Ecore_X_Window root_win; 510 Ecore_X_Event_Mode mode; 511 Ecore_X_Event_Detail detail; 512 Ecore_X_Time time; 513 }; 514 515 struct _Ecore_X_Event_Mouse_Out 516 { 517 int modifiers; 518 int x, y; 519 int same_screen; 520 struct 521 { 522 int x, y; 523 } root; 524 Ecore_X_Window win; 525 Ecore_X_Window event_win; 526 Ecore_X_Window root_win; 527 Ecore_X_Event_Mode mode; 528 Ecore_X_Event_Detail detail; 529 Ecore_X_Time time; 530 }; 531 532 struct _Ecore_X_Event_Window_Focus_In 533 { 534 Ecore_X_Window win; 535 Ecore_X_Event_Mode mode; 536 Ecore_X_Event_Detail detail; 537 Ecore_X_Time time; 538 }; 539 540 struct _Ecore_X_Event_Window_Focus_Out 541 { 542 Ecore_X_Window win; 543 Ecore_X_Event_Mode mode; 544 Ecore_X_Event_Detail detail; 545 Ecore_X_Time time; 546 }; 547 548 struct _Ecore_X_Event_Window_Keymap 549 { 550 Ecore_X_Window win; 551 }; 552 553 struct _Ecore_X_Event_Window_Damage 554 { 555 Ecore_X_Window win; 556 int x, y, w, h; 557 int count; 558 Ecore_X_Time time; 559 }; 560 561 struct _Ecore_X_Event_Window_Visibility_Change 562 { 563 Ecore_X_Window win; 564 int fully_obscured; 565 Ecore_X_Time time; 566 }; 567 568 struct _Ecore_X_Event_Window_Create 569 { 570 Ecore_X_Window win; 571 Ecore_X_Window parent; 572 int override; 573 int x, y, w, h; 574 int border; 575 Ecore_X_Time time; 576 }; 577 578 struct _Ecore_X_Event_Window_Destroy 579 { 580 Ecore_X_Window win; 581 Ecore_X_Window event_win; 582 Ecore_X_Time time; 583 }; 584 585 struct _Ecore_X_Event_Window_Hide 586 { 587 Ecore_X_Window win; 588 Ecore_X_Window event_win; 589 Ecore_X_Time time; 590 Eina_Bool send_event : 1; /**< @since 1.8 */ 591 }; 592 593 struct _Ecore_X_Event_Window_Show 594 { 595 Ecore_X_Window win; 596 Ecore_X_Window event_win; 597 Ecore_X_Time time; 598 }; 599 600 struct _Ecore_X_Event_Window_Show_Request 601 { 602 Ecore_X_Window win; 603 Ecore_X_Window parent; 604 Ecore_X_Time time; 605 }; 606 607 struct _Ecore_X_Event_Window_Reparent 608 { 609 Ecore_X_Window win; 610 Ecore_X_Window event_win; 611 Ecore_X_Window parent; 612 Ecore_X_Time time; 613 }; 614 615 struct _Ecore_X_Event_Window_Configure 616 { 617 Ecore_X_Window win; 618 Ecore_X_Window event_win; 619 Ecore_X_Window abovewin; 620 int x, y, w, h; 621 int border; 622 Eina_Bool override : 1; 623 Eina_Bool from_wm : 1; 624 Ecore_X_Time time; 625 }; 626 627 struct _Ecore_X_Event_Window_Configure_Request 628 { 629 Ecore_X_Window win; 630 Ecore_X_Window parent_win; 631 Ecore_X_Window abovewin; 632 int x, y, w, h; 633 int border; 634 Ecore_X_Window_Stack_Mode detail; 635 unsigned long value_mask; 636 Ecore_X_Time time; 637 }; 638 639 struct _Ecore_X_Event_Window_Gravity 640 { 641 Ecore_X_Window win; 642 Ecore_X_Window event_win; 643 Ecore_X_Time time; 644 }; 645 646 struct _Ecore_X_Event_Window_Resize_Request 647 { 648 Ecore_X_Window win; 649 int w, h; 650 Ecore_X_Time time; 651 }; 652 653 struct _Ecore_X_Event_Window_Stack 654 { 655 Ecore_X_Window win; 656 Ecore_X_Window event_win; 657 Ecore_X_Window_Stack_Mode detail; 658 Ecore_X_Time time; 659 }; 660 661 struct _Ecore_X_Event_Window_Stack_Request 662 { 663 Ecore_X_Window win; 664 Ecore_X_Window parent; 665 Ecore_X_Window_Stack_Mode detail; 666 Ecore_X_Time time; 667 }; 668 669 struct _Ecore_X_Event_Window_Property 670 { 671 Ecore_X_Window win; 672 Ecore_X_Atom atom; 673 Ecore_X_Time time; 674 Eina_Bool state; /**< @since 1.16 If @c EINA_TRUE, property was deleted */ 675 }; 676 677 struct _Ecore_X_Event_Window_Colormap 678 { 679 Ecore_X_Window win; 680 Ecore_X_Colormap cmap; 681 Eina_Bool installed : 1; 682 Ecore_X_Time time; 683 }; 684 685 struct _Ecore_X_Event_Mapping_Change 686 { 687 Ecore_X_Mapping_Type type; 688 int keycode; 689 int num; 690 }; 691 692 struct _Ecore_X_Event_Selection_Clear 693 { 694 Ecore_X_Window win; 695 Ecore_X_Selection selection; 696 Ecore_X_Atom atom; 697 Ecore_X_Time time; 698 }; 699 700 struct _Ecore_X_Event_Selection_Request 701 { 702 Ecore_X_Window owner; 703 Ecore_X_Window requestor; 704 Ecore_X_Time time; 705 Ecore_X_Atom selection; 706 Ecore_X_Atom target; 707 Ecore_X_Atom property; 708 }; 709 710 typedef enum 711 { 712 ECORE_X_OWNER_CHANGE_REASON_NEW_OWNER, 713 ECORE_X_OWNER_CHANGE_REASON_DESTROY, 714 ECORE_X_OWNER_CHANGE_REASON_CLOSE 715 } Ecore_X_Owner_Change_Reason; 716 717 struct _Ecore_X_Event_Fixes_Selection_Notify 718 { 719 Ecore_X_Window win; 720 Ecore_X_Window owner; 721 Ecore_X_Time time; 722 Ecore_X_Time selection_time; 723 Ecore_X_Selection selection; 724 Ecore_X_Atom atom; 725 Ecore_X_Owner_Change_Reason reason; 726 }; 727 728 struct _Ecore_X_Event_Selection_Notify 729 { 730 Ecore_X_Window win; 731 Ecore_X_Time time; 732 Ecore_X_Selection selection; 733 Ecore_X_Atom atom; 734 char *target; 735 void *data; 736 Ecore_X_Atom property; /**< @since 1.16 */ 737 }; 738 739 struct _Ecore_X_Selection_Data 740 { 741 enum 742 { 743 ECORE_X_SELECTION_CONTENT_NONE, 744 ECORE_X_SELECTION_CONTENT_TEXT, 745 ECORE_X_SELECTION_CONTENT_FILES, 746 ECORE_X_SELECTION_CONTENT_X_MOZ_URL, 747 ECORE_X_SELECTION_CONTENT_TARGETS, 748 ECORE_X_SELECTION_CONTENT_CUSTOM 749 } content; 750 unsigned char *data; 751 int length; 752 int format; 753 int (*free)(void *data); 754 }; 755 756 struct _Ecore_X_Selection_Data_Files 757 { 758 Ecore_X_Selection_Data data; 759 char **files; 760 int num_files; 761 }; 762 763 struct _Ecore_X_Selection_Data_Text 764 { 765 Ecore_X_Selection_Data data; 766 char *text; 767 }; 768 769 struct _Ecore_X_Selection_Data_X_Moz_Url 770 { 771 Ecore_X_Selection_Data data; 772 Eina_Inarray *links; 773 Eina_Inarray *link_names; 774 }; 775 776 struct _Ecore_X_Selection_Data_Targets 777 { 778 Ecore_X_Selection_Data data; 779 char **targets; 780 int num_targets; 781 }; 782 783 struct _Ecore_X_Event_Xdnd_Enter 784 { 785 Ecore_X_Window win, source; 786 787 char **types; 788 int num_types; 789 }; 790 791 struct _Ecore_X_Event_Xdnd_Position 792 { 793 Ecore_X_Window win, source; 794 struct 795 { 796 int x, y; 797 } position; 798 Ecore_X_Atom action; 799 }; 800 801 struct _Ecore_X_Xdnd_Position 802 { 803 Ecore_X_Window win, prev; 804 struct 805 { 806 int x, y; 807 } position; 808 }; 809 810 struct _Ecore_X_Event_Xdnd_Status 811 { 812 Ecore_X_Window win, target; 813 Eina_Bool will_accept : 1; 814 Ecore_X_Rectangle rectangle; 815 Ecore_X_Atom action; 816 }; 817 818 struct _Ecore_X_Event_Xdnd_Leave 819 { 820 Ecore_X_Window win, source; 821 }; 822 823 struct _Ecore_X_Event_Xdnd_Drop 824 { 825 Ecore_X_Window win, source; 826 Ecore_X_Atom action; 827 struct 828 { 829 int x, y; 830 } position; 831 }; 832 833 struct _Ecore_X_Event_Xdnd_Finished 834 { 835 Ecore_X_Window win, target; 836 Eina_Bool completed : 1; 837 Ecore_X_Atom action; 838 }; 839 840 struct _Ecore_X_Event_Client_Message 841 { 842 Ecore_X_Window win; 843 Ecore_X_Atom message_type; 844 int format; 845 union 846 { 847 char b[20]; 848 short s[10]; 849 long l[5]; 850 } data; 851 Ecore_X_Time time; 852 }; 853 854 struct _Ecore_X_Event_Window_Shape 855 { 856 Ecore_X_Window win; 857 Ecore_X_Time time; 858 Ecore_X_Shape_Type type; 859 int x, y, w, h; 860 Eina_Bool shaped : 1; 861 }; 862 863 struct _Ecore_X_Event_Screensaver_Notify 864 { 865 Ecore_X_Window win; 866 Eina_Bool on : 1; 867 Ecore_X_Time time; 868 }; 869 870 struct _Ecore_X_Event_Sync_Counter 871 { 872 Ecore_X_Time time; 873 }; 874 875 struct _Ecore_X_Event_Sync_Alarm 876 { 877 Ecore_X_Time time; 878 Ecore_X_Sync_Alarm alarm; 879 }; 880 881 struct _Ecore_X_Randr_Screen_Size 882 { 883 int width, height; 884 }; 885 886 struct _Ecore_X_Randr_Screen_Size_MM 887 { 888 int width, height, width_mm, height_mm; 889 }; 890 891 struct _Ecore_X_Randr_Crtc_Info 892 { 893 Ecore_X_Time timestamp; 894 int x, y; 895 unsigned int width, height; 896 Ecore_X_Randr_Mode mode; 897 Ecore_X_Randr_Orientation rotation; 898 int noutput; 899 Ecore_X_Randr_Output *outputs; 900 Ecore_X_Randr_Orientation rotations; 901 int npossible; 902 Ecore_X_Randr_Output *possible; 903 }; /**< @since 1.8 */ 904 905 struct _Ecore_X_Event_Screen_Change 906 { 907 Ecore_X_Window win; 908 Ecore_X_Window root; 909 Ecore_X_Randr_Screen_Size_MM size; /* in pixel and millimeters */ 910 Ecore_X_Time time; 911 Ecore_X_Time config_time; 912 Ecore_X_Randr_Orientation orientation; 913 Ecore_X_Render_Subpixel_Order subpixel_order; 914 Ecore_X_Randr_Size_ID size_id; 915 }; 916 917 struct _Ecore_X_Event_Randr_Crtc_Change 918 { 919 Ecore_X_Window win; 920 Ecore_X_Randr_Crtc crtc; 921 Ecore_X_Randr_Mode mode; 922 Ecore_X_Randr_Orientation orientation; 923 Eina_Rectangle geo; 924 }; 925 926 struct _Ecore_X_Event_Randr_Output_Change 927 { 928 Ecore_X_Window win; 929 Ecore_X_Randr_Output output; 930 Ecore_X_Randr_Crtc crtc; 931 Ecore_X_Randr_Mode mode; 932 Ecore_X_Randr_Orientation orientation; 933 Ecore_X_Randr_Connection_Status connection; 934 Ecore_X_Render_Subpixel_Order subpixel_order; 935 }; 936 937 struct _Ecore_X_Event_Randr_Output_Property_Notify 938 { 939 Ecore_X_Window win; 940 Ecore_X_Randr_Output output; 941 Ecore_X_Atom property; 942 Ecore_X_Time time; 943 Ecore_X_Randr_Property_Change state; 944 }; 945 946 struct _Ecore_X_Event_Window_Delete_Request 947 { 948 Ecore_X_Window win; 949 Ecore_X_Time time; 950 }; 951 952 struct _Ecore_X_Event_Window_Prop_Title_Change 953 { 954 Ecore_X_Window win; 955 char *title; 956 Ecore_X_Time time; 957 }; 958 959 struct _Ecore_X_Event_Window_Prop_Visible_Title_Change 960 { 961 Ecore_X_Window win; 962 char *title; 963 Ecore_X_Time time; 964 }; 965 966 struct _Ecore_X_Event_Window_Prop_Icon_Name_Change 967 { 968 Ecore_X_Window win; 969 char *name; 970 Ecore_X_Time time; 971 }; 972 973 struct _Ecore_X_Event_Window_Prop_Visible_Icon_Name_Change 974 { 975 Ecore_X_Window win; 976 char *name; 977 Ecore_X_Time time; 978 }; 979 980 struct _Ecore_X_Event_Window_Prop_Client_Machine_Change 981 { 982 Ecore_X_Window win; 983 char *name; 984 Ecore_X_Time time; 985 }; 986 987 struct _Ecore_X_Event_Window_Prop_Name_Class_Change 988 { 989 Ecore_X_Window win; 990 char *name; 991 char *clas; 992 Ecore_X_Time time; 993 }; 994 995 struct _Ecore_X_Event_Window_Prop_Pid_Change 996 { 997 Ecore_X_Window win; 998 pid_t pid; 999 Ecore_X_Time time; 1000 }; 1001 1002 struct _Ecore_X_Event_Window_Prop_Desktop_Change 1003 { 1004 Ecore_X_Window win; 1005 long desktop; 1006 Ecore_X_Time time; 1007 }; 1008 1009 struct _Ecore_X_Event_Startup_Sequence 1010 { 1011 Ecore_X_Window win; 1012 }; 1013 1014 struct _Ecore_X_Event_Window_Move_Resize_Request 1015 { 1016 Ecore_X_Window win; 1017 int x, y; 1018 int direction; 1019 int button; 1020 int source; 1021 }; 1022 1023 struct _Ecore_X_Event_Window_State_Request 1024 { 1025 Ecore_X_Window win; 1026 Ecore_X_Window_State_Action action; 1027 Ecore_X_Window_State state[2]; 1028 int source; 1029 }; 1030 1031 struct _Ecore_X_Event_Frame_Extents_Request 1032 { 1033 Ecore_X_Window win; 1034 }; 1035 1036 struct _Ecore_X_Event_Ping 1037 { 1038 Ecore_X_Window win; 1039 Ecore_X_Window event_win; 1040 Ecore_X_Time time; 1041 }; 1042 1043 struct _Ecore_X_Event_Desktop_Change 1044 { 1045 Ecore_X_Window win; 1046 unsigned int desk; 1047 int source; 1048 }; 1049 1050 struct _Ecore_X_Event_Generic 1051 { 1052 int extension; 1053 int evtype; 1054 unsigned int cookie; 1055 void *data; 1056 }; 1057 1058 typedef enum Ecore_X_Present_Event_Mask 1059 { 1060 ECORE_X_PRESENT_EVENT_MASK_NO_EVENT = 0, 1061 ECORE_X_PRESENT_EVENT_MASK_CONFIGURE_NOTIFY = 1, 1062 ECORE_X_PRESENT_EVENT_MASK_COMPLETE_NOTIFY = 2, 1063 ECORE_X_PRESENT_EVENT_MASK_IDLE_NOTIFY = 4, 1064 } Ecore_X_Present_Event_Mask; /**< @since 1.9 */ 1065 1066 typedef struct Ecore_X_Present 1067 { 1068 Ecore_X_Window win; 1069 unsigned int serial; 1070 } Ecore_X_Present; /**< @since 1.9 */ 1071 1072 struct Ecore_X_Event_Present_Configure 1073 { 1074 Ecore_X_Window win; 1075 1076 int x, y; 1077 unsigned int width, height; 1078 int off_x, off_y; 1079 int pixmap_width, pixmap_height; 1080 long pixmap_flags; 1081 }; /**< @since 1.9 */ 1082 1083 typedef enum 1084 { 1085 ECORE_X_PRESENT_COMPLETE_MODE_COPY, 1086 ECORE_X_PRESENT_COMPLETE_MODE_FLIP, 1087 ECORE_X_PRESENT_COMPLETE_MODE_SKIP, 1088 } Ecore_X_Present_Complete_Mode; 1089 1090 struct Ecore_X_Event_Present_Complete 1091 { 1092 Ecore_X_Window win; 1093 1094 unsigned int serial; // value provided when generating request 1095 unsigned long long ust; // system time of presentation 1096 unsigned long long msc; // frame count at time of presentation 1097 Eina_Bool kind : 1; /* 0 for PresentCompleteKindPixmap (PresentPixmap completion), 1098 1 for PresentCompleteKindNotifyMsc (PresentNotifyMSC completion) */ 1099 Ecore_X_Present_Complete_Mode mode; 1100 }; /**< @since 1.9 */ 1101 1102 struct Ecore_X_Event_Present_Idle 1103 { 1104 Ecore_X_Window win; 1105 1106 unsigned int serial; 1107 Ecore_X_Pixmap pixmap; 1108 Ecore_X_Sync_Fence idle_fence; 1109 }; /**< @since 1.9 */ 1110 1111 EAPI extern int ECORE_X_EVENT_ANY; /**< low level event dependent on 1112 backend in use, will be XEvent. 1113 @warning avoid using it. 1114 */ 1115 EAPI extern int ECORE_X_EVENT_MOUSE_IN; 1116 EAPI extern int ECORE_X_EVENT_MOUSE_OUT; 1117 EAPI extern int ECORE_X_EVENT_WINDOW_FOCUS_IN; 1118 EAPI extern int ECORE_X_EVENT_WINDOW_FOCUS_OUT; 1119 EAPI extern int ECORE_X_EVENT_WINDOW_KEYMAP; 1120 EAPI extern int ECORE_X_EVENT_WINDOW_DAMAGE; 1121 EAPI extern int ECORE_X_EVENT_WINDOW_VISIBILITY_CHANGE; 1122 EAPI extern int ECORE_X_EVENT_WINDOW_CREATE; 1123 EAPI extern int ECORE_X_EVENT_WINDOW_DESTROY; 1124 EAPI extern int ECORE_X_EVENT_WINDOW_HIDE; 1125 EAPI extern int ECORE_X_EVENT_WINDOW_SHOW; 1126 EAPI extern int ECORE_X_EVENT_WINDOW_SHOW_REQUEST; 1127 EAPI extern int ECORE_X_EVENT_WINDOW_REPARENT; 1128 EAPI extern int ECORE_X_EVENT_WINDOW_CONFIGURE; 1129 EAPI extern int ECORE_X_EVENT_WINDOW_CONFIGURE_REQUEST; 1130 EAPI extern int ECORE_X_EVENT_WINDOW_GRAVITY; 1131 EAPI extern int ECORE_X_EVENT_WINDOW_RESIZE_REQUEST; 1132 EAPI extern int ECORE_X_EVENT_WINDOW_STACK; 1133 EAPI extern int ECORE_X_EVENT_WINDOW_STACK_REQUEST; 1134 EAPI extern int ECORE_X_EVENT_WINDOW_PROPERTY; 1135 EAPI extern int ECORE_X_EVENT_WINDOW_COLORMAP; 1136 EAPI extern int ECORE_X_EVENT_WINDOW_MAPPING; 1137 EAPI extern int ECORE_X_EVENT_MAPPING_CHANGE; 1138 EAPI extern int ECORE_X_EVENT_SELECTION_CLEAR; 1139 EAPI extern int ECORE_X_EVENT_SELECTION_REQUEST; 1140 EAPI extern int ECORE_X_EVENT_SELECTION_NOTIFY; 1141 EAPI extern int ECORE_X_EVENT_FIXES_SELECTION_NOTIFY; 1142 EAPI extern int ECORE_X_EVENT_CLIENT_MESSAGE; 1143 EAPI extern int ECORE_X_EVENT_WINDOW_SHAPE; 1144 EAPI extern int ECORE_X_EVENT_SCREENSAVER_NOTIFY; 1145 EAPI extern int ECORE_X_EVENT_GESTURE_NOTIFY_FLICK; 1146 EAPI extern int ECORE_X_EVENT_GESTURE_NOTIFY_PAN; 1147 EAPI extern int ECORE_X_EVENT_GESTURE_NOTIFY_PINCHROTATION; 1148 EAPI extern int ECORE_X_EVENT_GESTURE_NOTIFY_TAP; 1149 EAPI extern int ECORE_X_EVENT_GESTURE_NOTIFY_TAPNHOLD; 1150 EAPI extern int ECORE_X_EVENT_GESTURE_NOTIFY_HOLD; 1151 EAPI extern int ECORE_X_EVENT_GESTURE_NOTIFY_GROUP; 1152 EAPI extern int ECORE_X_EVENT_SYNC_COUNTER; 1153 EAPI extern int ECORE_X_EVENT_SYNC_ALARM; 1154 EAPI extern int ECORE_X_EVENT_SCREEN_CHANGE; 1155 EAPI extern int ECORE_X_EVENT_RANDR_CRTC_CHANGE; 1156 EAPI extern int ECORE_X_EVENT_RANDR_OUTPUT_CHANGE; 1157 EAPI extern int ECORE_X_EVENT_RANDR_OUTPUT_PROPERTY_NOTIFY; 1158 EAPI extern int ECORE_X_EVENT_DAMAGE_NOTIFY; 1159 1160 EAPI extern int ECORE_X_EVENT_WINDOW_DELETE_REQUEST; 1161 1162 EAPI extern int ECORE_X_EVENT_WINDOW_MOVE_RESIZE_REQUEST; 1163 EAPI extern int ECORE_X_EVENT_WINDOW_STATE_REQUEST; 1164 EAPI extern int ECORE_X_EVENT_FRAME_EXTENTS_REQUEST; 1165 EAPI extern int ECORE_X_EVENT_PING; 1166 EAPI extern int ECORE_X_EVENT_DESKTOP_CHANGE; 1167 1168 EAPI extern int ECORE_X_EVENT_STARTUP_SEQUENCE_NEW; 1169 EAPI extern int ECORE_X_EVENT_STARTUP_SEQUENCE_CHANGE; 1170 EAPI extern int ECORE_X_EVENT_STARTUP_SEQUENCE_REMOVE; 1171 EAPI extern int ECORE_X_EVENT_XKB_STATE_NOTIFY; /** @since 1.7 */ 1172 EAPI extern int ECORE_X_EVENT_XKB_NEWKBD_NOTIFY; /** @since 1.7 */ 1173 1174 EAPI extern int ECORE_X_EVENT_GENERIC; 1175 1176 EAPI extern int ECORE_X_EVENT_PRESENT_CONFIGURE; /**< @since 1.9 */ 1177 EAPI extern int ECORE_X_EVENT_PRESENT_COMPLETE; /**< @since 1.9 */ 1178 EAPI extern int ECORE_X_EVENT_PRESENT_IDLE; /**< @since 1.9 */ 1179 1180 EAPI extern int ECORE_X_EVENT_XDND_ENTER; 1181 EAPI extern int ECORE_X_EVENT_XDND_POSITION; 1182 EAPI extern int ECORE_X_EVENT_XDND_STATUS; 1183 EAPI extern int ECORE_X_EVENT_XDND_LEAVE; 1184 EAPI extern int ECORE_X_EVENT_XDND_DROP; 1185 EAPI extern int ECORE_X_EVENT_XDND_FINISHED; 1186 1187 EAPI extern int ECORE_X_MODIFIER_SHIFT; /**< @since 1.7 */ 1188 EAPI extern int ECORE_X_MODIFIER_CTRL; /**< @since 1.7 */ 1189 EAPI extern int ECORE_X_MODIFIER_ALT; /**< @since 1.7 */ 1190 EAPI extern int ECORE_X_MODIFIER_WIN; /**< @since 1.7 */ 1191 EAPI extern int ECORE_X_MODIFIER_ALTGR; /**< @since 1.7 */ 1192 1193 EAPI extern int ECORE_X_LOCK_SCROLL; 1194 EAPI extern int ECORE_X_LOCK_NUM; 1195 EAPI extern int ECORE_X_LOCK_CAPS; 1196 EAPI extern int ECORE_X_LOCK_SHIFT; 1197 1198 EAPI extern int ECORE_X_RAW_BUTTON_PRESS; /**< @since 1.8 */ 1199 EAPI extern int ECORE_X_RAW_BUTTON_RELEASE; /**< @since 1.8 */ 1200 EAPI extern int ECORE_X_RAW_MOTION; /**< @since 1.8 */ 1201 1202 EAPI extern int ECORE_X_DEVICES_CHANGE; /**< @since 1.24 */ 1203 1204 typedef enum _Ecore_X_WM_Protocol 1205 { 1206 /** If enabled the window manager will be asked to send a 1207 * delete message instead of just closing (destroying) the window. */ 1208 ECORE_X_WM_PROTOCOL_DELETE_REQUEST, 1209 1210 /** If enabled the window manager will be told that the window 1211 * explicitly sets input focus. */ 1212 ECORE_X_WM_PROTOCOL_TAKE_FOCUS, 1213 1214 /** If enabled the window manager can ping the window to check 1215 * if it is alive. */ 1216 ECORE_X_NET_WM_PROTOCOL_PING, 1217 1218 /** If enabled the window manager can sync updating with the 1219 * window (?) */ 1220 ECORE_X_NET_WM_PROTOCOL_SYNC_REQUEST, 1221 1222 /** Number of defined items */ 1223 ECORE_X_WM_PROTOCOL_NUM 1224 } Ecore_X_WM_Protocol; 1225 1226 typedef enum _Ecore_X_Window_Input_Mode 1227 { 1228 /** The window can never be focused */ 1229 ECORE_X_WINDOW_INPUT_MODE_NONE, 1230 1231 /** The window can be focused by the WM but doesn't focus itself */ 1232 ECORE_X_WINDOW_INPUT_MODE_PASSIVE, 1233 1234 /** The window sets the focus itself if one of its sub-windows 1235 * already is focused */ 1236 ECORE_X_WINDOW_INPUT_MODE_ACTIVE_LOCAL, 1237 1238 /** The window sets the focus itself even if another window 1239 * is currently focused */ 1240 ECORE_X_WINDOW_INPUT_MODE_ACTIVE_GLOBAL 1241 } Ecore_X_Window_Input_Mode; 1242 1243 /** 1244 * @typedef _Ecore_X_Window_State_Hint 1245 * Defines the different state hint of the window of Ecore_X. 1246 */ 1247 typedef enum _Ecore_X_Window_State_Hint 1248 { 1249 /** Do not provide any state hint to the window manager */ 1250 ECORE_X_WINDOW_STATE_HINT_NONE = -1, 1251 1252 /** The window wants to remain hidden and NOT iconified */ 1253 ECORE_X_WINDOW_STATE_HINT_WITHDRAWN, 1254 1255 /** The window wants to be mapped normally */ 1256 ECORE_X_WINDOW_STATE_HINT_NORMAL, 1257 1258 /** The window wants to start in an iconified state */ 1259 ECORE_X_WINDOW_STATE_HINT_ICONIC 1260 } Ecore_X_Window_State_Hint; 1261 1262 typedef enum _Ecore_X_Window_Type 1263 { 1264 ECORE_X_WINDOW_TYPE_UNKNOWN = 0, 1265 ECORE_X_WINDOW_TYPE_DESKTOP, 1266 ECORE_X_WINDOW_TYPE_DOCK, 1267 ECORE_X_WINDOW_TYPE_TOOLBAR, 1268 ECORE_X_WINDOW_TYPE_MENU, 1269 ECORE_X_WINDOW_TYPE_UTILITY, 1270 ECORE_X_WINDOW_TYPE_SPLASH, 1271 ECORE_X_WINDOW_TYPE_DIALOG, 1272 ECORE_X_WINDOW_TYPE_NORMAL, 1273 ECORE_X_WINDOW_TYPE_DROPDOWN_MENU, 1274 ECORE_X_WINDOW_TYPE_POPUP_MENU, 1275 ECORE_X_WINDOW_TYPE_TOOLTIP, 1276 ECORE_X_WINDOW_TYPE_NOTIFICATION, 1277 ECORE_X_WINDOW_TYPE_COMBO, 1278 ECORE_X_WINDOW_TYPE_DND 1279 } Ecore_X_Window_Type; 1280 1281 typedef enum _Ecore_X_Action 1282 { 1283 ECORE_X_ACTION_MOVE, 1284 ECORE_X_ACTION_RESIZE, 1285 ECORE_X_ACTION_MINIMIZE, 1286 ECORE_X_ACTION_SHADE, 1287 ECORE_X_ACTION_STICK, 1288 ECORE_X_ACTION_MAXIMIZE_HORZ, 1289 ECORE_X_ACTION_MAXIMIZE_VERT, 1290 ECORE_X_ACTION_FULLSCREEN, 1291 ECORE_X_ACTION_CHANGE_DESKTOP, 1292 ECORE_X_ACTION_CLOSE, 1293 ECORE_X_ACTION_ABOVE, 1294 ECORE_X_ACTION_BELOW 1295 } Ecore_X_Action; 1296 1297 typedef enum _Ecore_X_Window_Configure_Mask 1298 { 1299 ECORE_X_WINDOW_CONFIGURE_MASK_X = (1 << 0), 1300 ECORE_X_WINDOW_CONFIGURE_MASK_Y = (1 << 1), 1301 ECORE_X_WINDOW_CONFIGURE_MASK_W = (1 << 2), 1302 ECORE_X_WINDOW_CONFIGURE_MASK_H = (1 << 3), 1303 ECORE_X_WINDOW_CONFIGURE_MASK_BORDER_WIDTH = (1 << 4), 1304 ECORE_X_WINDOW_CONFIGURE_MASK_SIBLING = (1 << 5), 1305 ECORE_X_WINDOW_CONFIGURE_MASK_STACK_MODE = (1 << 6) 1306 } Ecore_X_Window_Configure_Mask; 1307 1308 typedef enum _Ecore_X_Virtual_Keyboard_State 1309 { 1310 ECORE_X_VIRTUAL_KEYBOARD_STATE_UNKNOWN = 0, 1311 ECORE_X_VIRTUAL_KEYBOARD_STATE_OFF, 1312 ECORE_X_VIRTUAL_KEYBOARD_STATE_ON, 1313 ECORE_X_VIRTUAL_KEYBOARD_STATE_ALPHA, 1314 ECORE_X_VIRTUAL_KEYBOARD_STATE_NUMERIC, 1315 ECORE_X_VIRTUAL_KEYBOARD_STATE_PIN, 1316 ECORE_X_VIRTUAL_KEYBOARD_STATE_PHONE_NUMBER, 1317 ECORE_X_VIRTUAL_KEYBOARD_STATE_HEX, 1318 ECORE_X_VIRTUAL_KEYBOARD_STATE_TERMINAL, 1319 ECORE_X_VIRTUAL_KEYBOARD_STATE_PASSWORD, 1320 ECORE_X_VIRTUAL_KEYBOARD_STATE_IP, 1321 ECORE_X_VIRTUAL_KEYBOARD_STATE_HOST, 1322 ECORE_X_VIRTUAL_KEYBOARD_STATE_FILE, 1323 ECORE_X_VIRTUAL_KEYBOARD_STATE_URL, 1324 ECORE_X_VIRTUAL_KEYBOARD_STATE_KEYPAD, 1325 ECORE_X_VIRTUAL_KEYBOARD_STATE_J2ME 1326 } Ecore_X_Virtual_Keyboard_State; 1327 1328 typedef enum _Ecore_X_Illume_Mode 1329 { 1330 ECORE_X_ILLUME_MODE_UNKNOWN = 0, 1331 ECORE_X_ILLUME_MODE_SINGLE, 1332 ECORE_X_ILLUME_MODE_DUAL_TOP, 1333 ECORE_X_ILLUME_MODE_DUAL_LEFT 1334 } Ecore_X_Illume_Mode; 1335 1336 typedef enum _Ecore_X_Illume_Quickpanel_State 1337 { 1338 ECORE_X_ILLUME_QUICKPANEL_STATE_UNKNOWN = 0, 1339 ECORE_X_ILLUME_QUICKPANEL_STATE_OFF, 1340 ECORE_X_ILLUME_QUICKPANEL_STATE_ON 1341 } Ecore_X_Illume_Quickpanel_State; 1342 1343 typedef enum _Ecore_X_Illume_Indicator_State 1344 { 1345 ECORE_X_ILLUME_INDICATOR_STATE_UNKNOWN = 0, 1346 ECORE_X_ILLUME_INDICATOR_STATE_OFF, 1347 ECORE_X_ILLUME_INDICATOR_STATE_ON 1348 } Ecore_X_Illume_Indicator_State; 1349 1350 typedef enum _Ecore_X_Illume_Clipboard_State 1351 { 1352 ECORE_X_ILLUME_CLIPBOARD_STATE_UNKNOWN = 0, 1353 ECORE_X_ILLUME_CLIPBOARD_STATE_OFF, 1354 ECORE_X_ILLUME_CLIPBOARD_STATE_ON 1355 } Ecore_X_Illume_Clipboard_State; 1356 1357 typedef enum _Ecore_X_Illume_Indicator_Opacity_Mode 1358 { 1359 ECORE_X_ILLUME_INDICATOR_OPACITY_UNKNOWN = 0, 1360 ECORE_X_ILLUME_INDICATOR_OPAQUE, 1361 ECORE_X_ILLUME_INDICATOR_TRANSLUCENT, 1362 ECORE_X_ILLUME_INDICATOR_TRANSPARENT 1363 } Ecore_X_Illume_Indicator_Opacity_Mode; 1364 1365 typedef enum _Ecore_X_Illume_Indicator_Type_Mode 1366 { 1367 ECORE_X_ILLUME_INDICATOR_TYPE_UNKNOWN = 0, 1368 ECORE_X_ILLUME_INDICATOR_TYPE_1, 1369 ECORE_X_ILLUME_INDICATOR_TYPE_2, 1370 ECORE_X_ILLUME_INDICATOR_TYPE_3 1371 } Ecore_X_Illume_Indicator_Type_Mode; /**< @since 1.8 */ 1372 1373 typedef enum _Ecore_X_Illume_Window_State 1374 { 1375 ECORE_X_ILLUME_WINDOW_STATE_NORMAL = 0, 1376 ECORE_X_ILLUME_WINDOW_STATE_FLOATING 1377 } Ecore_X_Illume_Window_State; 1378 1379 #ifdef EFL_BETA_API_SUPPORT 1380 // XXX: FIXME: re-evaluate this after looking at xdg foreign in wayland 1381 typedef enum _Ecore_X_Stack_Type 1382 { 1383 ECORE_X_STACK_NONE = 0, 1384 ECORE_X_STACK_BASE = 1, 1385 ECORE_X_STACK_STANDARD, 1386 ECORE_X_STACK_LAST 1387 } Ecore_X_Stack_Type; 1388 1389 typedef enum _Ecore_X_Stack_Position 1390 { 1391 ECORE_X_STACK_POSITION_NONE = 0, 1392 ECORE_X_STACK_POSITION_BOTTOM = 1, 1393 ECORE_X_STACK_POSITION_MIDDLE, 1394 ECORE_X_STACK_POSITION_TOP, 1395 ECORE_X_STACK_POSITION_LAST 1396 } Ecore_X_Stack_Position; 1397 #endif 1398 1399 /* Window layer constants */ 1400 #define ECORE_X_WINDOW_LAYER_BELOW 2 1401 #define ECORE_X_WINDOW_LAYER_NORMAL 4 1402 #define ECORE_X_WINDOW_LAYER_ABOVE 6 1403 1404 /* Property list operations */ 1405 #define ECORE_X_PROP_LIST_REMOVE 0 1406 #define ECORE_X_PROP_LIST_ADD 1 1407 #define ECORE_X_PROP_LIST_TOGGLE 2 1408 1409 EAPI int ecore_x_init(const char *name); 1410 EAPI int ecore_x_init_from_display(Ecore_X_Display *display); /**< @since 1.15 */ 1411 EAPI int ecore_x_shutdown(void); 1412 EAPI int ecore_x_disconnect(void); 1413 EAPI Ecore_X_Display *ecore_x_display_get(void); 1414 EAPI Ecore_X_Connection *ecore_x_connection_get(void); 1415 EAPI int ecore_x_fd_get(void); 1416 EAPI Ecore_X_Screen *ecore_x_default_screen_get(void); 1417 EAPI void ecore_x_screen_size_get(const Ecore_X_Screen *screen, int *w, int *h); 1418 EAPI int ecore_x_screen_count_get(void); 1419 EAPI int ecore_x_screen_index_get(const Ecore_X_Screen *screen); 1420 EAPI Ecore_X_Screen *ecore_x_screen_get(int index); 1421 1422 EAPI void ecore_x_double_click_time_set(double t); 1423 EAPI double ecore_x_double_click_time_get(void); 1424 EAPI void ecore_x_flush(void); 1425 EAPI void ecore_x_sync(void); 1426 EAPI void ecore_x_killall(Ecore_X_Window root); 1427 EAPI void ecore_x_kill(Ecore_X_Window win); 1428 EAPI int ecore_x_dpi_get(void); 1429 EAPI Eina_Bool ecore_x_bell(int percent); 1430 EAPI unsigned int ecore_x_visual_id_get(Ecore_X_Visual visual); 1431 1432 EAPI Ecore_X_Visual ecore_x_default_visual_get(Ecore_X_Display *disp, Ecore_X_Screen *screen); 1433 EAPI Ecore_X_Colormap ecore_x_default_colormap_get(Ecore_X_Display *disp, Ecore_X_Screen *screen); 1434 EAPI int ecore_x_default_depth_get(Ecore_X_Display *disp, Ecore_X_Screen *screen); 1435 1436 EAPI Ecore_X_Time ecore_x_current_time_get(void); 1437 1438 EAPI void ecore_x_error_handler_set(void (*func)(void *data), const void *data); 1439 EAPI void ecore_x_io_error_handler_set(void (*func)(void *data), const void *data); 1440 EAPI int ecore_x_error_request_get(void); 1441 EAPI int ecore_x_error_code_get(void); 1442 EAPI Ecore_X_ID ecore_x_error_resource_id_get(void); 1443 1444 EAPI void ecore_x_event_mask_set(Ecore_X_Window w, Ecore_X_Event_Mask mask); 1445 EAPI void ecore_x_event_mask_unset(Ecore_X_Window w, Ecore_X_Event_Mask mask); 1446 1447 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); 1448 EAPI Eina_Bool ecore_x_selection_primary_set(Ecore_X_Window w, const void *data, int size); 1449 EAPI Eina_Bool ecore_x_selection_primary_clear(void); 1450 EAPI Eina_Bool ecore_x_selection_secondary_set(Ecore_X_Window w, const void *data, int size); 1451 EAPI Eina_Bool ecore_x_selection_secondary_clear(void); 1452 EAPI Eina_Bool ecore_x_selection_xdnd_set(Ecore_X_Window w, const void *data, int size); 1453 EAPI Eina_Bool ecore_x_selection_xdnd_clear(void); 1454 EAPI Eina_Bool ecore_x_selection_clipboard_set(Ecore_X_Window w, const void *data, int size); 1455 EAPI Eina_Bool ecore_x_selection_clipboard_clear(void); 1456 EAPI void ecore_x_selection_primary_request(Ecore_X_Window w, const char *target); 1457 EAPI void ecore_x_selection_secondary_request(Ecore_X_Window w, const char *target); 1458 EAPI void ecore_x_selection_xdnd_request(Ecore_X_Window w, const char *target); 1459 EAPI void ecore_x_selection_clipboard_request(Ecore_X_Window w, const char *target); 1460 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); 1461 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 *)); 1462 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)); 1463 EAPI void ecore_x_selection_converter_del(char *target); 1464 EAPI void ecore_x_selection_converter_atom_del(Ecore_X_Atom target); 1465 EAPI void ecore_x_selection_parser_add(const char *target, void *(*func)(const char *target, void *data, int size, int format)); 1466 EAPI void ecore_x_selection_parser_del(const char *target); 1467 EAPI void ecore_x_selection_owner_set(Ecore_X_Window win, Ecore_X_Atom atom, Ecore_X_Time tm); 1468 EAPI Ecore_X_Window ecore_x_selection_owner_get(Ecore_X_Atom atom); 1469 EAPI Eina_Bool ecore_x_selection_converter_text(char *target, void *data, int size, void **data_ret, int *size_ret, Ecore_X_Atom *targprop, int *s); /** @since 1.8 */ 1470 1471 EAPI void ecore_x_dnd_aware_set(Ecore_X_Window win, Eina_Bool on); 1472 EAPI int ecore_x_dnd_version_get(Ecore_X_Window win); 1473 EAPI Eina_Bool ecore_x_dnd_type_isset(Ecore_X_Window win, const char *type); 1474 EAPI void ecore_x_dnd_type_set(Ecore_X_Window win, const char *type, Eina_Bool on); 1475 EAPI void ecore_x_dnd_types_set(Ecore_X_Window win, const char **types, unsigned int num_types); 1476 EAPI void ecore_x_dnd_actions_set(Ecore_X_Window win, Ecore_X_Atom *actions, unsigned int num_actions); 1477 EAPI Eina_Bool ecore_x_dnd_begin(Ecore_X_Window source, unsigned char *data, int size); 1478 EAPI Eina_Bool ecore_x_dnd_drop(void); 1479 EAPI Eina_Bool ecore_x_dnd_self_begin(Ecore_X_Window source, unsigned char *data, int size); /**< @since 1.8 */ 1480 EAPI Eina_Bool ecore_x_dnd_self_drop(void); /**< @since 1.8 */ 1481 EAPI void ecore_x_dnd_send_status(Eina_Bool will_accept, Eina_Bool suppress, Ecore_X_Rectangle rectangle, Ecore_X_Atom action); 1482 EAPI void ecore_x_dnd_send_finished(void); 1483 EAPI void ecore_x_dnd_source_action_set(Ecore_X_Atom action); 1484 EAPI Ecore_X_Atom ecore_x_dnd_source_action_get(void); 1485 EAPI void ecore_x_dnd_callback_pos_update_set(void (*cb)(void *, Ecore_X_Xdnd_Position *data), const void *data); 1486 EAPI Eina_Bool ecore_x_dnd_abort(Ecore_X_Window xwin_source); /**< @since 1.9 */ 1487 1488 EAPI Ecore_X_Window 1489 ecore_x_window_full_new(Ecore_X_Window parent, 1490 int x, 1491 int y, 1492 int w, 1493 int h, 1494 Ecore_X_Visual *visual, 1495 Ecore_X_Colormap colormap, 1496 int depth, 1497 Eina_Bool override); /**< @since 1.12 */ 1498 1499 EAPI Ecore_X_Window ecore_x_window_new(Ecore_X_Window parent, int x, int y, int w, int h); 1500 EAPI Ecore_X_Window ecore_x_window_override_new(Ecore_X_Window parent, int x, int y, int w, int h); 1501 EAPI int ecore_x_window_argb_get(Ecore_X_Window win); 1502 EAPI Ecore_X_Window ecore_x_window_manager_argb_new(Ecore_X_Window parent, int x, int y, int w, int h); 1503 EAPI Ecore_X_Window ecore_x_window_argb_new(Ecore_X_Window parent, int x, int y, int w, int h); 1504 EAPI Ecore_X_Window ecore_x_window_override_argb_new(Ecore_X_Window parent, int x, int y, int w, int h); 1505 EAPI Ecore_X_Window ecore_x_window_permanent_new(Ecore_X_Window parent, Ecore_X_Atom unique_atom); /* @since 1.9 */ 1506 EAPI Ecore_X_Window ecore_x_window_input_new(Ecore_X_Window parent, int x, int y, int w, int h); 1507 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); 1508 EAPI void ecore_x_window_cursor_set(Ecore_X_Window win, Ecore_X_Cursor c); 1509 EAPI void ecore_x_window_free(Ecore_X_Window win); 1510 EAPI void ecore_x_window_ignore_set(Ecore_X_Window win, int ignore); 1511 EAPI Ecore_X_Window *ecore_x_window_ignore_list(int *num); 1512 1513 EAPI void ecore_x_window_delete_request_send(Ecore_X_Window win); 1514 EAPI void ecore_x_window_show(Ecore_X_Window win); 1515 EAPI void ecore_x_window_hide(Ecore_X_Window win); 1516 EAPI void ecore_x_window_move(Ecore_X_Window win, int x, int y); 1517 EAPI void ecore_x_window_resize(Ecore_X_Window win, int w, int h); 1518 EAPI void ecore_x_window_move_resize(Ecore_X_Window win, int x, int y, int w, int h); 1519 EAPI void ecore_x_window_focus(Ecore_X_Window win); 1520 EAPI void ecore_x_window_focus_at_time(Ecore_X_Window win, Ecore_X_Time t); 1521 EAPI Ecore_X_Window ecore_x_window_focus_get(void); 1522 EAPI void ecore_x_window_raise(Ecore_X_Window win); 1523 EAPI void ecore_x_window_lower(Ecore_X_Window win); 1524 EAPI void ecore_x_window_reparent(Ecore_X_Window win, Ecore_X_Window new_parent, int x, int y); 1525 EAPI void ecore_x_window_size_get(Ecore_X_Window win, int *w, int *h); 1526 EAPI void ecore_x_window_geometry_get(Ecore_X_Window win, int *x, int *y, int *w, int *h); 1527 EAPI int ecore_x_window_border_width_get(Ecore_X_Window win); 1528 EAPI void ecore_x_window_border_width_set(Ecore_X_Window win, int width); 1529 EAPI int ecore_x_window_depth_get(Ecore_X_Window win); 1530 EAPI void ecore_x_window_cursor_show(Ecore_X_Window win, Eina_Bool show); 1531 EAPI void ecore_x_window_defaults_set(Ecore_X_Window win); 1532 EAPI int ecore_x_window_visible_get(Ecore_X_Window win); 1533 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); 1534 EAPI Ecore_X_Window ecore_x_window_shadow_parent_get(Ecore_X_Window root, Ecore_X_Window win); 1535 EAPI void ecore_x_window_shadow_tree_flush(void); 1536 EAPI Ecore_X_Window ecore_x_window_root_get(Ecore_X_Window win); 1537 EAPI Ecore_X_Window ecore_x_window_at_xy_get(int x, int y); 1538 EAPI Ecore_X_Window ecore_x_window_at_xy_with_skip_get(int x, int y, Ecore_X_Window *skip, int skip_num); 1539 EAPI Ecore_X_Window ecore_x_window_at_xy_begin_get(Ecore_X_Window begin, int x, int y); 1540 EAPI Ecore_X_Window ecore_x_window_parent_get(Ecore_X_Window win); 1541 1542 EAPI void ecore_x_window_background_color_set(Ecore_X_Window win, unsigned short r, unsigned short g, unsigned short b); 1543 EAPI void ecore_x_window_gravity_set(Ecore_X_Window win, Ecore_X_Gravity grav); 1544 EAPI void ecore_x_window_pixel_gravity_set(Ecore_X_Window win, Ecore_X_Gravity grav); 1545 EAPI void ecore_x_window_pixmap_set(Ecore_X_Window win, Ecore_X_Pixmap pmap); 1546 EAPI void ecore_x_window_area_clear(Ecore_X_Window win, int x, int y, int w, int h); 1547 EAPI void ecore_x_window_area_expose(Ecore_X_Window win, int x, int y, int w, int h); 1548 EAPI void ecore_x_window_override_set(Ecore_X_Window win, Eina_Bool override); 1549 1550 EAPI void ecore_x_window_prop_card32_set(Ecore_X_Window win, Ecore_X_Atom atom, unsigned int *val, unsigned int num); 1551 EAPI int ecore_x_window_prop_card32_get(Ecore_X_Window win, Ecore_X_Atom atom, unsigned int *val, unsigned int len); 1552 EAPI int ecore_x_window_prop_card32_list_get(Ecore_X_Window win, Ecore_X_Atom atom, unsigned int **plst); 1553 1554 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); 1555 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); 1556 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); 1557 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); 1558 EAPI void ecore_x_window_prop_atom_set(Ecore_X_Window win, Ecore_X_Atom atom, Ecore_X_Atom *val, unsigned int num); 1559 EAPI int ecore_x_window_prop_atom_get(Ecore_X_Window win, Ecore_X_Atom atom, Ecore_X_Atom *val, unsigned int len); 1560 EAPI int ecore_x_window_prop_atom_list_get(Ecore_X_Window win, Ecore_X_Atom atom, Ecore_X_Atom **plst); 1561 EAPI void ecore_x_window_prop_atom_list_change(Ecore_X_Window win, Ecore_X_Atom atom, Ecore_X_Atom item, int op); 1562 EAPI void ecore_x_window_prop_window_set(Ecore_X_Window win, Ecore_X_Atom atom, Ecore_X_Window *val, unsigned int num); 1563 EAPI int ecore_x_window_prop_window_get(Ecore_X_Window win, Ecore_X_Atom atom, Ecore_X_Window *val, unsigned int len); 1564 EAPI int ecore_x_window_prop_window_list_get(Ecore_X_Window win, Ecore_X_Atom atom, Ecore_X_Window **plst); 1565 1566 EAPI Ecore_X_Atom ecore_x_window_prop_any_type(void); 1567 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); 1568 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); 1569 EAPI void ecore_x_window_prop_property_del(Ecore_X_Window win, Ecore_X_Atom property); 1570 EAPI Ecore_X_Atom *ecore_x_window_prop_list(Ecore_X_Window win, int *num_ret); 1571 EAPI void ecore_x_window_prop_string_set(Ecore_X_Window win, Ecore_X_Atom type, const char *str); 1572 EAPI char *ecore_x_window_prop_string_get(Ecore_X_Window win, Ecore_X_Atom type); 1573 EAPI Eina_Bool ecore_x_window_prop_protocol_isset(Ecore_X_Window win, Ecore_X_WM_Protocol protocol); 1574 EAPI Ecore_X_WM_Protocol *ecore_x_window_prop_protocol_list_get(Ecore_X_Window win, int *num_ret); 1575 1576 EAPI void ecore_x_window_shape_mask_set(Ecore_X_Window win, Ecore_X_Pixmap mask); 1577 EAPI void ecore_x_window_shape_window_set(Ecore_X_Window win, Ecore_X_Window shape_win); 1578 EAPI void ecore_x_window_shape_window_set_xy(Ecore_X_Window win, Ecore_X_Window shape_win, int x, int y); 1579 EAPI void ecore_x_window_shape_rectangle_set(Ecore_X_Window win, int x, int y, int w, int h); 1580 EAPI void ecore_x_window_shape_rectangles_set(Ecore_X_Window win, Ecore_X_Rectangle *rects, int num); 1581 EAPI void ecore_x_window_shape_input_rectangle_set(Ecore_X_Window win, int x, int y, int w, int h); 1582 EAPI void ecore_x_window_shape_input_rectangles_set(Ecore_X_Window win, Ecore_X_Rectangle *rects, int num); 1583 EAPI void ecore_x_window_shape_input_rectangle_add(Ecore_X_Window win, int x, int y, int w, int h); 1584 EAPI void ecore_x_window_shape_rectangle_subtract(Ecore_X_Window win, int x, int y, int w, int h); 1585 EAPI void ecore_x_window_shape_input_rectangle_subtract(Ecore_X_Window win, int x, int y, int w, int h); 1586 EAPI void ecore_x_window_shape_input_window_set_xy(Ecore_X_Window win, Ecore_X_Window shape_win, int x, int y); 1587 EAPI void ecore_x_window_shape_input_window_set(Ecore_X_Window win, Ecore_X_Window shape_win); 1588 EAPI void ecore_x_window_shape_window_add(Ecore_X_Window win, Ecore_X_Window shape_win); 1589 EAPI void ecore_x_window_shape_window_add_xy(Ecore_X_Window win, Ecore_X_Window shape_win, int x, int y); 1590 EAPI void ecore_x_window_shape_input_window_add_xy(Ecore_X_Window win, Ecore_X_Window shape_win, int x, int y); 1591 EAPI void ecore_x_window_shape_rectangle_add(Ecore_X_Window win, int x, int y, int w, int h); 1592 EAPI void ecore_x_window_shape_rectangle_clip(Ecore_X_Window win, int x, int y, int w, int h); 1593 EAPI void ecore_x_window_shape_input_rectangle_clip(Ecore_X_Window win, int x, int y, int w, int h); 1594 EAPI void ecore_x_window_shape_rectangles_add(Ecore_X_Window win, Ecore_X_Rectangle *rects, int num); 1595 EAPI void ecore_x_window_shape_input_rectangles_add(Ecore_X_Window win, Ecore_X_Rectangle *rects, int num); 1596 EAPI Ecore_X_Rectangle *ecore_x_window_shape_rectangles_get(Ecore_X_Window win, int *num_ret); 1597 EAPI Ecore_X_Rectangle *ecore_x_window_shape_input_rectangles_get(Ecore_X_Window win, int *num_ret); 1598 EAPI void ecore_x_window_shape_events_select(Ecore_X_Window win, Eina_Bool on); 1599 EAPI void ecore_x_window_shape_input_mask_set(Ecore_X_Window win, Ecore_X_Pixmap mask); 1600 1601 EAPI Ecore_X_Pixmap ecore_x_pixmap_new(Ecore_X_Window win, int w, int h, int dep); 1602 EAPI void ecore_x_pixmap_free(Ecore_X_Pixmap pmap); 1603 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); 1604 EAPI void ecore_x_pixmap_geometry_get(Ecore_X_Pixmap pmap, int *x, int *y, int *w, int *h); 1605 EAPI int ecore_x_pixmap_depth_get(Ecore_X_Pixmap pmap); 1606 1607 EAPI Ecore_X_GC ecore_x_gc_new(Ecore_X_Drawable draw, Ecore_X_GC_Value_Mask value_mask, const unsigned int *value_list); 1608 EAPI void ecore_x_gc_free(Ecore_X_GC gc); 1609 EAPI void ecore_x_gc_foreground_set(Ecore_X_GC gc, unsigned long foreground); 1610 EAPI void ecore_x_gc_background_set(Ecore_X_GC gc, unsigned long background); 1611 1612 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); 1613 EAPI Eina_Bool ecore_x_client_message8_send(Ecore_X_Window win, Ecore_X_Atom type, const void *data, int len); 1614 EAPI Eina_Bool ecore_x_mouse_move_send(Ecore_X_Window win, int x, int y); 1615 EAPI Eina_Bool ecore_x_mouse_down_send(Ecore_X_Window win, int x, int y, int b); 1616 EAPI Eina_Bool ecore_x_mouse_up_send(Ecore_X_Window win, int x, int y, int b); 1617 EAPI Eina_Bool ecore_x_mouse_in_send(Ecore_X_Window win, int x, int y); 1618 EAPI Eina_Bool ecore_x_mouse_out_send(Ecore_X_Window win, int x, int y); 1619 1620 EAPI void ecore_x_drawable_geometry_get(Ecore_X_Drawable d, int *x, int *y, int *w, int *h); 1621 EAPI int ecore_x_drawable_border_width_get(Ecore_X_Drawable d); 1622 EAPI int ecore_x_drawable_depth_get(Ecore_X_Drawable d); 1623 EAPI void ecore_x_drawable_rectangle_fill(Ecore_X_Drawable d, Ecore_X_GC gc, int x, int y, int width, int height); 1624 1625 EAPI Eina_Bool ecore_x_cursor_color_supported_get(void); 1626 EAPI Ecore_X_Cursor ecore_x_cursor_new(Ecore_X_Window win, int *pixels, int w, int h, int hot_x, int hot_y); 1627 EAPI void ecore_x_cursor_free(Ecore_X_Cursor c); 1628 EAPI Ecore_X_Cursor ecore_x_cursor_shape_get(int shape); 1629 EAPI void ecore_x_cursor_size_set(int size); 1630 EAPI int ecore_x_cursor_size_get(void); 1631 1632 /* FIXME: these funcs need categorising */ 1633 EAPI Ecore_X_Window *ecore_x_window_root_list(int *num_ret); 1634 EAPI Ecore_X_Window ecore_x_window_root_first_get(void); 1635 EAPI Eina_Bool ecore_x_window_manage(Ecore_X_Window win); 1636 EAPI void ecore_x_window_container_manage(Ecore_X_Window win); 1637 EAPI void ecore_x_window_client_manage(Ecore_X_Window win); 1638 EAPI void ecore_x_window_sniff(Ecore_X_Window win); 1639 EAPI void ecore_x_window_client_sniff(Ecore_X_Window win); 1640 1641 EAPI Ecore_X_Atom ecore_x_atom_get(const char *name); 1642 EAPI void ecore_x_atoms_get(const char **names, int num, Ecore_X_Atom *atoms); 1643 EAPI char *ecore_x_atom_name_get(Ecore_X_Atom atom); 1644 1645 EAPI void ecore_x_icccm_init(void); 1646 EAPI void ecore_x_icccm_state_set(Ecore_X_Window win, Ecore_X_Window_State_Hint state); 1647 EAPI Ecore_X_Window_State_Hint ecore_x_icccm_state_get(Ecore_X_Window win); 1648 EAPI void ecore_x_icccm_delete_window_send(Ecore_X_Window win, Ecore_X_Time t); 1649 EAPI void ecore_x_icccm_take_focus_send(Ecore_X_Window win, Ecore_X_Time t); 1650 EAPI void ecore_x_icccm_save_yourself_send(Ecore_X_Window win, Ecore_X_Time t); 1651 EAPI void ecore_x_icccm_move_resize_send(Ecore_X_Window win, int x, int y, int w, int h); 1652 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); 1653 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); 1654 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); 1655 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); 1656 EAPI void ecore_x_icccm_title_set(Ecore_X_Window win, const char *t); 1657 EAPI char *ecore_x_icccm_title_get(Ecore_X_Window win); 1658 EAPI void ecore_x_icccm_protocol_atoms_set(Ecore_X_Window win, Ecore_X_Atom *protos, int num); 1659 EAPI void ecore_x_icccm_protocol_set(Ecore_X_Window win, Ecore_X_WM_Protocol protocol, Eina_Bool on); 1660 EAPI Eina_Bool ecore_x_icccm_protocol_isset(Ecore_X_Window win, Ecore_X_WM_Protocol protocol); 1661 EAPI void ecore_x_icccm_name_class_set(Ecore_X_Window win, const char *n, const char *c); 1662 EAPI void ecore_x_icccm_name_class_get(Ecore_X_Window win, char **n, char **c); 1663 EAPI char *ecore_x_icccm_client_machine_get(Ecore_X_Window win); 1664 EAPI void ecore_x_icccm_command_set(Ecore_X_Window win, int argc, char **argv); 1665 EAPI void ecore_x_icccm_command_get(Ecore_X_Window win, int *argc, char ***argv); 1666 EAPI char *ecore_x_icccm_icon_name_get(Ecore_X_Window win); 1667 EAPI void ecore_x_icccm_icon_name_set(Ecore_X_Window win, const char *t); 1668 EAPI void ecore_x_icccm_colormap_window_set(Ecore_X_Window win, Ecore_X_Window subwin); 1669 EAPI void ecore_x_icccm_colormap_window_unset(Ecore_X_Window win, Ecore_X_Window subwin); 1670 EAPI void ecore_x_icccm_transient_for_set(Ecore_X_Window win, Ecore_X_Window forwin); 1671 EAPI void ecore_x_icccm_transient_for_unset(Ecore_X_Window win); 1672 EAPI Ecore_X_Window ecore_x_icccm_transient_for_get(Ecore_X_Window win); 1673 EAPI void ecore_x_icccm_window_role_set(Ecore_X_Window win, const char *role); 1674 EAPI char *ecore_x_icccm_window_role_get(Ecore_X_Window win); 1675 EAPI void ecore_x_icccm_client_leader_set(Ecore_X_Window win, Ecore_X_Window l); 1676 EAPI Ecore_X_Window ecore_x_icccm_client_leader_get(Ecore_X_Window win); 1677 EAPI void ecore_x_icccm_iconic_request_send(Ecore_X_Window win, Ecore_X_Window root); 1678 1679 typedef enum _Ecore_X_MWM_Hint_Func 1680 { 1681 ECORE_X_MWM_HINT_FUNC_ALL = (1 << 0), 1682 ECORE_X_MWM_HINT_FUNC_RESIZE = (1 << 1), 1683 ECORE_X_MWM_HINT_FUNC_MOVE = (1 << 2), 1684 ECORE_X_MWM_HINT_FUNC_MINIMIZE = (1 << 3), 1685 ECORE_X_MWM_HINT_FUNC_MAXIMIZE = (1 << 4), 1686 ECORE_X_MWM_HINT_FUNC_CLOSE = (1 << 5) 1687 } Ecore_X_MWM_Hint_Func; 1688 1689 typedef enum _Ecore_X_MWM_Hint_Decor 1690 { 1691 ECORE_X_MWM_HINT_DECOR_ALL = (1 << 0), 1692 ECORE_X_MWM_HINT_DECOR_BORDER = (1 << 1), 1693 ECORE_X_MWM_HINT_DECOR_RESIZEH = (1 << 2), 1694 ECORE_X_MWM_HINT_DECOR_TITLE = (1 << 3), 1695 ECORE_X_MWM_HINT_DECOR_MENU = (1 << 4), 1696 ECORE_X_MWM_HINT_DECOR_MINIMIZE = (1 << 5), 1697 ECORE_X_MWM_HINT_DECOR_MAXIMIZE = (1 << 6) 1698 } Ecore_X_MWM_Hint_Decor; 1699 1700 typedef enum _Ecore_X_MWM_Hint_Input 1701 { 1702 ECORE_X_MWM_HINT_INPUT_MODELESS = 0, 1703 ECORE_X_MWM_HINT_INPUT_PRIMARY_APPLICATION_MODAL = 1, 1704 ECORE_X_MWM_HINT_INPUT_SYSTEM_MODAL = 2, 1705 ECORE_X_MWM_HINT_INPUT_FULL_APPLICATION_MODAL = 3 1706 } Ecore_X_MWM_Hint_Input; 1707 1708 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); 1709 EAPI void ecore_x_mwm_borderless_set(Ecore_X_Window win, Eina_Bool borderless); 1710 1711 /* netwm */ 1712 EAPI void ecore_x_netwm_init(void); 1713 EAPI void ecore_x_netwm_shutdown(void); 1714 EAPI void ecore_x_netwm_wm_identify(Ecore_X_Window root, Ecore_X_Window check, const char *wm_name); 1715 EAPI void ecore_x_netwm_supported_set(Ecore_X_Window root, Ecore_X_Atom *supported, int num); 1716 EAPI Eina_Bool ecore_x_netwm_supported_get(Ecore_X_Window root, Ecore_X_Atom **supported, int *num); 1717 EAPI void ecore_x_netwm_desk_count_set(Ecore_X_Window root, unsigned int n_desks); 1718 EAPI void ecore_x_netwm_desk_roots_set(Ecore_X_Window root, Ecore_X_Window *vroots, unsigned int n_desks); 1719 EAPI void ecore_x_netwm_desk_names_set(Ecore_X_Window root, const char **names, unsigned int n_desks); 1720 EAPI void ecore_x_netwm_desk_size_set(Ecore_X_Window root, unsigned int width, unsigned int height); 1721 EAPI void ecore_x_netwm_desk_workareas_set(Ecore_X_Window root, unsigned int *areas, unsigned int n_desks); 1722 EAPI unsigned int *ecore_x_netwm_desk_workareas_get(Ecore_X_Window root, unsigned int *n_desks); 1723 EAPI void ecore_x_netwm_desk_current_set(Ecore_X_Window root, unsigned int desk); 1724 EAPI void ecore_x_netwm_desk_viewports_set(Ecore_X_Window root, unsigned int *origins, unsigned int n_desks); 1725 EAPI void ecore_x_netwm_desk_layout_set(Ecore_X_Window root, int orientation, int columns, int rows, int starting_corner); 1726 EAPI void ecore_x_netwm_showing_desktop_set(Ecore_X_Window root, Eina_Bool on); 1727 EAPI void ecore_x_netwm_client_list_set(Ecore_X_Window root, Ecore_X_Window *p_clients, unsigned int n_clients); 1728 EAPI void ecore_x_netwm_client_list_stacking_set(Ecore_X_Window root, Ecore_X_Window *p_clients, unsigned int n_clients); 1729 EAPI void ecore_x_netwm_client_active_set(Ecore_X_Window root, Ecore_X_Window win); 1730 EAPI void ecore_x_netwm_client_active_request(Ecore_X_Window root, Ecore_X_Window win, int type, Ecore_X_Window current_win); 1731 EAPI void ecore_x_netwm_name_set(Ecore_X_Window win, const char *name); 1732 EAPI int ecore_x_netwm_name_get(Ecore_X_Window win, char **name); 1733 EAPI void ecore_x_netwm_startup_id_set(Ecore_X_Window win, const char *id); 1734 EAPI int ecore_x_netwm_startup_id_get(Ecore_X_Window win, char **id); 1735 EAPI void ecore_x_netwm_visible_name_set(Ecore_X_Window win, const char *name); 1736 EAPI int ecore_x_netwm_visible_name_get(Ecore_X_Window win, char **name); 1737 EAPI void ecore_x_netwm_icon_name_set(Ecore_X_Window win, const char *name); 1738 EAPI int ecore_x_netwm_icon_name_get(Ecore_X_Window win, char **name); 1739 EAPI void ecore_x_netwm_visible_icon_name_set(Ecore_X_Window win, const char *name); 1740 EAPI int ecore_x_netwm_visible_icon_name_get(Ecore_X_Window win, char **name); 1741 EAPI void ecore_x_netwm_desktop_set(Ecore_X_Window win, unsigned int desk); 1742 EAPI Eina_Bool ecore_x_netwm_desktop_get(Ecore_X_Window win, unsigned int *desk); 1743 EAPI void ecore_x_netwm_strut_set(Ecore_X_Window win, int left, int right, int top, int bottom); 1744 EAPI Eina_Bool ecore_x_netwm_strut_get(Ecore_X_Window win, int *left, int *right, int *top, int *bottom); 1745 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); 1746 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); 1747 1748 EAPI void ecore_x_netwm_icons_set(Ecore_X_Window win, Ecore_X_Icon *icon, int num); 1749 1750 EAPI Eina_Bool ecore_x_netwm_icons_get(Ecore_X_Window win, Ecore_X_Icon **icon, int *num); 1751 EAPI void ecore_x_netwm_icon_geometry_set(Ecore_X_Window win, int x, int y, int width, int height); 1752 EAPI Eina_Bool ecore_x_netwm_icon_geometry_get(Ecore_X_Window win, int *x, int *y, int *width, int *height); 1753 EAPI void ecore_x_netwm_pid_set(Ecore_X_Window win, int pid); 1754 EAPI Eina_Bool ecore_x_netwm_pid_get(Ecore_X_Window win, int *pid); 1755 EAPI void ecore_x_netwm_handled_icons_set(Ecore_X_Window win); 1756 EAPI Eina_Bool ecore_x_netwm_handled_icons_get(Ecore_X_Window win); 1757 EAPI void ecore_x_netwm_user_time_set(Ecore_X_Window win, unsigned int time); 1758 EAPI Eina_Bool ecore_x_netwm_user_time_get(Ecore_X_Window win, unsigned int *time); 1759 EAPI void ecore_x_netwm_window_state_set(Ecore_X_Window win, Ecore_X_Window_State *state, unsigned int num); 1760 EAPI Eina_Bool ecore_x_netwm_window_state_get(Ecore_X_Window win, Ecore_X_Window_State **state, unsigned int *num); 1761 EAPI void ecore_x_netwm_window_type_set(Ecore_X_Window win, Ecore_X_Window_Type type); 1762 EAPI Eina_Bool ecore_x_netwm_window_type_get(Ecore_X_Window win, Ecore_X_Window_Type *type); 1763 EAPI int ecore_x_netwm_window_types_get(Ecore_X_Window win, Ecore_X_Window_Type **types); 1764 EAPI Eina_Bool ecore_x_netwm_allowed_action_isset(Ecore_X_Window win, Ecore_X_Action action); 1765 EAPI void ecore_x_netwm_allowed_action_set(Ecore_X_Window win, Ecore_X_Action *action, unsigned int num); 1766 EAPI Eina_Bool ecore_x_netwm_allowed_action_get(Ecore_X_Window win, Ecore_X_Action **action, unsigned int *num); 1767 EAPI void ecore_x_netwm_opacity_set(Ecore_X_Window win, unsigned int opacity); 1768 EAPI Eina_Bool ecore_x_netwm_opacity_get(Ecore_X_Window win, unsigned int *opacity); 1769 EAPI void ecore_x_netwm_frame_size_set(Ecore_X_Window win, int fl, int fr, int ft, int fb); 1770 EAPI Eina_Bool ecore_x_netwm_frame_size_get(Ecore_X_Window win, int *fl, int *fr, int *ft, int *fb); 1771 EAPI Eina_Bool ecore_x_netwm_sync_counter_get(Ecore_X_Window win, Ecore_X_Sync_Counter *counter); 1772 EAPI void ecore_x_netwm_ping_send(Ecore_X_Window win); 1773 EAPI void ecore_x_netwm_sync_request_send(Ecore_X_Window win, unsigned int serial); 1774 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); 1775 EAPI void ecore_x_netwm_desktop_request_send(Ecore_X_Window win, Ecore_X_Window root, unsigned int desktop); 1776 EAPI void ecore_x_netwm_moveresize_request_send(Ecore_X_Window win, int x, int y, Ecore_X_Netwm_Direction direction, unsigned int button); 1777 1778 EAPI void ecore_x_e_init(void); 1779 EAPI void ecore_x_e_frame_size_set(Ecore_X_Window win, int fl, int fr, int ft, int fb); 1780 EAPI void ecore_x_e_virtual_keyboard_set(Ecore_X_Window win, unsigned int is_keyboard); 1781 EAPI Eina_Bool ecore_x_e_virtual_keyboard_get(Ecore_X_Window win); 1782 EAPI void ecore_x_e_virtual_keyboard_state_set(Ecore_X_Window win, Ecore_X_Virtual_Keyboard_State state); 1783 EAPI Ecore_X_Virtual_Keyboard_State ecore_x_e_virtual_keyboard_state_get(Ecore_X_Window win); 1784 EAPI void ecore_x_e_virtual_keyboard_state_send(Ecore_X_Window win, Ecore_X_Virtual_Keyboard_State state); 1785 1786 /* Illume functions */ 1787 EAPI void ecore_x_e_illume_zone_set(Ecore_X_Window win, Ecore_X_Window zone); 1788 EAPI Ecore_X_Window ecore_x_e_illume_zone_get(Ecore_X_Window win); 1789 EAPI void ecore_x_e_illume_zone_list_set(Ecore_X_Window win, Ecore_X_Window *zones, unsigned int n_zones); 1790 EAPI void ecore_x_e_illume_conformant_set(Ecore_X_Window win, unsigned int is_conformant); 1791 EAPI Eina_Bool ecore_x_e_illume_conformant_get(Ecore_X_Window win); 1792 EAPI void ecore_x_e_illume_mode_set(Ecore_X_Window win, Ecore_X_Illume_Mode mode); 1793 EAPI Ecore_X_Illume_Mode ecore_x_e_illume_mode_get(Ecore_X_Window win); 1794 EAPI void ecore_x_e_illume_mode_send(Ecore_X_Window win, Ecore_X_Illume_Mode mode); 1795 EAPI void ecore_x_e_illume_focus_back_send(Ecore_X_Window win); 1796 EAPI void ecore_x_e_illume_focus_forward_send(Ecore_X_Window win); 1797 EAPI void ecore_x_e_illume_focus_home_send(Ecore_X_Window win); 1798 EAPI void ecore_x_e_illume_close_send(Ecore_X_Window win); 1799 EAPI void ecore_x_e_illume_home_new_send(Ecore_X_Window win); 1800 EAPI void ecore_x_e_illume_home_del_send(Ecore_X_Window win); 1801 EAPI void ecore_x_e_illume_access_action_next_send(Ecore_X_Window win); 1802 EAPI void ecore_x_e_illume_access_action_prev_send(Ecore_X_Window win); 1803 EAPI void ecore_x_e_illume_access_action_activate_send(Ecore_X_Window win); 1804 EAPI void ecore_x_e_illume_access_action_over_send(Ecore_X_Window win); 1805 EAPI void ecore_x_e_illume_access_action_read_send(Ecore_X_Window win); 1806 EAPI void ecore_x_e_illume_access_action_read_next_send(Ecore_X_Window win); 1807 EAPI void ecore_x_e_illume_access_action_read_prev_send(Ecore_X_Window win); 1808 EAPI void ecore_x_e_illume_access_action_up_send(Ecore_X_Window win); 1809 EAPI void ecore_x_e_illume_access_action_down_send(Ecore_X_Window win); 1810 1811 EAPI void ecore_x_e_illume_drag_set(Ecore_X_Window win, unsigned int drag); 1812 EAPI Eina_Bool ecore_x_e_illume_drag_get(Ecore_X_Window win); 1813 EAPI void ecore_x_e_illume_drag_locked_set(Ecore_X_Window win, unsigned int is_locked); 1814 EAPI Eina_Bool ecore_x_e_illume_drag_locked_get(Ecore_X_Window win); 1815 EAPI void ecore_x_e_illume_drag_start_send(Ecore_X_Window win); 1816 EAPI void ecore_x_e_illume_drag_end_send(Ecore_X_Window win); 1817 EAPI void ecore_x_e_illume_indicator_geometry_set(Ecore_X_Window win, int x, int y, int w, int h); 1818 EAPI Eina_Bool ecore_x_e_illume_indicator_geometry_get(Ecore_X_Window win, int *x, int *y, int *w, int *h); 1819 EAPI void ecore_x_e_illume_softkey_geometry_set(Ecore_X_Window win, int x, int y, int w, int h); 1820 EAPI Eina_Bool ecore_x_e_illume_softkey_geometry_get(Ecore_X_Window win, int *x, int *y, int *w, int *h); 1821 EAPI void ecore_x_e_illume_keyboard_geometry_set(Ecore_X_Window win, int x, int y, int w, int h); 1822 EAPI Eina_Bool ecore_x_e_illume_keyboard_geometry_get(Ecore_X_Window win, int *x, int *y, int *w, int *h); 1823 EAPI void ecore_x_e_illume_quickpanel_set(Ecore_X_Window win, unsigned int is_quickpanel); 1824 EAPI Eina_Bool ecore_x_e_illume_quickpanel_get(Ecore_X_Window win); 1825 EAPI void ecore_x_e_illume_quickpanel_state_set(Ecore_X_Window win, Ecore_X_Illume_Quickpanel_State state); 1826 EAPI Ecore_X_Illume_Quickpanel_State ecore_x_e_illume_quickpanel_state_get(Ecore_X_Window win); 1827 EAPI void ecore_x_e_illume_quickpanel_state_send(Ecore_X_Window win, Ecore_X_Illume_Quickpanel_State state); 1828 EAPI void ecore_x_e_illume_quickpanel_state_toggle(Ecore_X_Window win); 1829 EAPI void ecore_x_e_illume_quickpanel_priority_major_set(Ecore_X_Window win, unsigned int priority); 1830 EAPI int ecore_x_e_illume_quickpanel_priority_major_get(Ecore_X_Window win); 1831 EAPI void ecore_x_e_illume_quickpanel_priority_minor_set(Ecore_X_Window win, unsigned int priority); 1832 EAPI int ecore_x_e_illume_quickpanel_priority_minor_get(Ecore_X_Window win); 1833 EAPI void ecore_x_e_illume_quickpanel_zone_set(Ecore_X_Window win, unsigned int zone); 1834 EAPI int ecore_x_e_illume_quickpanel_zone_get(Ecore_X_Window win); 1835 EAPI void ecore_x_e_illume_quickpanel_zone_request_send(Ecore_X_Window win); 1836 EAPI void ecore_x_e_illume_quickpanel_position_update_send(Ecore_X_Window win); 1837 1838 EAPI void ecore_x_e_illume_clipboard_state_set(Ecore_X_Window win, Ecore_X_Illume_Clipboard_State state); 1839 1840 EAPI Ecore_X_Illume_Clipboard_State ecore_x_e_illume_clipboard_state_get(Ecore_X_Window win); 1841 1842 EAPI void ecore_x_e_illume_clipboard_geometry_set(Ecore_X_Window win, int x, int y, int w, int h); 1843 EAPI Eina_Bool ecore_x_e_illume_clipboard_geometry_get(Ecore_X_Window win, int *x, int *y, int *w, int *h); 1844 EAPI void ecore_x_e_comp_sync_counter_set(Ecore_X_Window win, Ecore_X_Sync_Counter counter); 1845 EAPI Ecore_X_Sync_Counter ecore_x_e_comp_sync_counter_get(Ecore_X_Window win); 1846 EAPI void ecore_x_e_comp_sync_draw_done_send(Ecore_X_Window root, Ecore_X_Window win); 1847 EAPI void ecore_x_e_comp_sync_draw_size_done_send(Ecore_X_Window root, Ecore_X_Window win, int w, int h); 1848 EAPI void ecore_x_e_comp_sync_supported_set(Ecore_X_Window root, Eina_Bool enabled); 1849 EAPI Eina_Bool ecore_x_e_comp_sync_supported_get(Ecore_X_Window root); 1850 EAPI void ecore_x_e_comp_sync_begin_send(Ecore_X_Window win); 1851 EAPI void ecore_x_e_comp_sync_end_send(Ecore_X_Window win); 1852 EAPI void ecore_x_e_comp_sync_cancel_send(Ecore_X_Window win); 1853 1854 EAPI void ecore_x_e_comp_flush_send(Ecore_X_Window win); 1855 EAPI void ecore_x_e_comp_dump_send(Ecore_X_Window win); 1856 EAPI void ecore_x_e_comp_pixmap_set(Ecore_X_Window win, Ecore_X_Pixmap pixmap); 1857 EAPI Ecore_X_Pixmap ecore_x_e_comp_pixmap_get(Ecore_X_Window win); 1858 1859 /** 1860 * @brief Get the window profile 1861 * 1862 * @param win The client x window 1863 * @return The string value of the window profile, or NULL if none exists 1864 */ 1865 EAPI char *ecore_x_e_window_profile_get(Ecore_X_Window win); 1866 /** 1867 * @brief Set the window profile 1868 * 1869 * @param win The client x window 1870 * @param profile The string value of the window profile 1871 */ 1872 EAPI void ecore_x_e_window_profile_set(Ecore_X_Window win, const char *profile); 1873 /** 1874 * @brief Set the array of window profiles 1875 * 1876 * @param win The client x window 1877 * @param profiles The string array of window profiles 1878 * @param num_profiles The number of window profiles 1879 * 1880 * @deprecated use ecore_x_e_window_available_profiles_set 1881 */ 1882 EAPI void ecore_x_e_window_profile_list_set(Ecore_X_Window win, const char **profiles, unsigned int num_profiles); 1883 /** 1884 * @brief Get the array of window profiles 1885 * 1886 * @param win The client x window 1887 * @param profiles Where to return the string array of window profiles 1888 * @param ret_num Where to return the number of window profiles 1889 * @return EINA_TRUE if window profiles exist, EINA_FALSE otherwise 1890 * 1891 * @deprecated use ecore_x_e_window_available_profiles_get 1892 */ 1893 EAPI Eina_Bool ecore_x_e_window_profile_list_get(Ecore_X_Window win, const char ***profiles, int *ret_num); 1894 /** 1895 * @brief Set the status for the window profile support 1896 * 1897 * @param root The root window 1898 * @param enabled The enabled value for the window profile support 1899 * 1900 * @since 1.8 1901 */ 1902 EAPI void ecore_x_e_window_profile_supported_set(Ecore_X_Window root, Eina_Bool enabled); 1903 /** 1904 * @brief Query if the window profile is supported 1905 * 1906 * @param root The root window 1907 * @return EINA_TRUE if it is supported, EINA_FALSE otherwise 1908 * 1909 * @since 1.8 1910 */ 1911 EAPI Eina_Bool ecore_x_e_window_profile_supported_get(Ecore_X_Window root); 1912 /** 1913 * @brief Set the array of available window profiles 1914 * 1915 * @param win The client x window 1916 * @param profiles The string array of available window profiles 1917 * @param count The number of available window profiles 1918 * 1919 * @since 1.8 1920 */ 1921 EAPI void ecore_x_e_window_available_profiles_set(Ecore_X_Window win, const char **profiles, unsigned int count); 1922 /** 1923 * @brief Get the array of avaialbe window profiles 1924 * 1925 * @param win The client x window 1926 * @param profiles Where to return the string array of available window profiles 1927 * @param count Where to return the number of members in profiles 1928 * @return EINA_TRUE if available window profiles exist, EINA_FALSE otherwise 1929 * 1930 * @since 1.8 1931 */ 1932 EAPI Eina_Bool ecore_x_e_window_available_profiles_get(Ecore_X_Window win, const char ***profiles, int *count); 1933 /** 1934 * @brief Send a profile change event to the window manager 1935 * 1936 * This function sends a request to the window manager to change the profile. 1937 * If honored by the window manager, the client will receive a profile change 1938 * request event back. If the client has replied, the window manager will move 1939 * the client window on the virtual desktop associated with changed profile. 1940 * 1941 * @param root The root x window 1942 * @param win The client x window 1943 * @param profile The string value of the window profile 1944 * 1945 * @since 1.8 1946 */ 1947 EAPI void ecore_x_e_window_profile_change_send(Ecore_X_Window root, Ecore_X_Window win, const char *profile); 1948 /** 1949 * @brief Send a profile change request event to the client 1950 * 1951 * This function sends a request to the client to change the profile. 1952 * If the client has replied, the window manager will move the client window 1953 * on the virtual desktop associated with changed profile. 1954 * 1955 * @param win The client x window 1956 * @param profile The string value of the window profile 1957 * 1958 * @since 1.8 1959 */ 1960 EAPI void ecore_x_e_window_profile_change_request_send(Ecore_X_Window win, const char *profile); 1961 /** 1962 * @brief Send a profile change done event to the window manager 1963 * 1964 * This function sends a profile change done event to the window manager. 1965 * Upon receiving, the window manager will move the client window 1966 * on the virtual desktop associated with changed profile. 1967 * 1968 * @param root The root x window 1969 * @param win The client x window 1970 * @param profile The string value of the window profile 1971 * 1972 * @since 1.8 1973 */ 1974 EAPI void ecore_x_e_window_profile_change_done_send(Ecore_X_Window root, Ecore_X_Window win, const char *profile); 1975 1976 EAPI Ecore_X_Sync_Alarm ecore_x_sync_alarm_new(Ecore_X_Sync_Counter counter); 1977 EAPI Eina_Bool ecore_x_sync_alarm_free(Ecore_X_Sync_Alarm alarm); 1978 EAPI Eina_Bool ecore_x_sync_counter_query(Ecore_X_Sync_Counter counter, unsigned int *val); 1979 EAPI Ecore_X_Sync_Counter ecore_x_sync_counter_new(int val); 1980 EAPI void ecore_x_sync_counter_free(Ecore_X_Sync_Counter counter); 1981 EAPI void ecore_x_sync_counter_inc(Ecore_X_Sync_Counter counter, int by); 1982 EAPI void ecore_x_sync_counter_val_wait(Ecore_X_Sync_Counter counter, int val); 1983 1984 EAPI void ecore_x_sync_counter_set(Ecore_X_Sync_Counter counter, int val); 1985 EAPI void ecore_x_sync_counter_2_set(Ecore_X_Sync_Counter counter, int val_hi, unsigned int val_lo); 1986 EAPI Eina_Bool ecore_x_sync_counter_2_query(Ecore_X_Sync_Counter counter, int *val_hi, unsigned int *val_lo); 1987 1988 EAPI int ecore_x_xinerama_screen_count_get(void); 1989 EAPI Eina_Bool ecore_x_xinerama_screen_geometry_get(int screen, int *x, int *y, int *w, int *h); 1990 1991 EAPI Eina_Bool ecore_x_screensaver_event_available_get(void); 1992 EAPI int ecore_x_screensaver_idle_time_get(void); 1993 EAPI void ecore_x_screensaver_set(int timeout, int interval, int prefer_blanking, int allow_exposures); 1994 EAPI void ecore_x_screensaver_timeout_set(int timeout); 1995 EAPI int ecore_x_screensaver_timeout_get(void); 1996 EAPI void ecore_x_screensaver_blank_set(int timeout); 1997 EAPI int ecore_x_screensaver_blank_get(void); 1998 EAPI void ecore_x_screensaver_expose_set(int timeout); 1999 EAPI int ecore_x_screensaver_expose_get(void); 2000 EAPI void ecore_x_screensaver_interval_set(int timeout); 2001 EAPI int ecore_x_screensaver_interval_get(void); 2002 EAPI void ecore_x_screensaver_event_listen_set(Eina_Bool on); 2003 EAPI Eina_Bool ecore_x_screensaver_custom_blanking_enable(void); /** @since 1.7 */ 2004 EAPI Eina_Bool ecore_x_screensaver_custom_blanking_disable(void); /** @since 1.7 */ 2005 EINA_DEPRECATED EAPI void ecore_x_screensaver_supend(void); /** @since 1.11 */ 2006 EAPI void ecore_x_screensaver_resume(void); /** @since 1.11 */ 2007 EAPI void ecore_x_screensaver_reset(void); /** @since 1.11 */ 2008 EAPI void ecore_x_screensaver_activate(void); /** @since 1.11 */ 2009 EAPI void ecore_x_screensaver_suspend(void); /** @since 1.13 */ 2010 2011 /* FIXME: these funcs need categorising */ 2012 2013 typedef struct _Ecore_X_Window_Attributes 2014 { 2015 Ecore_X_Window root; 2016 int x, y, w, h; 2017 int border; 2018 int depth; 2019 Eina_Bool visible : 1; 2020 Eina_Bool viewable : 1; 2021 Eina_Bool override : 1; 2022 Eina_Bool input_only : 1; 2023 Eina_Bool save_under : 1; 2024 struct 2025 { 2026 Ecore_X_Event_Mask mine; 2027 Ecore_X_Event_Mask all; 2028 Ecore_X_Event_Mask no_propagate; 2029 } event_mask; 2030 Ecore_X_Gravity window_gravity; 2031 Ecore_X_Gravity pixel_gravity; 2032 Ecore_X_Colormap colormap; 2033 Ecore_X_Visual visual; 2034 /* FIXME: missing 2035 * int map_installed; 2036 * Screen *screen; 2037 */ 2038 } Ecore_X_Window_Attributes; 2039 2040 EAPI Eina_Bool ecore_x_window_attributes_get(Ecore_X_Window win, Ecore_X_Window_Attributes *att_ret); 2041 EAPI void ecore_x_window_save_set_add(Ecore_X_Window win); 2042 EAPI void ecore_x_window_save_set_del(Ecore_X_Window win); 2043 EAPI Ecore_X_Window *ecore_x_window_children_get(Ecore_X_Window win, int *num); 2044 2045 EAPI Eina_Bool ecore_x_pointer_control_set(int accel_num, int accel_denom, int threshold); 2046 EAPI Eina_Bool ecore_x_pointer_control_get(int *accel_num, int *accel_denom, int *threshold); 2047 EAPI Eina_Bool ecore_x_pointer_mapping_set(unsigned char *map, int nmap); 2048 EAPI Eina_Bool ecore_x_pointer_mapping_get(unsigned char *map, int nmap); 2049 EAPI Eina_Bool ecore_x_pointer_grab(Ecore_X_Window win); 2050 EAPI Eina_Bool ecore_x_pointer_confine_grab(Ecore_X_Window win); 2051 EAPI void ecore_x_pointer_ungrab(void); 2052 EAPI Eina_Bool ecore_x_pointer_warp(Ecore_X_Window win, int x, int y); 2053 EAPI Eina_Bool ecore_x_keyboard_grab(Ecore_X_Window win); 2054 EAPI void ecore_x_keyboard_ungrab(void); 2055 EAPI void ecore_x_grab(void); 2056 EAPI void ecore_x_ungrab(void); 2057 EAPI void ecore_x_passive_grab_replay_func_set(Eina_Bool (*func)(void *data, int event_type, void *event), void *data); 2058 EAPI void ecore_x_window_button_grab(Ecore_X_Window win, int button, Ecore_X_Event_Mask event_mask, int mod, int any_mod); 2059 EAPI void ecore_x_window_button_ungrab(Ecore_X_Window win, int button, int mod, int any_mod); 2060 EAPI void ecore_x_window_key_grab(Ecore_X_Window win, const char *key, int mod, int any_mod); 2061 EAPI void ecore_x_window_key_ungrab(Ecore_X_Window win, const char *key, int mod, int any_mod); 2062 2063 EAPI void ecore_x_focus_reset(void); 2064 EAPI void ecore_x_events_allow_all(void); 2065 EAPI void ecore_x_pointer_last_xy_get(int *x, int *y); 2066 EAPI void ecore_x_pointer_xy_get(Ecore_X_Window win, int *x, int *y); 2067 EAPI void ecore_x_pointer_root_xy_get(int *x, int *y); 2068 2069 /* ecore_x_region.c */ 2070 EAPI Ecore_X_XRegion *ecore_x_xregion_new(void); 2071 EAPI void ecore_x_xregion_free(Ecore_X_XRegion *region); 2072 EAPI Eina_Bool ecore_x_xregion_set(Ecore_X_XRegion *region, Ecore_X_GC gc); 2073 EAPI void ecore_x_xregion_translate(Ecore_X_XRegion *region, int x, int y); 2074 EAPI Eina_Bool ecore_x_xregion_intersect(Ecore_X_XRegion *dst, Ecore_X_XRegion *r1, Ecore_X_XRegion *r2); 2075 EAPI Eina_Bool ecore_x_xregion_union(Ecore_X_XRegion *dst, Ecore_X_XRegion *r1, Ecore_X_XRegion *r2); 2076 EAPI Eina_Bool ecore_x_xregion_union_rect(Ecore_X_XRegion *dst, Ecore_X_XRegion *src, Ecore_X_Rectangle *rect); 2077 EAPI Eina_Bool ecore_x_xregion_subtract(Ecore_X_XRegion *dst, Ecore_X_XRegion *r1, Ecore_X_XRegion *r2); 2078 EAPI Eina_Bool ecore_x_xregion_is_empty(Ecore_X_XRegion *region); 2079 EAPI Eina_Bool ecore_x_xregion_is_equal(Ecore_X_XRegion *r1, Ecore_X_XRegion *r2); 2080 EAPI Eina_Bool ecore_x_xregion_point_contain(Ecore_X_XRegion *region, int x, int y); 2081 EAPI Eina_Bool ecore_x_xregion_rect_contain(Ecore_X_XRegion *region, Ecore_X_Rectangle *rect); 2082 2083 /* ecore_x_randr.c */ 2084 2085 /* The usage of 'Ecore_X_Randr_None' or 'Ecore_X_Randr_Unset' 2086 * depends on the context. In most cases 'Ecore_X_Randr_Unset' 2087 * can be used, but in some cases -1 is a special value to 2088 * functions, thus 'Ecore_X_Randr_None' (=0) must be used. 2089 */ 2090 2091 typedef short Ecore_X_Randr_Refresh_Rate; 2092 typedef int Ecore_X_Randr_Crtc_Gamma; 2093 typedef int Ecore_X_Randr_Signal_Format; 2094 typedef int Ecore_X_Randr_Signal_Property; 2095 typedef int Ecore_X_Randr_Connector_Type; 2096 2097 typedef enum _Ecore_X_Randr_Mode_Flags 2098 { 2099 ECORE_X_RANDR_MODE_HSYNC_POSITIVE = 0x00000001, 2100 ECORE_X_RANDR_MODE_HSYNC_NEGATIVE = 0x00000002, 2101 ECORE_X_RANDR_MODE_VSYNC_POSITIVE = 0x00000004, 2102 ECORE_X_RANDR_MODE_VSYNC_NEGATIVE = 0x00000008, 2103 ECORE_X_RANDR_MODE_INTERLACE = 0x00000010, 2104 ECORE_X_RANDR_MODE_DOUBLE_SCAN = 0x00000020, 2105 ECORE_X_RANDR_MODE_CSYNC = 0x00000040, 2106 ECORE_X_RANDR_MODE_CSYNC_POSITIVE = 0x00000080, 2107 ECORE_X_RANDR_MODE_CSYNC_NEGATIVE = 0x00000100, 2108 ECORE_X_RANDR_MODE_HSKEW_PRESENT = 0x00000200, 2109 ECORE_X_RANDR_MODE_BCAST = 0x00000400, 2110 ECORE_X_RANDR_MODE_PIXEL_MULTIPLEX = 0x00000800, 2111 ECORE_X_RANDR_MODE_DOUBLE_CLOCK = 0x00001000, 2112 ECORE_X_RANDR_MODE_CLOCK_DIV_BY_2 = 0x00002000, 2113 } Ecore_X_Randr_Mode_Flags; 2114 2115 typedef struct _Ecore_X_Randr_Mode_Info 2116 { 2117 Ecore_X_ID xid; 2118 unsigned int width; 2119 unsigned int height; 2120 unsigned long dotClock; 2121 unsigned int hSyncStart; 2122 unsigned int hSyncEnd; 2123 unsigned int hTotal; 2124 unsigned int hSkew; 2125 unsigned int vSyncStart; 2126 unsigned int vSyncEnd; 2127 unsigned int vTotal; 2128 char *name; 2129 unsigned int nameLength; 2130 unsigned long modeFlags; 2131 } Ecore_X_Randr_Mode_Info; 2132 2133 typedef struct _Ecore_X_Randr_Crtc_Gamma_Info 2134 { 2135 int size; 2136 unsigned short *red; 2137 unsigned short *green; 2138 unsigned short *blue; 2139 } Ecore_X_Randr_Crtc_Gamma_Info; 2140 2141 EAPI int ecore_x_randr_version_get(void); 2142 EAPI Eina_Bool ecore_x_randr_query(void); 2143 EAPI Ecore_X_Time ecore_x_randr_config_timestamp_get(Ecore_X_Window root); /** @since 1.8 */ 2144 EAPI Ecore_X_Randr_Orientation ecore_x_randr_screen_primary_output_orientations_get(Ecore_X_Window root); 2145 EAPI Ecore_X_Randr_Orientation ecore_x_randr_screen_primary_output_orientation_get(Ecore_X_Window root); 2146 EAPI Eina_Bool ecore_x_randr_screen_primary_output_orientation_set(Ecore_X_Window root, Ecore_X_Randr_Orientation orientation); 2147 EAPI Ecore_X_Randr_Screen_Size_MM *ecore_x_randr_screen_primary_output_sizes_get(Ecore_X_Window root, int *num); 2148 2149 /** 2150 * @brief get the current set size of a given screen's primary output 2151 * @param root window which's primary output will be queried 2152 * @param w the current size's width 2153 * @param h the current size's height 2154 * @param w_mm the current size's width in mm 2155 * @param h_mm the current size's height in mm 2156 * @param size_index of current set size to be used with ecore_x_randr_primary_output_size_set() 2157 */ 2158 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); 2159 EAPI Eina_Bool ecore_x_randr_screen_primary_output_size_set(Ecore_X_Window root, int size_index); 2160 EAPI Ecore_X_Randr_Refresh_Rate ecore_x_randr_screen_primary_output_current_refresh_rate_get(Ecore_X_Window root); 2161 EAPI Ecore_X_Randr_Refresh_Rate *ecore_x_randr_screen_primary_output_refresh_rates_get(Ecore_X_Window root, int size_index, int *num); 2162 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); 2163 2164 EAPI void ecore_x_randr_events_select(Ecore_X_Window win, Eina_Bool on); 2165 2166 EAPI void ecore_x_randr_screen_current_size_get(Ecore_X_Window root, int *w, int *h, int *w_mm, int *h_mm); 2167 EAPI void ecore_x_randr_screen_size_range_get(Ecore_X_Window root, int *wmin, int *hmin, int *wmax, int *hmax); 2168 EAPI void ecore_x_randr_screen_reset(Ecore_X_Window root); 2169 EAPI Eina_Bool ecore_x_randr_screen_current_size_set(Ecore_X_Window root, int w, int h, int w_mm, int h_mm); 2170 EAPI Ecore_X_Randr_Mode_Info **ecore_x_randr_modes_info_get(Ecore_X_Window root, int *num); 2171 EAPI Ecore_X_Randr_Mode ecore_x_randr_mode_info_add(Ecore_X_Window root, Ecore_X_Randr_Mode_Info *mode_info); 2172 EAPI void ecore_x_randr_mode_del(Ecore_X_Randr_Mode mode); 2173 EAPI Ecore_X_Randr_Mode_Info *ecore_x_randr_mode_info_get(Ecore_X_Window root, Ecore_X_Randr_Mode mode); 2174 EAPI void ecore_x_randr_mode_info_free(Ecore_X_Randr_Mode_Info *mode_info); 2175 EAPI Ecore_X_Randr_Crtc *ecore_x_randr_crtcs_get(Ecore_X_Window root, int *num); 2176 EAPI Ecore_X_Randr_Output *ecore_x_randr_outputs_get(Ecore_X_Window root, int *num); 2177 EAPI Ecore_X_Randr_Output *ecore_x_randr_window_outputs_get(Ecore_X_Window window, int *num); 2178 EAPI Ecore_X_Randr_Output *ecore_x_randr_current_output_get(Ecore_X_Window window, int *num); 2179 EAPI Ecore_X_Randr_Crtc *ecore_x_randr_window_crtcs_get(Ecore_X_Window window, int *num); 2180 EAPI Ecore_X_Randr_Crtc *ecore_x_randr_current_crtc_get(Ecore_X_Window window, int *num); 2181 EAPI Ecore_X_Randr_Output *ecore_x_randr_crtc_outputs_get(Ecore_X_Window root, Ecore_X_Randr_Crtc crtc, int *num); 2182 EAPI Ecore_X_Randr_Output *ecore_x_randr_crtc_possible_outputs_get(Ecore_X_Window root, Ecore_X_Randr_Crtc crtc, int *num); 2183 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); 2184 EAPI void ecore_x_randr_crtc_pos_get(Ecore_X_Window root, Ecore_X_Randr_Crtc crtc, int *x, int *y); 2185 EAPI Eina_Bool ecore_x_randr_crtc_pos_set(Ecore_X_Window root, Ecore_X_Randr_Crtc crtc, int x, int y); 2186 EAPI Ecore_X_Randr_Mode ecore_x_randr_crtc_mode_get(Ecore_X_Window root, Ecore_X_Randr_Crtc crtc); 2187 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); 2188 EAPI void ecore_x_randr_crtc_size_get(Ecore_X_Window root, Ecore_X_Randr_Crtc crtc, int *w, int *h); 2189 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); 2190 EAPI Ecore_X_Randr_Orientation ecore_x_randr_crtc_orientations_get(Ecore_X_Window root, Ecore_X_Randr_Crtc crtc); 2191 EAPI Ecore_X_Randr_Orientation ecore_x_randr_crtc_orientation_get(Ecore_X_Window root, Ecore_X_Randr_Crtc crtc); 2192 EAPI Eina_Bool ecore_x_randr_crtc_orientation_set(Ecore_X_Window root, Ecore_X_Randr_Crtc crtc, const Ecore_X_Randr_Orientation orientation); 2193 EAPI Eina_Bool ecore_x_randr_crtc_clone_set(Ecore_X_Window root, Ecore_X_Randr_Crtc original, Ecore_X_Randr_Crtc clone); 2194 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); 2195 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); 2196 EAPI Ecore_X_Randr_Crtc_Info *ecore_x_randr_crtc_info_get(Ecore_X_Window root, const Ecore_X_Randr_Crtc crtc); /**< @since 1.8 */ 2197 EAPI void ecore_x_randr_crtc_info_free(Ecore_X_Randr_Crtc_Info *info); /**< @since 1.8 */ 2198 EAPI Eina_Bool ecore_x_randr_output_mode_add(Ecore_X_Randr_Output output, Ecore_X_Randr_Mode mode); 2199 EAPI void ecore_x_randr_output_mode_del(Ecore_X_Randr_Output output, Ecore_X_Randr_Mode mode); 2200 EAPI Ecore_X_Randr_Mode *ecore_x_randr_output_modes_get(Ecore_X_Window root, Ecore_X_Randr_Output output, int *num, int *npreferred); 2201 EAPI Ecore_X_Randr_Output *ecore_x_randr_output_clones_get(Ecore_X_Window root, Ecore_X_Randr_Output output, int *num); 2202 EAPI Ecore_X_Randr_Crtc *ecore_x_randr_output_possible_crtcs_get(Ecore_X_Window root, Ecore_X_Randr_Output output, int *num); 2203 EAPI Ecore_X_Randr_Crtc ecore_x_randr_output_crtc_get(Ecore_X_Window root, Ecore_X_Randr_Output output); 2204 EAPI char *ecore_x_randr_output_name_get(Ecore_X_Window root, Ecore_X_Randr_Output output, int *len); 2205 EINA_DEPRECATED EAPI int ecore_x_randr_crtc_gamma_ramp_size_get(Ecore_X_Randr_Crtc crtc); 2206 EINA_DEPRECATED EAPI Ecore_X_Randr_Crtc_Gamma **ecore_x_randr_crtc_gamma_ramps_get(Ecore_X_Randr_Crtc crtc); 2207 EINA_DEPRECATED EAPI Eina_Bool ecore_x_randr_crtc_gamma_ramps_set(Ecore_X_Randr_Crtc crtc, const Ecore_X_Randr_Crtc_Gamma *red, const Ecore_X_Randr_Crtc_Gamma *green, const Ecore_X_Randr_Crtc_Gamma *blue); 2208 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); 2209 EAPI Eina_Bool ecore_x_randr_move_crtcs(Ecore_X_Window root, const Ecore_X_Randr_Crtc *crtcs, int ncrtc, int dx, int dy); 2210 EAPI void ecore_x_randr_mode_size_get(Ecore_X_Window root, Ecore_X_Randr_Mode mode, int *w, int *h); 2211 EAPI Ecore_X_Randr_Connection_Status ecore_x_randr_output_connection_status_get(Ecore_X_Window root, Ecore_X_Randr_Output output); 2212 EAPI void ecore_x_randr_output_size_mm_get(Ecore_X_Window root, Ecore_X_Randr_Output output, int *w, int *h); 2213 EAPI Eina_Bool ecore_x_randr_output_crtc_set(Ecore_X_Window root, Ecore_X_Randr_Output output, const Ecore_X_Randr_Crtc crtc); 2214 2215 EAPI int ecore_x_randr_crtc_gamma_size_get(Ecore_X_Randr_Crtc crtc); /**< @since 1.8 */ 2216 EAPI Ecore_X_Randr_Crtc_Gamma_Info *ecore_x_randr_crtc_gamma_get(Ecore_X_Randr_Crtc crtc); /**< @since 1.8 */ 2217 EAPI Eina_Bool ecore_x_randr_crtc_gamma_set(Ecore_X_Randr_Crtc crtc, const Ecore_X_Randr_Crtc_Gamma_Info *gamma); /**< @since 1.8 */ 2218 2219 /** 2220 * @brief Validates the header from raw EDID data. 2221 * 2222 * @param edid The edid structure. 2223 * @param edid_length Length of the edid structure. 2224 * @return @c EINA_TRUE, if the header is valid, @c EINA_FALSE otherwise. 2225 */ 2226 EAPI Eina_Bool ecore_x_randr_edid_has_valid_header(unsigned char *edid, unsigned long edid_length); 2227 2228 /** 2229 * @brief Checks whether a display's EDID has a valid checksum. 2230 * 2231 * @param edid The edid structure. 2232 * @param edid_length Length of the edid structure. 2233 * @return @c EINA_TRUE, if the checksum is valid, @c EINA_FALSE otherwise. 2234 */ 2235 EAPI Eina_Bool ecore_x_randr_edid_info_has_valid_checksum(unsigned char *edid, unsigned long edid_length); 2236 2237 /** 2238 * @brief Get the encoded version from raw EDID data. 2239 * 2240 * The return value has the minor version in the lowest 8 bits, and the major 2241 * version in all the rest of the bits. i.e. 2242 * 2243 * minor = (version & 0x000000ff); 2244 * major = (version & 0xffffff00) >> 8; 2245 * 2246 * @param edid the edid structure 2247 * @param edid_length length of the edid structure 2248 * @return The encoded major and minor version encasuplated an int. 2249 */ 2250 EAPI int ecore_x_randr_edid_version_get(unsigned char *edid, unsigned long edid_length); 2251 2252 /** 2253 * @brief Get the encoded manufacturer from raw EDID data. 2254 * 2255 * @param edid the edid structure 2256 * @param edid_length length of the edid structure 2257 * @return The encoded manufacturer identifier. 2258 */ 2259 EAPI char *ecore_x_randr_edid_manufacturer_name_get(unsigned char *edid, unsigned long edid_length); 2260 2261 /** 2262 * @brief Get the encoded name from raw EDID data. 2263 * 2264 * @param edid the edid structure 2265 * @param edid_length length of the edid structure 2266 * @return The encoded manufacturer identifier. 2267 */ 2268 EAPI char *ecore_x_randr_edid_display_name_get(unsigned char *edid, unsigned long edid_length); 2269 2270 /** 2271 * @brief Get the encoded ASCII from raw EDID data. 2272 * 2273 * @param edid the edid structure 2274 * @param edid_length length of the edid structure 2275 * @return The encoded ASCII display identifier. 2276 */ 2277 EAPI char *ecore_x_randr_edid_display_ascii_get(unsigned char *edid, unsigned long edid_length); 2278 2279 /** 2280 * @brief Get the encoded serial identifier from raw EDID data. 2281 * 2282 * @param edid the edid structure 2283 * @param edid_length length of the edid structure 2284 * @return The encoded serial identifier. 2285 */ 2286 EAPI char *ecore_x_randr_edid_display_serial_get(unsigned char *edid, unsigned long edid_length); 2287 2288 /** 2289 * @brief Get the encoded model number from raw EDID data. 2290 * 2291 * The manufacturer ID table is necessary for a useful description. 2292 * 2293 * @param edid the edid structure 2294 * @param edid_length length of the edid structure 2295 * @return The encoded model number. 2296 */ 2297 EAPI int ecore_x_randr_edid_model_get(unsigned char *edid, unsigned long edid_length); 2298 2299 /** 2300 * @brief Get the manufacturer serial number from raw EDID data. 2301 * 2302 * @param edid the edid structure 2303 * @param edid_length length of the edid structure 2304 * @return The encoded serial manufacturer serial number. 2305 */ 2306 EAPI int ecore_x_randr_edid_manufacturer_serial_number_get(unsigned char *edid, unsigned long edid_length); 2307 2308 /** 2309 * @brief Get the manufacturer model number from raw EDID data. 2310 * 2311 * @param edid the edid structure 2312 * @param edid_length length of the edid structure 2313 * @return The manufacturer's model number. 2314 */ 2315 EAPI int ecore_x_randr_edid_manufacturer_model_get(unsigned char *edid, unsigned long edid_length); 2316 2317 /** 2318 * @brief Looks up the DPMS support from raw EDID data. 2319 * 2320 * @param edid The edid structure. 2321 * @param edid_length Length of the edid structure. 2322 * @return @c EINA_TRUE, if DPMS is supported in some way, @c EINA_FALSE 2323 * otherwise. 2324 */ 2325 EAPI Eina_Bool ecore_x_randr_edid_dpms_available_get(unsigned char *edid, unsigned long edid_length); 2326 2327 /** 2328 * @brief Looks up the DPMS Standby support from raw EDID data. 2329 * 2330 * @param edid The edid structure. 2331 * @param edid_length Length of the edid structure. 2332 * @return @c EINA_TRUE, if DPMS Standby is supported, @c EINA_FALSE otherwise. 2333 */ 2334 EAPI Eina_Bool ecore_x_randr_edid_dpms_standby_available_get(unsigned char *edid, unsigned long edid_length); 2335 2336 /** 2337 * @brief Looks up the DPMS Suspend support from raw EDID data. 2338 * 2339 * @param edid The edid structure. 2340 * @param edid_length Length of the edid structure. 2341 * @return @c EINA_TRUE, if DPMS Suspend is supported, @c EINA_FALSE otherwise. 2342 */ 2343 EAPI Eina_Bool ecore_x_randr_edid_dpms_suspend_available_get(unsigned char *edid, unsigned long edid_length); 2344 2345 /** 2346 * @brief Looks up the DPMS Off support from raw EDID data. 2347 * 2348 * @param edid The edid structure. 2349 * @param edid_length Length of the edid structure. 2350 * @return @c EINA_TRUE, if DPMS Off is supported, @c EINA_FALSE otherwise. 2351 */ 2352 EAPI Eina_Bool ecore_x_randr_edid_dpms_off_available_get(unsigned char *edid, unsigned long edid_length); 2353 2354 /** 2355 * @brief Get the preferred aspect ratio from raw EDID data. 2356 * 2357 * @param edid the edid structure 2358 * @param edid_length length of the edid structure 2359 * @return The preferred aspect ratio. 2360 */ 2361 EAPI Ecore_X_Randr_Edid_Aspect_Ratio ecore_x_randr_edid_display_aspect_ratio_preferred_get(unsigned char *edid, unsigned long edid_length); 2362 2363 /** 2364 * @brief Get the supported aspect ratios from raw EDID data. 2365 * 2366 * @param edid the edid structure 2367 * @param edid_length length of the edid structure 2368 * @return The supported aspect ratios. 2369 */ 2370 EAPI Ecore_X_Randr_Edid_Aspect_Ratio ecore_x_randr_edid_display_aspect_ratios_get(unsigned char *edid, unsigned long edid_length); 2371 2372 /** 2373 * @brief Get the supported colorschemes from raw EDID data. 2374 * 2375 * @param edid the edid structure 2376 * @param edid_length length of the edid structure 2377 * @return The supported colorschemes. 2378 */ 2379 EAPI Ecore_X_Randr_Edid_Display_Colorscheme ecore_x_randr_edid_display_colorscheme_get(unsigned char *edid, unsigned long edid_length); 2380 2381 /** 2382 * @brief Get the display type from raw EDID data. 2383 * 2384 * @param edid The edid structure. 2385 * @param edid_length Length of the edid structure. 2386 * @return @c EINA_TRUE, if the display is a digital one, @c EINA_FALSE 2387 * otherwise. 2388 */ 2389 EAPI Eina_Bool ecore_x_randr_edid_display_type_digital_get(unsigned char *edid, unsigned long edid_length); 2390 2391 /** 2392 * @brief Get the display interface type from raw EDID data. 2393 * 2394 * @param edid the edid structure 2395 * @param edid_length length of the edid structure 2396 * @return The interface type. 2397 */ 2398 EAPI Ecore_X_Randr_Edid_Display_Interface_Type ecore_x_randr_edid_display_interface_type_get(unsigned char *edid, unsigned long edid_length); 2399 2400 EAPI Eina_Bool ecore_x_randr_output_backlight_available(void); 2401 EAPI void ecore_x_randr_screen_backlight_level_set(Ecore_X_Window root, double level); 2402 EAPI double ecore_x_randr_output_backlight_level_get(Ecore_X_Window root, Ecore_X_Randr_Output output); 2403 EAPI Eina_Bool ecore_x_randr_output_backlight_level_set(Ecore_X_Window root, Ecore_X_Randr_Output output, double level); 2404 EAPI Ecore_X_Randr_Output ecore_x_randr_primary_output_get(Ecore_X_Window root); 2405 EAPI void ecore_x_randr_primary_output_set(Ecore_X_Window root, Ecore_X_Randr_Output output); 2406 EAPI Ecore_X_Render_Subpixel_Order ecore_x_randr_output_subpixel_order_get(Ecore_X_Window root, Ecore_X_Randr_Output output); 2407 EAPI unsigned char *ecore_x_randr_output_edid_get(Ecore_X_Window root, Ecore_X_Randr_Output output, unsigned long *length); 2408 EAPI Ecore_X_Randr_Output *ecore_x_randr_output_wired_clones_get(Ecore_X_Window root, Ecore_X_Randr_Output output, int *num); 2409 EAPI Ecore_X_Randr_Output **ecore_x_randr_output_compatibility_list_get(Ecore_X_Window root, Ecore_X_Randr_Output output, int *num); 2410 EAPI Ecore_X_Randr_Signal_Format *ecore_x_randr_output_signal_formats_get(Ecore_X_Window root, Ecore_X_Randr_Output output, int *num); 2411 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); 2412 EAPI Ecore_X_Randr_Signal_Property *ecore_x_randr_output_signal_properties_get(Ecore_X_Window root, Ecore_X_Randr_Output output, int *num); 2413 EAPI int ecore_x_randr_output_connector_number_get(Ecore_X_Window root, Ecore_X_Randr_Output output); 2414 EAPI Ecore_X_Randr_Connector_Type ecore_x_randr_output_connector_type_get(Ecore_X_Window root, Ecore_X_Randr_Output output); 2415 EAPI void ecore_x_randr_crtc_panning_area_get(Ecore_X_Window root, Ecore_X_Randr_Crtc crtc, int *x, int *y, int *w, int *h); /**< @since 1.8 */ 2416 EAPI Eina_Bool ecore_x_randr_crtc_panning_area_set(Ecore_X_Window root, Ecore_X_Randr_Crtc crtc, const int x, const int y, const int w, const int h); /**< @since 1.8 */ 2417 EAPI void ecore_x_randr_crtc_tracking_area_get(Ecore_X_Window root, Ecore_X_Randr_Crtc crtc, int *x, int *y, int *w, int *h); /**< @since 1.8 */ 2418 EAPI Eina_Bool ecore_x_randr_crtc_tracking_area_set(Ecore_X_Window root, Ecore_X_Randr_Crtc crtc, const int x, const int y, const int w, const int h); /**< @since 1.8 */ 2419 EAPI void ecore_x_randr_crtc_border_area_get(Ecore_X_Window root, Ecore_X_Randr_Crtc crtc, int *x, int *y, int *w, int *h); /**< @since 1.8 */ 2420 EAPI Eina_Bool ecore_x_randr_crtc_border_area_set(Ecore_X_Window root, Ecore_X_Randr_Crtc crtc, const int left, const int top, const int right, const int bottom); /**< @since 1.8 */ 2421 2422 /* XRender Support (horrendously incomplete) */ 2423 typedef Ecore_X_ID Ecore_X_Picture; 2424 2425 /* XFixes Extension Support */ 2426 typedef Ecore_X_ID Ecore_X_Region; 2427 2428 typedef enum _Ecore_X_Region_Type 2429 { 2430 ECORE_X_REGION_BOUNDING, 2431 ECORE_X_REGION_CLIP 2432 } Ecore_X_Region_Type; 2433 2434 EAPI Ecore_X_Region ecore_x_region_new(Ecore_X_Rectangle *rects, int num); 2435 EAPI Ecore_X_Region ecore_x_region_new_from_bitmap(Ecore_X_Pixmap bitmap); 2436 EAPI Ecore_X_Region ecore_x_region_new_from_window(Ecore_X_Window win, Ecore_X_Region_Type type); 2437 EAPI Ecore_X_Region ecore_x_region_new_from_gc(Ecore_X_GC gc); 2438 EAPI Ecore_X_Region ecore_x_region_new_from_picture(Ecore_X_Picture picture); 2439 EAPI void ecore_x_region_free(Ecore_X_Region region); 2440 EAPI void ecore_x_region_set(Ecore_X_Region region, Ecore_X_Rectangle *rects, int num); 2441 EAPI void ecore_x_region_copy(Ecore_X_Region dest, Ecore_X_Region source); 2442 EAPI void ecore_x_region_combine(Ecore_X_Region dest, Ecore_X_Region source1, Ecore_X_Region source2); 2443 EAPI void ecore_x_region_intersect(Ecore_X_Region dest, Ecore_X_Region source1, Ecore_X_Region source2); 2444 EAPI void ecore_x_region_subtract(Ecore_X_Region dest, Ecore_X_Region source1, Ecore_X_Region source2); 2445 EAPI void ecore_x_region_invert(Ecore_X_Region dest, Ecore_X_Rectangle *bounds, Ecore_X_Region source); 2446 EAPI void ecore_x_region_translate(Ecore_X_Region region, int dx, int dy); 2447 EAPI void ecore_x_region_extents(Ecore_X_Region dest, Ecore_X_Region source); 2448 EAPI Ecore_X_Rectangle *ecore_x_region_fetch(Ecore_X_Region region, int *num, Ecore_X_Rectangle *bounds); 2449 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); 2450 EAPI void ecore_x_region_gc_clip_set(Ecore_X_Region region, Ecore_X_GC gc, int x_origin, int y_origin); 2451 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); 2452 EAPI void ecore_x_region_picture_clip_set(Ecore_X_Region region, Ecore_X_Picture picture, int x_origin, int y_origin); 2453 EAPI void ecore_x_cursor_show(void); 2454 EAPI void ecore_x_cursor_hide(void); 2455 EAPI void ecore_x_root_screen_barriers_set(Ecore_X_Rectangle *screens, int num); /** @since 1.24 */ 2456 2457 /** 2458 * xfixes selection notification request. 2459 * 2460 * This lets you choose which selections you want to get notifications for. 2461 * @param selection The selection atom. 2462 * @return @c EINA_TRUE on success, @c EINA_FALSE otherwise. 2463 * @since 1.1.0 2464 */ 2465 EAPI Eina_Bool ecore_x_fixes_selection_notification_request(Ecore_X_Atom selection); 2466 2467 /** 2468 * xfixes selection notification request. 2469 * 2470 * In addition to ecore_x_fixes_selection_notification_request you can also specify for which window you want to get them 2471 * @since 1.24 2472 */ 2473 EAPI Eina_Bool ecore_x_fixes_window_selection_notification_request(Ecore_X_Window window, Ecore_X_Atom selection); 2474 2475 2476 /* XComposite Extension Support */ 2477 EAPI Eina_Bool ecore_x_composite_query(void); 2478 EAPI void ecore_x_composite_redirect_window(Ecore_X_Window win, Ecore_X_Composite_Update_Type type); 2479 EAPI void ecore_x_composite_redirect_subwindows(Ecore_X_Window win, Ecore_X_Composite_Update_Type type); 2480 EAPI void ecore_x_composite_unredirect_window(Ecore_X_Window win, Ecore_X_Composite_Update_Type type); 2481 EAPI void ecore_x_composite_unredirect_subwindows(Ecore_X_Window win, Ecore_X_Composite_Update_Type type); 2482 EAPI Ecore_X_Pixmap ecore_x_composite_name_window_pixmap_get(Ecore_X_Window win); 2483 EAPI void ecore_x_composite_window_events_disable(Ecore_X_Window win); 2484 EAPI void ecore_x_composite_window_events_enable(Ecore_X_Window win); 2485 EAPI Ecore_X_Window ecore_x_composite_render_window_enable(Ecore_X_Window root); 2486 EAPI void ecore_x_composite_render_window_disable(Ecore_X_Window root); 2487 2488 /* XPresent Extension Support */ 2489 /** @since 1.9 */ 2490 EAPI void ecore_x_present_select_events(Ecore_X_Window win, unsigned int events); 2491 /** @since 1.9 */ 2492 EAPI void ecore_x_present_notify_msc(Ecore_X_Window win, unsigned int serial, unsigned long long target_msc, unsigned long long divisor, unsigned long long remainder); 2493 /** @since 1.9 */ 2494 EAPI void ecore_x_present_pixmap(Ecore_X_Window win, Ecore_X_Pixmap pixmap, unsigned int serial, Ecore_X_Region valid, 2495 Ecore_X_Region update, int x_off, int y_off, Ecore_X_Randr_Crtc target_crtc, 2496 Ecore_X_Sync_Fence wait_fence, Ecore_X_Sync_Fence idle_fence, unsigned int options, 2497 unsigned long long target_msc, unsigned long long divisor, unsigned long long remainder, 2498 Ecore_X_Present *notifies, int num_notifies); 2499 /** @since 1.9 */ 2500 EAPI Eina_Bool ecore_x_present_exists(void); 2501 2502 /* XDamage Extension Support */ 2503 typedef Ecore_X_ID Ecore_X_Damage; 2504 2505 typedef enum _Ecore_X_Damage_Report_Level 2506 { 2507 ECORE_X_DAMAGE_REPORT_RAW_RECTANGLES, 2508 ECORE_X_DAMAGE_REPORT_DELTA_RECTANGLES, 2509 ECORE_X_DAMAGE_REPORT_BOUNDING_BOX, 2510 ECORE_X_DAMAGE_REPORT_NON_EMPTY 2511 } Ecore_X_Damage_Report_Level; 2512 2513 struct _Ecore_X_Event_Damage 2514 { 2515 Ecore_X_Damage_Report_Level level; 2516 Ecore_X_Drawable drawable; 2517 Ecore_X_Damage damage; 2518 int more; 2519 Ecore_X_Time time; 2520 Ecore_X_Rectangle area; 2521 Ecore_X_Rectangle geometry; 2522 }; 2523 2524 typedef struct _Ecore_X_Event_Damage Ecore_X_Event_Damage; 2525 2526 struct _Ecore_X_Event_Xkb 2527 { 2528 int group; 2529 int base_group; /** @since 1.21 */ 2530 int latched_group; /** @since 1.21 */ 2531 int locked_group; /** @since 1.21 */ 2532 unsigned int mods; /** @since 1.21 */ 2533 unsigned int base_mods; /** @since 1.21 */ 2534 unsigned int latched_mods; /** @since 1.21 */ 2535 unsigned int locked_mods; /** @since 1.21 */ 2536 }; 2537 typedef struct _Ecore_X_Event_Xkb Ecore_X_Event_Xkb; /** @since 1.7 */ 2538 typedef struct _Ecore_X_Event_Xkb Ecore_X_Xkb_State; /** @since 1.21 */ 2539 2540 EAPI Eina_Bool ecore_x_damage_query(void); 2541 EAPI Ecore_X_Damage ecore_x_damage_new(Ecore_X_Drawable d, Ecore_X_Damage_Report_Level level); 2542 EAPI void ecore_x_damage_free(Ecore_X_Damage damage); 2543 EAPI void ecore_x_damage_subtract(Ecore_X_Damage damage, Ecore_X_Region repair, Ecore_X_Region parts); 2544 2545 EAPI Eina_Bool ecore_x_screen_is_composited(int screen); 2546 EAPI void ecore_x_screen_is_composited_set(int screen, Ecore_X_Window win); 2547 2548 EAPI Eina_Bool ecore_x_dpms_query(void); 2549 EAPI Eina_Bool ecore_x_dpms_capable_get(void); 2550 EAPI Eina_Bool ecore_x_dpms_enabled_get(void); 2551 EAPI void ecore_x_dpms_enabled_set(int enabled); 2552 EAPI Ecore_X_Dpms_Mode ecore_x_dpms_power_level_get(void); 2553 EAPI void ecore_x_dpms_timeouts_get(unsigned int *standby, unsigned int *suspend, unsigned int *off); 2554 EAPI Eina_Bool ecore_x_dpms_timeouts_set(unsigned int standby, unsigned int suspend, unsigned int off); 2555 EAPI unsigned int ecore_x_dpms_timeout_standby_get(void); 2556 EAPI unsigned int ecore_x_dpms_timeout_suspend_get(void); 2557 EAPI unsigned int ecore_x_dpms_timeout_off_get(void); 2558 EAPI void ecore_x_dpms_timeout_standby_set(unsigned int new_timeout); 2559 EAPI void ecore_x_dpms_timeout_suspend_set(unsigned int new_timeout); 2560 EAPI void ecore_x_dpms_timeout_off_set(unsigned int new_timeout); 2561 EAPI void ecore_x_dpms_force(Eina_Bool on); 2562 2563 EAPI Eina_Bool ecore_x_test_fake_key_down(const char *key); 2564 EAPI Eina_Bool ecore_x_test_fake_key_up(const char *key); 2565 EAPI Eina_Bool ecore_x_test_fake_key_press(const char *key); 2566 EAPI const char *ecore_x_keysym_string_get(int keysym); 2567 2568 /** 2569 * Given a keyname, return the keycode representing that key 2570 * @param keyname The key from which to get the keycode. 2571 * @return The keycode of the key. 2572 * 2573 * @since 1.2.0 2574 */ 2575 EAPI int ecore_x_keysym_keycode_get(const char *keyname); 2576 2577 /** 2578 * Return the X-specific keysym for a given key string 2579 * @param string The key to get the keysym for 2580 * @return the keysym value 2581 * 2582 * @since 1.15 2583 * @note The returned value is not portable. 2584 */ 2585 EAPI unsigned int ecore_x_keysym_get(const char *string); 2586 2587 typedef struct _Ecore_X_Image Ecore_X_Image; 2588 2589 EAPI Ecore_X_Image *ecore_x_image_new(int w, int h, Ecore_X_Visual vis, int depth); 2590 EAPI void ecore_x_image_free(Ecore_X_Image *im); 2591 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); 2592 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); 2593 EAPI void *ecore_x_image_data_get(Ecore_X_Image *im, int *bpl, int *rows, int *bpp); 2594 EAPI Eina_Bool ecore_x_image_is_argb32_get(Ecore_X_Image *im); 2595 2596 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); 2597 2598 EAPI Eina_Bool ecore_x_input_multi_select(Ecore_X_Window win); /**< @since 1.13 */ 2599 EAPI Eina_Bool ecore_x_input_raw_select(Ecore_X_Window win); /**< @since 1.8 */ 2600 EAPI Eina_Bool ecore_x_input_touch_devices_grab(Ecore_X_Window win); /**< @since 1.15 */ 2601 EAPI Eina_Bool ecore_x_input_touch_devices_ungrab(void); /**< @since 1.15 */ 2602 2603 EAPI void ecore_x_input_devices_update(void); /**< @since 1.24 */ 2604 EAPI int ecore_x_input_device_num_get(void); /**< @since 1.24 */ 2605 EAPI int ecore_x_input_device_id_get(int slot); /**< @since 1.24 */ 2606 EAPI const char *ecore_x_input_device_name_get(int slot); /**< @since 1.24 */ 2607 EAPI char **ecore_x_input_device_properties_list(int slot, int *num_ret); /**< @since 1.24 */ 2608 EAPI void ecore_x_input_device_properties_free(char **list, int num); /**< @since 1.24 */ 2609 EAPI void *ecore_x_input_device_property_get(int slot, const char *prop, int *num_ret, Ecore_X_Atom *format_ret, int *unit_size_ret); /**< @since 1.24 */ 2610 EAPI void ecore_x_input_device_property_set(int slot, const char *prop, void *data, int num, Ecore_X_Atom format, int unit_size); /**< @since 1.24 */ 2611 2612 EAPI Eina_Bool ecore_x_vsync_animator_tick_source_set(Ecore_X_Window win); 2613 2614 typedef enum _Ecore_X_Gesture_Event_Mask 2615 { 2616 ECORE_X_GESTURE_EVENT_MASK_NONE = 0L, 2617 ECORE_X_GESTURE_EVENT_MASK_FLICK = (1L << 0), 2618 ECORE_X_GESTURE_EVENT_MASK_PAN = (1L << 1), 2619 ECORE_X_GESTURE_EVENT_MASK_PINCHROTATION = (1L << 2), 2620 ECORE_X_GESTURE_EVENT_MASK_TAP = (1L << 3), 2621 ECORE_X_GESTURE_EVENT_MASK_TAPNHOLD = (1L << 4), 2622 ECORE_X_GESTURE_EVENT_MASK_HOLD = (1L << 5), 2623 ECORE_X_GESTURE_EVENT_MASK_GROUP = (1L << 6) 2624 } Ecore_X_Gesture_Event_Mask; 2625 2626 typedef enum _Ecore_X_Gesture_Event_Type 2627 { 2628 ECORE_X_GESTURE_EVENT_FLICK, 2629 ECORE_X_GESTURE_EVENT_PAN, 2630 ECORE_X_GESTURE_EVENT_PINCHROTATION, 2631 ECORE_X_GESTURE_EVENT_TAP, 2632 ECORE_X_GESTURE_EVENT_TAPNHOLD, 2633 ECORE_X_GESTURE_EVENT_HOLD, 2634 ECORE_X_GESTURE_EVENT_GROUP 2635 } Ecore_X_Gesture_Event_Type; 2636 2637 typedef enum _Ecore_X_Gesture_Event_Subtype 2638 { 2639 ECORE_X_GESTURE_END, 2640 ECORE_X_GESTURE_BEGIN, 2641 ECORE_X_GESTURE_UPDATE, 2642 ECORE_X_GESTURE_DONE 2643 } Ecore_X_Gesture_Event_Subtype; 2644 2645 typedef enum _Ecore_X_Gesture_Group_Subtype 2646 { 2647 ECORE_X_GESTURE_GROUP_REMOVED, 2648 ECORE_X_GESTURE_GROUP_ADDED, 2649 ECORE_X_GESTURE_GROUP_CURRENT 2650 } Ecore_X_Gesture_Group_Subtype; 2651 2652 typedef enum _Ecore_X_Gesture_Direction 2653 { 2654 ECORE_X_GESTURE_NORTHWARD, 2655 ECORE_X_GESTURE_NORTHEASTWARD, 2656 ECORE_X_GESTURE_EASTWARD, 2657 ECORE_X_GESTURE_SOUTHEASTWARD, 2658 ECORE_X_GESTURE_SOUTHWARD, 2659 ECORE_X_GESTURE_SOUTHWESTWARD, 2660 ECORE_X_GESTURE_WESTWARD, 2661 ECORE_X_GESTURE_NORTHWESTWARD 2662 } Ecore_X_Gesture_Direction; 2663 2664 struct _Ecore_X_Event_Gesture_Notify_Flick 2665 { 2666 Ecore_X_Window win; 2667 Ecore_X_Time time; 2668 Ecore_X_Gesture_Event_Subtype subtype; 2669 int num_fingers; 2670 int distance; 2671 Ecore_X_Time duration; 2672 Ecore_X_Gesture_Direction direction; 2673 double angle; 2674 }; 2675 2676 struct _Ecore_X_Event_Gesture_Notify_Pan 2677 { 2678 Ecore_X_Window win; 2679 Ecore_X_Time time; 2680 Ecore_X_Gesture_Event_Subtype subtype; 2681 int num_fingers; 2682 int dx; 2683 int dy; 2684 int distance; 2685 Ecore_X_Time duration; 2686 Ecore_X_Gesture_Direction direction; 2687 }; 2688 2689 struct _Ecore_X_Event_Gesture_Notify_PinchRotation 2690 { 2691 Ecore_X_Window win; 2692 Ecore_X_Time time; 2693 Ecore_X_Gesture_Event_Subtype subtype; 2694 int num_fingers; 2695 int distance; 2696 int cx; 2697 int cy; 2698 double zoom; 2699 double angle; 2700 }; 2701 2702 struct _Ecore_X_Event_Gesture_Notify_Tap 2703 { 2704 Ecore_X_Window win; 2705 Ecore_X_Time time; 2706 Ecore_X_Gesture_Event_Subtype subtype; 2707 int num_fingers; 2708 int cx; 2709 int cy; 2710 int tap_repeat; 2711 Ecore_X_Time interval; 2712 }; 2713 2714 struct _Ecore_X_Event_Gesture_Notify_TapNHold 2715 { 2716 Ecore_X_Window win; 2717 Ecore_X_Time time; 2718 Ecore_X_Gesture_Event_Subtype subtype; 2719 int num_fingers; 2720 int cx; 2721 int cy; 2722 Ecore_X_Time interval; 2723 Ecore_X_Time hold_time; 2724 }; 2725 2726 struct _Ecore_X_Event_Gesture_Notify_Hold 2727 { 2728 Ecore_X_Window win; 2729 Ecore_X_Time time; 2730 Ecore_X_Gesture_Event_Subtype subtype; 2731 int num_fingers; 2732 int cx; 2733 int cy; 2734 Ecore_X_Time hold_time; 2735 }; 2736 2737 struct _Ecore_X_Event_Gesture_Notify_Group 2738 { 2739 Ecore_X_Window win; 2740 Ecore_X_Time time; 2741 Ecore_X_Gesture_Group_Subtype subtype; 2742 int num_groups; 2743 int group_id; 2744 }; 2745 2746 EINA_DEPRECATED EAPI Eina_Bool ecore_x_gesture_supported(void); 2747 EINA_DEPRECATED EAPI Eina_Bool ecore_x_gesture_events_select(Ecore_X_Window win, Ecore_X_Gesture_Event_Mask mask); 2748 EINA_DEPRECATED EAPI Ecore_X_Gesture_Event_Mask ecore_x_gesture_events_selected_get(Ecore_X_Window win); 2749 EINA_DEPRECATED EAPI Eina_Bool ecore_x_gesture_event_grab(Ecore_X_Window win, Ecore_X_Gesture_Event_Type type, int num_fingers); 2750 EINA_DEPRECATED EAPI Eina_Bool ecore_x_gesture_event_ungrab(Ecore_X_Window win, Ecore_X_Gesture_Event_Type type, int num_fingers); 2751 2752 EAPI void ecore_x_e_illume_indicator_state_set(Ecore_X_Window win, Ecore_X_Illume_Indicator_State state); 2753 EAPI Ecore_X_Illume_Indicator_State ecore_x_e_illume_indicator_state_get(Ecore_X_Window win); 2754 EAPI void ecore_x_e_illume_indicator_state_send(Ecore_X_Window win, Ecore_X_Illume_Indicator_State state); 2755 2756 EAPI void ecore_x_e_illume_indicator_opacity_set(Ecore_X_Window win, Ecore_X_Illume_Indicator_Opacity_Mode mode); 2757 EAPI Ecore_X_Illume_Indicator_Opacity_Mode ecore_x_e_illume_indicator_opacity_get(Ecore_X_Window win); 2758 EAPI void ecore_x_e_illume_indicator_opacity_send(Ecore_X_Window win, Ecore_X_Illume_Indicator_Opacity_Mode mode); 2759 2760 EAPI void ecore_x_e_illume_indicator_type_set(Ecore_X_Window win, Ecore_X_Illume_Indicator_Type_Mode mode); /**< @since 1.8 */ 2761 EAPI Ecore_X_Illume_Indicator_Type_Mode ecore_x_e_illume_indicator_type_get(Ecore_X_Window win); /**< @since 1.8 */ 2762 EAPI void ecore_x_e_illume_indicator_type_send(Ecore_X_Window win, Ecore_X_Illume_Indicator_Type_Mode mode); /**< @since 1.8 */ 2763 2764 EAPI void ecore_x_e_illume_window_state_set(Ecore_X_Window win, Ecore_X_Illume_Window_State state); 2765 EAPI Ecore_X_Illume_Window_State ecore_x_e_illume_window_state_get(Ecore_X_Window win); 2766 EAPI void ecore_x_e_illume_window_state_send(Ecore_X_Window win, Ecore_X_Illume_Window_State state); /**< @since 1.9 */ 2767 2768 EAPI void ecore_x_xkb_select_group(int group); /* @since 1.7 */ 2769 EAPI Eina_Bool ecore_x_xkb_track_state(void); /** @since 1.21 */ 2770 EAPI Eina_Bool ecore_x_xkb_state_get(Ecore_X_Xkb_State *state); /** @since 1.21 */ 2771 2772 EAPI void ecore_x_e_window_rotation_supported_set(Ecore_X_Window root, Eina_Bool enabled); /**< @since 1.9 */ 2773 EAPI Eina_Bool ecore_x_e_window_rotation_supported_get(Ecore_X_Window root); /**< @since 1.9 */ 2774 EAPI void ecore_x_e_window_rotation_app_set(Ecore_X_Window win, Eina_Bool set); /**< @since 1.9 */ 2775 EAPI Eina_Bool ecore_x_e_window_rotation_app_get(Ecore_X_Window win); /**< @since 1.9 */ 2776 EAPI void ecore_x_e_window_rotation_preferred_rotation_set(Ecore_X_Window win, int rot); /**< @since 1.9 */ 2777 EAPI Eina_Bool ecore_x_e_window_rotation_preferred_rotation_get(Ecore_X_Window win, int *rot); /**< @since 1.9 */ 2778 EAPI void ecore_x_e_window_rotation_available_rotations_set(Ecore_X_Window win, const int *rots, unsigned int count); /**< @since 1.9 */ 2779 EAPI Eina_Bool ecore_x_e_window_rotation_available_rotations_get(Ecore_X_Window win, int **rots, unsigned int *count); /**< @since 1.9 */ 2780 EAPI void ecore_x_e_window_rotation_change_prepare_send(Ecore_X_Window win, int rot, Eina_Bool resize, int w, int h); /**< @since 1.9 */ 2781 EAPI void ecore_x_e_window_rotation_change_prepare_done_send(Ecore_X_Window root, Ecore_X_Window win, int rot); /**< @since 1.9 */ 2782 EAPI void ecore_x_e_window_rotation_change_request_send(Ecore_X_Window win, int rot); /**< @since 1.9 */ 2783 EAPI void ecore_x_e_window_rotation_change_done_send(Ecore_X_Window root, Ecore_X_Window win, int rot, int w, int h); /**< @since 1.9 */ 2784 2785 //this enum and API for keyrouter and client window side 2786 //keycode (8~255) 2787 typedef enum 2788 { 2789 ECORE_X_WIN_KEYGRAB_UNKNOWN = 0, /**< Unknown keygrab mode */ 2790 ECORE_X_WIN_KEYGRAB_SHARED = (1 << 8), /**< Getting the grabbed-key together with the other client windows */ 2791 ECORE_X_WIN_KEYGRAB_TOPMOST = (1 << 9), /**< Getting the grabbed-key only when window is top of the stack */ 2792 ECORE_X_WIN_KEYGRAB_EXCLUSIVE = (1 << 10), /**< Getting the grabbed-key exclusively regardless of window's position */ 2793 ECORE_X_WIN_KEYGRAB_OVERRIDE_EXCLUSIVE = (1 << 11) /**< Getting the grabbed-key exclusively regardless of window's position. Being overrided the grab by the other client window */ 2794 } Ecore_X_Win_Keygrab_Mode; 2795 2796 //add mod, anymod, priority for the future. 2797 //we will support modifier and priority feature later. 2798 EAPI Eina_Bool ecore_x_window_keygrab_set(Ecore_X_Window win, const char *key, int mod, int any_mod, int priority, Ecore_X_Win_Keygrab_Mode grab_mode); /**< @since 1.15 */ 2799 EAPI Eina_Bool ecore_x_window_keygrab_unset(Ecore_X_Window win, const char *key, int mod, int any_mod); /**< @since 1.15 */ 2800 2801 //this API for keyrouter protocol 2802 EAPI void ecore_x_e_keyrouter_set(Ecore_X_Window root, Eina_Bool on); /**< @since 1.15 */ //Key router set keyrouter flag using this 2803 EAPI Eina_Bool ecore_x_e_keyrouter_get(Ecore_X_Window root); /**< @since 1.15 */ //Client check the existence of keyrouter using this 2804 2805 #ifdef EFL_BETA_API_SUPPORT 2806 // XXX: FIXME: re-evaluate this after looking at xdg foreign in wayland 2807 EAPI void ecore_x_e_stack_type_set(Ecore_X_Window win, Ecore_X_Stack_Type stack_type); 2808 EAPI Ecore_X_Stack_Type ecore_x_e_stack_type_get(Ecore_X_Window win); 2809 EAPI void ecore_x_e_stack_position_set(Ecore_X_Window win, Ecore_X_Stack_Position stack_position); 2810 EAPI Ecore_X_Stack_Position ecore_x_e_stack_position_get(Ecore_X_Window win); 2811 #endif 2812 2813 #include <Ecore_X_Atoms.h> 2814 #include <Ecore_X_Cursor.h> 2815 2816 #ifdef __cplusplus 2817 } 2818 #endif // ifdef __cplusplus 2819 2820 #undef EAPI 2821 #define EAPI 2822 2823 #endif // ifndef _ECORE_X_H 2824