#ifndef __ECORE_WIN32_H__ #define __ECORE_WIN32_H__ /* * DO NOT USE THIS HEADER. IT IS WORK IN PROGRESS. IT IS NOT FINAL AND * THE API MAY CHANGE. */ /* #ifndef ECORE_WIN32_WIP_POZEFLKSD # ifdef _MSC_VER # pragma message ("You are using a work in progress API. This API is not stable") # pragma message ("and is subject to change. You use this at your own risk.") # else # warning "You are using a work in progress API. This API is not stable" # warning "and is subject to change. You use this at your own risk." # endif #endif */ #include #ifdef EAPI # undef EAPI #endif #ifdef _WIN32 # ifdef EFL_BUILD # ifdef DLL_EXPORT # define EAPI __declspec(dllexport) # else # define EAPI # endif # else # define EAPI __declspec(dllimport) # endif #else # ifdef __GNUC__ # if __GNUC__ >= 4 # define EAPI __attribute__ ((visibility("default"))) # else # define EAPI # endif # else # define EAPI # endif #endif #ifdef __cplusplus extern "C" { #endif /** * @defgroup Ecore_Win32_Group Ecore_Win32 library * @ingroup Ecore * * @{ */ /** * @typedef Ecore_Win32_Window_State * State of a window. */ typedef enum { ECORE_WIN32_WINDOW_STATE_UNKNOWN, /**< Unknown state */ ECORE_WIN32_WINDOW_STATE_ICONIFIED, /**< iconified window */ ECORE_WIN32_WINDOW_STATE_MODAL, /**< modal dialog box */ ECORE_WIN32_WINDOW_STATE_STICKY, /**< sticky window */ ECORE_WIN32_WINDOW_STATE_MAXIMIZED_VERT, /**< maximum vertical sized window */ ECORE_WIN32_WINDOW_STATE_MAXIMIZED_HORZ, /**< maximum horizontal sized window */ ECORE_WIN32_WINDOW_STATE_MAXIMIZED, /**< maximum sized window */ ECORE_WIN32_WINDOW_STATE_SHADED, /**< shaded window */ ECORE_WIN32_WINDOW_STATE_HIDDEN, /**< hidden (minimized or iconified) window */ ECORE_WIN32_WINDOW_STATE_FULLSCREEN, /**< fullscreen window */ ECORE_WIN32_WINDOW_STATE_ABOVE, /**< above window */ ECORE_WIN32_WINDOW_STATE_BELOW, /**< below window */ ECORE_WIN32_WINDOW_STATE_DEMANDS_ATTENTION /**< To document */ } Ecore_Win32_Window_State; /** * @typedef Ecore_Win32_Window_Type * Type of a window. */ typedef enum { ECORE_WIN32_WINDOW_TYPE_DESKTOP, /**< Desktop feature */ ECORE_WIN32_WINDOW_TYPE_DOCK, /**< Dock window (should be on top of other windows) */ ECORE_WIN32_WINDOW_TYPE_TOOLBAR, /**< Toolbar window */ ECORE_WIN32_WINDOW_TYPE_MENU, /**< Menu window */ ECORE_WIN32_WINDOW_TYPE_UTILITY, /**< Small persistent utility window, such as a palette or toolbox */ ECORE_WIN32_WINDOW_TYPE_SPLASH, /**< Splash screen window displayed as an application is starting up */ ECORE_WIN32_WINDOW_TYPE_DIALOG, /**< Dialog window */ ECORE_WIN32_WINDOW_TYPE_NORMAL, /**< Normal top-level window */ ECORE_WIN32_WINDOW_TYPE_UNKNOWN /**< Unknown type */ } Ecore_Win32_Window_Type; /** * @typedef Ecore_Win32_Cursor_Shape * Shape of a cursor. */ typedef enum { ECORE_WIN32_CURSOR_SHAPE_APP_STARTING, /**< Standard arrow and small hourglass */ ECORE_WIN32_CURSOR_SHAPE_ARROW, /**< Standard arrow */ ECORE_WIN32_CURSOR_SHAPE_CROSS, /**< Crosshair */ ECORE_WIN32_CURSOR_SHAPE_HAND, /**< Hand */ ECORE_WIN32_CURSOR_SHAPE_HELP, /**< Arrow and question mark */ ECORE_WIN32_CURSOR_SHAPE_I_BEAM, /**< I-beam */ ECORE_WIN32_CURSOR_SHAPE_NO, /**< Slashed circle */ ECORE_WIN32_CURSOR_SHAPE_SIZE_ALL, /**< Four-pointed arrow pointing north, south, east, and west */ ECORE_WIN32_CURSOR_SHAPE_SIZE_NESW, /**< Double-pointed arrow pointing northeast and southwest */ ECORE_WIN32_CURSOR_SHAPE_SIZE_NS, /**< Double-pointed arrow pointing north and south */ ECORE_WIN32_CURSOR_SHAPE_SIZE_NWSE, /**< Double-pointed arrow pointing northwest and southeast */ ECORE_WIN32_CURSOR_SHAPE_SIZE_WE, /**< Double-pointed arrow pointing west and east */ ECORE_WIN32_CURSOR_SHAPE_UP_ARROW, /**< Vertical arrow */ ECORE_WIN32_CURSOR_SHAPE_WAIT /**< Hourglass */ } Ecore_Win32_Cursor_Shape; /** * @typedef Ecore_Win32_Cursor_X11_Shape * Shape of an X11 cursor. */ typedef enum { ECORE_WIN32_CURSOR_X11_SHAPE_X, ECORE_WIN32_CURSOR_X11_SHAPE_ARROW, ECORE_WIN32_CURSOR_X11_SHAPE_BASED_ARROW_DOWN, ECORE_WIN32_CURSOR_X11_SHAPE_UP, ECORE_WIN32_CURSOR_X11_SHAPE_BOAT, ECORE_WIN32_CURSOR_X11_SHAPE_BOGOSITY, ECORE_WIN32_CURSOR_X11_SHAPE_BOTTOM_LEFT_CORNER, ECORE_WIN32_CURSOR_X11_SHAPE_BOTTOM_RIGHT_CORNER, ECORE_WIN32_CURSOR_X11_SHAPE_BOTTOM_SIDE, ECORE_WIN32_CURSOR_X11_SHAPE_BOTTOM_TEE, ECORE_WIN32_CURSOR_X11_SHAPE_BOX_SPIRAL, ECORE_WIN32_CURSOR_X11_SHAPE_CENTER_PTR, ECORE_WIN32_CURSOR_X11_SHAPE_CIRCLE, ECORE_WIN32_CURSOR_X11_SHAPE_CLOCK, ECORE_WIN32_CURSOR_X11_SHAPE_COFFEE_MUG, ECORE_WIN32_CURSOR_X11_SHAPE_CROSS, ECORE_WIN32_CURSOR_X11_SHAPE_CROSS_REVERSE, ECORE_WIN32_CURSOR_X11_SHAPE_CROSSHAIR, ECORE_WIN32_CURSOR_X11_SHAPE_DIAMOND_CROSS, ECORE_WIN32_CURSOR_X11_SHAPE_DOT, ECORE_WIN32_CURSOR_X11_SHAPE_DOT_BOX_MASK, ECORE_WIN32_CURSOR_X11_SHAPE_DOUBLE_ARROW, ECORE_WIN32_CURSOR_X11_SHAPE_DRAFT_LARGE, ECORE_WIN32_CURSOR_X11_SHAPE_DRAFT_SMALL, ECORE_WIN32_CURSOR_X11_SHAPE_DRAPED_BOX, ECORE_WIN32_CURSOR_X11_SHAPE_EXCHANGE, ECORE_WIN32_CURSOR_X11_SHAPE_FLEUR, ECORE_WIN32_CURSOR_X11_SHAPE_GOBBLER, ECORE_WIN32_CURSOR_X11_SHAPE_GUMBY, ECORE_WIN32_CURSOR_X11_SHAPE_HAND1, ECORE_WIN32_CURSOR_X11_SHAPE_HAND2, ECORE_WIN32_CURSOR_X11_SHAPE_HEART, ECORE_WIN32_CURSOR_X11_SHAPE_ICON, ECORE_WIN32_CURSOR_X11_SHAPE_IRON_CROSS, ECORE_WIN32_CURSOR_X11_SHAPE_LEFT_PTR, ECORE_WIN32_CURSOR_X11_SHAPE_LEFT_SIDE, ECORE_WIN32_CURSOR_X11_SHAPE_LEFT_TEE, ECORE_WIN32_CURSOR_X11_SHAPE_LEFTBUTTON, ECORE_WIN32_CURSOR_X11_SHAPE_LL_ANGLE, ECORE_WIN32_CURSOR_X11_SHAPE_LR_ANGLE, ECORE_WIN32_CURSOR_X11_SHAPE_MAN, ECORE_WIN32_CURSOR_X11_SHAPE_MIDDLEBUTTON, ECORE_WIN32_CURSOR_X11_SHAPE_MOUSE, ECORE_WIN32_CURSOR_X11_SHAPE_PENCIL, ECORE_WIN32_CURSOR_X11_SHAPE_PIRATE, ECORE_WIN32_CURSOR_X11_SHAPE_PLUS, ECORE_WIN32_CURSOR_X11_SHAPE_QUESTION_ARROW, ECORE_WIN32_CURSOR_X11_SHAPE_RIGHT_PTR, ECORE_WIN32_CURSOR_X11_SHAPE_RIGHT_SIDE, ECORE_WIN32_CURSOR_X11_SHAPE_RIGHT_TEE, ECORE_WIN32_CURSOR_X11_SHAPE_RIGHTBUTTON, ECORE_WIN32_CURSOR_X11_SHAPE_RTL_LOGO, ECORE_WIN32_CURSOR_X11_SHAPE_SAILBOAT, ECORE_WIN32_CURSOR_X11_SHAPE_SB_DOWN_ARROW, ECORE_WIN32_CURSOR_X11_SHAPE_SB_H_DOUBLE_ARROW, ECORE_WIN32_CURSOR_X11_SHAPE_SB_LEFT_ARROW, ECORE_WIN32_CURSOR_X11_SHAPE_SB_RIGHT_ARROW, ECORE_WIN32_CURSOR_X11_SHAPE_SB_UP_ARROW, ECORE_WIN32_CURSOR_X11_SHAPE_SB_V_DOUBLE_ARROW, ECORE_WIN32_CURSOR_X11_SHAPE_SHUTTLE, ECORE_WIN32_CURSOR_X11_SHAPE_SIZING, ECORE_WIN32_CURSOR_X11_SHAPE_SPIDER, ECORE_WIN32_CURSOR_X11_SHAPE_SPRAYCAN, ECORE_WIN32_CURSOR_X11_SHAPE_STAR, ECORE_WIN32_CURSOR_X11_SHAPE_TARGET, ECORE_WIN32_CURSOR_X11_SHAPE_TCROSS, ECORE_WIN32_CURSOR_X11_SHAPE_TOP_LEFT_ARROW, ECORE_WIN32_CURSOR_X11_SHAPE_TOP_LEFT_CORNER, ECORE_WIN32_CURSOR_X11_SHAPE_TOP_RIGHT_CORNER, ECORE_WIN32_CURSOR_X11_SHAPE_TOP_SIDE, ECORE_WIN32_CURSOR_X11_SHAPE_TOP_TEE, ECORE_WIN32_CURSOR_X11_SHAPE_TREK, ECORE_WIN32_CURSOR_X11_SHAPE_UL_ANGLE, ECORE_WIN32_CURSOR_X11_SHAPE_UMBRELLA, ECORE_WIN32_CURSOR_X11_SHAPE_UR_ANGLE, ECORE_WIN32_CURSOR_X11_SHAPE_WATCH, ECORE_WIN32_CURSOR_X11_SHAPE_XTERM, } Ecore_Win32_Cursor_X11_Shape; /** * @typedef Ecore_Win32_DnD_State * State of a DnD operation. */ typedef enum { ECORE_WIN32_DND_EVENT_DRAG_ENTER = 1, /**< Drag enter */ ECORE_WIN32_DND_EVENT_DRAG_OVER = 2, /**< Drag over */ ECORE_WIN32_DND_EVENT_DRAG_LEAVE = 3, /**< Drag leave */ ECORE_WIN32_DND_EVENT_DROP = 4 /**< Drop */ } Ecore_Win32_DnD_State; /** * @typedef Ecore_Win32_Window * Abstract type for a window. */ typedef struct _Ecore_Win32_Window Ecore_Win32_Window; /** * @typedef Ecore_Win32_Cursor * Abstract type for a cursor. */ typedef void Ecore_Win32_Cursor; /** * @typedef Ecore_Win32_Event_Mouse_In * Event sent when the mouse enters the window. */ typedef struct _Ecore_Win32_Event_Mouse_In Ecore_Win32_Event_Mouse_In; /** * @typedef Ecore_Win32_Event_Mouse_Out * Event sent when the mouse leaves the window. */ typedef struct _Ecore_Win32_Event_Mouse_Out Ecore_Win32_Event_Mouse_Out; /** * @typedef Ecore_Win32_Event_Window_Focus_In * Event sent when the window gets the focus. */ typedef struct _Ecore_Win32_Event_Window_Focus_In Ecore_Win32_Event_Window_Focus_In; /** * @typedef Ecore_Win32_Event_Window_Focus_Out * Event sent when the window looses the focus. */ typedef struct _Ecore_Win32_Event_Window_Focus_Out Ecore_Win32_Event_Window_Focus_Out; /** * @typedef Ecore_Win32_Event_Window_Damage * Event sent when the window is damaged. */ typedef struct _Ecore_Win32_Event_Window_Damage Ecore_Win32_Event_Window_Damage; /** * @typedef Ecore_Win32_Event_Window_Create * Event sent when the window is created. */ typedef struct _Ecore_Win32_Event_Window_Create Ecore_Win32_Event_Window_Create; /** * @typedef Ecore_Win32_Event_Window_Destroy * Event sent when the window is destroyed. */ typedef struct _Ecore_Win32_Event_Window_Destroy Ecore_Win32_Event_Window_Destroy; /** * @typedef Ecore_Win32_Event_Window_Hide * Event sent when the window is hidden. */ typedef struct _Ecore_Win32_Event_Window_Hide Ecore_Win32_Event_Window_Hide; /** * @typedef Ecore_Win32_Event_Window_Show * Event sent when the window is shown. */ typedef struct _Ecore_Win32_Event_Window_Show Ecore_Win32_Event_Window_Show; /** * @typedef Ecore_Win32_Event_Window_Configure * Event sent when the window is configured. */ typedef struct _Ecore_Win32_Event_Window_Configure Ecore_Win32_Event_Window_Configure; /** * @typedef Ecore_Win32_Event_Window_Resize * Event sent when the window is resized. */ typedef struct _Ecore_Win32_Event_Window_Resize Ecore_Win32_Event_Window_Resize; /** * @typedef Ecore_Win32_Event_Window_Property * Event sent when the window properties are changed. * @since 1.20 */ typedef struct _Ecore_Win32_Event_Window_Property Ecore_Win32_Event_Window_Property; /** * @typedef Ecore_Win32_Event_Window_Delete_Request * Event sent when the window is deleted. */ typedef struct _Ecore_Win32_Event_Window_Delete_Request Ecore_Win32_Event_Window_Delete_Request; /** * @typedef Ecore_Win32_Event_Selection_Clear * Event sent when the content of the clipboard has been removed. * * @since 1.24 */ typedef struct _Ecore_Win32_Event_Selection_Clear Ecore_Win32_Event_Selection_Clear; /** * @typedef Ecore_Win32_Event_Selection_Notify * Event sent when the content of the clipboard has been added. * * @since 1.24 */ typedef struct _Ecore_Win32_Event_Selection_Notify Ecore_Win32_Event_Selection_Notify; /** * @struct _Ecore_Win32_Event_Mouse_In * Event sent when the mouse enters the window. */ struct _Ecore_Win32_Event_Mouse_In { Ecore_Win32_Window *window; /**< The window that received the event */ int x; /**< The x coordinate where the mouse leaved */ int y; /**< The y coordinate where the mouse entered */ unsigned long timestamp; /**< The time the event occurred */ unsigned int modifiers; /**< The keyboard modifiers */ }; /** * @struct _Ecore_Win32_Event_Mouse_Out * Event sent when the mouse leaves the window. */ struct _Ecore_Win32_Event_Mouse_Out { Ecore_Win32_Window *window; /**< The window that received the event */ int x; /**< The x coordinate where the mouse leaved */ int y; /**< The y coordinate where the mouse leaved */ unsigned long timestamp; /**< The time the event occurred */ unsigned int modifiers; /**< The keyboard modifiers */ }; /** * @struct _Ecore_Win32_Event_Window_Focus_In * Event sent when the window gets the focus. */ struct _Ecore_Win32_Event_Window_Focus_In { Ecore_Win32_Window *window; /**< The window that received the event */ unsigned long timestamp; /**< The time the event occurred */ }; /** * @struct _Ecore_Win32_Event_Window_Focus_Out * Event sent when the window looses the focus. */ struct _Ecore_Win32_Event_Window_Focus_Out { Ecore_Win32_Window *window; /**< The window that received the event */ unsigned long timestamp; /**< The time the event occurred */ }; /** * @struct _Ecore_Win32_Event_Window_Damage * Event sent when the window is damaged. */ struct _Ecore_Win32_Event_Window_Damage { Ecore_Win32_Window *window; /**< The window that received the event */ int x; /**< The x coordinate of the top left corner of the damaged region */ int y; /**< The y coordinate of the top left corner of the damaged region */ int width; /**< The width of the damaged region */ int height; /**< The time the event occurred */ unsigned long timestamp; /**< The time the event occurred */ }; /** * @struct _Ecore_Win32_Event_Window_Create * Event sent when the window is created. */ struct _Ecore_Win32_Event_Window_Create { Ecore_Win32_Window *window; /**< The window that received the event */ unsigned long timestamp; /**< The time the event occurred */ }; /** * @struct _Ecore_Win32_Event_Window_Destroy * Event sent when the window is destroyed. */ struct _Ecore_Win32_Event_Window_Destroy { Ecore_Win32_Window *window; /**< The window that received the event */ unsigned long timestamp; /**< The time the event occurred */ }; /** * @struct _Ecore_Win32_Event_Window_Hide * Event sent when the window is hidden. */ struct _Ecore_Win32_Event_Window_Hide { Ecore_Win32_Window *window; /**< The window that received the event */ unsigned long timestamp; /**< The time the event occurred */ }; /** * @struct _Ecore_Win32_Event_Window_Show * Event sent when the window is shown. */ struct _Ecore_Win32_Event_Window_Show { Ecore_Win32_Window *window; /**< The window that received the event */ unsigned long timestamp; /**< The time the event occurred */ }; /** * @struct _Ecore_Win32_Event_Window_Configure * Event sent when the window is configured. */ struct _Ecore_Win32_Event_Window_Configure { Ecore_Win32_Window *window; /**< The window that received the event */ Ecore_Win32_Window *abovewin; int x; /**< The new x coordinate of the top left corner */ int y; /**< The new y coordinate of the top left corner */ int width; /**< The new width */ int height; /**< The new height */ unsigned long timestamp; /**< The time the event occurred */ }; /** * @struct _Ecore_Win32_Event_Window_Resize * Event sent when the window is resized. */ struct _Ecore_Win32_Event_Window_Resize { Ecore_Win32_Window *window; /**< The window that received the event */ int width; /**< The new width */ int height; /**< The new height */ unsigned long timestamp; /**< The time the event occurred */ }; /** * @struct _Ecore_Win32_Event_Window_Property * Event sent when the window properties are changed. * @since 1.20 */ struct _Ecore_Win32_Event_Window_Property { Ecore_Win32_Window *window; /**< The window that received the event */ unsigned long timestamp; /**< The time the event occurred */ }; /** * @struct _Ecore_Win32_Event_Window_Delete_Request * Event sent when the window is deleted. */ struct _Ecore_Win32_Event_Window_Delete_Request { Ecore_Win32_Window *window; /**< The window that received the event */ unsigned long timestamp; /**< The time the event occurred */ }; /** * @struct _Ecore_Win32_Event_Selection_Clear * Event sent when the content of the clipboard has been removed. * * @since 1.24 */ struct _Ecore_Win32_Event_Selection_Clear { Ecore_Win32_Window *window; /**< The window that received the event */ unsigned long timestamp; /**< The time the event occurred */ char *selection; /**< The type of the selection */ }; /** * @struct _Ecore_Win32_Event_Selection_Notify * Event sent when the content of the clipboard has been added. * * @since 1.24 */ struct _Ecore_Win32_Event_Selection_Notify { Ecore_Win32_Window *window; /**< The window that received the event */ unsigned long timestamp; /**< The time the event occurred */ char *selection; /**< The type of the selection */ void *data; /**< The data of the selection */ }; /** * @typedef Ecore_Win32_Dnd_DropTarget_Callback * Callback type for Drop operations. See ecore_win32_dnd_register_drop_target(). */ typedef int (*Ecore_Win32_Dnd_DropTarget_Callback)(void *window, int event, int pt_x, int pt_y, void *data, int size); EAPI extern int ECORE_WIN32_EVENT_MOUSE_IN; /**< Ecore_Event for the #Ecore_Win32_Event_Mouse_In event */ EAPI extern int ECORE_WIN32_EVENT_MOUSE_OUT; /**< Ecore_Event for the #Ecore_Win32_Event_Mouse_Out event */ EAPI extern int ECORE_WIN32_EVENT_WINDOW_FOCUS_IN; /**< Ecore_Event for the #Ecore_Win32_Event_Window_Focus_In event */ EAPI extern int ECORE_WIN32_EVENT_WINDOW_FOCUS_OUT; /**< Ecore_Event for the #Ecore_Win32_Event_Window_Focus_Out event */ EAPI extern int ECORE_WIN32_EVENT_WINDOW_DAMAGE; /**< Ecore_Event for the Ecore_Win32_Event_Damage event */ EAPI extern int ECORE_WIN32_EVENT_WINDOW_CREATE; /**< Ecore_Event for the Ecore_Win32_Event_Create event */ EAPI extern int ECORE_WIN32_EVENT_WINDOW_DESTROY; /**< Ecore_Event for the Ecore_Win32_Event_Destroy event */ EAPI extern int ECORE_WIN32_EVENT_WINDOW_HIDE; /**< Ecore_Event for the Ecore_Win32_Event_Hide event */ EAPI extern int ECORE_WIN32_EVENT_WINDOW_SHOW; /**< Ecore_Event for the Ecore_Win32_Event_Show event */ EAPI extern int ECORE_WIN32_EVENT_WINDOW_CONFIGURE; /**< Ecore_Event for the Ecore_Win32_Event_Configure event */ EAPI extern int ECORE_WIN32_EVENT_WINDOW_RESIZE; /**< Ecore_Event for the Ecore_Win32_Event_Resize event */ EAPI extern int ECORE_WIN32_EVENT_WINDOW_PROPERTY; /**< Ecore_Event for the Ecore_Win32_Event_Property event @since 1.20 */ EAPI extern int ECORE_WIN32_EVENT_WINDOW_DELETE_REQUEST; /**< Ecore_Event for the #Ecore_Win32_Event_Window_Delete_Request event */ EAPI extern int ECORE_WIN32_EVENT_SELECTION_CLEAR; /**< Ecore_Event for the #Ecore_Win32_Event_Selection_Clear event @since 1.16 */ EAPI extern int ECORE_WIN32_EVENT_SELECTION_NOTIFY; /**< Ecore_Event for the #Ecore_Win32_Event_Selection_Notify event @since 1.16 */ /* Core */ EAPI int ecore_win32_init(); EAPI int ecore_win32_shutdown(); EAPI int ecore_win32_screen_depth_get(); EAPI void ecore_win32_double_click_time_set(double t); EAPI double ecore_win32_double_click_time_get(void); EAPI unsigned long ecore_win32_current_time_get(void); /* Window */ EAPI Ecore_Win32_Window *ecore_win32_window_new(Ecore_Win32_Window *parent, int x, int y, int width, int height); EAPI Ecore_Win32_Window *ecore_win32_window_override_new(Ecore_Win32_Window *parent, int x, int y, int width, int height); EAPI void ecore_win32_window_free(Ecore_Win32_Window *window); EAPI void *ecore_win32_window_hwnd_get(Ecore_Win32_Window *window); EAPI void ecore_win32_window_move(Ecore_Win32_Window *window, int x, int y); EAPI void ecore_win32_window_resize(Ecore_Win32_Window *window, int width, int height); EAPI void ecore_win32_window_move_resize(Ecore_Win32_Window *window, int x, int y, int width, int height); EAPI void ecore_win32_window_geometry_get(Ecore_Win32_Window *window, int *x, int *y, int *width, int *height); EAPI void ecore_win32_window_size_get(Ecore_Win32_Window *window, int *width, int *height); EAPI void ecore_win32_window_size_min_set(Ecore_Win32_Window *window, int min_width, int min_height); EAPI void ecore_win32_window_size_min_get(Ecore_Win32_Window *window, int *min_width, int *min_height); EAPI void ecore_win32_window_size_max_set(Ecore_Win32_Window *window, int max_width, int max_height); EAPI void ecore_win32_window_size_max_get(Ecore_Win32_Window *window, int *max_width, int *max_height); EAPI void ecore_win32_window_size_base_set(Ecore_Win32_Window *window, int base_width, int base_height); EAPI void ecore_win32_window_size_base_get(Ecore_Win32_Window *window, int *base_width, int *base_height); EAPI void ecore_win32_window_size_step_set(Ecore_Win32_Window *window, int step_width, int step_height); EAPI void ecore_win32_window_size_step_get(Ecore_Win32_Window *window, int *step_width, int *step_height); EAPI void ecore_win32_window_show(Ecore_Win32_Window *window); EAPI void ecore_win32_window_hide(Ecore_Win32_Window *window); EAPI void ecore_win32_window_raise(Ecore_Win32_Window *window); EAPI void ecore_win32_window_lower(Ecore_Win32_Window *window); EAPI void ecore_win32_window_title_set(Ecore_Win32_Window *window, const char *title); EAPI void ecore_win32_window_focus(Ecore_Win32_Window *window); EAPI void *ecore_win32_window_focus_get(void); EAPI void ecore_win32_window_iconified_set(Ecore_Win32_Window *window, Eina_Bool on); EAPI void ecore_win32_window_borderless_set(Ecore_Win32_Window *window, Eina_Bool on); EAPI void ecore_win32_window_fullscreen_set(Ecore_Win32_Window *window, Eina_Bool on); EAPI void ecore_win32_window_cursor_set(Ecore_Win32_Window *window, Ecore_Win32_Cursor *cursor); EAPI void ecore_win32_window_state_set(Ecore_Win32_Window *window, Ecore_Win32_Window_State *state, unsigned int num); EAPI void ecore_win32_window_state_get(Ecore_Win32_Window *window, Ecore_Win32_Window_State **state, unsigned int *num); EAPI void ecore_win32_window_state_request_send(Ecore_Win32_Window *window, Ecore_Win32_Window_State state, unsigned int set); EAPI void ecore_win32_window_type_set(Ecore_Win32_Window *window, Ecore_Win32_Window_Type type); /* Cursor */ EAPI Ecore_Win32_Cursor *ecore_win32_cursor_new(const void *pixels_and, const void *pixels_xor, int width, int height, int hot_x, int hot_y); EAPI void ecore_win32_cursor_free(Ecore_Win32_Cursor *cursor); EAPI Ecore_Win32_Cursor *ecore_win32_cursor_shaped_new(Ecore_Win32_Cursor_Shape shape); EAPI const Ecore_Win32_Cursor *ecore_win32_cursor_x11_shaped_get(Ecore_Win32_Cursor_X11_Shape shape); EAPI void ecore_win32_cursor_size_get(int *width, int *height); EAPI void ecore_win32_cursor_show(Eina_Bool show); /* Drag and drop */ EAPI int ecore_win32_dnd_init(); EAPI int ecore_win32_dnd_shutdown(); EAPI Eina_Bool ecore_win32_dnd_begin(const char *data, int size); EAPI Eina_Bool ecore_win32_dnd_register_drop_target(Ecore_Win32_Window *window, Ecore_Win32_Dnd_DropTarget_Callback callback); EAPI void ecore_win32_dnd_unregister_drop_target(Ecore_Win32_Window *window); /* Clipboard */ /** * @brief Set data to the clipboard. * * @param[in] window The window that owns the clipboard. * @param[in] data The data to set. * @param[in] size The size of the data. * @param[in] mime_type The mime type describing the data in the clipboard. * @return #EINA_TRUE on success, #EINA_FALSE otherwise. * * This function sets @p data of size @p size in the clipboard owned by * @p window. This function returns #EINA_TRUE on success, and * #EINA_FALSE otherwise. If @p window or @p data are @c NULL, or @p size * is less than or equal to 0, this function returns #EINA_FALSE. * * @since 1.24 */ EAPI Eina_Bool ecore_win32_clipboard_set(const Ecore_Win32_Window *window, const void *data, size_t size, const char *mime_type); /** * @brief Get data from the clipboard. * * @param[in] window The window that owns the clipboard. * @param[out] size The size of the data. * @param[in] mime_type The mime type describing the data in the clipboard. * @return The retrieved data. * * This function gets data of size @p size from the clipboard owned by * @p window. @p size must be a valid buffer. * * @since 1.24 */ EAPI void * ecore_win32_clipboard_get(const Ecore_Win32_Window *window, size_t *size, const char *mime_type); /** * @brief Cleat the clipboard. * * @param[in] window The window that owns the clipboard. * * This function clears the clipboard owned by @p window. This * function returns #EINA_TRUE on success, and #EINA_FALSE otherwise. * If @p window is @c NULL, this function returns #EINA_FALSE. * * @since 1.24 */ EAPI void ecore_win32_clipboard_clear(const Ecore_Win32_Window *window); /** * @typedef Ecore_Win32_Monitor * Desktop geometry and dpi of a monitor. * * @since 1.20 */ typedef struct { Eina_Rectangle desktop; /**< Coordinates and size of the desktop */ struct { unsigned int x; /**< DPI along the X axis */ unsigned int y; /**< DPI along the Y axis */ } dpi; } Ecore_Win32_Monitor; /** * @brief Return the coordinates, sizes DPI's of the monitors. * * @return An iterator of an Eina list, with #Ecore_Win32_Monitor * as data. * * This function returns the coordinates, sizes and DPI's of the * monitors as an iterator of a list of #Ecore_Win32_Monitor. * * @since 1.20 */ EAPI Eina_Iterator *ecore_win32_monitors_get(void); /** * @} */ #ifdef __cplusplus } #endif #undef EAPI #define EAPI #endif /* __ECORE_WIN32_H__ */