extern "C" {
# endif
-# ifdef EFL_BETA_API_SUPPORT
-
#define ECORE_WL2_SURFACE_INTERFACE_VERSION 1
-typedef struct _Ecore_Wl2_Subsurface Ecore_Wl2_Subsurface;
+/**
+ * @file
+ * @brief Ecore functions for dealing with the Wayland display protocol
+ *
+ * @defgroup Ecore_Wl2_Group Ecore_Wl2 - Wayland integration
+ * @ingroup Ecore
+ *
+ * Ecore_Wl2 provides a wrapper and convenience functions for using the
+ * Wayland protocol in implementing a window system. Function groups for
+ * this part of the library include the following:
+ *
+ * @li @ref Ecore_Wl2_Init_Group
+ * @li @ref Ecore_Wl2_Display_Group
+ * @li @ref Ecore_Wl2_Window_Group
+ * @li @ref Ecore_Wl2_Input_Group
+ */
# ifndef _ECORE_WL2_WINDOW_PREDEF
+/**
+ * @ingroup Ecore_Wl2_Group
+ *
+ * @typedef Ecore_Wl2_Window
+ * Type for Ecore_Wl2_Window
+ */
typedef struct _Ecore_Wl2_Window Ecore_Wl2_Window;
# endif
+/**
+ * @ingroup Ecore_Wl2_Group
+ *
+ * @typedef Ecore_Wl2_Display
+ * Type for Ecore_Wl2_Display
+ */
typedef struct _Ecore_Wl2_Display Ecore_Wl2_Display;
-typedef struct _Ecore_Wl2_Output Ecore_Wl2_Output;
+
+/**
+ * @ingroup Ecore_Wl2_Group
+ *
+ * @typedef Ecore_Wl2_Input
+ * Type for Ecore_Wl2_Input
+ */
typedef struct _Ecore_Wl2_Input Ecore_Wl2_Input;
+
+// TIZEN_ONLY(20190807): Support for wl_egl interface
+/**
+ * @ingroup Ecore_Wl2_Group
+ *
+ * @typedef Ecore_Wl2_Egl_Window
+ * Type for Ecore_Wl2_Egl_Window
+ */
+typedef struct _Ecore_Wl2_Egl_Window Ecore_Wl2_Egl_Window;
+//
+
+/** @internal */
+typedef struct _Ecore_Wl2_Subsurface Ecore_Wl2_Subsurface;
+/** @internal */
+typedef struct _Ecore_Wl2_Output Ecore_Wl2_Output;
+/** @internal */
typedef struct _Ecore_Wl2_Seat Ecore_Wl2_Seat;
+/** @internal */
typedef struct _Ecore_Wl2_Pointer Ecore_Wl2_Pointer;
+/** @internal */
typedef struct _Ecore_Wl2_Keyboard Ecore_Wl2_Keyboard;
+/** @internal */
typedef struct _Ecore_Wl2_Touch Ecore_Wl2_Touch;
+/** @internal */
typedef struct _Ecore_Wl2_Offer Ecore_Wl2_Offer;
+/** @internal */
typedef struct _Ecore_Wl2_Surface Ecore_Wl2_Surface;
// TIZEN_ONLY(20171109): support a tizen_input_device_manager interface
+/** @internal */
typedef struct _Ecore_Wl2_Tizen_Input_Eo_Device Ecore_Wl2_Tizen_Input_Eo_Device;
+/** @internal */
typedef struct _Ecore_Wl2_Tizen_Input_Device Ecore_Wl2_Tizen_Input_Device;
+//
+
+/**
+ * @ingroup Ecore_Wl2_Group
+ *
+ * @typedef Ecore_Wl2_Event_Connect
+ * Type for Ecore_Wl2_Event_Connect
+ */
+typedef struct _Ecore_Wl2_Event_Connection Ecore_Wl2_Event_Connect;
+
+/**
+ * @ingroup Ecore_Wl2_Group
+ *
+ * @typedef Ecore_Wl2_Event_Disconnect
+ * Type for Ecore_Wl2_Event_Disconnect
+ */
+typedef struct _Ecore_Wl2_Event_Connection Ecore_Wl2_Event_Disconnect;
+
+struct _Ecore_Wl2_Event_Connection
+{
+ Ecore_Wl2_Display *display;
+};
+
+/**
+ * @ingroup Ecore_Wl2_Group
+ *
+ * @typedef Ecore_Wl2_Event_Global
+ * Type for _Ecore_Wl2_Event_Global
+ */
+typedef struct _Ecore_Wl2_Event_Global
+{
+ Ecore_Wl2_Display *display;
+ Eina_Stringshare *interface;
+ unsigned int id, version;
+} Ecore_Wl2_Event_Global;
+/**
+ * @ingroup Ecore_Wl2_Group
+ *
+ * @typedef Ecore_Wl2_Event_Window_Configure
+ * Type for Ecore_Wl2_Event_Window_Configure
+ */
+typedef struct _Ecore_Wl2_Event_Window_Configure
+{
+ unsigned int win, event_win, edges;
+// TIZEN_ONLY
+ int x, y;
//
-// TIZEN_ONLY(20190807): Support for wl_egl interface
-typedef struct _Ecore_Wl2_Egl_Window Ecore_Wl2_Egl_Window;
+ unsigned int w, h;
+ unsigned int states;
+} Ecore_Wl2_Event_Window_Configure;
+
+/**
+ * @ingroup Ecore_Wl2_Group
+ *
+ * @typedef Ecore_Wl2_Event_Window_Configure_Complete
+ * Type for Ecore_Wl2_Event_Window_Configure_Complete
+ */
+typedef struct _Ecore_Wl2_Event_Window_Configure_Complete
+{
+ unsigned int win;
+} Ecore_Wl2_Event_Window_Configure_Complete;
+
+/*
+ * @ingroup Ecore_Wl2_Group
+ *
+ * @typedef Ecore_Wl2_Event_Window_Show
+ * Type for Ecore_Wl2_Event_Window_Show
+ */
+typedef struct _Ecore_Wl2_Event_Window_Show
+{
+ unsigned int win;
+ unsigned int parent_win;
+ unsigned int event_win;
+ // TIZEN_ONLY
+ unsigned int data[4];
+ //
+} Ecore_Wl2_Event_Window_Show;
+
+/*
+ * @ingroup Ecore_Wl2_Group
+ *
+ * @typedef Ecore_Wl2_Event_Window_Hide
+ * Type for Ecore_Wl2_Event_Window_Hide
+ */
+typedef struct _Ecore_Wl2_Event_Window_Hide
+{
+ unsigned int win;
+ unsigned int parent_win;
+ unsigned int event_win;
+} Ecore_Wl2_Event_Window_Hide;
+
+/*
+ * @ingroup Ecore_Wl2_Group
+ *
+ * @typedef Ecore_Wl2_Event_Window_Activate
+ * Type for Ecore_Wl2_Event_Window_Activate
+ */
+typedef struct _Ecore_Wl2_Event_Window_Activate
+{
+ unsigned int win;
+ unsigned int parent_win;
+ unsigned int event_win;
+} Ecore_Wl2_Event_Window_Activate;
+
+/*
+ * @ingroup Ecore_Wl2_Group
+ *
+ * @typedef Ecore_Wl2_Event_Window_Deactivate
+ * Type for Ecore_Wl2_Event_Window_Deactivate
+ */
+typedef struct _Ecore_Wl2_Event_Window_Deactivate
+{
+ unsigned int win;
+ unsigned int parent_win;
+ unsigned int event_win;
+} Ecore_Wl2_Event_Window_Deactivate;
+
+/*
+ * @ingroup Ecore_Wl2_Group
+ *
+ * @typedef Ecore_Wl2_Event_Window_Lower
+ * Type for Ecore_Wl2_Event_Window_Lower
+ */
+typedef struct _Ecore_Wl2_Event_Window_Lower
+{
+ unsigned int win;
+ unsigned int timestamp;
+} Ecore_Wl2_Event_Window_Lower;
+
+// TIZEN_ONLY(20171107): support a tizen_keyrouter interface
+//this enum for keyrouter and client window side
+//keycode (8~255)
+/*
+ * @ingroup Ecore_Wl2_Group
+ *
+ * @typedef Ecore_Wl2_Window_Keygrab_Mode
+ * Type for Ecore_Wl2_Window_Keygrab_Mode
+ */
+typedef enum _Ecore_Wl2_Window_Keygrab_Mode
+{
+ ECORE_WL2_WINDOW_KEYGRAB_UNKNOWN = 0, /**< Unknown keygrab mode */
+ ECORE_WL2_WINDOW_KEYGRAB_SHARED = 1, /**< Getting the grabbed-key together with the other client windows */
+ ECORE_WL2_WINDOW_KEYGRAB_TOPMOST = 2, /**< Getting the grabbed-key only when window is top of the stack */
+ ECORE_WL2_WINDOW_KEYGRAB_OVERRIDE_EXCLUSIVE = 3, /**< Getting the grabbed-key exclusively regardless of window's position. Being overrided the grab by the other client window */
+ ECORE_WL2_WINDOW_KEYGRAB_EXCLUSIVE = 4 /**< Getting the grabbed-key exclusively regardless of window's position */
+} Ecore_Wl2_Window_Keygrab_Mode;
+
+/*
+ * @ingroup Ecore_Wl2_Group
+ *
+ * @typedef Ecore_Wl2_Window_Keygrab_Info
+ * Type for Ecore_Wl2_Window_Keygrab_Info
+ */
+typedef struct _Ecore_Wl2_Window_Keygrab_Info
+{
+ char *key;
+ Ecore_Wl2_Window_Keygrab_Mode mode;
+} Ecore_Wl2_Window_Keygrab_Info;
//
+/*
+ * @ingroup Ecore_Wl2_Group
+ *
+ * @typedef Ecore_Wl2_Frame_Cb
+ * Type for Ecore_Wl2_Frame_Cb
+ */
+typedef void (*Ecore_Wl2_Frame_Cb)(Ecore_Wl2_Window *win, uint32_t timestamp, void *data);
+
+/*
+ * @ingroup Ecore_Wl2_Group
+ *
+ * @typedef Ecore_Wl2_Frame_Cb_Handle
+ * Type for Ecore_Wl2_Frame_Cb_Handle
+ */
+typedef struct _Ecore_Wl2_Frame_Cb_Handle Ecore_Wl2_Frame_Cb_Handle;
+
/* matches protocol values */
+/** @internal */
typedef enum
{
ECORE_WL2_DRAG_ACTION_NONE = 0,
ECORE_WL2_DRAG_ACTION_LAST = 5,
} Ecore_Wl2_Drag_Action;
+/** @internal */
typedef enum
{
ECORE_WL2_SEAT_CAPABILITIES_NONE = 0,
ECORE_WL2_SEAT_CAPABILITIES_TOUCH = 4
} Ecore_Wl2_Seat_Capabilities;
-struct _Ecore_Wl2_Event_Connection
-{
- Ecore_Wl2_Display *display;
-};
-
-typedef struct _Ecore_Wl2_Event_Connection Ecore_Wl2_Event_Connect;
-typedef struct _Ecore_Wl2_Event_Connection Ecore_Wl2_Event_Disconnect;
-
+/** @internal */
typedef struct _Ecore_Wl2_Global
{
Eina_Stringshare *interface;
Ecore_Wl2_Display *display;
} Ecore_Wl2_Global;
-typedef struct _Ecore_Wl2_Event_Global
-{
- Ecore_Wl2_Display *display;
- Eina_Stringshare *interface;
- unsigned int id, version;
-} Ecore_Wl2_Event_Global;
-
+/** @internal */
typedef struct _Ecore_Wl2_Event_Focus_In
{
unsigned int window;
Ecore_Wl2_Display *display;
} Ecore_Wl2_Event_Focus_In;
+/** @internal */
typedef struct _Ecore_Wl2_Event_Focus_Out
{
unsigned int window;
Ecore_Wl2_Display *display;
} Ecore_Wl2_Event_Focus_Out;
+/** @internal */
typedef struct _Ecore_Wl2_Event_Dnd_Enter
{
unsigned int win, source;
Ecore_Wl2_Display *display;
} Ecore_Wl2_Event_Dnd_Enter;
+/** @internal */
typedef struct _Ecore_Wl2_Event_Dnd_Leave
{
unsigned int win, source;
Ecore_Wl2_Display *display;
} Ecore_Wl2_Event_Dnd_Leave;
+/** @internal */
typedef struct _Ecore_Wl2_Event_Dnd_Motion
{
unsigned int win, source;
Ecore_Wl2_Display *display;
} Ecore_Wl2_Event_Dnd_Motion;
+/** @internal */
typedef struct _Ecore_Wl2_Event_Dnd_Drop
{
unsigned int win, source;
Ecore_Wl2_Display *display;
} Ecore_Wl2_Event_Dnd_Drop;
+/** @internal */
typedef struct _Ecore_Wl2_Event_Dnd_End
{
unsigned int win, source;
Ecore_Wl2_Display *display;
} Ecore_Wl2_Event_Dnd_End;
+/** @internal */
struct _Ecore_Wl2_Event_Data_Source_Event
{
unsigned int win, source;
Ecore_Wl2_Display *display;
};
+/** @internal */
typedef struct Ecore_Wl2_Event_Data_Source_End
{
unsigned int win, source;
Ecore_Wl2_Display *display;
Eina_Bool cancelled;
} Ecore_Wl2_Event_Data_Source_End;
+
+/** @internal */
typedef struct _Ecore_Wl2_Event_Data_Source_Event Ecore_Wl2_Event_Data_Source_Drop;
+/** @internal */
typedef struct _Ecore_Wl2_Event_Data_Source_Event Ecore_Wl2_Event_Data_Source_Action;
+/** @internal */
typedef struct _Ecore_Wl2_Event_Data_Source_Target
{
char *type;
Ecore_Wl2_Display *display;
} Ecore_Wl2_Event_Data_Source_Target;
+/** @internal */
typedef struct _Ecore_Wl2_Event_Data_Source_Send
{
char *type;
Ecore_Wl2_Display *display;
} Ecore_Wl2_Event_Data_Source_Send;
+/** @internal */
typedef struct Ecore_Wl2_Event_Seat_Selection
{
//TIZEN_ONLY(20180724): Supporting copy and paste for cbhm
Ecore_Wl2_Display *display;
} Ecore_Wl2_Event_Seat_Selection;
+/** @internal */
typedef struct _Ecore_Wl2_Event_Seat_Name
{
Eina_Stringshare *name;
Ecore_Wl2_Display *display;
} Ecore_Wl2_Event_Seat_Name;
+/** @internal */
typedef struct _Ecore_Wl2_Event_Seat_Capabilities
{
unsigned int id;
Ecore_Wl2_Display *display;
} Ecore_Wl2_Event_Seat_Capabilities;
+/** @internal */
typedef enum
{
ECORE_WL2_DEVICE_TYPE_SEAT,
ECORE_WL2_DEVICE_TYPE_TOUCH
} Ecore_Wl2_Device_Type;
+/** @internal */
typedef struct _Ecore_Wl2_Event_Device
{
Eo *dev;
Ecore_Wl2_Device_Type type;
} Ecore_Wl2_Event_Device;
+/** @internal */
typedef enum
{
ECORE_WL2_SELECTION_CNP,
ECORE_WL2_SELECTION_DND
} Ecore_Wl2_Selection_Type;
+/** @internal */
typedef enum
{
ECORE_WL2_WINDOW_STATE_NONE = 0,
ECORE_WL2_WINDOW_STATE_MAXIMIZED = (1 << 1),
} Ecore_Wl2_Window_States;
-typedef struct _Ecore_Wl2_Event_Window_Configure
-{
- unsigned int win, event_win, edges;
-// TIZEN_ONLY
- int x, y;
-//
- unsigned int w, h;
- unsigned int states;
-} Ecore_Wl2_Event_Window_Configure;
-
-typedef struct _Ecore_Wl2_Event_Window_Configure_Complete
-{
- unsigned int win;
-} Ecore_Wl2_Event_Window_Configure_Complete;
-
+/** @internal */
typedef struct _Ecore_Wl2_Event_Input_Keymap_Changed
{
unsigned int id;
Ecore_Wl2_Display *display;
} Ecore_Wl2_Event_Seat_Keymap_Changed;
+/** @internal */
typedef struct Ecore_Wl2_Event_Seat_Keyboard_Repeat_Changed
{
unsigned int id;
Ecore_Wl2_Display *display;
} Ecore_Wl2_Event_Seat_Keyboard_Repeat_Changed;
+/** @internal */
typedef struct _Ecore_Wl2_Event_Sync_Done
{
Ecore_Wl2_Display *display;
} Ecore_Wl2_Event_Sync_Done;
+/** @internal */
typedef struct _Ecore_Wl2_Event_Offer_Data_Ready
{
Ecore_Wl2_Offer *offer;
Ecore_Wl2_Display *display;
} Ecore_Wl2_Event_Offer_Data_Ready;
+/** @internal */
typedef struct _Ecore_Wl2_Event_Output_Transform
{
Ecore_Wl2_Output *output;
int transform, old_transform;
} Ecore_Wl2_Event_Output_Transform;
+/** @internal */
typedef struct _Ecore_Wl2_Event_Window_Rotation
{
unsigned int win;
Eina_Bool resize : 1;
} Ecore_Wl2_Event_Window_Rotation;
+/** @internal */
typedef struct _Ecore_Wl2_Event_Window_Rotation Ecore_Wl2_Event_Window_Rotation_Change_Prepare;
+/** @internal */
typedef struct _Ecore_Wl2_Event_Window_Rotation Ecore_Wl2_Event_Window_Rotation_Change_Prepare_Done;
+/** @internal */
typedef struct _Ecore_Wl2_Event_Window_Rotation Ecore_Wl2_Event_Window_Rotation_Change_Request;
+/** @internal */
typedef struct _Ecore_Wl2_Event_Window_Rotation Ecore_Wl2_Event_Window_Rotation_Change_Done;
-typedef struct _Ecore_Wl2_Event_Window_Show
-{
- unsigned int win;
- unsigned int parent_win;
- unsigned int event_win;
- // TIZEN_ONLY
- unsigned int data[4];
- //
-} Ecore_Wl2_Event_Window_Show;
-
-typedef struct _Ecore_Wl2_Event_Window_Hide
-{
- unsigned int win;
- unsigned int parent_win;
- unsigned int event_win;
-} Ecore_Wl2_Event_Window_Hide;
-
-typedef struct _Ecore_Wl2_Event_Window_Activate
-{
- unsigned int win;
- unsigned int parent_win;
- unsigned int event_win;
-} Ecore_Wl2_Event_Window_Activate;
-
-typedef struct _Ecore_Wl2_Event_Window_Deactivate
-{
- unsigned int win;
- unsigned int parent_win;
- unsigned int event_win;
-} Ecore_Wl2_Event_Window_Deactivate;
-
+/** @internal */
typedef struct _Ecore_Wl2_Event_Window_Iconify_State_Change
{
unsigned int win;
unsigned int force;
} Ecore_Wl2_Event_Window_Iconify_State_Change;
+/** @internal */
typedef enum _Ecore_Wl2_Window_Type
{
ECORE_WL2_WINDOW_TYPE_NONE,
} Ecore_Wl2_Window_Type;
// TIZEN_ONLY(20171107): added wl enumerations from ecore_wayland to ecore_wl2
+/** @internal */
typedef enum _Ecore_Wl2_Window_Visibility_Type
{
ECORE_WL2_WINDOW_VISIBILITY_TYPE_UNKNOWN = 0,
ECORE_WL2_WINDOW_VISIBILITY_TYPE_PRE_UNOBSCURED = 4,
} Ecore_Wl2_Window_Visibility_Type;
+/** @internal */
typedef enum _Ecore_Wl2_Window_Stack_Mode
{
ECORE_WL2_WINDOW_STACK_NONE = 0,
ECORE_WL2_WINDOW_STACK_BELOW = 2,
} Ecore_Wl2_Window_Stack_Mode;
+/** @internal */
typedef enum _Ecore_Wl2_Conformant_Part_Type
{
ECORE_WL2_INDICATOR_PART = 0,
ECORE_WL2_CLIPBOARD_PART = 2
} Ecore_Wl2_Conformant_Part_Type;
+/** @internal */
typedef enum _Ecore_Wl2_Virtual_Keyboard_State
{
ECORE_WL2_VIRTUAL_KEYBOARD_STATE_UNKNOWN = 0,
ECORE_WL2_VIRTUAL_KEYBOARD_STATE_ON,
} Ecore_Wl2_Virtual_Keyboard_State;
+/** @internal */
typedef enum _Ecore_Wl2_Indicator_State
{
ECORE_WL2_INDICATOR_STATE_UNKNOWN = 0,
ECORE_WL2_INDICATOR_STATE_ON
} Ecore_Wl2_Indicator_State;
+/** @internal */
typedef enum _Ecore_Wl2_Indicator_Opacity_Mode
{
ECORE_WL2_INDICATOR_OPACITY_UNKNOWN = 0,
ECORE_WL2_INDICATOR_BG_TRANSPARENT,
} Ecore_Wl2_Indicator_Opacity_Mode;
+/** @internal */
typedef enum _Ecore_Wl2_Indicator_Visible_Type
{
ECORE_WL2_INDICATOR_VISIBLE_TYPE_HIDDEN = 0,
ECORE_WL2_INDICATOR_VISIBLE_TYPE_SHOWN,
} Ecore_Wl2_Indicator_Visible_Type;
+/** @internal */
typedef enum _Ecore_Wl2_Clipboard_State
{
ECORE_WL2_CLIPBOARD_STATE_UNKNOWN = 0,
} Ecore_Wl2_Clipboard_State;
//
+/** @internal */
typedef struct _Ecore_Wl2_Event_Aux_Hint_Allowed
{
unsigned int win;
Ecore_Wl2_Display *display;
} Ecore_Wl2_Event_Aux_Hint_Allowed;
+/** @internal */
typedef struct _Ecore_Wl2_Event_Aux_Hint_Supported
{
unsigned int win;
Ecore_Wl2_Display *display;
} Ecore_Wl2_Event_Aux_Hint_Supported;
+/** @internal */
typedef struct Ecore_Wl2_Event_Aux_Message
{
unsigned int win;
Ecore_Wl2_Display *display;
} Ecore_Wl2_Event_Aux_Message;
+/** @internal */
typedef struct Ecore_Wl2_Event_Window_Offscreen
{
unsigned int win;
} Ecore_Wl2_Event_Window_Offscreen;
+/** @internal */
typedef struct _Ecore_Wl2_Buffer Ecore_Wl2_Buffer;
+/** @internal */
typedef enum _Ecore_Wl2_Buffer_Type
{
ECORE_WL2_BUFFER_NONE = 0,
} Ecore_Wl2_Buffer_Type;
// TIZEN_ONLY(20171107): added wl evet structures from ecore_wayland to ecore_wl2
+/** @internal */
typedef struct _Ecore_Wl2_Event_Window_Visibility_Change
{
unsigned int win;
int fully_obscured;
} Ecore_Wl2_Event_Window_Visibility_Change;
+/** @internal */
typedef struct _Ecore_Wl2_Event_Window_Pre_Visibility_Change
{
unsigned int win;
unsigned int option;
} Ecore_Wl2_Event_Window_Pre_Visibility_Change;
-typedef struct _Ecore_Wl2_Event_Window_Lower
-{
- unsigned int win;
- unsigned int timestamp;
-} Ecore_Wl2_Event_Window_Lower;
-
+/** @internal */
typedef struct _Ecore_Wl2_Event_Dnd_Position
{
unsigned int win, source;
} position;
} Ecore_Wl2_Event_Dnd_Position;
+/** @internal */
typedef struct _Ecore_Wl2_Event_Data_Source_Cancelled
{
unsigned int win, source;
} Ecore_Wl2_Event_Data_Source_Cancelled;
+/** @internal */
typedef struct _Ecore_Wl2_Event_Selection_Data_Ready
{
char *data;
Ecore_Wl2_Selection_Type sel_type;
} Ecore_Wl2_Event_Selection_Data_Ready;
+/** @internal */
typedef struct _Ecore_Wl2_Event_Conformant_Change
{
unsigned int win;
int win;
unsigned int type;
} Ecore_Wl2_Event_Effect;
+
+/** @internal */
typedef struct _Ecore_Wl2_Event_Effect Ecore_Wl2_Event_Effect_Start;
+/** @internal */
typedef struct _Ecore_Wl2_Event_Effect Ecore_Wl2_Event_Effect_End;
+/** @internal */
typedef struct _Ecore_Wl2_Event_Ignore_Output_Transform
{
Ecore_Wl2_Window *win;
Eina_Bool ignore;
} Ecore_Wl2_Event_Ignore_Output_Transform;
+/** @internal */
typedef struct _Ecore_Wl2_Event_Indicator_Flick
{
unsigned int win;
int type;
} Ecore_Wl2_Event_Indicator_Flick;
+/** @internal */
typedef struct _Ecore_Wl2_Event_Clipboard_Data_Selected
{
unsigned int win;
} Ecore_Wl2_Event_Clipboard_Data_Selected;
//
-// TIZEN_ONLY(20171107): support a tizen_keyrouter interface
-//this enum for keyrouter and client window side
-//keycode (8~255)
-typedef enum _Ecore_Wl2_Window_Keygrab_Mode
-{
- ECORE_WL2_WINDOW_KEYGRAB_UNKNOWN = 0, /**< Unknown keygrab mode */
- ECORE_WL2_WINDOW_KEYGRAB_SHARED = 1, /**< Getting the grabbed-key together with the other client windows */
- ECORE_WL2_WINDOW_KEYGRAB_TOPMOST = 2, /**< Getting the grabbed-key only when window is top of the stack */
- ECORE_WL2_WINDOW_KEYGRAB_OVERRIDE_EXCLUSIVE = 3, /**< Getting the grabbed-key exclusively regardless of window's position. Being overrided the grab by the other client window */
- ECORE_WL2_WINDOW_KEYGRAB_EXCLUSIVE = 4 /**< Getting the grabbed-key exclusively regardless of window's position */
-} Ecore_Wl2_Window_Keygrab_Mode;
-
-typedef struct _Ecore_Wl2_Keygrab_Info
+/** @internal */
+typedef struct _Ecore_Wl2_Keygrab_Info
{
int key;
int mode;
int err;
} Ecore_Wl2_Keygrab_Info;
+/** @internal */
typedef struct _Ecore_Wl2_Keyungrab_Info
{
int key;
int err;
} Ecore_Wl2_Keyungrab_Info;
-typedef struct _Ecore_Wl2_Window_Keygrab_Info
+/** @internal */
+typedef struct _Ecore_Wl2_Surface_Interface
{
- char *key;
- Ecore_Wl2_Window_Keygrab_Mode mode;
-} Ecore_Wl2_Window_Keygrab_Info;
-//
+ int id;
+ int version;
+ void *(*setup)(Ecore_Wl2_Window *win);
+ void (*destroy)(Ecore_Wl2_Surface *surface, void *priv_data);
+ void (*reconfigure)(Ecore_Wl2_Surface *surface, void *priv_data, int w, int h, uint32_t flags, Eina_Bool alpha);
+ void *(*data_get)(Ecore_Wl2_Surface *surface, void *priv_data, int *w, int *h);
+ int (*assign)(Ecore_Wl2_Surface *surface, void *priv_data);
+ void (*post)(Ecore_Wl2_Surface *surface, void *priv_data, Eina_Rectangle *rects, unsigned int count);
+ void (*flush)(Ecore_Wl2_Surface *surface, void *priv_data, Eina_Bool purge);
+ void (*set_serial)(Ecore_Wl2_Surface *surface, void *priv_data, unsigned int serial);
+} Ecore_Wl2_Surface_Interface;
+
+/** @internal */
typedef void (*Ecore_Wl2_Bind_Cb)(struct wl_client *client, void *data, uint32_t version, uint32_t id);
+/** @internal */
typedef void (*Ecore_Wl2_Unbind_Cb)(struct wl_resource *resource);
-typedef void (*Ecore_Wl2_Frame_Cb)(Ecore_Wl2_Window *win, uint32_t timestamp, void *data);
-typedef struct _Ecore_Wl2_Frame_Cb_Handle Ecore_Wl2_Frame_Cb_Handle;
EAPI extern int ECORE_WL2_EVENT_DISCONNECT; /** @since 1.18 */
EAPI extern int ECORE_WL2_EVENT_CONNECT; /** @since 1.18 */
EAPI extern int ECORE_WL2_EVENT_CLIPBOARD_DATA_SELECTED;
//
-typedef struct _Ecore_Wl2_Surface_Interface
-{
- int id;
- int version;
-
- void *(*setup)(Ecore_Wl2_Window *win);
- void (*destroy)(Ecore_Wl2_Surface *surface, void *priv_data);
- void (*reconfigure)(Ecore_Wl2_Surface *surface, void *priv_data, int w, int h, uint32_t flags, Eina_Bool alpha);
- void *(*data_get)(Ecore_Wl2_Surface *surface, void *priv_data, int *w, int *h);
- int (*assign)(Ecore_Wl2_Surface *surface, void *priv_data);
- void (*post)(Ecore_Wl2_Surface *surface, void *priv_data, Eina_Rectangle *rects, unsigned int count);
- void (*flush)(Ecore_Wl2_Surface *surface, void *priv_data, Eina_Bool purge);
- void (*set_serial)(Ecore_Wl2_Surface *surface, void *priv_data, unsigned int serial);
-} Ecore_Wl2_Surface_Interface;
-
-/**
- * @file
- * @brief Ecore functions for dealing with the Wayland display protocol
- *
- * @defgroup Ecore_Wl2_Group Ecore_Wl2 - Wayland integration
- * @ingroup Ecore
- *
- * Ecore_Wl2 provides a wrapper and convenience functions for using the
- * Wayland protocol in implementing a window system. Function groups for
- * this part of the library include the following:
- *
- * @li @ref Ecore_Wl2_Init_Group
- * @li @ref Ecore_Wl2_Display_Group
- * @li @ref Ecore_Wl2_Window_Group
- * @li @ref Ecore_Wl2_Output_Group
- * @li @ref Ecore_Wl2_Dnd_Group
- * @li @ref Ecore_Wl2_Input_Group
- */
-
/**
* @defgroup Ecore_Wl2_Init_Group Wayland Library Init and Shutdown Functions
* @ingroup Ecore_Wl2_Group
EAPI int ecore_wl2_init(void);
/**
- * Shutdown the Ecore_Wl2 Library
+ * @brief Shutdown the Ecore_Wl2 Library
+ *
+ * In shutting down the library, the Wayland display connection is terminated
+ * and any event handlers for it are removed
*
* @return The number of times the library has been initialized without
* being shutdown.
*/
/**
- * Create a new Wayland display
+ * @brief Connect to an existing Wayland display
*
- * @brief This function is typically used to create a new display for
- * use with compositors, or to create a new display for use in nested
- * compositors.
+ * This function is typically used by clients to connect to an
+ * existing Wayland display.
*
- * @param name The display target name to create. If @c NULL, a default
- * display name will be assigned.
- * @return The newly created Ecore_Wl2_Display
+ * @param name The display target name to connect to. If @c NULL, the default
+ * display is assumed.
+ *
+ * @return The Ecore_Wl2_Display which was connected to
*
* @ingroup Ecore_Wl2_Display_Group
* @since 1.17
*/
-EAPI Ecore_Wl2_Display *ecore_wl2_display_create(const char *name);
+EAPI Ecore_Wl2_Display *ecore_wl2_display_connect(const char *name);
/**
- * Destroy an existing Wayland display
+ * Disconnect an existing Wayland display
*
- * @brief This function is typically used by servers to terminate an
+ * @brief This function is typically used by clients to disconnect from an
* existing Wayland display.
*
- * @param display The display to terminate
+ * @param display The display to disconnect from
*
* @ingroup Ecore_Wl2_Display_Group
* @since 1.17
*/
-EAPI void ecore_wl2_display_destroy(Ecore_Wl2_Display *display);
+EAPI void ecore_wl2_display_disconnect(Ecore_Wl2_Display *display);
+// TIZEN_ONLY(20190807): Retrieve the existing native wayland display
/**
- * Connect to an existing Wayland display
+ * Retrieve the existing native wayland display
*
- * @brief This function is typically used by clients to connect to an
- * existing Wayland display.
+ * @note The native wl_display struct is not included in the managed API list
+ * and is provided as a void pointer
+ * if the user needs to call a specific module function using that struct
*
- * @param name The display target name to connect to. If @c NULL, the default
- * display is assumed.
+ * @param display The Ecore_Wl2_Display for which to retrieve the existing
+ * Wayland display from
+ *
+ * @return The wl_display which this Ecore_Wl2_Display is using
+ * It provided as void type
+ *
+ * @ingroup Ecore_Wl2_Display_Group
+ */
+EAPI void *ecore_wl2_display_native_get(Ecore_Wl2_Display *display);
+//
+
+/**
+ * Retrieves the size of the current screen.
+ *
+ * @param display The display to get the screen size of
+ * @param w where to return the width. May be NULL. Returns 0 on error.
+ * @param h where to return the height. May be NULL. Returns 0 on error.
+ *
+ * @ingroup Ecore_Wl2_Display_Group
+ * @since 1.17
+ */
+EAPI void ecore_wl2_display_screen_size_get(Ecore_Wl2_Display *display, int *w, int *h);
+
+/**
+ * Find an Ecore_Wl2_Window based on id
+ *
+ * @param display The display to search for the window
+ * @param id The id of the window to find
+ *
+ * @return The Ecore_Wl2_Window if found, or NULL if no such window exists
+ *
+ * @ingroup Ecore_Wl2_Display_Group
+ * @since 1.17
+ */
+EAPI Ecore_Wl2_Window *ecore_wl2_display_window_find(Ecore_Wl2_Display *display, unsigned int id);
+
+/**
+ * Gets the connected display object
+ *
+ * @brief This function is typically used by clients to get an
+ * existing Wayland display.
+ *
+ * @param name The display target name. If @c NULL, the default
+ * display is assumed.
*
* @return The Ecore_Wl2_Display which was connected to
*
* @ingroup Ecore_Wl2_Display_Group
+ * @since 1.24
+ */
+EAPI Ecore_Wl2_Display *ecore_wl2_connected_display_get(const char *name);
+
+/**
+ * Push buffered wayland protocol to compositor
+ *
+ * Wayland protocol is only actually sent when a flush occurs,
+ * so the display should be flushed at appropriate times, such
+ * as after a commit.
+ *
+ * @param display The display to flush
+ *
+ * @ingroup Ecore_Wl2_Display_Group
+ * @since 1.21
+ */
+EAPI void ecore_wl2_display_flush(Ecore_Wl2_Display *display);
+
+// TIZEN_ONLY(20171107): support a tizen_keyrouter interface
+/**
+ * This is wrapper for wl_display_sync.
+ *
+ * @param display The display to sync
+ *
+ * @ingroup Ecore_Wl2_Display_Group
+ */
+EAPI void ecore_wl2_display_sync(Ecore_Wl2_Display *display);
+//
+
+/**
+ * @internal
+ *
+ * Create a new Wayland display
+ *
+ * @brief This function is typically used to create a new display for
+ * use with compositors, or to create a new display for use in nested
+ * compositors.
+ *
+ * @param name The display target name to create. If @c NULL, a default
+ * display name will be assigned.
+ * @return The newly created Ecore_Wl2_Display
+ *
+ * @ingroup Ecore_Wl2_Display_Group
* @since 1.17
*/
-EAPI Ecore_Wl2_Display *ecore_wl2_display_connect(const char *name);
+EAPI Ecore_Wl2_Display *ecore_wl2_display_create(const char *name);
/**
- * Disconnect an existing Wayland display
+ * @internal
*
- * @brief This function is typically used by clients to disconnect from an
+ * Destroy an existing Wayland display
+ *
+ * @brief This function is typically used by servers to terminate an
* existing Wayland display.
*
- * @param display The display to disconnect from
+ * @param display The display to terminate
*
* @ingroup Ecore_Wl2_Display_Group
* @since 1.17
*/
-EAPI void ecore_wl2_display_disconnect(Ecore_Wl2_Display *display);
+EAPI void ecore_wl2_display_destroy(Ecore_Wl2_Display *display);
/**
+ * @internal
+ *
* Terminate a Wayland display's main loop
*
* @brief This function is typically used by servers to terminate the
EAPI void ecore_wl2_display_terminate(Ecore_Wl2_Display *display);
/**
+ * @internal
+ *
* Retrieve the existing Wayland display
*
* @param display The Ecore_Wl2_Display for which to retrieve the existing
*/
EAPI struct wl_display *ecore_wl2_display_get(Ecore_Wl2_Display *display);
-// TIZEN_ONLY(20190807): Retrieve the existing native wayland display
-EAPI void *ecore_wl2_native_display_get(Ecore_Wl2_Display *display);
-//
-
/**
+ * @internal
+ *
* Retrieve the wl_shm from a given Ecore_Wl2_Display
*
* @param display The Ecore_Wl2_Display for which to retrieve the existing
EAPI struct wl_shm *ecore_wl2_display_shm_get(Ecore_Wl2_Display *display);
/**
+ * @internal
+ *
* Retrieve the wl_dmabuf from a given Ecore_Wl2_Display
*
*
EAPI void *ecore_wl2_display_dmabuf_get(Ecore_Wl2_Display *display);
/**
+ * @internal
+ *
* Return an Eina_Iterator that can be used to iterate through globals
*
* @param display The Ecore_Wl2_Display for which to return a global iterator
EAPI Eina_Iterator *ecore_wl2_display_globals_get(Ecore_Wl2_Display *display);
/**
- * Retrieves the size of the current screen.
- *
- * @param display The display to get the screen size of
- * @param w where to return the width. May be NULL. Returns 0 on error.
- * @param h where to return the height. May be NULL. Returns 0 on error.
+ * @internal
*
- * @ingroup Ecore_Wl2_Display_Group
- * @since 1.17
- */
-EAPI void ecore_wl2_display_screen_size_get(Ecore_Wl2_Display *display, int *w, int *h);
-
-/**
* Get all the Ecore_Wl2_Input from the display.
*
* @param display The display
EAPI Eina_Iterator *ecore_wl2_display_inputs_get(Ecore_Wl2_Display *display);
/**
+ * @internal
+ *
* Find a seat for a given display object using the seat id
*
* @param display The display
EAPI Ecore_Wl2_Input *ecore_wl2_display_input_find(const Ecore_Wl2_Display *display, unsigned int id);
/**
+ * @internal
+ *
* Find a seat for a given display object using the seat id
*
* @param display The display
EAPI Ecore_Wl2_Input *ecore_wl2_display_input_find_by_name(const Ecore_Wl2_Display *display, const char *name);
/**
- * Find an Ecore_Wl2_Window based on id
- *
- * @param display The display to search for the window
- * @param id The id of the window to find
- *
- * @return The Ecore_Wl2_Window if found, or NULL if no such window exists
+ * @internal
*
- * @ingroup Ecore_Wl2_Display_Group
- * @since 1.17
- */
-EAPI Ecore_Wl2_Window *ecore_wl2_display_window_find(Ecore_Wl2_Display *display, unsigned int id);
-
-/**
* Retrieves the Wayland Registry used for the current Wayland display.
*
* @param display The display to get the registry of
EAPI struct wl_registry *ecore_wl2_display_registry_get(Ecore_Wl2_Display *display);
/**
+ * @internal
+ *
* Check if the display has performed a sync
*
* @param display The display
EAPI Eina_Bool ecore_wl2_display_sync_is_done(const Ecore_Wl2_Display *display);
/**
+ * @internal
+ *
* Get the name of the display object
*
* @param display The display
EAPI const char *ecore_wl2_display_name_get(const Ecore_Wl2_Display *display);
/**
+ * @internal
+ *
* Finds an Ecore_Wl2_Window based on wl_surface
*
* @param display The display to search for the window
EAPI Ecore_Wl2_Window *ecore_wl2_display_window_find_by_surface(Ecore_Wl2_Display *display, struct wl_surface *surface);
/**
- * Gets the connected display object
+ * @internal
*
- * @brief This function is typically used by clients to get an
- * existing Wayland display.
+ * Gets the wl_compositor which belongs to this display
*
- * @param name The display target name. If @c NULL, the default
- * display is assumed.
+ * @param display The Ecore_Wl2_Display to get the compositor of
*
- * @return The Ecore_Wl2_Display which was connected to
+ * @return The wl_compositor associated with this display
*
* @ingroup Ecore_Wl2_Display_Group
* @since 1.24
*/
-EAPI Ecore_Wl2_Display *ecore_wl2_connected_display_get(const char *name);
+EAPI struct wl_compositor *ecore_wl2_display_compositor_get(Ecore_Wl2_Display *display);
/**
- * Gets the wl_compositor which belongs to this display
+ * @internal
*
- * @param display The Ecore_Wl2_Display to get the compositor of
+ * Return the version of the display's compositor object
*
- * @return The wl_compositor associated with this display
+ * @param disp the display to get the compositor object version from
+ *
+ * @return the version of the display's compositor object
*
* @ingroup Ecore_Wl2_Display_Group
- * @since 1.24
+ * @since 1.17
*/
-EAPI struct wl_compositor *ecore_wl2_display_compositor_get(Ecore_Wl2_Display *display);
+EAPI int ecore_wl2_display_compositor_version_get(Ecore_Wl2_Display *disp);
/**
* @defgroup Ecore_Wl2_Window_Group Wayland Library Window Functions
EAPI int ecore_wl2_window_id_get(Ecore_Wl2_Window *window);
/**
- * Set a callback to be caleld just before the window is closed and freed
+ * Show a given Ecore_Wl2_Window
*
- * @param window The window to listen to for a xdg toplevel close callback
- * @param cb The callback function to call being passed data and window
- * @param data The Data pointer to pass as data to the callback
+ * @param window The Ecore_Wl2_Window to show
*
* @ingroup Ecore_Wl2_Window_Group
- * @since 1.24
+ * @since 1.17
*/
-EAPI void ecore_wl2_window_close_callback_set(Ecore_Wl2_Window *window, void (*cb) (void *data, Ecore_Wl2_Window *win), void *data);
+EAPI void ecore_wl2_window_show(Ecore_Wl2_Window *window);
/**
- * Get the wl_surface which belongs to this window
- *
- * @param window The Ecore_Wl2_Window to get the surface of
+ * Hide a given Ecore_Wl2_Window
*
- * @return The wl_surface associated with this window.
+ * @param window The Ecore_Wl2_Window to hide
*
* @ingroup Ecore_Wl2_Window_Group
* @since 1.17
*/
-EAPI struct wl_surface *ecore_wl2_window_surface_get(Ecore_Wl2_Window *window);
+EAPI void ecore_wl2_window_hide(Ecore_Wl2_Window *window);
/**
- * Get the id of a given Ecore_Wl2_Window
+ * Free a given Ecore_Wl2_Window
*
- * @param window The window to return the id of
+ * @param window The Ecore_Wl2_Window to free
*
- * @return The id of the given window, or -1 on failure
+ * @ingroup Ecore_Wl2_Window_Group
+ * @since 1.17
+ */
+EAPI void ecore_wl2_window_free(Ecore_Wl2_Window *window);
+
+/**
+ * Raise a given Ecore_Wl2_Window
+ *
+ * @param window The Ecore_Wl2_Window which to raise
*
* @ingroup Ecore_Wl2_Window_Group
* @since 1.17
*/
-EAPI int ecore_wl2_window_surface_id_get(Ecore_Wl2_Window *window);
+EAPI void ecore_wl2_window_raise(Ecore_Wl2_Window *window);
+
+// TIZEN_ONLY(20171108): tizen window function
+/**
+ * Lower the target window
+ *
+ * @note This API call causes the ECORE_WL2_EVENT_WINDOW_LOWER event
+ *
+ * @param window The target window
+ *
+ * @ingroup Ecore_Wl2_Window_Group
+ */
+EAPI void ecore_wl2_window_lower(Ecore_Wl2_Window *window);
/**
- * @see evas_object_size_hint_aspect_set
+ * Activate the target window
+ *
+ * @param window The target window
+ *
+ * @ingroup Ecore_Wl2_Window_Group
+ */
+EAPI void ecore_wl2_window_activate(Ecore_Wl2_Window *window);
+//
+
+/**
+ * Attach a buffer to a window
+ *
+ * Note that the GL stack my attach buffers to a surface - we should call this
+ * function at that time (with a NULL buffer) to track whether a surface
+ * has a valid buffer. That is, call with implicit true and buffer NULL at
+ * the time of glSwapBuffers.
+ *
+ * @param window The target window
+ * @param buffer The buffer to attach
+ * @param x X offset from corner
+ * @param y Y offset from corner
+ * @param implicit True if an external library is doing the actual attaching
+ *
* @ingroup Ecore_Wl2_Window_Group
* @since 1.21
*/
-EAPI void ecore_wl2_window_aspect_set(Ecore_Wl2_Window *window, int w, int h, unsigned int aspect);
+EAPI void ecore_wl2_window_buffer_attach(Ecore_Wl2_Window *win, void *buffer, int x, int y, Eina_Bool implicit);
/**
- * @see evas_object_size_hint_aspect_get
+ * Specifies the area of the window's surface that needs updating
+ * internally calling wl_surface_damage
+ *
+ * @param window The target window
+ * @param rects The rect area that will cause damage
+ * @param count The number of rects
+ *
+ * @ingroup Ecore_Wl2_Window_Group
+ */
+EAPI void ecore_wl2_window_damage(Ecore_Wl2_Window *window, Eina_Rectangle *rects, unsigned int count);
+
+/**
+ * Get if a given window is alpha
+ *
+ * @param window The window to get if is alpha
+ *
+ * @return EINA_TRUE if window is alpha, EINA_FALSE otherwise
+ *
+ * @ingroup Ecore_Wl2_Window_Group
+ * @since 1.17
+ */
+EAPI Eina_Bool ecore_wl2_window_alpha_get(Ecore_Wl2_Window *window);
+
+/**
+ * Set a given window's alpha property
+ *
+ * @param window The window on which to set the alpha property
+ * @param alpha EINA_TRUE to set window as alpha, EINA_FALSE otherwise
+ *
+ * @ingroup Ecore_Wl2_Window_Group
+ * @since 1.17
+ */
+EAPI void ecore_wl2_window_alpha_set(Ecore_Wl2_Window *window, Eina_Bool alpha);
+
+/**
+ * Set the title of a given window
+ *
+ * @param window The window to set the title of
+ * @param title The title of the window
+ *
+ * @ingroup Ecore_Wl2_Window_Group
+ * @since 1.17
+ */
+EAPI void ecore_wl2_window_title_set(Ecore_Wl2_Window *window, const char *title);
+
+/**
+ * Get the title of a given window
+ *
+ * @param window The window to set the title of
+ *
+ * @return A string if found, or NULL otherwise
+ *
* @ingroup Ecore_Wl2_Window_Group
* @since 1.24
*/
-EAPI void ecore_wl2_window_aspect_get(Ecore_Wl2_Window *window, int *w, int *h, unsigned int *aspect);
+EAPI const char *ecore_wl2_window_title_get(Ecore_Wl2_Window *window);
/**
- * Show a given Ecore_Wl2_Window
+ * Get which display a given window is using
*
- * @param window The Ecore_Wl2_Window to show
+ * @param window The window to get the display of
+ *
+ * @return The Ecore_Wl2_Display that this window is using, or NULL otherwise
+ *
+ * @ingroup Ecore_Wl2_Window_Group
+ * @since 1.17
+ */
+EAPI Ecore_Wl2_Display *ecore_wl2_window_display_get(const Ecore_Wl2_Window *window);
+
+/**
+ * Set if this window should ignore focus requests
+ *
+ * @param window The window to set ignore focus requests on
+ * @param focus_skip EINA_TRUE if this window should skip focus requests, EINA_FALSE otherwise
+ *
+ * @ingroup Ecore_Wl2_Window_Group
+ * @since 1.20
+ */
+EAPI void ecore_wl2_window_focus_skip_set(Ecore_Wl2_Window *window, Eina_Bool focus_skip);
+
+/**
+ * Get if this window ignores focus requests
+ *
+ * @param window The window to get the focus skip value from
+ *
+ * @return EINA_TRUE if a window should skip focus requests, EINA_FALSE otherwise
+ *
+ * @ingroup Ecore_Wl2_Window_Group
+ * @since 1.20
+ */
+EAPI Eina_Bool ecore_wl2_window_focus_skip_get(Ecore_Wl2_Window *window);
+
+//TIZEN_ONLY: ecore_wl2: add ecore_wl_window_video_has
+/**
+ *
+ * Register the tizen protocol to provide video through the window's surface.
+ *
+ * @param window The target window
+ * @param has EINA_TRUE to set window has video, EINA_FALSE otherwise
+ *
+ * @ingroup Ecore_Wl2_Window_Group
+ */
+EAPI void ecore_wl2_window_video_has(Ecore_Wl2_Window *window, Eina_Bool has);
+//
+
+/**
+ * Commit the surface of a wayland window.
+ *
+ * If flush is set this generates a wl_surface_commit(), otherwise it is
+ * expected that some other call in the very near future (such as
+ * eglSwapBuffers) will cause an implicit flush.
+ *
+ * A surface that has been commit will be in the "pending" state until
+ * the compositor tells us it's time to draw again via a frame callback.
+ *
+ * @param window The window whose surface we want to commit
+ * @param flush EINA_TRUE if we need to flush immediately.
+ *
+ * @ingroup Ecore_Wl2_Window_Group
+ * @since 1.21
+ */
+EAPI void ecore_wl2_window_commit(Ecore_Wl2_Window *window, Eina_Bool flush);
+
+/**
+ * Add a callback that fires when the window's surface_frame callback fires
+ *
+ * @param window The window to add a callback on
+ * @param cb The callback
+ * @param data User data to provide to the callback handler
+ *
+ * @ingroup Ecore_Wl2_Window_Group
+ * @since 1.21
+ */
+EAPI Ecore_Wl2_Frame_Cb_Handle *ecore_wl2_window_frame_callback_add(Ecore_Wl2_Window *window, Ecore_Wl2_Frame_Cb cb, void *data);
+
+/**
+ * delete a callback that fires when the window's surface_frame callback fires
+ *
+ * @param window The window to add a callback on
+ * @param cb The callback handle
+ *
+ * @ingroup Ecore_Wl2_Window_Group
+ * @since 1.21
+ */
+EAPI void ecore_wl2_window_frame_callback_del(Ecore_Wl2_Frame_Cb_Handle *handle);
+
+// TIZEN_ONLY(20171107): support a tizen_keyrouter interface
+/**
+ * @brief Sets keygrab value of the window
+ *
+ * This function grabs the @c key of window using @c grab_mode
+ *
+ * @param win The target Ecore_Wl2_Window
+ * @param key The string is the keyname to grab
+ * @param mod A combination of modifier keys that must be present to
+ * trigger the event. Not supported yet
+ * @param not_mod A combination of modifier keys that must not be
+ * present to trigger the event. Not supported yet
+ * @param priority Not supported yet
+ * @param grab_mode Describes how the key should be grabbed, wrt. focus and
+ * stacking
+ *
+ * @return @c true on success, @c false otherwise
+ *
+ * @ingroup Ecore_Wl2_Window_Group
+ */
+EAPI Eina_Bool ecore_wl2_window_keygrab_set(Ecore_Wl2_Window *win, const char *key, int mod EINA_UNUSED, int not_mod EINA_UNUSED, int priority EINA_UNUSED, Ecore_Wl2_Window_Keygrab_Mode grab_mode);
+
+/**
+ * @brief Unsets keygrab value of the window
+ *
+ * This function unset keygrab value. Ungrab @c key of window.
+ *
+ * @param win The target Ecore_Wl2_Window
+ * @param key The string is the keyname to grab
+ * @param mod A combination of modifier keys that must be present to
+ * trigger the event. Not supported yet
+ * @param not_mod A combination of modifier keys that must not be
+ * present to trigger the event. Not supported yet
+ *
+ * @return @c true on success, @c false otherwise
+ *
+ * @ingroup Ecore_Wl2_Window_Group
+ */
+EAPI Eina_Bool ecore_wl2_window_keygrab_unset(Ecore_Wl2_Window *win, const char *key, int mod EINA_UNUSED, int any_mod EINA_UNUSED);
+
+/**
+ * @ingroup Ecore_Wl2_Window
+ * @brief Sets keygrab values of the window.
+ *
+ * The returned list should be freed with @c eina_list_free() when you no
+ * longer need it.
+ *
+ * @param win The window
+ * @param infos The list of keys and grab modes for setting keygrab
+ *
+ * @return NULL, or the list of keys being failed keygrab set.
+ *
+ * @Example
+ *
+ * Ecore_Wl2_Window_Keygrab_Info *info = malloc(sizeof(Ecore_Wl2_Window_Keygrab_Info));
+ * info->key = "XF86AudioLowerVolume";
+ * info->mode = ECORE_WL2_WINDOW_KEYGRAB_SHARED;
+ * infos = eina_list_append(infos, info);
+ *
+ * ecore_wl2_window_keygrab_list_set(win, infos);
+ *
+ * @ingroup Ecore_Wl2_Window_Group
+ */
+EAPI Eina_List *ecore_wl2_window_keygrab_list_set(Ecore_Wl2_Window *win, Eina_List *infos);
+
+/**
+ * @ingroup Ecore_Wl2_Window
+ * @brief Unsets keygrab values of the window.
+ *
+ * The returned list should be freed with @c eina_list_free() when you no
+ * longer need it.
+ *
+ * @param win The window
+ * @param infos The list of infos for unsetting keygrab
+ *
+ * @return NULL, or the list of keys being failed keygrab unset.
+ *
+ * @Example
+ *
+ * Ecore_Wl2_Window_Keygrab_Info *info = malloc(sizeof(Ecore_Wl2_Window_Keygrab_Info));
+ * info->key = "XF86AudioLowerVolume";
+ * infos = eina_list_append(infos, info);
+ *
+ * ecore_wl2_window_keygrab_list_unset(win, infos);
+ *
+ * @ingroup Ecore_Wl2_Window_Group
+ */
+EAPI Eina_List *ecore_wl2_window_keygrab_list_unset(Ecore_Wl2_Window *win, Eina_List *infos);
+//
+
+// TIZEN_ONLY(20190807): Support for wl_egl interface
+/**
+ * @brief Creates wl_egl_window
+ *
+ * Create wl_egl_window through the connected wl_surface of ecore_wl2_window.
+ *
+ * @param window The Ecore_Wl2_Window
+ * @param w The width of wl_egl_window
+ * @param h The height of wl_egl_window
+ *
+ * @return The newly created Ecore_Wl2_Egl_Window
+ *
+ * @ingroup Ecore_Wl2_Window_Group
+ */
+EAPI Ecore_Wl2_Egl_Window *ecore_wl2_egl_window_create(Ecore_Wl2_Window *window, int w, int h);
+/**
+ * Destroy a given Ecore_Wl2_Egl_Window
+ *
+ * @param egl_win The Ecore_Wl2_Egl_Window to destroy
+ *
+ * @ingroup Ecore_Wl2_Window_Group
+ */
+EAPI void ecore_wl2_egl_window_destroy(Ecore_Wl2_Egl_Window *egl_win);
+/**
+ * Cast the wl_egl_window struct pointer not included in the Managed API to void pointer
+ * This pointer can be used as an argument to the function passed to wl_egl_window.
+ *
+ * @param egl_win The Ecore_Wl2_Egl_Window
+ *
+ * @return The wl_egl_window, it provided as void type
+ *
+ * @ingroup Ecore_Wl2_Window_Group
+ */
+EAPI void *ecore_wl2_egl_window_native_get(Ecore_Wl2_Egl_Window *egl_win);
+/**
+ * Ecore_Wl2_Egl_Window resize with rotation
+ *
+ * @param egl_win The Ecore_Wl2_Egl_Window
+ * @param dx The x coord resize
+ * @param dy The y coord resize
+ * @param w The width of Ecore_Wl2_Egl_Window
+ * @param h The height of Ecore_Wl2_Egl_Window
+ * @param rotation The angle of rotation
+ *
+ * @ingroup Ecore_Wl2_Window_Group
+ */
+EAPI void ecore_wl2_egl_window_resize_with_rotation(Ecore_Wl2_Egl_Window *egl_win, int dx, int dy, int w, int h, int rotation);
+//
+
+/**
+ * @internal
+ *
+ * Set a callback to be caleld just before the window is closed and freed
+ *
+ * @param window The window to listen to for a xdg toplevel close callback
+ * @param cb The callback function to call being passed data and window
+ * @param data The Data pointer to pass as data to the callback
+ *
+ * @ingroup Ecore_Wl2_Window_Group
+ * @since 1.24
+ */
+EAPI void ecore_wl2_window_close_callback_set(Ecore_Wl2_Window *window, void (*cb) (void *data, Ecore_Wl2_Window *win), void *data);
+
+/**
+ * @internal
+ *
+ * Get the wl_surface which belongs to this window
+ *
+ * @param window The Ecore_Wl2_Window to get the surface of
+ *
+ * @return The wl_surface associated with this window.
*
* @ingroup Ecore_Wl2_Window_Group
* @since 1.17
*/
-EAPI void ecore_wl2_window_show(Ecore_Wl2_Window *window);
+EAPI struct wl_surface *ecore_wl2_window_surface_get(Ecore_Wl2_Window *window);
/**
- * Hide a given Ecore_Wl2_Window
+ * @internal
*
- * @param window The Ecore_Wl2_Window to hide
+ * Get the id of a given Ecore_Wl2_Window
+ *
+ * @param window The window to return the id of
+ *
+ * @return The id of the given window, or -1 on failure
*
* @ingroup Ecore_Wl2_Window_Group
* @since 1.17
*/
-EAPI void ecore_wl2_window_hide(Ecore_Wl2_Window *window);
+EAPI int ecore_wl2_window_surface_id_get(Ecore_Wl2_Window *window);
/**
- * Free a given Ecore_Wl2_Window
+ * @internal
*
- * @param window The Ecore_Wl2_Window to free
+ * @see evas_object_size_hint_aspect_set
+ * @ingroup Ecore_Wl2_Window_Group
+ * @since 1.21
+ */
+EAPI void ecore_wl2_window_aspect_set(Ecore_Wl2_Window *window, int w, int h, unsigned int aspect);
+
+/**
+ * @internal
*
+ * @see evas_object_size_hint_aspect_get
* @ingroup Ecore_Wl2_Window_Group
- * @since 1.17
+ * @since 1.24
*/
-EAPI void ecore_wl2_window_free(Ecore_Wl2_Window *window);
+EAPI void ecore_wl2_window_aspect_get(Ecore_Wl2_Window *window, int *w, int *h, unsigned int *aspect);
/**
+ * @internal
+ *
* @brief Begin moving a given Ecore_Wl2_Window
*
* @param window The Ecore_Wl2_Window which to move
EAPI void ecore_wl2_window_move(Ecore_Wl2_Window *window, Ecore_Wl2_Input *input);
/**
+ * @internal
+ *
* @brief Begin resizing a given window
*
* @param window The Ecore_Wl2_Window which to resize
*/
EAPI void ecore_wl2_window_resize(Ecore_Wl2_Window *window, Ecore_Wl2_Input *input, int location);
-/**
- * Raise a given Ecore_Wl2_Window
- *
- * @param window The Ecore_Wl2_Window which to raise
- *
- * @ingroup Ecore_Wl2_Window_Group
- * @since 1.17
- */
-EAPI void ecore_wl2_window_raise(Ecore_Wl2_Window *window);
-
// TIZEN_ONLY(20171108): tizen window function
-EAPI void ecore_wl2_window_lower(Ecore_Wl2_Window *window);
-EAPI void ecore_wl2_window_activate(Ecore_Wl2_Window *window);
+/** @internal */
EAPI void ecore_wl2_window_parent_set(Ecore_Wl2_Window *window, Ecore_Wl2_Window *parent);
+/** @internal */
EAPI void ecore_wl2_window_stack_mode_set(Ecore_Wl2_Window *window, Ecore_Wl2_Window_Stack_Mode mode);
+/** @internal */
EAPI void ecore_wl2_window_position_set(Ecore_Wl2_Window *window, int x, int y);
+/** @internal */
EAPI int ecore_wl2_window_active_angle_get(Ecore_Wl2_Window *window);
//
//TIZEN_ONLY(20171216): add ecore_wl2_window_find
+/** @internal */
EAPI Ecore_Wl2_Window *ecore_wl2_window_find(unsigned int id);
//
/**
- * Get if a given window is alpha
- *
- * @param window The window to get if is alpha
- *
- * @return EINA_TRUE if window is alpha, EINA_FALSE otherwise
- *
- * @ingroup Ecore_Wl2_Window_Group
- * @since 1.17
- */
-EAPI Eina_Bool ecore_wl2_window_alpha_get(Ecore_Wl2_Window *window);
-
-/**
- * Set a given window's alpha property
- *
- * @param window The window on which to set the alpha property
- * @param alpha EINA_TRUE to set window as alpha, EINA_FALSE otherwise
+ * @internal
*
- * @ingroup Ecore_Wl2_Window_Group
- * @since 1.17
- */
-EAPI void ecore_wl2_window_alpha_set(Ecore_Wl2_Window *window, Eina_Bool alpha);
-
-/**
* Set a given window's transparent property
*
* @param window The window on which to set the transparent property
EAPI void ecore_wl2_window_transparent_set(Ecore_Wl2_Window *window, Eina_Bool transparent);
// TIZEN_ONLY(20171108) : Get a window's transparent property
+/** @internal */
EAPI Eina_Bool ecore_wl2_window_transparent_get(Ecore_Wl2_Window *window);
//
/**
+ * @internal
+ *
* Set the opaque region of the Ecore_Wl2_Window
*
* @param win The window
EAPI void ecore_wl2_window_opaque_region_set(Ecore_Wl2_Window *window, int x, int y, int w, int h);
// TIZEN_ONLY(20160201) : support to handle input rectangle
+/** @internal */
EAPI void ecore_wl2_window_input_rect_set(Ecore_Wl2_Window *win, Eina_Rectangle *input_rect);
+/** @internal */
EAPI void ecore_wl2_window_input_rect_add(Ecore_Wl2_Window *win, Eina_Rectangle *input_rect);
+/** @internal */
EAPI void ecore_wl2_window_input_rect_subtract(Ecore_Wl2_Window *win, Eina_Rectangle *input_rect);
//
/**
+ * @internal
+ *
* Get the opaque region of the Ecore_Wl2_Window
*
* @param win The window
EAPI void ecore_wl2_window_opaque_region_get(Ecore_Wl2_Window *window, int *x, int *y, int *w, int *h);
/**
+ * @internal
+ *
* Set the input region of the Ecore_Wl2_Window.
*
* To set an empty region, pass width and height as 0.
EAPI void ecore_wl2_window_input_region_set(Ecore_Wl2_Window *window, int x, int y, int w, int h);
/**
+ * @internal
+ *
* Get the input region of the Ecore_Wl2_Window.
*
* @param window The window to set the input region of
EAPI void ecore_wl2_window_input_region_get(Ecore_Wl2_Window *window, int *x, int *y, int *w, int *h);
/**
+ * @internal
+ *
* Get if a given window is maximized
*
* @param window The window to get the maximized state of
EAPI Eina_Bool ecore_wl2_window_maximized_get(Ecore_Wl2_Window *window);
/**
+ * @internal
+ *
* Set the maximized state of a given window
*
* @param window The window to set the maximized state of
EAPI void ecore_wl2_window_maximized_set(Ecore_Wl2_Window *window, Eina_Bool maximized);
/**
+ * @internal
+ *
* Get if a given window is fullscreen
*
* @param window The window to get the fullscreen state of
EAPI Eina_Bool ecore_wl2_window_fullscreen_get(Ecore_Wl2_Window *window);
/**
+ * @internal
+ *
* Set the fullscreen state of a given window
*
* @param window The window to set the fullscreen state of
EAPI void ecore_wl2_window_fullscreen_set(Ecore_Wl2_Window *window, Eina_Bool fullscreen);
/**
+ * @internal
+ *
* Get if a given window is rotated
*
* @param window The window to get the rotation of
EAPI int ecore_wl2_window_rotation_get(Ecore_Wl2_Window *window);
/**
+ * @internal
+ *
* Set the rotation of a given window
*
* @param window The window to set the rotation of
EAPI void ecore_wl2_window_rotation_set(Ecore_Wl2_Window *window, int rotation);
/**
- * Set the title of a given window
- *
- * @param window The window to set the title of
- * @param title The title of the window
- *
- * @ingroup Ecore_Wl2_Window_Group
- * @since 1.17
- */
-EAPI void ecore_wl2_window_title_set(Ecore_Wl2_Window *window, const char *title);
-
-/**
- * Get the title of a given window
- *
- * @param window The window to set the title of
- *
- * @return A string if found, or NULL otherwise
+ * @internal
*
- * @ingroup Ecore_Wl2_Window_Group
- * @since 1.24
- */
-EAPI const char *ecore_wl2_window_title_get(Ecore_Wl2_Window *window);
-
-/**
* Set the class of a given window
*
* @param window The window to set the class of
*/
EAPI void ecore_wl2_window_class_set(Ecore_Wl2_Window *window, const char *clas);
-
/**
+ * @internal
+ *
* Get the class of a given window
*
* @param window The window to set the class of
EAPI const char *ecore_wl2_window_class_get(Ecore_Wl2_Window *window);
/**
+ * @internal
+ *
* Get the geometry of a given window
*
* @brief The window geometry returned here is the window geometry as
EAPI void ecore_wl2_window_geometry_get(Ecore_Wl2_Window *window, int *x, int *y, int *w, int *h);
/**
+ * @internal
+ *
* Set the geometry of a given window
*
* @brief The window geometry referenced here is the window geometry as
EAPI void ecore_wl2_window_geometry_set(Ecore_Wl2_Window *window, int x, int y, int w, int h);
/**
+ * @internal
+ *
* Get the iconified state of a given window
*
* @param window The window to get the iconified state of
EAPI Eina_Bool ecore_wl2_window_iconified_get(Ecore_Wl2_Window *window);
/**
+ * @internal
+ *
* Iconify a window
*
* @param win The window to iconifiy
EAPI void ecore_wl2_window_iconified_set(Ecore_Wl2_Window *window, Eina_Bool iconified);
// TIZEN_ONLY(20151231) : handling iconic state on tizen
+/** @internal */
EAPI void ecore_wl2_window_iconify_state_update(Ecore_Wl2_Window *window, Eina_Bool iconified, Eina_Bool send_event);
//
/**
+ * @internal
+ *
* Set the type of a given window
*
* @param window The window to set the type of
EAPI void ecore_wl2_window_type_set(Ecore_Wl2_Window *window, Ecore_Wl2_Window_Type type);
/**
+ * @internal
+ *
* Get the type of a given window
*
* @see Ecore_Wl2_Window_Type
EAPI Ecore_Wl2_Window_Type ecore_wl2_window_type_get(Ecore_Wl2_Window *window);
/**
+ * @internal
+ *
* Find the output that a given window is on
*
* @param window The window to find the output for
EAPI Ecore_Wl2_Output *ecore_wl2_window_output_find(Ecore_Wl2_Window *window);
/**
+ * @internal
+ *
* Set if window rotation is supported by the window manager
*
* @param window
EAPI void ecore_wl2_window_wm_rotation_supported_set(Ecore_Wl2_Window *window, Eina_Bool enabled);
/**
+ * @internal
+ *
* Get if window rotation is supported by the window manager
*
* @param window
EAPI Eina_Bool ecore_wl2_window_wm_rotation_supported_get(Ecore_Wl2_Window *window);
/**
+ * @internal
+ *
* Set if an application has set window rotation
*
* @param window
EAPI void ecore_wl2_window_rotation_app_set(Ecore_Wl2_Window *window, Eina_Bool set);
/**
+ * @internal
+ *
* Get if an application has set window rotation
*
* @param window
EAPI Eina_Bool ecore_wl2_window_rotation_app_get(Ecore_Wl2_Window *window);
/**
+ * @internal
+ *
* Set preferred rotation on a given window
*
* @param window The window to set preferred rotation on
EAPI void ecore_wl2_window_preferred_rotation_set(Ecore_Wl2_Window *window, int rot);
/**
+ * @internal
+ *
* Get preferred rotation for a given window
*
* @param window The window to get preferred rotation from
EAPI int ecore_wl2_window_preferred_rotation_get(Ecore_Wl2_Window *window);
/**
+ * @internal
+ *
* Set a windows available rotations
*
* @param window
EAPI void ecore_wl2_window_available_rotations_set(Ecore_Wl2_Window *window, const int *rots, unsigned int count);
/**
+ * @internal
+ *
* Get a windows available rotations
*
* @param window
* @since 1.20
*/
EAPI Eina_Bool ecore_wl2_window_available_rotations_get(Ecore_Wl2_Window *window, int **rots, unsigned int *count);
-
+/** @internal */
EAPI void ecore_wl2_window_rotation_change_prepare_send(Ecore_Wl2_Window *window, int rot, int w, int h, Eina_Bool resize);
+/** @internal */
EAPI void ecore_wl2_window_rotation_change_prepare_done_send(Ecore_Wl2_Window *window, int rot);
+/** @internal */
EAPI void ecore_wl2_window_rotation_change_request_send(Ecore_Wl2_Window *window, int rot);
+/** @internal */
EAPI void ecore_wl2_window_rotation_change_done_send(Ecore_Wl2_Window *window, int rot, int w, int h);
-
// TIZEN_ONLY
+/** @internal */
EAPI void ecore_wl2_window_rotation_geometry_set(Ecore_Wl2_Window *win, int rot, int x, int y, int w, int h);
+/** @internal */
EAPI void ecore_wl2_window_rotation_changed_callback_set(Ecore_Wl2_Window *win, void *data, void (*func)(Ecore_Wl2_Window *win, int rot, Eina_Bool resize, int w, int h, void *data));
//
/**
+ * @internal
+ *
* Get list of supported auxiliary window hints
*
* @param window
EAPI Eina_List *ecore_wl2_window_aux_hints_supported_get(Ecore_Wl2_Window *window);
/**
+ * @internal
+ *
* Add a supported auxiliary hint to a given window
*
* @param window
EAPI void ecore_wl2_window_aux_hint_add(Ecore_Wl2_Window *window, int id, const char *hint, const char *val);
/**
+ * @internal
+ *
* Change an auxiliary hint on a given window
*
* @param window
EAPI void ecore_wl2_window_aux_hint_change(Ecore_Wl2_Window *window, int id, const char *val);
/**
+ * @internal
+ *
* Delete an auxiliary hint on a given window
*
* @param window
EAPI void ecore_wl2_window_aux_hint_del(Ecore_Wl2_Window *window, int id);
/**
+ * @internal
+ *
* @brief Get the activated state of a window
*
* @param window The window to get activated state from
EAPI Eina_Bool ecore_wl2_window_activated_get(const Ecore_Wl2_Window *window);
/**
+ * @internal
+ *
* @brief Set the seat for a popup window to be used with grab
*
* @param window The window
EAPI void ecore_wl2_window_popup_input_set(Ecore_Wl2_Window *window, Ecore_Wl2_Input *input);
/**
+ * @internal
+ *
* @brief Get the seat for a popup window to be used with grab
*
* @param window The window
EAPI Ecore_Wl2_Input *ecore_wl2_window_popup_input_get(Ecore_Wl2_Window *window);
/**
+ * @internal
+ *
* Check if a window has a shell surface - without one it can't be visible.
*
* @param The window to check
EAPI Eina_Bool ecore_wl2_window_shell_surface_exists(Ecore_Wl2_Window *win);
// TIZEN_ONLY(171108) : get shell surface of a given window
+/** @internal */
EAPI struct zxdg_surface_v6 *ecore_wl2_window_shell_surface_get(Ecore_Wl2_Window *window);
//
/**
- * Get which display a given window is using
+ * @internal
*
- * @param window The window to get the display of
+ * Set the role of a given window
*
- * @return The Ecore_Wl2_Display that this window is using, or NULL otherwise
+ * @param window
+ * @param role
*
* @ingroup Ecore_Wl2_Window_Group
- * @since 1.17
+ * @since 1.20
*/
-EAPI Ecore_Wl2_Display *ecore_wl2_window_display_get(const Ecore_Wl2_Window *window);
+EAPI void ecore_wl2_window_role_set(Ecore_Wl2_Window *window, const char *role);
/**
- * Set if this window should ignore focus requests
+ * @internal
*
- * @param window The window to set ignore focus requests on
- * @param focus_skip EINA_TRUE if this window should skip focus requests, EINA_FALSE otherwise
+ * Get the role of a given window
+ *
+ * @param window The window to set the class role
+ *
+ * @return A string if found, or NULL otherwise
*
* @ingroup Ecore_Wl2_Window_Group
- * @since 1.20
+ * @since 1.24
*/
-EAPI void ecore_wl2_window_focus_skip_set(Ecore_Wl2_Window *window, Eina_Bool focus_skip);
+EAPI const char *ecore_wl2_window_role_get(Ecore_Wl2_Window *window);
/**
- * Get if this window ignores focus requests
+ * @internal
*
- * @param window The window to get the focus skip value from
+ * Set if a given window is in floating mode
*
- * @return EINA_TRUE if a window should skip focus requests, EINA_FALSE otherwise
+ * @param window The window to set floating mode on
+ * @param floating EINA_TRUE if this window should be in floating mode, EINA_FALSE otherwise
*
* @ingroup Ecore_Wl2_Window_Group
* @since 1.20
*/
-EAPI Eina_Bool ecore_wl2_window_focus_skip_get(Ecore_Wl2_Window *window);
+EAPI void ecore_wl2_window_floating_mode_set(Ecore_Wl2_Window *window, Eina_Bool floating);
/**
- * Set the role of a given window
+ * @internal
*
- * @param window
- * @param role
+ * Get if a given window is in floating mode
+ *
+ * @param window The window to get floating mode
+ *
+ * @return EINA_TRUE if floating, EINA_FALSE otherwise
*
* @ingroup Ecore_Wl2_Window_Group
* @since 1.20
*/
-EAPI void ecore_wl2_window_role_set(Ecore_Wl2_Window *window, const char *role);
+EAPI Eina_Bool ecore_wl2_window_floating_mode_get(Ecore_Wl2_Window *window);
/**
- * Get the role of a given window
+ * @internal
*
- * @param window The window to set the class role
+ * Finds a window by surface
*
- * @return A string if found, or NULL otherwise
+ * @param surface The surface to find the window of
*
* @ingroup Ecore_Wl2_Window_Group
* @since 1.24
*/
-EAPI const char *ecore_wl2_window_role_get(Ecore_Wl2_Window *window);
+EAPI Ecore_Wl2_Window *ecore_wl2_window_surface_find(struct wl_surface *surface);
+
+/*
+ * @internal
+ *
+ * Check if a wayland window's surface is in the pending state.
+ *
+ * A surface is pending if it's been commit but we haven't received a
+ * frame callback for it yet. This mean's we're not ready to draw yet.
+ *
+ * @param window The window whose surface we want to check
+ *
+ * @return whether the window's surface is pending or not.
+ *
+ * @since 1.21
+ */
+EAPI Eina_Bool ecore_wl2_window_pending_get(Ecore_Wl2_Window *window);
/**
- * Set if a given window is in floating mode
+ * @internal
*
- * @param window The window to set floating mode on
- * @param floating EINA_TRUE if this window should be in floating mode, EINA_FALSE otherwise
+ * Get if a given window is resizing
+ *
+ * @param window The window to check for resizing
+ *
+ * @return EINA_TRUE if resizing, EINA_FALSE otherwise
*
* @ingroup Ecore_Wl2_Window_Group
- * @since 1.20
+ * @since 1.21
*/
-EAPI void ecore_wl2_window_floating_mode_set(Ecore_Wl2_Window *window, Eina_Bool floating);
+EAPI Eina_Bool ecore_wl2_window_resizing_get(Ecore_Wl2_Window *window);
+
+/**
+ * @internal
+ *
+ * Latch window state at the start of an update
+ *
+ * When async render takes place we continue to dispatch wayland
+ * events from the main loop. We need to defer any changes to
+ * window state from those events until the update is complete.
+ *
+ * Events deferred during an update will automatically fire
+ * immediately after the caller calls ecore_wl2_window_commit.
+ *
+ * @param window The window whose state we want to latch
+ *
+ * @since 1.21
+ */
+EAPI void ecore_wl2_window_update_begin(Ecore_Wl2_Window *window);
+
+// TIZEN_ONLY(20171207): add functions to set client's custom cursors
+/** @internal */
+EAPI void ecore_wl2_window_pointer_set(Ecore_Wl2_Window *win, struct wl_surface *surface, int hot_x, int hot_y);
+/** @internal */
+EAPI void ecore_wl2_window_cursor_from_name_set(Ecore_Wl2_Window *win, const char *cursor_name);
+/** @internal */
+EAPI void ecore_wl2_window_cursor_default_restore(Ecore_Wl2_Window *win);
+//
+// TIZEN_ONLY(20150703) : support conformant
+/** @internal */
+EAPI void ecore_wl2_window_conformant_set(Ecore_Wl2_Window *win, unsigned int is_conformant);
+/** @internal */
+EAPI Eina_Bool ecore_wl2_window_conformant_get(Ecore_Wl2_Window *win);
+//
+
+// TIZEN_ONLY(20171108) : add functions for indicator
+/** @internal */
+EAPI void ecore_wl2_window_indicator_geometry_set(Ecore_Wl2_Window *win, int x, int y, int w, int h);
+/** @internal */
+EAPI Eina_Bool ecore_wl2_window_indicator_geometry_get(Ecore_Wl2_Window *win, int *x, int *y, int *w, int *h);
+/** @internal */
+EAPI void ecore_wl2_window_indicator_state_set(Ecore_Wl2_Window *win, Ecore_Wl2_Indicator_State state);
+/** @internal */
+EAPI Ecore_Wl2_Indicator_State ecore_wl2_window_indicator_state_get(Ecore_Wl2_Window *win);
+/** @internal */
+EAPI void ecore_wl2_window_indicator_opacity_set(Ecore_Wl2_Window *win, Ecore_Wl2_Indicator_Opacity_Mode mode);
+/** @internal */
+EAPI Ecore_Wl2_Indicator_Opacity_Mode ecore_wl2_window_indicator_opacity_get(Ecore_Wl2_Window *win);
+/** @internal */
+EAPI void ecore_wl2_indicator_visible_type_set(Ecore_Wl2_Window *win, Ecore_Wl2_Indicator_Visible_Type type);
+/** @internal */
+EAPI Ecore_Wl2_Indicator_Visible_Type ecore_wl2_indicator_visible_type_get(Ecore_Wl2_Window *win);
+//
+
+// TIZEN_ONLY(20171108) : add functions for clipboard
+/** @internal */
+EAPI void ecore_wl2_window_clipboard_geometry_set(Ecore_Wl2_Window *win, int x, int y, int w, int h);
+/** @internal */
+EAPI Eina_Bool ecore_wl2_window_clipboard_geometry_get(Ecore_Wl2_Window *win, int *x, int *y, int *w, int *h);
+/** @internal */
+EAPI void ecore_wl2_window_clipboard_state_set(Ecore_Wl2_Window *win, Ecore_Wl2_Clipboard_State state);
+/** @internal */
+EAPI Ecore_Wl2_Clipboard_State ecore_wl2_window_clipboard_state_get(Ecore_Wl2_Window *win);
+/** @internal */
+EAPI void ecore_wl2_clipboard_show(Ecore_Wl2_Window *win);
+/** @internal */
+EAPI void ecore_wl2_clipboard_hide(Ecore_Wl2_Window *win);
+/** @internal */
+EAPI Eina_Bool ecore_wl2_clipboard_data_only_set(Eina_Bool data_only);
+//
+
+// TIZEN_ONLY(20171108) : add functions for keyboard
+/** @internal */
+EAPI void ecore_wl2_window_keyboard_geometry_set(Ecore_Wl2_Window *win, int x, int y, int w, int h);
+/** @internal */
+EAPI Eina_Bool ecore_wl2_window_keyboard_geometry_get(Ecore_Wl2_Window *win, int *x, int *y, int *w, int *h);
+/** @internal */
+EAPI void ecore_wl2_window_keyboard_state_set(Ecore_Wl2_Window *win, Ecore_Wl2_Virtual_Keyboard_State state);
+/** @internal */
+EAPI Ecore_Wl2_Virtual_Keyboard_State ecore_wl2_window_keyboard_state_get(Ecore_Wl2_Window *win);
+//
+// TIZEN_ONLY(20171107): add ecore_wl2_window_input_get() EAPI
+/** @internal */
+EAPI Ecore_Wl2_Input *ecore_wl2_window_input_get(Ecore_Wl2_Window *win);
+//
+// TIZEN_ONLY(20171114): support a pointer warp
+/** @internal */
+EAPI Eina_Bool ecore_wl2_window_pointer_warp(Ecore_Wl2_Window *win, int x, int y);
+//
+//TIZEN_ONLY(20171115): support output transform
+/** @internal */
+EAPI Eina_Bool ecore_wl2_window_ignore_output_transform_get(Ecore_Wl2_Window *win);
+//
+//TIZEN_ONLY(20180810): support client demand move resize
+/** @internal */
+EAPI void ecore_wl2_window_sync_geometry_set(Ecore_Wl2_Window *window, uint32_t serial, int x, int y, int w, int h);
+//
/**
- * Get if a given window is in floating mode
- *
- * @param window The window to get floating mode
- *
- * @return EINA_TRUE if floating, EINA_FALSE otherwise
+ * @defgroup Ecore_Wl2_Input_Group Wayland Library Input Functions
+ * @ingroup Ecore_Wl2_Group
*
- * @ingroup Ecore_Wl2_Window_Group
- * @since 1.20
+ * Functions that deal with creating, destroying, or interacting with
+ * Wayland Input
*/
-EAPI Eina_Bool ecore_wl2_window_floating_mode_get(Ecore_Wl2_Window *window);
-
-//TIZEN_ONLY: ecore_wl2: add ecore_wl_window_video_has
-EAPI void ecore_wl2_window_video_has(Ecore_Wl2_Window *window, Eina_Bool has);
-//
/**
- * Finds a window by surface
+ * Gets default input of a given display
*
- * @param surface The surface to find the window of
+ * @param display The display
*
- * @ingroup Ecore_Wl2_Window_Group
+ * @ingroup Ecore_Wl2_Input_Group
* @since 1.24
*/
-EAPI Ecore_Wl2_Window *ecore_wl2_window_surface_find(struct wl_surface *surface);
+EAPI Ecore_Wl2_Input *ecore_wl2_input_default_input_get(const Ecore_Wl2_Display *ewd);
/**
- * @defgroup Ecore_Wl2_Input_Group Wayland Library Input Functions
- * @ingroup Ecore_Wl2_Group
+ * Retrieves the mouse position of the seat
*
- * Functions that deal with creating, destroying, or interacting with
- * Wayland Input
+ * @param input The seat
+ * @param x where to return the horizontal position. May be NULL. Returns 0 on error.
+ * @param y where to return the vertical position. May be NULL. Returns 0 on error.
+ * @return @c EINA_TRUE if coords were successfully retrieved
+ *
+ * @ingroup Ecore_Wl2_Input_Group
+ * @since 1.20
*/
+EAPI Eina_Bool ecore_wl2_input_pointer_xy_get(const Ecore_Wl2_Input *input, int *x, int *y);
/**
+ * @internal
+ *
* Get the wl_seat that an input is using
*
* @param input The Ecore_Wl2_Input to get the seat of
EAPI struct wl_seat *ecore_wl2_input_seat_get(Ecore_Wl2_Input *input);
/**
+ * @internal
+ *
* Get the seat capabilities for a given input.
*
* @param input The input
EAPI Ecore_Wl2_Seat_Capabilities ecore_wl2_input_seat_capabilities_get(Ecore_Wl2_Input *input);
/**
+ * @internal
+ *
* Get the wayland's seat id from an input.
*
* @param input The input
EAPI unsigned int ecore_wl2_input_seat_id_get(Ecore_Wl2_Input *input) EINA_WARN_UNUSED_RESULT;
/**
+ * @internal
+ *
* Get the display object of an input
*
* @param input The input
EAPI Ecore_Wl2_Display *ecore_wl2_input_display_get(const Ecore_Wl2_Input *input);
/**
+ * @internal
+ *
* Get the xkb_keymap object of an input
*
* @param input The input
EAPI struct xkb_keymap *ecore_wl2_input_keymap_get(const Ecore_Wl2_Input *input);
/**
+ * @internal
+ *
* Get the name of an input
*
* @param input The input
EAPI Eina_Stringshare *ecore_wl2_input_name_get(Ecore_Wl2_Input *input);
/**
+ * @internal
+ *
* Get the keyboard repeat rate and delay of an input
*
* @param input The input
EAPI Eina_Bool ecore_wl2_input_keyboard_repeat_get(const Ecore_Wl2_Input *input, double *rate, double *delay);
/**
+ * @internal
+ *
* Set the keyboard repeat rate and delay of an input
* @param input The input
* @param rate Pointer to store the repeat rate (in seconds)
EAPI Eina_Bool ecore_wl2_input_keyboard_repeat_set(Ecore_Wl2_Input *input, double rate, double delay);
/**
- * Retrieves the mouse position of the seat
- *
- * @param input The seat
- * @param x where to return the horizontal position. May be NULL. Returns 0 on error.
- * @param y where to return the vertical position. May be NULL. Returns 0 on error.
- * @return @c EINA_TRUE if coords were successfully retrieved
+ * @internal
*
- * @ingroup Ecore_Wl2_Input_Group
- * @since 1.20
- */
-EAPI Eina_Bool ecore_wl2_input_pointer_xy_get(const Ecore_Wl2_Input *input, int *x, int *y);
-
-/**
* Set a given wl_surface to use as the pointer on a seat
*
* @param input The seat to set this surface as the pointer on
EAPI void ecore_wl2_input_pointer_set(Ecore_Wl2_Input *input, struct wl_surface *surface, int hot_x, int hot_y);
/**
- * Set a specific cursor on a given seat
+ * @internal
+ *
+ * Set a specific cursor on a given input
*
* @brief This function will try to find a matching cursor inside the existing
* cursor theme and set the pointer for the specified seat to be
EAPI void ecore_wl2_input_cursor_from_name_set(Ecore_Wl2_Input *input, const char *cursor);
// TIZEN_ONLY(20171207): add functions to set client's custom cursors
+/** @internal */
EAPI void ecore_wl2_input_pointer_set(Ecore_Wl2_Input *input, struct wl_surface *surface, int hot_x, int hot_y);
+/** @internal */
EAPI struct wl_cursor *ecore_wl2_input_cursor_get(Ecore_Wl2_Input *input, const char *cursor_name);
+/** @internal */
EAPI void ecore_wl2_input_cursor_size_set(Ecore_Wl2_Input *input, const int size);
+/** @internal */
EAPI void ecore_wl2_input_cursor_theme_name_set(Ecore_Wl2_Input *input, const char *cursor_theme_name);
+/** @internal */
EAPI void ecore_wl2_input_cursor_default_restore(Ecore_Wl2_Input *input);
-
-EAPI void ecore_wl2_window_pointer_set(Ecore_Wl2_Window *win, struct wl_surface *surface, int hot_x, int hot_y);
-EAPI void ecore_wl2_window_cursor_from_name_set(Ecore_Wl2_Window *win, const char *cursor_name);
-EAPI void ecore_wl2_window_cursor_default_restore(Ecore_Wl2_Window *win);
//
-
/**
* @defgroup Ecore_Wl2_Dnd_Group Wayland Library Drag-n-Drop Functions
* @ingroup Ecore_Wl2_Group
*/
/**
+ * @internal
+ *
* Set the types which are supported by a possible drag and drop operation.
* This call initializes a data source and offeres the given mimetypes
*
EAPI void ecore_wl2_dnd_drag_types_set(Ecore_Wl2_Input *input, const char **types);
/**
+ * @internal
+ *
* Start a drag on the given input
*
* @param input the input to use
EAPI uint32_t ecore_wl2_dnd_drag_start(Ecore_Wl2_Input *input, Ecore_Wl2_Window *window, Ecore_Wl2_Window *drag_window);
/**
+ * @internal
+ *
* Call wl_data_source.set_actions on an existing source
*
* @param input the input to use
EAPI void ecore_wl2_dnd_set_actions(Ecore_Wl2_Input *input);
/**
+ * @internal
+ *
* End a drag started by a call to ecore_wl2_dnd_drag_start
*
* @param input the input object on which the drag was started
EAPI void ecore_wl2_dnd_drag_end(Ecore_Wl2_Input *input);
/**
+ * @internal
+ *
* Get the offer which is currently resposible for the clipboard
*
* @param input the input object to use
EAPI Ecore_Wl2_Offer* ecore_wl2_dnd_selection_get(Ecore_Wl2_Input *input);
/**
+ * @internal
+ *
* Set the types which are available from this client
* Later the event ECORE_WL2_EVENT_DATA_SOURCE_SEND is emitted,
* where the caller of this api must write the data (encoded in the given mimetype) to the fd
EAPI uint32_t ecore_wl2_dnd_selection_set(Ecore_Wl2_Input *input, const char **types);
/**
+ * @internal
+ *
* Clear the selection currently setted on this input.
*
* @param input the input to clear
*/
EAPI uint32_t ecore_wl2_dnd_selection_clear(Ecore_Wl2_Input *input);
-// TIZEN_ONLY(20150703) : support conformant
-EAPI void ecore_wl2_window_conformant_set(Ecore_Wl2_Window *win, unsigned int is_conformant);
-EAPI Eina_Bool ecore_wl2_window_conformant_get(Ecore_Wl2_Window *win);
-//
-
-// TIZEN_ONLY(20171108) : add functions for indicator
-EAPI void ecore_wl2_window_indicator_geometry_set(Ecore_Wl2_Window *win, int x, int y, int w, int h);
-EAPI Eina_Bool ecore_wl2_window_indicator_geometry_get(Ecore_Wl2_Window *win, int *x, int *y, int *w, int *h);
-EAPI void ecore_wl2_window_indicator_state_set(Ecore_Wl2_Window *win, Ecore_Wl2_Indicator_State state);
-EAPI Ecore_Wl2_Indicator_State ecore_wl2_window_indicator_state_get(Ecore_Wl2_Window *win);
-EAPI void ecore_wl2_window_indicator_opacity_set(Ecore_Wl2_Window *win, Ecore_Wl2_Indicator_Opacity_Mode mode);
-EAPI Ecore_Wl2_Indicator_Opacity_Mode ecore_wl2_window_indicator_opacity_get(Ecore_Wl2_Window *win);
-EAPI void ecore_wl2_indicator_visible_type_set(Ecore_Wl2_Window *win, Ecore_Wl2_Indicator_Visible_Type type);
-EAPI Ecore_Wl2_Indicator_Visible_Type ecore_wl2_indicator_visible_type_get(Ecore_Wl2_Window *win);
-//
-
-// TIZEN_ONLY(20171108) : add functions for clipboard
-EAPI void ecore_wl2_window_clipboard_geometry_set(Ecore_Wl2_Window *win, int x, int y, int w, int h);
-EAPI Eina_Bool ecore_wl2_window_clipboard_geometry_get(Ecore_Wl2_Window *win, int *x, int *y, int *w, int *h);
-EAPI void ecore_wl2_window_clipboard_state_set(Ecore_Wl2_Window *win, Ecore_Wl2_Clipboard_State state);
-EAPI Ecore_Wl2_Clipboard_State ecore_wl2_window_clipboard_state_get(Ecore_Wl2_Window *win);
-EAPI void ecore_wl2_clipboard_show(Ecore_Wl2_Window *win);
-EAPI void ecore_wl2_clipboard_hide(Ecore_Wl2_Window *win);
-EAPI Eina_Bool ecore_wl2_clipboard_data_only_set(Eina_Bool data_only);
-//
-
-// TIZEN_ONLY(20171108) : add functions for keyboard
-EAPI void ecore_wl2_window_keyboard_geometry_set(Ecore_Wl2_Window *win, int x, int y, int w, int h);
-EAPI Eina_Bool ecore_wl2_window_keyboard_geometry_get(Ecore_Wl2_Window *win, int *x, int *y, int *w, int *h);
-EAPI void ecore_wl2_window_keyboard_state_set(Ecore_Wl2_Window *win, Ecore_Wl2_Virtual_Keyboard_State state);
-EAPI Ecore_Wl2_Virtual_Keyboard_State ecore_wl2_window_keyboard_state_get(Ecore_Wl2_Window *win);
-//
-
-/**
- * Gets default input of a given display
- *
- * @param display The display
- *
- * @ingroup Ecore_Wl2_Input_Group
- * @since 1.24
- */
-EAPI Ecore_Wl2_Input *ecore_wl2_input_default_input_get(const Ecore_Wl2_Display *ewd);
-
/**
* @defgroup Ecore_Wl2_Output_Group Wayland Library Output Functions
* @ingroup Ecore_Wl2_Group
*/
/**
+ * @internal
+ *
* Return the DPI of a given output
*
* This is a simplistic call to get DPI. It does not account for differing
EAPI int ecore_wl2_output_dpi_get(Ecore_Wl2_Output *output);
/**
+ * @internal
+ *
* Get the current transform of a given output
*
* @param output The output to get the transform of
EAPI int ecore_wl2_output_transform_get(Ecore_Wl2_Output *output);
/**
- * Return the version of the display's compositor object
+ * @internal
*
- * @param disp the display to get the compositor object version from
- *
- * @return the version of the display's compositor object
- *
- * @ingroup Ecore_Wl2_Display_Group
- * @since 1.17
- */
-EAPI int ecore_wl2_display_compositor_version_get(Ecore_Wl2_Display *disp);
-
-/**
* Disable session recovery for any further connections. Must be called
* before connecting. This is irreversible and not intended for general
* use.
*/
EAPI void ecore_wl2_session_recovery_disable(void);
-/**
- * Commit the surface of a wayland window.
- *
- * If flush is set this generates a wl_surface_commit(), otherwise it is
- * expected that some other call in the very near future (such as
- * eglSwapBuffers) will cause an implicit flush.
- *
- * A surface that has been commit will be in the "pending" state until
- * the compositor tells us it's time to draw again via a frame callback.
- *
- * @param window The window whose surface we want to commit
- * @param flush EINA_TRUE if we need to flush immediately.
- *
- * @since 1.21
- */
-EAPI void ecore_wl2_window_commit(Ecore_Wl2_Window *window, Eina_Bool flush);
-
-/**
- * Check if a wayland window's surface is in the pending state.
- *
- * A surface is pending if it's been commit but we haven't received a
- * frame callback for it yet. This mean's we're not ready to draw yet.
- *
- * @param window The window whose surface we want to check
- *
- * @return whether the window's surface is pending or not.
- *
- * @since 1.21
- */
-EAPI Eina_Bool ecore_wl2_window_pending_get(Ecore_Wl2_Window *window);
-
-/**
- * Add a callback that fires when the window's surface_frame callback fires
- *
- * @param window The window to add a callback on
- * @param cb The callback
- * @param data User data to provide to the callback handler
- *
- * @since 1.21
- */
-EAPI Ecore_Wl2_Frame_Cb_Handle *ecore_wl2_window_frame_callback_add(Ecore_Wl2_Window *window, Ecore_Wl2_Frame_Cb cb, void *data);
-
-/**
- * delete a callback that fires when the window's surface_frame callback fires
- *
- * @param window The window to add a callback on
- * @param cb The callback handle
- *
- * @since 1.21
- */
-EAPI void ecore_wl2_window_frame_callback_del(Ecore_Wl2_Frame_Cb_Handle *handle);
-
-/**
- * Push buffered wayland protocol to compositor
- *
- * Wayland protocol is only actually sent when a flush occurs,
- * so the display should be flushed at appropriate times, such
- * as after a commit.
- *
- * @param display The display to flush
- *
- * @since 1.21
- */
-EAPI void ecore_wl2_display_flush(Ecore_Wl2_Display *display);
-
-/**
- * Get if a given window is resizing
- *
- * @param window The window to check for resizing
- *
- * @return EINA_TRUE if resizing, EINA_FALSE otherwise
- *
- * @ingroup Ecore_Wl2_Window_Group
- * @since 1.21
- */
-EAPI Eina_Bool ecore_wl2_window_resizing_get(Ecore_Wl2_Window *window);
-
-/**
- * Latch window state at the start of an update
- *
- * When async render takes place we continue to dispatch wayland
- * events from the main loop. We need to defer any changes to
- * window state from those events until the update is complete.
- *
- * Events deferred during an update will automatically fire
- * immediately after the caller calls ecore_wl2_window_commit.
- *
- * @param window The window whose state we want to latch
- *
- * @since 1.21
- */
-EAPI void ecore_wl2_window_update_begin(Ecore_Wl2_Window *window);
-
/* TODO: doxygen if we are keeping any of the below functions public */
-
-
+/** @internal */
EAPI Ecore_Wl2_Surface *ecore_wl2_surface_create(Ecore_Wl2_Window *win, Eina_Bool alpha);
-// TIZEN_ONLY(20171107): support a tizen_keyrouter interface
-EAPI void ecore_wl2_display_sync(Ecore_Wl2_Display *display);
-EAPI Eina_Bool ecore_wl2_window_keygrab_set(Ecore_Wl2_Window *win, const char *key, int mod EINA_UNUSED, int not_mod EINA_UNUSED, int priority EINA_UNUSED, Ecore_Wl2_Window_Keygrab_Mode grab_mode);
-EAPI Eina_Bool ecore_wl2_window_keygrab_unset(Ecore_Wl2_Window *win, const char *key, int mod EINA_UNUSED, int any_mod EINA_UNUSED);
-//
-EAPI Eina_List *ecore_wl2_window_keygrab_list_set(Ecore_Wl2_Window *win, Eina_List *infos);
-EAPI Eina_List *ecore_wl2_window_keygrab_list_unset(Ecore_Wl2_Window *win, Eina_List *infos);
-
-// TIZEN_ONLY(20171107): add ecore_wl2_window_input_get() EAPI
-EAPI Ecore_Wl2_Input *ecore_wl2_window_input_get(Ecore_Wl2_Window *win);
-//
-// TIZEN_ONLY(20171114): support a pointer warp
-EAPI Eina_Bool ecore_wl2_window_pointer_warp(Ecore_Wl2_Window *win, int x, int y);
-//
-
//TIZEN_ONLY(20171108): add a new API to ecore_wl2_sync
+/** @internal */
EAPI void ecore_wl2_sync(void);
//
-//TIZEN_ONLY(20171115): support output transform
-EAPI Eina_Bool ecore_wl2_window_ignore_output_transform_get(Ecore_Wl2_Window *win);
-//
-
-//TIZEN_ONLY(20180810): support client demand move resize
-EAPI void
-ecore_wl2_window_sync_geometry_set(Ecore_Wl2_Window *window, uint32_t serial, int x, int y, int w, int h);
-//
-
-// TIZEN_ONLY(20190807): Support for wl_egl interface
-EAPI Ecore_Wl2_Egl_Window *ecore_wl2_egl_window_create(Ecore_Wl2_Window *window, int w, int h);
-EAPI void ecore_wl2_egl_window_destroy(Ecore_Wl2_Egl_Window *egl_win);
-EAPI void *ecore_wl2_egl_window_native_get(Ecore_Wl2_Egl_Window *egl_win);
-EAPI void ecore_wl2_egl_window_resize_with_rotation(Ecore_Wl2_Egl_Window *egl_win, int dx, int dy, int w, int h, int rotation);
-//
-
-# endif
-
# undef EAPI
# define EAPI