2015-08-18 06:50:28 -07:00
|
|
|
|
#ifndef _ECORE_WL2_H_
|
|
|
|
|
# define _ECORE_WL2_H_
|
|
|
|
|
|
|
|
|
|
# include <Eina.h>
|
|
|
|
|
# include <Ecore.h>
|
|
|
|
|
# include <wayland-client.h>
|
2016-10-25 07:47:15 -07:00
|
|
|
|
# include <wayland-cursor.h>
|
2015-08-18 06:50:28 -07:00
|
|
|
|
# include <xkbcommon/xkbcommon.h>
|
|
|
|
|
|
2015-08-18 08:56:07 -07:00
|
|
|
|
# define WL_HIDE_DEPRECATED
|
|
|
|
|
# include <wayland-server.h>
|
|
|
|
|
|
2015-08-18 06:50:28 -07:00
|
|
|
|
# ifdef EAPI
|
|
|
|
|
# undef EAPI
|
|
|
|
|
# endif
|
|
|
|
|
|
|
|
|
|
# ifdef __GNUC__
|
|
|
|
|
# if __GNUC__ >= 4
|
|
|
|
|
# define EAPI __attribute__ ((visibility("default")))
|
|
|
|
|
# else
|
|
|
|
|
# define EAPI
|
|
|
|
|
# endif
|
|
|
|
|
# else
|
|
|
|
|
# define EAPI
|
|
|
|
|
# endif
|
|
|
|
|
|
|
|
|
|
/* # ifdef __cplusplus */
|
|
|
|
|
/* extern "C" { */
|
|
|
|
|
/* # endif */
|
|
|
|
|
|
2016-01-06 09:16:33 -08:00
|
|
|
|
# ifdef EFL_BETA_API_SUPPORT
|
|
|
|
|
|
2015-10-01 09:22:32 -07:00
|
|
|
|
typedef struct _Ecore_Wl2_Subsurface Ecore_Wl2_Subsurface;
|
2015-10-01 08:43:35 -07:00
|
|
|
|
|
2016-01-06 09:16:33 -08:00
|
|
|
|
# ifndef _ECORE_WL2_WINDOW_PREDEF
|
2015-08-20 09:39:39 -07:00
|
|
|
|
typedef struct _Ecore_Wl2_Window Ecore_Wl2_Window;
|
2016-01-06 09:16:33 -08:00
|
|
|
|
# endif
|
2015-08-18 06:50:28 -07:00
|
|
|
|
|
2015-08-18 10:50:02 -07:00
|
|
|
|
typedef struct _Ecore_Wl2_Display Ecore_Wl2_Display;
|
2015-09-10 07:37:40 -07:00
|
|
|
|
typedef struct _Ecore_Wl2_Output Ecore_Wl2_Output;
|
2015-09-10 08:03:23 -07:00
|
|
|
|
typedef struct _Ecore_Wl2_Input Ecore_Wl2_Input;
|
2015-11-22 13:13:36 -08:00
|
|
|
|
typedef struct _Ecore_Wl2_Seat Ecore_Wl2_Seat;
|
|
|
|
|
typedef struct _Ecore_Wl2_Pointer Ecore_Wl2_Pointer;
|
|
|
|
|
typedef struct _Ecore_Wl2_Keyboard Ecore_Wl2_Keyboard;
|
|
|
|
|
typedef struct _Ecore_Wl2_Touch Ecore_Wl2_Touch;
|
2016-09-22 00:13:48 -07:00
|
|
|
|
typedef struct _Ecore_Wl2_Offer Ecore_Wl2_Offer;
|
2017-01-11 07:20:49 -08:00
|
|
|
|
|
2016-04-21 10:55:45 -07:00
|
|
|
|
/* matches protocol values */
|
|
|
|
|
typedef enum
|
|
|
|
|
{
|
|
|
|
|
ECORE_WL2_DRAG_ACTION_NONE = 0,
|
|
|
|
|
ECORE_WL2_DRAG_ACTION_COPY = 1,
|
|
|
|
|
ECORE_WL2_DRAG_ACTION_MOVE = 2,
|
|
|
|
|
ECORE_WL2_DRAG_ACTION_ASK = 4,
|
2016-09-22 00:13:48 -07:00
|
|
|
|
ECORE_WL2_DRAG_ACTION_LAST = 5,
|
2016-04-21 10:55:45 -07:00
|
|
|
|
} Ecore_Wl2_Drag_Action;
|
|
|
|
|
|
Ecore Evas Wayland: Create the devices during Ecore_Evas setup.
Summary:
When launching an Elementary App using Wayland the elm_config will
automatically connect to the Wayland's display server and all events
regarding seats are lost, since by the time that Ecore_Evas is created
the global events were already dispatched. To fix this problem,
everytime an Ecore_Evas is created, the code must check if there
are any seat capabilities available, if so, the devices will be created.
Reviewers: bdilly, barbieri, cedric, jpeg
Subscribers: devilhorns, cedric, jpeg
Differential Revision: https://phab.enlightenment.org/D4390
2016-11-13 18:03:56 -08:00
|
|
|
|
typedef enum
|
|
|
|
|
{
|
2016-11-16 11:04:02 -08:00
|
|
|
|
ECORE_WL2_SEAT_CAPABILITIES_NONE = 0,
|
|
|
|
|
ECORE_WL2_SEAT_CAPABILITIES_POINTER = 1,
|
|
|
|
|
ECORE_WL2_SEAT_CAPABILITIES_KEYBOARD = 2,
|
|
|
|
|
ECORE_WL2_SEAT_CAPABILITIES_TOUCH = 4
|
Ecore Evas Wayland: Create the devices during Ecore_Evas setup.
Summary:
When launching an Elementary App using Wayland the elm_config will
automatically connect to the Wayland's display server and all events
regarding seats are lost, since by the time that Ecore_Evas is created
the global events were already dispatched. To fix this problem,
everytime an Ecore_Evas is created, the code must check if there
are any seat capabilities available, if so, the devices will be created.
Reviewers: bdilly, barbieri, cedric, jpeg
Subscribers: devilhorns, cedric, jpeg
Differential Revision: https://phab.enlightenment.org/D4390
2016-11-13 18:03:56 -08:00
|
|
|
|
} Ecore_Wl2_Seat_Capabilities;
|
|
|
|
|
|
2016-05-05 07:45:59 -07:00
|
|
|
|
struct _Ecore_Wl2_Event_Connection
|
|
|
|
|
{
|
|
|
|
|
Ecore_Wl2_Display *display;
|
|
|
|
|
};
|
2017-01-11 07:20:49 -08:00
|
|
|
|
|
2016-05-05 07:45:59 -07:00
|
|
|
|
typedef struct _Ecore_Wl2_Event_Connection Ecore_Wl2_Event_Connect;
|
|
|
|
|
typedef struct _Ecore_Wl2_Event_Connection Ecore_Wl2_Event_Disconnect;
|
|
|
|
|
|
2015-09-25 07:30:06 -07:00
|
|
|
|
typedef struct _Ecore_Wl2_Global
|
|
|
|
|
{
|
|
|
|
|
Eina_Stringshare *interface;
|
|
|
|
|
unsigned int id, version;
|
2017-05-12 09:08:32 -07:00
|
|
|
|
Ecore_Wl2_Display *display;
|
2015-09-25 07:30:06 -07:00
|
|
|
|
} Ecore_Wl2_Global;
|
|
|
|
|
|
|
|
|
|
typedef struct _Ecore_Wl2_Event_Global
|
|
|
|
|
{
|
2015-09-30 09:43:41 -07:00
|
|
|
|
Ecore_Wl2_Display *display;
|
2015-09-25 07:30:06 -07:00
|
|
|
|
Eina_Stringshare *interface;
|
|
|
|
|
unsigned int id, version;
|
|
|
|
|
} Ecore_Wl2_Event_Global;
|
|
|
|
|
|
2015-09-23 09:39:18 -07:00
|
|
|
|
typedef struct _Ecore_Wl2_Event_Focus_In
|
|
|
|
|
{
|
|
|
|
|
unsigned int window;
|
|
|
|
|
unsigned int timestamp;
|
2016-11-03 07:04:34 -07:00
|
|
|
|
Eo *dev; //The seat device
|
2017-05-12 09:08:32 -07:00
|
|
|
|
Ecore_Wl2_Display *display;
|
2015-09-23 09:39:18 -07:00
|
|
|
|
} Ecore_Wl2_Event_Focus_In;
|
|
|
|
|
|
|
|
|
|
typedef struct _Ecore_Wl2_Event_Focus_Out
|
|
|
|
|
{
|
|
|
|
|
unsigned int window;
|
|
|
|
|
unsigned int timestamp;
|
2016-11-03 07:04:34 -07:00
|
|
|
|
Eo *dev; //The seat device
|
2017-05-12 09:08:32 -07:00
|
|
|
|
Ecore_Wl2_Display *display;
|
2015-09-23 09:39:18 -07:00
|
|
|
|
} Ecore_Wl2_Event_Focus_Out;
|
|
|
|
|
|
2015-09-25 07:30:06 -07:00
|
|
|
|
typedef struct _Ecore_Wl2_Event_Dnd_Enter
|
2015-08-18 12:05:05 -07:00
|
|
|
|
{
|
2016-09-22 00:13:48 -07:00
|
|
|
|
unsigned int win, source;
|
|
|
|
|
Ecore_Wl2_Offer *offer;
|
|
|
|
|
int x, y;
|
2017-05-12 09:08:32 -07:00
|
|
|
|
unsigned int seat;
|
2017-05-12 09:08:32 -07:00
|
|
|
|
Ecore_Wl2_Display *display;
|
2015-09-25 07:30:06 -07:00
|
|
|
|
} Ecore_Wl2_Event_Dnd_Enter;
|
2015-08-18 12:05:05 -07:00
|
|
|
|
|
2015-09-25 07:37:06 -07:00
|
|
|
|
typedef struct _Ecore_Wl2_Event_Dnd_Leave
|
|
|
|
|
{
|
|
|
|
|
unsigned int win, source;
|
2016-09-22 00:13:48 -07:00
|
|
|
|
Ecore_Wl2_Offer *offer;
|
2017-05-12 09:08:32 -07:00
|
|
|
|
unsigned int seat;
|
2017-05-12 09:08:32 -07:00
|
|
|
|
Ecore_Wl2_Display *display;
|
2015-09-25 07:37:06 -07:00
|
|
|
|
} Ecore_Wl2_Event_Dnd_Leave;
|
|
|
|
|
|
2015-09-25 07:41:08 -07:00
|
|
|
|
typedef struct _Ecore_Wl2_Event_Dnd_Motion
|
|
|
|
|
{
|
2016-09-22 00:13:48 -07:00
|
|
|
|
unsigned int win, source;
|
|
|
|
|
Ecore_Wl2_Offer *offer;
|
2015-09-25 07:41:08 -07:00
|
|
|
|
int x, y;
|
2017-05-12 09:08:32 -07:00
|
|
|
|
unsigned int seat;
|
2017-05-12 09:08:32 -07:00
|
|
|
|
Ecore_Wl2_Display *display;
|
2015-09-25 07:41:08 -07:00
|
|
|
|
} Ecore_Wl2_Event_Dnd_Motion;
|
|
|
|
|
|
2015-09-25 07:47:46 -07:00
|
|
|
|
typedef struct _Ecore_Wl2_Event_Dnd_Drop
|
|
|
|
|
{
|
|
|
|
|
unsigned int win, source;
|
|
|
|
|
int x, y;
|
2016-09-22 00:13:48 -07:00
|
|
|
|
Ecore_Wl2_Offer *offer;
|
2017-05-12 09:08:32 -07:00
|
|
|
|
unsigned int seat;
|
2017-05-12 09:08:32 -07:00
|
|
|
|
Ecore_Wl2_Display *display;
|
2015-09-25 07:47:46 -07:00
|
|
|
|
} Ecore_Wl2_Event_Dnd_Drop;
|
|
|
|
|
|
2015-09-29 06:56:53 -07:00
|
|
|
|
typedef struct _Ecore_Wl2_Event_Dnd_End
|
|
|
|
|
{
|
|
|
|
|
unsigned int win, source;
|
2017-05-12 09:08:32 -07:00
|
|
|
|
unsigned int seat;
|
2017-05-12 09:08:32 -07:00
|
|
|
|
Ecore_Wl2_Display *display;
|
2015-09-29 06:56:53 -07:00
|
|
|
|
} Ecore_Wl2_Event_Dnd_End;
|
|
|
|
|
|
2016-04-21 10:55:45 -07:00
|
|
|
|
struct _Ecore_Wl2_Event_Data_Source_Event
|
2015-09-29 07:06:50 -07:00
|
|
|
|
{
|
|
|
|
|
unsigned int win, source;
|
2016-04-21 10:55:45 -07:00
|
|
|
|
Ecore_Wl2_Drag_Action action;
|
2017-05-12 09:08:32 -07:00
|
|
|
|
unsigned int seat;
|
2017-05-12 09:08:32 -07:00
|
|
|
|
uint32_t serial;
|
2017-05-12 09:08:32 -07:00
|
|
|
|
Ecore_Wl2_Display *display;
|
2016-04-21 10:55:45 -07:00
|
|
|
|
};
|
|
|
|
|
|
2017-05-12 09:08:32 -07:00
|
|
|
|
typedef struct Ecore_Wl2_Event_Data_Source_End
|
|
|
|
|
{
|
|
|
|
|
unsigned int win, source;
|
|
|
|
|
Ecore_Wl2_Drag_Action action;
|
|
|
|
|
unsigned int seat;
|
|
|
|
|
uint32_t serial;
|
|
|
|
|
Ecore_Wl2_Display *display;
|
|
|
|
|
Eina_Bool cancelled;
|
|
|
|
|
} Ecore_Wl2_Event_Data_Source_End;
|
2016-04-21 10:55:45 -07:00
|
|
|
|
typedef struct _Ecore_Wl2_Event_Data_Source_Event Ecore_Wl2_Event_Data_Source_Drop;
|
|
|
|
|
typedef struct _Ecore_Wl2_Event_Data_Source_Event Ecore_Wl2_Event_Data_Source_Action;
|
2015-09-29 07:06:50 -07:00
|
|
|
|
|
|
|
|
|
typedef struct _Ecore_Wl2_Event_Data_Source_Target
|
|
|
|
|
{
|
|
|
|
|
char *type;
|
2017-05-12 09:08:32 -07:00
|
|
|
|
unsigned int seat;
|
2017-05-12 09:08:32 -07:00
|
|
|
|
Ecore_Wl2_Display *display;
|
2015-09-29 07:06:50 -07:00
|
|
|
|
} Ecore_Wl2_Event_Data_Source_Target;
|
|
|
|
|
|
|
|
|
|
typedef struct _Ecore_Wl2_Event_Data_Source_Send
|
|
|
|
|
{
|
|
|
|
|
char *type;
|
|
|
|
|
int fd;
|
2017-05-12 09:08:32 -07:00
|
|
|
|
unsigned int seat;
|
2017-05-12 09:08:32 -07:00
|
|
|
|
uint32_t serial;
|
2017-05-12 09:08:32 -07:00
|
|
|
|
Ecore_Wl2_Display *display;
|
2015-09-29 07:06:50 -07:00
|
|
|
|
} Ecore_Wl2_Event_Data_Source_Send;
|
|
|
|
|
|
2017-05-12 09:08:32 -07:00
|
|
|
|
typedef struct Ecore_Wl2_Event_Seat_Selection
|
|
|
|
|
{
|
|
|
|
|
unsigned int seat;
|
|
|
|
|
Ecore_Wl2_Display *display;
|
|
|
|
|
} Ecore_Wl2_Event_Seat_Selection;
|
|
|
|
|
|
2016-10-04 11:19:51 -07:00
|
|
|
|
typedef struct _Ecore_Wl2_Event_Seat_Name
|
|
|
|
|
{
|
|
|
|
|
Eina_Stringshare *name;
|
|
|
|
|
unsigned int id;
|
2017-05-12 09:08:32 -07:00
|
|
|
|
Ecore_Wl2_Display *display;
|
2016-10-04 11:19:51 -07:00
|
|
|
|
} Ecore_Wl2_Event_Seat_Name;
|
|
|
|
|
|
2016-10-05 06:36:19 -07:00
|
|
|
|
typedef struct _Ecore_Wl2_Event_Seat_Capabilities
|
|
|
|
|
{
|
|
|
|
|
unsigned int id;
|
|
|
|
|
Eina_Bool pointer_enabled : 1;
|
|
|
|
|
Eina_Bool keyboard_enabled : 1;
|
|
|
|
|
Eina_Bool touch_enabled : 1;
|
2017-05-12 09:08:32 -07:00
|
|
|
|
Ecore_Wl2_Display *display;
|
2016-10-05 06:36:19 -07:00
|
|
|
|
} Ecore_Wl2_Event_Seat_Capabilities;
|
|
|
|
|
|
2016-10-06 13:43:12 -07:00
|
|
|
|
typedef enum
|
|
|
|
|
{
|
|
|
|
|
ECORE_WL2_DEVICE_TYPE_SEAT,
|
|
|
|
|
ECORE_WL2_DEVICE_TYPE_POINTER,
|
|
|
|
|
ECORE_WL2_DEVICE_TYPE_KEYBOARD,
|
|
|
|
|
ECORE_WL2_DEVICE_TYPE_TOUCH
|
|
|
|
|
} Ecore_Wl2_Device_Type;
|
|
|
|
|
|
|
|
|
|
typedef struct _Ecore_Wl2_Event_Device
|
|
|
|
|
{
|
|
|
|
|
Eo *dev;
|
|
|
|
|
int window_id;
|
|
|
|
|
unsigned int seat_id;
|
|
|
|
|
Ecore_Wl2_Device_Type type;
|
|
|
|
|
} Ecore_Wl2_Event_Device;
|
|
|
|
|
|
2016-05-03 03:42:31 -07:00
|
|
|
|
typedef enum
|
|
|
|
|
{
|
|
|
|
|
ECORE_WL2_SELECTION_CNP,
|
|
|
|
|
ECORE_WL2_SELECTION_DND
|
|
|
|
|
} Ecore_Wl2_Selection_Type;
|
|
|
|
|
|
2016-04-07 11:09:51 -07:00
|
|
|
|
typedef enum
|
|
|
|
|
{
|
|
|
|
|
ECORE_WL2_WINDOW_STATE_NONE = 0,
|
|
|
|
|
ECORE_WL2_WINDOW_STATE_FULLSCREEN = (1 << 0),
|
|
|
|
|
ECORE_WL2_WINDOW_STATE_MAXIMIZED = (1 << 1),
|
|
|
|
|
} Ecore_Wl2_Window_States;
|
|
|
|
|
|
2015-09-30 09:03:07 -07:00
|
|
|
|
typedef struct _Ecore_Wl2_Event_Window_Configure
|
|
|
|
|
{
|
|
|
|
|
unsigned int win, event_win, edges;
|
2016-04-07 11:09:51 -07:00
|
|
|
|
unsigned int w, h;
|
|
|
|
|
unsigned int states;
|
2015-09-30 09:03:07 -07:00
|
|
|
|
} Ecore_Wl2_Event_Window_Configure;
|
|
|
|
|
|
2017-01-11 09:22:01 -08:00
|
|
|
|
typedef struct _Ecore_Wl2_Event_Window_Configure_Complete
|
|
|
|
|
{
|
|
|
|
|
unsigned int win;
|
|
|
|
|
} Ecore_Wl2_Event_Window_Configure_Complete;
|
|
|
|
|
|
2017-05-12 09:08:32 -07:00
|
|
|
|
typedef struct _Ecore_Wl2_Event_Input_Keymap_Changed
|
|
|
|
|
{
|
|
|
|
|
unsigned int id;
|
|
|
|
|
Ecore_Wl2_Display *display;
|
|
|
|
|
} Ecore_Wl2_Event_Seat_Keymap_Changed;
|
|
|
|
|
|
|
|
|
|
typedef struct Ecore_Wl2_Event_Seat_Keyboard_Repeat_Changed
|
|
|
|
|
{
|
|
|
|
|
unsigned int id;
|
|
|
|
|
Ecore_Wl2_Display *display;
|
|
|
|
|
} Ecore_Wl2_Event_Seat_Keyboard_Repeat_Changed;
|
|
|
|
|
|
2015-12-11 08:24:32 -08:00
|
|
|
|
typedef struct _Ecore_Wl2_Event_Sync_Done
|
|
|
|
|
{
|
|
|
|
|
Ecore_Wl2_Display *display;
|
|
|
|
|
} Ecore_Wl2_Event_Sync_Done;
|
|
|
|
|
|
2017-01-11 07:20:49 -08:00
|
|
|
|
typedef struct _Ecore_Wl2_Event_Offer_Data_Ready
|
|
|
|
|
{
|
2016-09-22 00:13:48 -07:00
|
|
|
|
Ecore_Wl2_Offer *offer;
|
|
|
|
|
char *data;
|
|
|
|
|
int len;
|
2016-09-26 02:41:12 -07:00
|
|
|
|
const char *mimetype;
|
2017-05-12 09:08:32 -07:00
|
|
|
|
unsigned int seat;
|
2017-05-12 09:08:32 -07:00
|
|
|
|
Ecore_Wl2_Display *display;
|
2016-09-22 00:13:48 -07:00
|
|
|
|
} Ecore_Wl2_Event_Offer_Data_Ready;
|
|
|
|
|
|
2017-06-07 07:33:54 -07:00
|
|
|
|
typedef struct _Ecore_Wl2_Event_Output_Transform
|
|
|
|
|
{
|
|
|
|
|
Ecore_Wl2_Output *output;
|
|
|
|
|
int transform, old_transform;
|
|
|
|
|
} Ecore_Wl2_Event_Output_Transform;
|
|
|
|
|
|
2015-08-20 09:54:27 -07:00
|
|
|
|
typedef enum _Ecore_Wl2_Window_Type
|
|
|
|
|
{
|
|
|
|
|
ECORE_WL2_WINDOW_TYPE_NONE,
|
|
|
|
|
ECORE_WL2_WINDOW_TYPE_TOPLEVEL,
|
|
|
|
|
ECORE_WL2_WINDOW_TYPE_MENU,
|
|
|
|
|
ECORE_WL2_WINDOW_TYPE_DND,
|
2015-09-30 09:44:40 -07:00
|
|
|
|
ECORE_WL2_WINDOW_TYPE_CUSTOM,
|
|
|
|
|
ECORE_WL2_WINDOW_TYPE_LAST
|
2015-08-20 09:54:27 -07:00
|
|
|
|
} Ecore_Wl2_Window_Type;
|
|
|
|
|
|
2015-11-22 13:13:36 -08:00
|
|
|
|
typedef void (*Ecore_Wl2_Bind_Cb)(struct wl_client *client, void *data, uint32_t version, uint32_t id);
|
|
|
|
|
typedef void (*Ecore_Wl2_Unbind_Cb)(struct wl_resource *resource);
|
|
|
|
|
|
2016-05-05 07:45:59 -07:00
|
|
|
|
EAPI extern int ECORE_WL2_EVENT_DISCONNECT; /** @since 1.18 */
|
|
|
|
|
EAPI extern int ECORE_WL2_EVENT_CONNECT; /** @since 1.18 */
|
2016-01-06 06:08:13 -08:00
|
|
|
|
EAPI extern int ECORE_WL2_EVENT_GLOBAL_ADDED; /** @since 1.17 */
|
|
|
|
|
EAPI extern int ECORE_WL2_EVENT_GLOBAL_REMOVED; /** @since 1.17 */
|
|
|
|
|
EAPI extern int ECORE_WL2_EVENT_FOCUS_IN; /** @since 1.17 */
|
|
|
|
|
EAPI extern int ECORE_WL2_EVENT_FOCUS_OUT; /** @since 1.17 */
|
|
|
|
|
EAPI extern int ECORE_WL2_EVENT_DND_ENTER; /** @since 1.17 */
|
|
|
|
|
EAPI extern int ECORE_WL2_EVENT_DND_LEAVE; /** @since 1.17 */
|
|
|
|
|
EAPI extern int ECORE_WL2_EVENT_DND_MOTION; /** @since 1.17 */
|
|
|
|
|
EAPI extern int ECORE_WL2_EVENT_DND_DROP; /** @since 1.17 */
|
|
|
|
|
EAPI extern int ECORE_WL2_EVENT_DND_END; /** @since 1.17 */
|
2016-04-21 10:55:45 -07:00
|
|
|
|
EAPI extern int ECORE_WL2_EVENT_DATA_SOURCE_END; /** @since 1.18 */
|
|
|
|
|
EAPI extern int ECORE_WL2_EVENT_DATA_SOURCE_DROP; /** @since 1.18 */
|
|
|
|
|
EAPI extern int ECORE_WL2_EVENT_DATA_SOURCE_ACTION; /** @since 1.18 */
|
2016-01-06 06:08:13 -08:00
|
|
|
|
EAPI extern int ECORE_WL2_EVENT_DATA_SOURCE_TARGET; /** @since 1.17 */
|
|
|
|
|
EAPI extern int ECORE_WL2_EVENT_DATA_SOURCE_SEND; /** @since 1.17 */
|
|
|
|
|
EAPI extern int ECORE_WL2_EVENT_WINDOW_CONFIGURE; /** @since 1.17 */
|
|
|
|
|
EAPI extern int ECORE_WL2_EVENT_SYNC_DONE; /** @since 1.17 */
|
2016-09-22 00:13:48 -07:00
|
|
|
|
EAPI extern int ECORE_WL2_EVENT_OFFER_DATA_READY; /** @since 1.19 */
|
2016-10-04 11:19:51 -07:00
|
|
|
|
EAPI extern int ECORE_WL2_EVENT_SEAT_NAME_CHANGED; /** @since 1.19 */
|
2016-10-05 06:36:19 -07:00
|
|
|
|
EAPI extern int ECORE_WL2_EVENT_SEAT_CAPABILITIES_CHANGED; /** @since 1.19 */
|
2016-10-06 13:43:12 -07:00
|
|
|
|
EAPI extern int ECORE_WL2_EVENT_DEVICE_ADDED; /** @since 1.19 */
|
|
|
|
|
EAPI extern int ECORE_WL2_EVENT_DEVICE_REMOVED; /** @since 1.19 */
|
2017-01-11 09:22:01 -08:00
|
|
|
|
EAPI extern int ECORE_WL2_EVENT_WINDOW_CONFIGURE_COMPLETE; /** @since 1.19 */
|
2017-05-12 09:08:32 -07:00
|
|
|
|
EAPI extern int ECORE_WL2_EVENT_SEAT_KEYMAP_CHANGED; /** @since 1.20 */
|
|
|
|
|
EAPI extern int ECORE_WL2_EVENT_SEAT_KEYBOARD_REPEAT_CHANGED; /** @since 1.20 */
|
|
|
|
|
EAPI extern int ECORE_WL2_EVENT_SEAT_SELECTION; /** @since 1.20 */
|
2017-06-07 07:33:54 -07:00
|
|
|
|
EAPI extern int ECORE_WL2_EVENT_OUTPUT_TRANSFORM; /** @since 1.20 */
|
2017-01-11 07:20:49 -08:00
|
|
|
|
|
2015-08-18 07:57:32 -07:00
|
|
|
|
/**
|
|
|
|
|
* @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
|
2015-08-20 09:39:39 -07:00
|
|
|
|
* @li @ref Ecore_Wl2_Window_Group
|
2015-10-13 11:24:56 -07:00
|
|
|
|
* @li @ref Ecore_Wl2_Output_Group
|
|
|
|
|
* @li @ref Ecore_Wl2_Dnd_Group
|
|
|
|
|
* @li @ref Ecore_Wl2_Input_Group
|
2015-10-01 09:22:32 -07:00
|
|
|
|
* @li @ref Ecore_Wl2_Subsurface_Group
|
2015-08-18 07:57:32 -07:00
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @defgroup Ecore_Wl2_Init_Group Wayland Library Init and Shutdown Functions
|
|
|
|
|
* @ingroup Ecore_Wl2_Group
|
|
|
|
|
*
|
|
|
|
|
* Functions that start and shutdown the Ecore Wl2 Library.
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Initialize the Ecore_Wl2 library
|
|
|
|
|
*
|
|
|
|
|
* @return The number of times the library has been initialized without being
|
|
|
|
|
* shutdown. 0 is returned if an error occurs.
|
|
|
|
|
*
|
|
|
|
|
* @ingroup Ecore_Wl2_Init_Group
|
2015-11-10 08:04:24 -08:00
|
|
|
|
* @since 1.17
|
2015-08-18 07:57:32 -07:00
|
|
|
|
*/
|
2015-08-18 07:06:40 -07:00
|
|
|
|
EAPI int ecore_wl2_init(void);
|
2015-08-18 07:57:32 -07:00
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Shutdown the Ecore_Wl2 Library
|
|
|
|
|
*
|
|
|
|
|
* @return The number of times the library has been initialized without
|
|
|
|
|
* being shutdown.
|
|
|
|
|
*
|
|
|
|
|
* @ingroup Ecore_Wl2_Init_Group
|
2015-11-10 08:04:24 -08:00
|
|
|
|
* @since 1.17
|
2015-08-18 07:57:32 -07:00
|
|
|
|
*/
|
2015-08-18 07:06:40 -07:00
|
|
|
|
EAPI int ecore_wl2_shutdown(void);
|
|
|
|
|
|
2015-08-18 08:56:07 -07:00
|
|
|
|
/**
|
|
|
|
|
* @defgroup Ecore_Wl2_Display_Group Wayland Library Display Functions
|
|
|
|
|
* @ingroup Ecore_Wl2_Group
|
|
|
|
|
*
|
|
|
|
|
* Functions that deal with creating, connecting, or interacting with
|
|
|
|
|
* Wayland displays
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 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.
|
|
|
|
|
*
|
2015-08-18 12:55:24 -07:00
|
|
|
|
* @param name The display target name to create. If @c NULL, a default
|
|
|
|
|
* display name will be assigned.
|
2015-08-18 10:50:02 -07:00
|
|
|
|
* @return The newly created Ecore_Wl2_Display
|
2015-08-18 08:56:07 -07:00
|
|
|
|
*
|
|
|
|
|
* @ingroup Ecore_Wl2_Display_Group
|
2015-11-10 08:04:24 -08:00
|
|
|
|
* @since 1.17
|
2015-08-18 08:56:07 -07:00
|
|
|
|
*/
|
2015-08-18 12:55:24 -07:00
|
|
|
|
EAPI Ecore_Wl2_Display *ecore_wl2_display_create(const char *name);
|
2015-08-18 08:56:07 -07:00
|
|
|
|
|
2015-08-20 07:22:03 -07:00
|
|
|
|
/**
|
|
|
|
|
* Destroy an existing Wayland display
|
|
|
|
|
*
|
|
|
|
|
* @brief This function is typically used by servers to terminate an
|
|
|
|
|
* existing Wayland display.
|
|
|
|
|
*
|
|
|
|
|
* @param display The display to terminate
|
|
|
|
|
*
|
|
|
|
|
* @ingroup Ecore_Wl2_Display_Group
|
2015-11-10 08:04:24 -08:00
|
|
|
|
* @since 1.17
|
2015-08-20 07:22:03 -07:00
|
|
|
|
*/
|
|
|
|
|
EAPI void ecore_wl2_display_destroy(Ecore_Wl2_Display *display);
|
|
|
|
|
|
2015-08-18 08:56:07 -07:00
|
|
|
|
/**
|
|
|
|
|
* Connect to an existing Wayland display
|
|
|
|
|
*
|
|
|
|
|
* @brief This function is typically used by clients to connect to an
|
2015-08-18 10:50:02 -07:00
|
|
|
|
* existing Wayland display.
|
2015-08-18 08:56:07 -07:00
|
|
|
|
*
|
|
|
|
|
* @param name The display target name to connect to. If @c NULL, the default
|
|
|
|
|
* display is assumed.
|
|
|
|
|
*
|
2015-08-18 10:50:02 -07:00
|
|
|
|
* @return The Ecore_Wl2_Display which was connected to
|
2015-08-18 08:56:07 -07:00
|
|
|
|
*
|
|
|
|
|
* @ingroup Ecore_Wl2_Display_Group
|
2015-11-10 08:04:24 -08:00
|
|
|
|
* @since 1.17
|
2015-08-18 08:56:07 -07:00
|
|
|
|
*/
|
2015-08-18 10:50:02 -07:00
|
|
|
|
EAPI Ecore_Wl2_Display *ecore_wl2_display_connect(const char *name);
|
2015-08-18 08:56:07 -07:00
|
|
|
|
|
2015-08-20 07:15:07 -07:00
|
|
|
|
/**
|
|
|
|
|
* Disconnect an existing Wayland display
|
|
|
|
|
*
|
|
|
|
|
* @brief This function is typically used by clients to disconnect from an
|
|
|
|
|
* existing Wayland display.
|
|
|
|
|
*
|
|
|
|
|
* @param display The display to disconnect from
|
|
|
|
|
*
|
|
|
|
|
* @ingroup Ecore_Wl2_Display_Group
|
2015-11-10 08:04:24 -08:00
|
|
|
|
* @since 1.17
|
2015-08-20 07:15:07 -07:00
|
|
|
|
*/
|
|
|
|
|
EAPI void ecore_wl2_display_disconnect(Ecore_Wl2_Display *display);
|
|
|
|
|
|
2015-08-20 07:57:07 -07:00
|
|
|
|
/**
|
|
|
|
|
* Terminate a Wayland display's main loop
|
|
|
|
|
*
|
|
|
|
|
* @brief This function is typically used by servers to terminate the
|
|
|
|
|
* Wayland display main loop. This is usually only called when a server
|
|
|
|
|
* encounters an error.
|
|
|
|
|
*
|
|
|
|
|
* @param display The Ecore_Wl2_Display to terminate
|
|
|
|
|
*
|
|
|
|
|
* @ingroup Ecore_Wl2_Display_Group
|
2015-11-10 08:04:24 -08:00
|
|
|
|
* @since 1.17
|
2015-08-20 07:57:07 -07:00
|
|
|
|
*/
|
|
|
|
|
EAPI void ecore_wl2_display_terminate(Ecore_Wl2_Display *display);
|
|
|
|
|
|
2015-08-19 10:41:01 -07:00
|
|
|
|
/**
|
|
|
|
|
* Retrieve the existing Wayland display
|
|
|
|
|
*
|
|
|
|
|
* @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
|
|
|
|
|
*
|
|
|
|
|
* @ingroup Ecore_Wl2_Display_Group
|
2015-11-10 08:04:24 -08:00
|
|
|
|
* @since 1.17
|
2015-08-19 10:41:01 -07:00
|
|
|
|
*/
|
|
|
|
|
EAPI struct wl_display *ecore_wl2_display_get(Ecore_Wl2_Display *display);
|
|
|
|
|
|
2015-08-20 06:56:18 -07:00
|
|
|
|
/**
|
|
|
|
|
* Retrieve the wl_shm from a given Ecore_Wl2_Display
|
|
|
|
|
*
|
|
|
|
|
* @param display The Ecore_Wl2_Display for which to retrieve the existing
|
|
|
|
|
* Wayland shm interface from
|
|
|
|
|
*
|
|
|
|
|
* @return The wl_shm which this Ecore_Wl2_Display is using
|
|
|
|
|
*
|
|
|
|
|
* @ingroup Ecore_Wl2_Display_Group
|
2015-11-10 08:04:24 -08:00
|
|
|
|
* @since 1.17
|
2015-08-20 06:56:18 -07:00
|
|
|
|
*/
|
|
|
|
|
EAPI struct wl_shm *ecore_wl2_display_shm_get(Ecore_Wl2_Display *display);
|
|
|
|
|
|
2016-04-11 14:09:12 -07:00
|
|
|
|
/**
|
|
|
|
|
* Retrieve the wl_dmabuf from a given Ecore_Wl2_Display
|
|
|
|
|
*
|
|
|
|
|
*
|
|
|
|
|
* @param display The Ecore_Wl2_Display for which to retrieve the existing
|
|
|
|
|
* Wayland dmabuf interface from
|
|
|
|
|
*
|
|
|
|
|
*
|
|
|
|
|
* @return The wl_dmabuf which this Ecore_Wl2_Display is using
|
|
|
|
|
*
|
|
|
|
|
* @ingroup Ecore_Wl2_Display_Group
|
|
|
|
|
*
|
|
|
|
|
* @note This is intended for client use only and should be used only
|
|
|
|
|
* after ecore_wl2_display_connect(). Also, the return type is
|
|
|
|
|
* void * instead of zpw_linux_dmabuf_v1 * since we don't want
|
|
|
|
|
* to change our public API every time the version changes in
|
|
|
|
|
* wayland-protocols.
|
|
|
|
|
*
|
|
|
|
|
* @since 1.18
|
|
|
|
|
*/
|
2016-05-03 09:33:26 -07:00
|
|
|
|
EAPI void *ecore_wl2_display_dmabuf_get(Ecore_Wl2_Display *display);
|
2016-04-11 14:09:12 -07:00
|
|
|
|
|
2015-08-20 09:18:52 -07:00
|
|
|
|
/**
|
|
|
|
|
* 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
|
|
|
|
|
*
|
2015-10-26 07:08:16 -07:00
|
|
|
|
* @note The caller of this function should free the returned Eina_Iterator
|
|
|
|
|
* when finished with it.
|
|
|
|
|
*
|
2015-08-20 09:18:52 -07:00
|
|
|
|
* @ingroup Ecore_Wl2_Display_Group
|
2015-11-10 08:04:24 -08:00
|
|
|
|
* @since 1.17
|
2015-08-20 09:18:52 -07:00
|
|
|
|
*/
|
|
|
|
|
EAPI Eina_Iterator *ecore_wl2_display_globals_get(Ecore_Wl2_Display *display);
|
|
|
|
|
|
2015-10-01 07:14:06 -07:00
|
|
|
|
/**
|
|
|
|
|
* 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
|
2015-11-10 08:04:24 -08:00
|
|
|
|
* @since 1.17
|
2015-10-01 07:14:06 -07:00
|
|
|
|
*/
|
2015-09-28 08:58:51 -07:00
|
|
|
|
EAPI void ecore_wl2_display_screen_size_get(Ecore_Wl2_Display *display, int *w, int *h);
|
|
|
|
|
|
Ecore Evas Wayland: Create the devices during Ecore_Evas setup.
Summary:
When launching an Elementary App using Wayland the elm_config will
automatically connect to the Wayland's display server and all events
regarding seats are lost, since by the time that Ecore_Evas is created
the global events were already dispatched. To fix this problem,
everytime an Ecore_Evas is created, the code must check if there
are any seat capabilities available, if so, the devices will be created.
Reviewers: bdilly, barbieri, cedric, jpeg
Subscribers: devilhorns, cedric, jpeg
Differential Revision: https://phab.enlightenment.org/D4390
2016-11-13 18:03:56 -08:00
|
|
|
|
/**
|
|
|
|
|
* Get all the Ecore_Wl2_Input from the display.
|
|
|
|
|
* @param display The display
|
|
|
|
|
* @return A Eina_Iterator of Ecore_Wl2_Input or @c NULL on error
|
2017-06-07 07:56:36 -07:00
|
|
|
|
* @ingroup Ecore_Wl2_Display_Group
|
Ecore Evas Wayland: Create the devices during Ecore_Evas setup.
Summary:
When launching an Elementary App using Wayland the elm_config will
automatically connect to the Wayland's display server and all events
regarding seats are lost, since by the time that Ecore_Evas is created
the global events were already dispatched. To fix this problem,
everytime an Ecore_Evas is created, the code must check if there
are any seat capabilities available, if so, the devices will be created.
Reviewers: bdilly, barbieri, cedric, jpeg
Subscribers: devilhorns, cedric, jpeg
Differential Revision: https://phab.enlightenment.org/D4390
2016-11-13 18:03:56 -08:00
|
|
|
|
* @since 1.19
|
|
|
|
|
*/
|
|
|
|
|
EAPI Eina_Iterator *ecore_wl2_display_inputs_get(Ecore_Wl2_Display *display);
|
|
|
|
|
|
2017-05-17 13:02:53 -07:00
|
|
|
|
/**
|
|
|
|
|
* Find a seat for a given display object using the seat id
|
|
|
|
|
* @param display The display
|
|
|
|
|
* @param id The seat id
|
|
|
|
|
* @return The corresponding Ecore_Wl2_Input object or @c NULL if no match is found
|
2017-06-07 07:56:36 -07:00
|
|
|
|
* @ingroup Ecore_Wl2_Display_Group
|
2017-05-17 13:02:53 -07:00
|
|
|
|
* @since 1.20
|
|
|
|
|
*/
|
|
|
|
|
EAPI Ecore_Wl2_Input *ecore_wl2_display_input_find(const Ecore_Wl2_Display *display, unsigned int id);
|
|
|
|
|
|
2017-05-17 13:02:53 -07:00
|
|
|
|
/**
|
|
|
|
|
* Find a seat for a given display object using the seat id
|
|
|
|
|
* @param display The display
|
|
|
|
|
* @param name The seat name
|
|
|
|
|
* @return The corresponding Ecore_Wl2_Input object or @c NULL if no match is found
|
2017-06-07 07:56:36 -07:00
|
|
|
|
* @ingroup Ecore_Wl2_Display_Group
|
2017-05-17 13:02:53 -07:00
|
|
|
|
* @since 1.20
|
|
|
|
|
*/
|
|
|
|
|
EAPI Ecore_Wl2_Input *ecore_wl2_display_input_find_by_name(const Ecore_Wl2_Display *display, const char *name);
|
|
|
|
|
|
2015-10-26 07:46:19 -07:00
|
|
|
|
/**
|
|
|
|
|
* 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
|
2015-11-10 08:04:24 -08:00
|
|
|
|
* @since 1.17
|
2015-10-26 07:46:19 -07:00
|
|
|
|
*/
|
2015-10-01 07:00:20 -07:00
|
|
|
|
EAPI Ecore_Wl2_Window *ecore_wl2_display_window_find(Ecore_Wl2_Display *display, unsigned int id);
|
|
|
|
|
|
2015-10-01 07:14:06 -07:00
|
|
|
|
/**
|
|
|
|
|
* Retrieves the Wayland Registry used for the current Wayland display.
|
|
|
|
|
*
|
|
|
|
|
* @param display The display to get the registry of
|
|
|
|
|
*
|
|
|
|
|
* @return The current wayland registry, or NULL on error
|
|
|
|
|
*
|
|
|
|
|
* @ingroup Ecore_Wl2_Display_Group
|
2015-11-10 08:04:24 -08:00
|
|
|
|
* @since 1.17
|
2015-10-01 07:14:06 -07:00
|
|
|
|
*/
|
2015-10-01 07:02:20 -07:00
|
|
|
|
EAPI struct wl_registry *ecore_wl2_display_registry_get(Ecore_Wl2_Display *display);
|
|
|
|
|
|
2017-05-12 09:08:32 -07:00
|
|
|
|
/**
|
|
|
|
|
* Check if the display has performed a sync
|
|
|
|
|
*
|
|
|
|
|
* @param display The display
|
|
|
|
|
*
|
|
|
|
|
* @return True if the display sync has occurred
|
|
|
|
|
* @see ECORE_WL2_EVENT_SYNC_DONE
|
|
|
|
|
*
|
|
|
|
|
* @ingroup Ecore_Wl2_Display_Group
|
|
|
|
|
* @since 1.20
|
|
|
|
|
*/
|
|
|
|
|
EAPI Eina_Bool ecore_wl2_display_sync_is_done(const Ecore_Wl2_Display *display);
|
|
|
|
|
|
2017-05-17 13:02:53 -07:00
|
|
|
|
/**
|
|
|
|
|
* Get the name of the display object
|
|
|
|
|
*
|
|
|
|
|
* @param display The display
|
|
|
|
|
*
|
|
|
|
|
* @return The name of the display object
|
|
|
|
|
*
|
|
|
|
|
* @ingroup Ecore_Wl2_Display_Group
|
|
|
|
|
* @since 1.20
|
|
|
|
|
*/
|
|
|
|
|
EAPI const char *ecore_wl2_display_name_get(const Ecore_Wl2_Display *display);
|
|
|
|
|
|
2015-08-20 09:39:39 -07:00
|
|
|
|
/**
|
|
|
|
|
* @defgroup Ecore_Wl2_Window_Group Wayland Library Window Functions
|
|
|
|
|
* @ingroup Ecore_Wl2_Group
|
|
|
|
|
*
|
2015-09-10 08:02:53 -07:00
|
|
|
|
* Functions that deal with creating, destroying, or interacting with
|
2015-08-20 09:39:39 -07:00
|
|
|
|
* Wayland windows
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Create a new Ecore_Wl2_Window
|
|
|
|
|
*
|
|
|
|
|
* @param display The Ecore_Wl2_Display on which to create this new window
|
|
|
|
|
* @param parent The Ecore_Wl2_Window which is the parent of this window
|
|
|
|
|
* @param x Initial x position of window
|
|
|
|
|
* @param y Initial y position of window
|
|
|
|
|
* @param w Initial width of window
|
|
|
|
|
* @param h Initial height of window
|
|
|
|
|
*
|
|
|
|
|
* @ingroup Ecore_Wl2_Window_Group
|
2015-11-10 08:04:24 -08:00
|
|
|
|
* @since 1.17
|
2015-08-20 09:39:39 -07:00
|
|
|
|
*/
|
|
|
|
|
EAPI Ecore_Wl2_Window *ecore_wl2_window_new(Ecore_Wl2_Display *display, Ecore_Wl2_Window *parent, int x, int y, int w, int h);
|
|
|
|
|
|
2015-08-20 09:44:17 -07:00
|
|
|
|
/**
|
|
|
|
|
* Get the window id associated with an Ecore_Wl2_Window
|
|
|
|
|
*
|
|
|
|
|
* @param window The Ecore_Wl2_Window of which to retrieve the window id
|
|
|
|
|
*
|
|
|
|
|
* @return The id associated with this window
|
2015-08-20 11:12:18 -07:00
|
|
|
|
*
|
|
|
|
|
* @ingroup Ecore_Wl2_Window_Group
|
2015-11-10 08:04:24 -08:00
|
|
|
|
* @since 1.17
|
2015-08-20 09:44:17 -07:00
|
|
|
|
*/
|
|
|
|
|
EAPI int ecore_wl2_window_id_get(Ecore_Wl2_Window *window);
|
|
|
|
|
|
2015-08-20 11:12:18 -07:00
|
|
|
|
/**
|
|
|
|
|
* 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
|
2015-11-10 08:04:24 -08:00
|
|
|
|
* @since 1.17
|
2015-08-20 11:12:18 -07:00
|
|
|
|
*/
|
|
|
|
|
EAPI struct wl_surface *ecore_wl2_window_surface_get(Ecore_Wl2_Window *window);
|
|
|
|
|
|
2015-10-26 07:46:19 -07:00
|
|
|
|
/**
|
|
|
|
|
* 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
|
2015-11-10 08:04:24 -08:00
|
|
|
|
* @since 1.17
|
2015-10-26 07:46:19 -07:00
|
|
|
|
*/
|
2015-09-29 08:00:32 -07:00
|
|
|
|
EAPI int ecore_wl2_window_surface_id_get(Ecore_Wl2_Window *window);
|
|
|
|
|
|
2015-09-09 08:19:24 -07:00
|
|
|
|
/**
|
|
|
|
|
* Show a given Ecore_Wl2_Window
|
|
|
|
|
*
|
|
|
|
|
* @param window The Ecore_Wl2_Window to show
|
|
|
|
|
*
|
|
|
|
|
* @ingroup Ecore_Wl2_Window_Group
|
2015-11-10 08:04:24 -08:00
|
|
|
|
* @since 1.17
|
2015-09-09 08:19:24 -07:00
|
|
|
|
*/
|
|
|
|
|
EAPI void ecore_wl2_window_show(Ecore_Wl2_Window *window);
|
|
|
|
|
|
2015-09-09 09:08:26 -07:00
|
|
|
|
/**
|
|
|
|
|
* Hide a given Ecore_Wl2_Window
|
|
|
|
|
*
|
|
|
|
|
* @param window The Ecore_Wl2_Window to hide
|
|
|
|
|
*
|
|
|
|
|
* @ingroup Ecore_Wl2_Window_Group
|
2015-11-10 08:04:24 -08:00
|
|
|
|
* @since 1.17
|
2015-09-09 09:08:26 -07:00
|
|
|
|
*/
|
|
|
|
|
EAPI void ecore_wl2_window_hide(Ecore_Wl2_Window *window);
|
|
|
|
|
|
2015-09-09 09:12:53 -07:00
|
|
|
|
/**
|
|
|
|
|
* Free a given Ecore_Wl2_Window
|
|
|
|
|
*
|
|
|
|
|
* @param window The Ecore_Wl2_Window to free
|
|
|
|
|
*
|
|
|
|
|
* @ingroup Ecore_Wl2_Window_Group
|
2015-11-10 08:04:24 -08:00
|
|
|
|
* @since 1.17
|
2015-09-09 09:12:53 -07:00
|
|
|
|
*/
|
|
|
|
|
EAPI void ecore_wl2_window_free(Ecore_Wl2_Window *window);
|
|
|
|
|
|
2015-09-09 09:24:30 -07:00
|
|
|
|
/**
|
2017-05-17 13:02:53 -07:00
|
|
|
|
* @brief Begin moving a given Ecore_Wl2_Window
|
2015-09-09 09:50:35 -07:00
|
|
|
|
*
|
2015-09-09 09:24:30 -07:00
|
|
|
|
* @param window The Ecore_Wl2_Window which to move
|
2017-05-17 13:02:53 -07:00
|
|
|
|
* @param input The seat on which the move is active on
|
2015-09-09 09:24:30 -07:00
|
|
|
|
*
|
|
|
|
|
* @ingroup Ecore_Wl2_Window_Group
|
2017-05-17 13:02:53 -07:00
|
|
|
|
* @since 1.20
|
2015-09-09 09:24:30 -07:00
|
|
|
|
*/
|
2017-05-17 13:02:53 -07:00
|
|
|
|
EAPI void ecore_wl2_window_move(Ecore_Wl2_Window *window, Ecore_Wl2_Input *input);
|
2015-09-09 09:24:30 -07:00
|
|
|
|
|
2015-09-09 09:27:23 -07:00
|
|
|
|
/**
|
2017-05-17 13:02:53 -07:00
|
|
|
|
* @brief Begin resizing a given window
|
2015-09-09 09:50:35 -07:00
|
|
|
|
*
|
2015-09-09 09:27:23 -07:00
|
|
|
|
* @param window The Ecore_Wl2_Window which to resize
|
2017-05-17 13:02:53 -07:00
|
|
|
|
* @param input The seat on which the resize is active
|
2015-09-09 09:27:23 -07:00
|
|
|
|
* @param location The edge of the window from where the resize should start
|
|
|
|
|
*
|
|
|
|
|
* @ingroup Ecore_Wl2_Window_Group
|
2017-05-17 13:02:53 -07:00
|
|
|
|
* @since 1.20
|
2015-09-09 09:27:23 -07:00
|
|
|
|
*/
|
2017-05-17 13:02:53 -07:00
|
|
|
|
EAPI void ecore_wl2_window_resize(Ecore_Wl2_Window *window, Ecore_Wl2_Input *input, int location);
|
2015-09-09 09:27:23 -07:00
|
|
|
|
|
2015-09-09 10:06:54 -07:00
|
|
|
|
/**
|
|
|
|
|
* Raise a given Ecore_Wl2_Window
|
|
|
|
|
*
|
|
|
|
|
* @param window The Ecore_Wl2_Window which to raise
|
|
|
|
|
*
|
|
|
|
|
* @ingroup Ecore_Wl2_Window_Group
|
2015-11-10 08:04:24 -08:00
|
|
|
|
* @since 1.17
|
2015-09-09 10:06:54 -07:00
|
|
|
|
*/
|
|
|
|
|
EAPI void ecore_wl2_window_raise(Ecore_Wl2_Window *window);
|
|
|
|
|
|
2015-10-26 07:46:19 -07:00
|
|
|
|
/**
|
|
|
|
|
* 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
|
2015-11-10 08:04:24 -08:00
|
|
|
|
* @since 1.17
|
2015-10-26 07:46:19 -07:00
|
|
|
|
*/
|
2015-09-28 06:15:49 -07:00
|
|
|
|
EAPI Eina_Bool ecore_wl2_window_alpha_get(Ecore_Wl2_Window *window);
|
|
|
|
|
|
2015-10-26 07:46:19 -07:00
|
|
|
|
/**
|
|
|
|
|
* 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
|
2015-11-10 08:04:24 -08:00
|
|
|
|
* @since 1.17
|
2015-10-26 07:46:19 -07:00
|
|
|
|
*/
|
2015-09-28 06:19:21 -07:00
|
|
|
|
EAPI void ecore_wl2_window_alpha_set(Ecore_Wl2_Window *window, Eina_Bool alpha);
|
|
|
|
|
|
2015-10-26 07:46:19 -07:00
|
|
|
|
/**
|
|
|
|
|
* Set a given window's transparent property
|
|
|
|
|
*
|
|
|
|
|
* @param window The window on which to set the transparent property
|
|
|
|
|
* @param transparent EINA_TRUE to set window as transparent,
|
|
|
|
|
* EINA_FALSE otherwise
|
|
|
|
|
*
|
|
|
|
|
* @ingroup Ecore_Wl2_Window_Group
|
2015-11-10 08:04:24 -08:00
|
|
|
|
* @since 1.17
|
2015-10-26 07:46:19 -07:00
|
|
|
|
*/
|
2015-09-28 06:25:52 -07:00
|
|
|
|
EAPI void ecore_wl2_window_transparent_set(Ecore_Wl2_Window *window, Eina_Bool transparent);
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Set the opaque region of the Ecore_Wl2_Window
|
|
|
|
|
*
|
|
|
|
|
* @param win The window
|
|
|
|
|
* @param x The left point of the region.
|
|
|
|
|
* @param y The top point of the region.
|
|
|
|
|
* @param w The width of the region.
|
|
|
|
|
* @param h The height of the region.
|
|
|
|
|
*
|
|
|
|
|
* @ingroup Ecore_Wl2_Window_Group
|
2015-11-10 08:04:24 -08:00
|
|
|
|
* @since 1.17
|
2015-09-28 06:25:52 -07:00
|
|
|
|
*/
|
|
|
|
|
EAPI void ecore_wl2_window_opaque_region_set(Ecore_Wl2_Window *window, int x, int y, int w, int h);
|
|
|
|
|
|
2015-10-01 07:14:06 -07:00
|
|
|
|
/**
|
|
|
|
|
* Set the input region of the Ecore_Wl2_Window.
|
|
|
|
|
*
|
|
|
|
|
* To set an empty region, pass width and height as 0.
|
|
|
|
|
*
|
|
|
|
|
* An empty input region means the entire window surface will accept input.
|
|
|
|
|
*
|
|
|
|
|
* @param window The window to set the input region of
|
|
|
|
|
* @param x The left point of the region.
|
|
|
|
|
* @param y The top point of the region.
|
|
|
|
|
* @param w The width of the region.
|
|
|
|
|
* @param h The height of the region.
|
|
|
|
|
*
|
|
|
|
|
* @ingroup Ecore_Wl2_Window_Group
|
2015-11-10 08:04:24 -08:00
|
|
|
|
* @since 1.17
|
2015-10-01 07:14:06 -07:00
|
|
|
|
*/
|
2015-10-01 07:06:35 -07:00
|
|
|
|
EAPI void ecore_wl2_window_input_region_set(Ecore_Wl2_Window *window, int x, int y, int w, int h);
|
|
|
|
|
|
2015-10-26 07:46:19 -07:00
|
|
|
|
/**
|
|
|
|
|
* Get if a given window is maximized
|
|
|
|
|
*
|
|
|
|
|
* @param window The window to get the maximized state of
|
|
|
|
|
*
|
|
|
|
|
* @return EINA_TRUE if window is maximized, EINA_FALSE otherwise
|
|
|
|
|
*
|
|
|
|
|
* @ingroup Ecore_Wl2_Window_Group
|
2015-11-10 08:04:24 -08:00
|
|
|
|
* @since 1.17
|
2015-10-26 07:46:19 -07:00
|
|
|
|
*/
|
2015-09-28 06:39:07 -07:00
|
|
|
|
EAPI Eina_Bool ecore_wl2_window_maximized_get(Ecore_Wl2_Window *window);
|
|
|
|
|
|
2015-10-26 07:46:19 -07:00
|
|
|
|
/**
|
|
|
|
|
* Set the maximized state of a given window
|
|
|
|
|
*
|
|
|
|
|
* @param window The window to set the maximized state of
|
|
|
|
|
* @param maximized EINA_TRUE to set maximized, EINA_FALSE to unset
|
|
|
|
|
*
|
|
|
|
|
* @ingroup Ecore_Wl2_Window_Group
|
2015-11-10 08:04:24 -08:00
|
|
|
|
* @since 1.17
|
2015-10-26 07:46:19 -07:00
|
|
|
|
*/
|
2015-09-28 08:28:23 -07:00
|
|
|
|
EAPI void ecore_wl2_window_maximized_set(Ecore_Wl2_Window *window, Eina_Bool maximized);
|
|
|
|
|
|
2015-10-26 07:46:19 -07:00
|
|
|
|
/**
|
|
|
|
|
* Get if a given window is fullscreen
|
|
|
|
|
*
|
|
|
|
|
* @param window The window to get the fullscreen state of
|
|
|
|
|
*
|
|
|
|
|
* @return EINA_TRUE if window is fullscreen, EINA_FALSE otherwise
|
|
|
|
|
*
|
|
|
|
|
* @ingroup Ecore_Wl2_Window_Group
|
2015-11-10 08:04:24 -08:00
|
|
|
|
* @since 1.17
|
2015-10-26 07:46:19 -07:00
|
|
|
|
*/
|
2015-09-28 06:40:39 -07:00
|
|
|
|
EAPI Eina_Bool ecore_wl2_window_fullscreen_get(Ecore_Wl2_Window *window);
|
|
|
|
|
|
2015-10-26 07:46:19 -07:00
|
|
|
|
/**
|
|
|
|
|
* Set the fullscreen state of a given window
|
|
|
|
|
*
|
|
|
|
|
* @param window The window to set the fullscreen state of
|
|
|
|
|
* @param maximized EINA_TRUE to set fullscreen, EINA_FALSE to unset
|
|
|
|
|
*
|
|
|
|
|
* @ingroup Ecore_Wl2_Window_Group
|
2015-11-10 08:04:24 -08:00
|
|
|
|
* @since 1.17
|
2015-10-26 07:46:19 -07:00
|
|
|
|
*/
|
2015-09-28 08:31:43 -07:00
|
|
|
|
EAPI void ecore_wl2_window_fullscreen_set(Ecore_Wl2_Window *window, Eina_Bool fullscreen);
|
|
|
|
|
|
2015-11-10 06:35:25 -08:00
|
|
|
|
/**
|
|
|
|
|
* Get if a given window is rotated
|
|
|
|
|
*
|
|
|
|
|
* @param window The window to get the rotation of
|
|
|
|
|
*
|
|
|
|
|
* @return The amount of rotation for this window, or -1 on failure
|
|
|
|
|
*
|
|
|
|
|
* @ingroup Ecore_Wl2_Window_Group
|
2015-11-10 08:04:24 -08:00
|
|
|
|
* @since 1.17
|
2015-11-10 06:35:25 -08:00
|
|
|
|
*/
|
|
|
|
|
EAPI int ecore_wl2_window_rotation_get(Ecore_Wl2_Window *window);
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Set the rotation of a given window
|
|
|
|
|
*
|
|
|
|
|
* @param window The window to set the rotation of
|
|
|
|
|
* @param rotation The amount of rotation
|
|
|
|
|
*
|
|
|
|
|
* @ingroup Ecore_Wl2_Window_Group
|
2015-11-10 08:04:24 -08:00
|
|
|
|
* @since 1.17
|
2015-11-10 06:35:25 -08:00
|
|
|
|
*/
|
2015-09-28 06:42:21 -07:00
|
|
|
|
EAPI void ecore_wl2_window_rotation_set(Ecore_Wl2_Window *window, int rotation);
|
|
|
|
|
|
2015-10-26 07:46:19 -07:00
|
|
|
|
/**
|
|
|
|
|
* 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
|
2015-11-10 08:04:24 -08:00
|
|
|
|
* @since 1.17
|
2015-10-26 07:46:19 -07:00
|
|
|
|
*/
|
2015-09-28 06:47:59 -07:00
|
|
|
|
EAPI void ecore_wl2_window_title_set(Ecore_Wl2_Window *window, const char *title);
|
|
|
|
|
|
2015-10-26 07:46:19 -07:00
|
|
|
|
/**
|
|
|
|
|
* Set the class of a given window
|
|
|
|
|
*
|
|
|
|
|
* @param window The window to set the class of
|
2015-11-10 06:50:19 -08:00
|
|
|
|
* @param clas The class of the window
|
2015-10-26 07:46:19 -07:00
|
|
|
|
*
|
|
|
|
|
* @ingroup Ecore_Wl2_Window_Group
|
2015-11-10 08:04:24 -08:00
|
|
|
|
* @since 1.17
|
2015-10-26 07:46:19 -07:00
|
|
|
|
*/
|
2015-11-10 06:50:19 -08:00
|
|
|
|
EAPI void ecore_wl2_window_class_set(Ecore_Wl2_Window *window, const char *clas);
|
2015-09-28 06:51:00 -07:00
|
|
|
|
|
2015-10-26 07:46:19 -07:00
|
|
|
|
/**
|
|
|
|
|
* Get the geometry of a given window
|
|
|
|
|
*
|
|
|
|
|
* @brief The window geometry returned here is the window geometry as
|
|
|
|
|
* recognized by xdg_surface_set_window_geometry. As such, it represents the
|
|
|
|
|
* "visible bounds" of a window from the user's perspective.
|
|
|
|
|
*
|
|
|
|
|
* @param window The window to get the geometry of
|
|
|
|
|
* @param x The left point of the window geometry
|
|
|
|
|
* @param y The top point of the window geometry
|
|
|
|
|
* @param w The width of the window geometry
|
|
|
|
|
* @param h The height of the window geometry
|
|
|
|
|
*
|
|
|
|
|
* @ingroup Ecore_Wl2_Window_Group
|
2015-11-10 08:04:24 -08:00
|
|
|
|
* @since 1.17
|
2015-10-26 07:46:19 -07:00
|
|
|
|
*/
|
2015-09-28 08:16:03 -07:00
|
|
|
|
EAPI void ecore_wl2_window_geometry_get(Ecore_Wl2_Window *window, int *x, int *y, int *w, int *h);
|
|
|
|
|
|
2015-10-26 07:46:19 -07:00
|
|
|
|
/**
|
|
|
|
|
* Set the geometry of a given window
|
|
|
|
|
*
|
|
|
|
|
* @brief The window geometry referenced here is the window geometry as
|
|
|
|
|
* recognized by xdg_surface_set_window_geometry. As such, it represents the
|
|
|
|
|
* "visible bounds" of a window from the user's perspective.
|
|
|
|
|
*
|
|
|
|
|
* @param window The window to set the geometry of
|
|
|
|
|
* @param x The left point of the window geometry
|
|
|
|
|
* @param y The top point of the window geometry
|
|
|
|
|
* @param w The width of the window geometry
|
|
|
|
|
* @param h The height of the window geometry
|
|
|
|
|
*
|
|
|
|
|
* @ingroup Ecore_Wl2_Window_Group
|
2015-11-10 08:04:24 -08:00
|
|
|
|
* @since 1.17
|
2015-10-26 07:46:19 -07:00
|
|
|
|
*/
|
2015-09-28 08:18:23 -07:00
|
|
|
|
EAPI void ecore_wl2_window_geometry_set(Ecore_Wl2_Window *window, int x, int y, int w, int h);
|
|
|
|
|
|
2015-10-26 07:46:19 -07:00
|
|
|
|
/**
|
|
|
|
|
* Get the iconified state of a given window
|
|
|
|
|
*
|
|
|
|
|
* @param window The window to get the iconified state of
|
|
|
|
|
*
|
|
|
|
|
* @return EINA_TRUE if window is iconified, EINA_FALSE otherwise
|
|
|
|
|
*
|
|
|
|
|
* @ingroup Ecore_Wl2_Window_Group
|
2015-11-10 08:04:24 -08:00
|
|
|
|
* @since 1.17
|
2015-10-26 07:46:19 -07:00
|
|
|
|
*/
|
2015-09-28 08:37:11 -07:00
|
|
|
|
EAPI Eina_Bool ecore_wl2_window_iconified_get(Ecore_Wl2_Window *window);
|
|
|
|
|
|
2015-10-01 07:14:06 -07:00
|
|
|
|
/**
|
|
|
|
|
* Iconify a window
|
|
|
|
|
*
|
|
|
|
|
* @param win The window to iconifiy
|
|
|
|
|
* @param iconified The new iconified state to set
|
|
|
|
|
*
|
|
|
|
|
* @ingroup Ecore_Wl2_Window_Group
|
2015-11-10 08:04:24 -08:00
|
|
|
|
* @since 1.17
|
2015-10-01 07:14:06 -07:00
|
|
|
|
*/
|
2015-09-28 08:43:20 -07:00
|
|
|
|
EAPI void ecore_wl2_window_iconified_set(Ecore_Wl2_Window *window, Eina_Bool iconified);
|
|
|
|
|
|
2015-10-26 07:46:19 -07:00
|
|
|
|
/**
|
|
|
|
|
* Set the type of a given window
|
|
|
|
|
*
|
|
|
|
|
* @param window The window to set the type of
|
|
|
|
|
* @type The Ecore_Wl2_Window_Type to set on the window
|
|
|
|
|
*
|
|
|
|
|
* @ingroup Ecore_Wl2_Window_Group
|
2015-11-10 08:04:24 -08:00
|
|
|
|
* @since 1.17
|
2015-10-26 07:46:19 -07:00
|
|
|
|
*/
|
2015-09-29 08:17:33 -07:00
|
|
|
|
EAPI void ecore_wl2_window_type_set(Ecore_Wl2_Window *window, Ecore_Wl2_Window_Type type);
|
2015-09-29 08:00:32 -07:00
|
|
|
|
|
2017-06-07 07:46:44 -07:00
|
|
|
|
/**
|
|
|
|
|
* Find the output that a given window is on
|
|
|
|
|
*
|
|
|
|
|
* @param window The window to find the output for
|
|
|
|
|
*
|
|
|
|
|
* @return An Ecore_Wl2_Output if found, or NULL otherwise
|
|
|
|
|
*
|
|
|
|
|
* @ingroup Ecore_Wl2_Window_Group
|
|
|
|
|
* @since 1.20
|
|
|
|
|
*/
|
|
|
|
|
EAPI Ecore_Wl2_Output *ecore_wl2_window_output_find(Ecore_Wl2_Window *window);
|
|
|
|
|
|
2017-06-07 08:08:33 -07:00
|
|
|
|
/**
|
|
|
|
|
* Set a buffer transform on a given window
|
|
|
|
|
*
|
|
|
|
|
* @param window The window on which to set the buffer transform
|
|
|
|
|
* @param transform The buffer transform being requested
|
|
|
|
|
*
|
|
|
|
|
* @ingroup Ecore_Wl2_Window_Group
|
|
|
|
|
* @since 1.20
|
|
|
|
|
*/
|
|
|
|
|
EAPI void ecore_wl2_window_buffer_transform_set(Ecore_Wl2_Window *window, int transform);
|
|
|
|
|
|
2017-06-09 06:12:39 -07:00
|
|
|
|
/**
|
|
|
|
|
* Set if window rotation is supported by the window manager
|
|
|
|
|
*
|
|
|
|
|
* @param window
|
|
|
|
|
* @param enabled
|
|
|
|
|
*
|
|
|
|
|
* @ingroup Ecore_Wl2_Window_Group
|
|
|
|
|
* @since 1.20
|
|
|
|
|
*/
|
|
|
|
|
EAPI void ecore_wl2_window_wm_rotation_supported_set(Ecore_Wl2_Window *window, Eina_Bool enabled);
|
|
|
|
|
|
2015-10-13 11:24:56 -07:00
|
|
|
|
/**
|
|
|
|
|
* @defgroup Ecore_Wl2_Input_Group Wayland Library Input Functions
|
|
|
|
|
* @ingroup Ecore_Wl2_Group
|
|
|
|
|
*
|
|
|
|
|
* Functions that deal with creating, destroying, or interacting with
|
|
|
|
|
* Wayland Input
|
|
|
|
|
*/
|
|
|
|
|
|
2016-01-07 08:55:52 -08:00
|
|
|
|
/* TODO: doxy */
|
|
|
|
|
/** @since 1.17 */
|
|
|
|
|
EAPI void ecore_wl2_input_grab(Ecore_Wl2_Input *input, Ecore_Wl2_Window *window, unsigned int button);
|
|
|
|
|
|
2015-10-13 11:29:12 -07:00
|
|
|
|
/* TODO: doxy */
|
2016-01-06 06:08:13 -08:00
|
|
|
|
/** @since 1.17 */
|
2015-10-13 11:29:12 -07:00
|
|
|
|
EAPI void ecore_wl2_input_ungrab(Ecore_Wl2_Input *input);
|
|
|
|
|
|
|
|
|
|
/* TODO: doxy */
|
2016-01-06 06:08:13 -08:00
|
|
|
|
/** @since 1.17 */
|
2015-10-13 11:29:12 -07:00
|
|
|
|
EAPI struct wl_seat *ecore_wl2_input_seat_get(Ecore_Wl2_Input *input);
|
|
|
|
|
|
Ecore Evas Wayland: Create the devices during Ecore_Evas setup.
Summary:
When launching an Elementary App using Wayland the elm_config will
automatically connect to the Wayland's display server and all events
regarding seats are lost, since by the time that Ecore_Evas is created
the global events were already dispatched. To fix this problem,
everytime an Ecore_Evas is created, the code must check if there
are any seat capabilities available, if so, the devices will be created.
Reviewers: bdilly, barbieri, cedric, jpeg
Subscribers: devilhorns, cedric, jpeg
Differential Revision: https://phab.enlightenment.org/D4390
2016-11-13 18:03:56 -08:00
|
|
|
|
/**
|
|
|
|
|
* Get the seat capabilities for a given input.
|
|
|
|
|
*
|
|
|
|
|
* @param input The input
|
2017-06-07 07:56:36 -07:00
|
|
|
|
*
|
|
|
|
|
* @ingroup Ecore_Wl2_Input_Group
|
Ecore Evas Wayland: Create the devices during Ecore_Evas setup.
Summary:
When launching an Elementary App using Wayland the elm_config will
automatically connect to the Wayland's display server and all events
regarding seats are lost, since by the time that Ecore_Evas is created
the global events were already dispatched. To fix this problem,
everytime an Ecore_Evas is created, the code must check if there
are any seat capabilities available, if so, the devices will be created.
Reviewers: bdilly, barbieri, cedric, jpeg
Subscribers: devilhorns, cedric, jpeg
Differential Revision: https://phab.enlightenment.org/D4390
2016-11-13 18:03:56 -08:00
|
|
|
|
* @since 1.19
|
|
|
|
|
*/
|
|
|
|
|
EAPI Ecore_Wl2_Seat_Capabilities ecore_wl2_input_seat_capabilities_get(Ecore_Wl2_Input *input);
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Get the wayland's seat id from an input.
|
|
|
|
|
* @param input The input
|
|
|
|
|
* @return The seat id
|
2017-06-07 07:56:36 -07:00
|
|
|
|
* @ingroup Ecore_Wl2_Input_Group
|
Ecore Evas Wayland: Create the devices during Ecore_Evas setup.
Summary:
When launching an Elementary App using Wayland the elm_config will
automatically connect to the Wayland's display server and all events
regarding seats are lost, since by the time that Ecore_Evas is created
the global events were already dispatched. To fix this problem,
everytime an Ecore_Evas is created, the code must check if there
are any seat capabilities available, if so, the devices will be created.
Reviewers: bdilly, barbieri, cedric, jpeg
Subscribers: devilhorns, cedric, jpeg
Differential Revision: https://phab.enlightenment.org/D4390
2016-11-13 18:03:56 -08:00
|
|
|
|
* @since 1.19
|
|
|
|
|
*/
|
|
|
|
|
EAPI unsigned int ecore_wl2_input_seat_id_get(Ecore_Wl2_Input *input);
|
|
|
|
|
|
2017-05-12 09:08:32 -07:00
|
|
|
|
/**
|
|
|
|
|
* Get the display object of an input
|
|
|
|
|
* @param input The input
|
|
|
|
|
* @return The display
|
2017-06-07 07:56:36 -07:00
|
|
|
|
* @ingroup Ecore_Wl2_Input_Group
|
2017-05-12 09:08:32 -07:00
|
|
|
|
* @since 1.20
|
|
|
|
|
*/
|
|
|
|
|
EAPI Ecore_Wl2_Display *ecore_wl2_input_display_get(const Ecore_Wl2_Input *input);
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Get the xkb_keymap object of an input
|
|
|
|
|
* @param input The input
|
|
|
|
|
* @return The xkb_keymap object
|
2017-06-07 07:56:36 -07:00
|
|
|
|
* @ingroup Ecore_Wl2_Input_Group
|
2017-05-12 09:08:32 -07:00
|
|
|
|
* @since 1.20
|
|
|
|
|
*/
|
|
|
|
|
EAPI struct xkb_keymap *ecore_wl2_input_keymap_get(const Ecore_Wl2_Input *input);
|
|
|
|
|
|
2017-05-12 09:08:32 -07:00
|
|
|
|
/**
|
|
|
|
|
* Get the name of an input
|
|
|
|
|
* @param input The input
|
|
|
|
|
* @return The name
|
2017-06-07 07:56:36 -07:00
|
|
|
|
* @ingroup Ecore_Wl2_Input_Group
|
2017-05-12 09:08:32 -07:00
|
|
|
|
* @since 1.20
|
|
|
|
|
*/
|
|
|
|
|
EAPI Eina_Stringshare *ecore_wl2_input_name_get(Ecore_Wl2_Input *input);
|
|
|
|
|
|
2017-05-12 09:08:32 -07:00
|
|
|
|
/**
|
|
|
|
|
* Get the keyboard repeat rate and delay of an input
|
|
|
|
|
* @param input The input
|
|
|
|
|
* @param rate Pointer to store the repeat rate (in seconds)
|
|
|
|
|
* @param rate Pointer to store the repeat delay (in seconds)
|
|
|
|
|
* @return True if repeat is enabled
|
2017-06-07 07:56:36 -07:00
|
|
|
|
* @ingroup Ecore_Wl2_Input_Group
|
2017-05-12 09:08:32 -07:00
|
|
|
|
* @since 1.20
|
|
|
|
|
*/
|
|
|
|
|
EAPI Eina_Bool ecore_wl2_input_keyboard_repeat_get(const Ecore_Wl2_Input *input, double *rate, double *delay);
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Get the Evas_Device for the seat belonging to a window from an input
|
|
|
|
|
* @param input The input
|
|
|
|
|
* @param window The window
|
|
|
|
|
* @return The device object
|
2017-06-07 07:56:36 -07:00
|
|
|
|
* @ingroup Ecore_Wl2_Input_Group
|
2017-05-12 09:08:32 -07:00
|
|
|
|
* @since 1.20
|
|
|
|
|
*/
|
|
|
|
|
EAPI Eo *ecore_wl2_input_seat_device_get(const Ecore_Wl2_Input *input, const Ecore_Wl2_Window *window);
|
2017-05-17 13:02:53 -07:00
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 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
|
|
|
|
|
*
|
2017-06-07 07:56:36 -07:00
|
|
|
|
* @ingroup Ecore_Wl2_Input_Group
|
2017-05-17 13:02:53 -07:00
|
|
|
|
* @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
|
|
|
|
|
* @param surface The surface to use as the pointer
|
|
|
|
|
* @param hot_x The x coordinate to use as the cursor hot spot
|
|
|
|
|
* @param hot_y The y coordinate to use as the cursor hot spot
|
|
|
|
|
*
|
2017-06-07 07:56:36 -07:00
|
|
|
|
* @ingroup Ecore_Wl2_Input_Group
|
2017-05-17 13:02:53 -07:00
|
|
|
|
* @since 1.20
|
|
|
|
|
*/
|
|
|
|
|
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
|
|
|
|
|
*
|
|
|
|
|
* @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
|
|
|
|
|
* the specified cursor
|
|
|
|
|
*
|
|
|
|
|
* @param input The seat to set the cursor on
|
|
|
|
|
* @param cursor The name of the cursor to try and set
|
|
|
|
|
*
|
2017-06-07 07:56:36 -07:00
|
|
|
|
* @ingroup Ecore_Wl2_Input_Group
|
2017-05-17 13:02:53 -07:00
|
|
|
|
* @since 1.20
|
|
|
|
|
*/
|
|
|
|
|
EAPI void ecore_wl2_input_cursor_from_name_set(Ecore_Wl2_Input *input, const char *cursor);
|
|
|
|
|
|
2015-10-13 11:24:56 -07:00
|
|
|
|
/**
|
2015-10-13 11:31:50 -07:00
|
|
|
|
* @defgroup Ecore_Wl2_Dnd_Group Wayland Library Drag-n-Drop Functions
|
2015-10-13 11:24:56 -07:00
|
|
|
|
* @ingroup Ecore_Wl2_Group
|
|
|
|
|
*
|
|
|
|
|
* Functions that deal with creating, destroying, or interacting with
|
|
|
|
|
* Wayland Drag-n-Drop
|
|
|
|
|
*/
|
|
|
|
|
|
2016-09-22 12:35:20 -07:00
|
|
|
|
/**
|
|
|
|
|
* Set the types which are supported by a possible drag and drop operation.
|
|
|
|
|
* This call initializes a data source and offeres the given mimetypes
|
|
|
|
|
*
|
|
|
|
|
* @param input the input where to add on the data source
|
|
|
|
|
*
|
|
|
|
|
* @param types a null-terminated array of mimetypes
|
|
|
|
|
*
|
2017-06-07 07:56:36 -07:00
|
|
|
|
* @ingroup Ecore_Wl2_Dnd_Group
|
2016-09-22 12:35:20 -07:00
|
|
|
|
* @since 1.17
|
|
|
|
|
*/
|
2015-09-29 08:36:35 -07:00
|
|
|
|
EAPI void ecore_wl2_dnd_drag_types_set(Ecore_Wl2_Input *input, const char **types);
|
|
|
|
|
|
2016-09-22 12:35:20 -07:00
|
|
|
|
/**
|
|
|
|
|
* Start a drag on the given input
|
|
|
|
|
*
|
|
|
|
|
* @param input the input to use
|
|
|
|
|
*
|
|
|
|
|
* @param window the window which is the origin of the drag operation
|
|
|
|
|
*
|
|
|
|
|
* @param drag_window the window which is used as window of the visible hint.
|
2017-05-12 09:08:32 -07:00
|
|
|
|
* @return The serial for the start_drag request
|
2016-09-22 12:35:20 -07:00
|
|
|
|
*
|
2017-06-07 07:56:36 -07:00
|
|
|
|
* @ingroup Ecore_Wl2_Dnd_Group
|
2016-09-22 12:35:20 -07:00
|
|
|
|
* @since 1.17
|
|
|
|
|
*/
|
2017-05-12 09:08:32 -07:00
|
|
|
|
EAPI uint32_t ecore_wl2_dnd_drag_start(Ecore_Wl2_Input *input, Ecore_Wl2_Window *window, Ecore_Wl2_Window *drag_window);
|
2015-09-29 08:49:57 -07:00
|
|
|
|
|
2017-05-12 09:08:32 -07:00
|
|
|
|
/**
|
|
|
|
|
* Call wl_data_source.set_actions on an existing source
|
|
|
|
|
*
|
|
|
|
|
* @param input the input to use
|
|
|
|
|
*
|
|
|
|
|
* @see ecore_wl2_dnd_drag_start for a more useful function.
|
|
|
|
|
*
|
2017-06-07 07:56:36 -07:00
|
|
|
|
* @ingroup Ecore_Wl2_Dnd_Group
|
2017-05-12 09:08:32 -07:00
|
|
|
|
* @since 1.20
|
|
|
|
|
*/
|
|
|
|
|
EAPI EAPI void ecore_wl2_dnd_set_actions(Ecore_Wl2_Input *input);
|
2017-06-07 07:56:36 -07:00
|
|
|
|
|
2016-09-22 12:35:20 -07:00
|
|
|
|
/**
|
|
|
|
|
* End a drag started by a call to ecore_wl2_dnd_drag_start
|
|
|
|
|
*
|
|
|
|
|
* @param input the input object on which the drag was started
|
|
|
|
|
*
|
2017-06-07 07:56:36 -07:00
|
|
|
|
* @ingroup Ecore_Wl2_Dnd_Group
|
2016-09-22 12:35:20 -07:00
|
|
|
|
* @since 1.17
|
|
|
|
|
*/
|
2015-09-29 08:55:13 -07:00
|
|
|
|
EAPI void ecore_wl2_dnd_drag_end(Ecore_Wl2_Input *input);
|
|
|
|
|
|
2016-09-22 12:35:20 -07:00
|
|
|
|
/**
|
|
|
|
|
* Get the offer which is currently resposible for the clipboard
|
|
|
|
|
*
|
|
|
|
|
* @param input the input object to use
|
|
|
|
|
*
|
2017-06-07 07:56:36 -07:00
|
|
|
|
* @ingroup Ecore_Wl2_Dnd_Group
|
2016-09-22 12:35:20 -07:00
|
|
|
|
* @since 1.19
|
|
|
|
|
*/
|
2016-09-22 00:13:48 -07:00
|
|
|
|
EAPI Ecore_Wl2_Offer* ecore_wl2_dnd_selection_get(Ecore_Wl2_Input *input);
|
2015-09-29 08:57:35 -07:00
|
|
|
|
|
2016-09-22 12:35:20 -07:00
|
|
|
|
/**
|
|
|
|
|
* 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
|
|
|
|
|
*
|
|
|
|
|
* @param input the input to provice this types on
|
|
|
|
|
*
|
|
|
|
|
* @param types a null-terminated array of mimetypes supported by the client
|
|
|
|
|
*
|
2017-05-12 09:08:32 -07:00
|
|
|
|
* @return serial of request on sucess, 0 on failure
|
2016-09-22 12:35:20 -07:00
|
|
|
|
*
|
2017-06-07 07:56:36 -07:00
|
|
|
|
* @ingroup Ecore_Wl2_Dnd_Group
|
2016-09-22 12:35:20 -07:00
|
|
|
|
* @since 1.17
|
|
|
|
|
*/
|
2017-05-12 09:08:32 -07:00
|
|
|
|
EAPI uint32_t ecore_wl2_dnd_selection_set(Ecore_Wl2_Input *input, const char **types);
|
2015-09-29 09:02:15 -07:00
|
|
|
|
|
2016-09-22 12:35:20 -07:00
|
|
|
|
/**
|
|
|
|
|
* Clear the selection currently setted on this input.
|
|
|
|
|
*
|
|
|
|
|
* @param input the input to clear
|
|
|
|
|
*
|
2017-05-12 09:08:32 -07:00
|
|
|
|
* @return serial of request on sucess, 0 on failure
|
2016-09-22 12:35:20 -07:00
|
|
|
|
*
|
2017-06-07 07:56:36 -07:00
|
|
|
|
* @ingroup Ecore_Wl2_Dnd_Group
|
2016-09-22 12:35:20 -07:00
|
|
|
|
* @since 1.17
|
|
|
|
|
*/
|
2017-05-12 09:08:32 -07:00
|
|
|
|
EAPI uint32_t ecore_wl2_dnd_selection_clear(Ecore_Wl2_Input *input);
|
2015-09-29 09:18:49 -07:00
|
|
|
|
|
2015-10-13 11:35:02 -07:00
|
|
|
|
/**
|
|
|
|
|
* @defgroup Ecore_Wl2_Subsurface_Group Functions to manipulate subsurfaces.
|
|
|
|
|
* @ingroup Ecore_Wl2_Group
|
|
|
|
|
*
|
|
|
|
|
* Functions to manipulate wayland subsurfaces, using Ecore_Wl2_Subsurface.
|
|
|
|
|
*
|
|
|
|
|
* This API is intended to expose Wayland subsurface functionality, although it
|
|
|
|
|
* should not be necessary for most applications to use it, as soon as we have
|
|
|
|
|
* means to make Evas automatically switch Evas images to use subsurfaces.
|
|
|
|
|
*
|
|
|
|
|
* It can/should be used, for instance, when subsurfaces are needed to be not
|
|
|
|
|
* in sync with the main window surface.
|
|
|
|
|
*/
|
|
|
|
|
|
2015-10-01 09:22:32 -07:00
|
|
|
|
/**
|
|
|
|
|
* Create and return a new subsurface.
|
|
|
|
|
*
|
|
|
|
|
* Create a new surface (and subsurface interface), with the parent surface
|
|
|
|
|
* being the one associated with the given @param win.
|
|
|
|
|
*
|
|
|
|
|
* The @param win must be visible, otherwise there will be no surface created
|
|
|
|
|
* for it yet.
|
|
|
|
|
*
|
|
|
|
|
* @return the allocated and initialized Ecore_Wl2_Subsurface object, or
|
|
|
|
|
* NULL on failure
|
|
|
|
|
*
|
|
|
|
|
* @ingroup Ecore_Wl2_Subsurface_Group
|
2015-11-10 08:04:24 -08:00
|
|
|
|
* @since 1.17
|
2015-10-01 09:22:32 -07:00
|
|
|
|
*/
|
|
|
|
|
EAPI Ecore_Wl2_Subsurface *ecore_wl2_subsurface_new(Ecore_Wl2_Window *window);
|
|
|
|
|
|
2015-10-06 07:11:23 -07:00
|
|
|
|
/**
|
|
|
|
|
* Destroy the given subsurface, as well as the surface associated with it.
|
|
|
|
|
*
|
2015-10-06 07:14:06 -07:00
|
|
|
|
* @param subsurface the subsurface
|
2015-10-06 07:11:23 -07:00
|
|
|
|
*
|
|
|
|
|
* @ingroup Ecore_Wl2_Subsurface_Group
|
2015-11-10 08:04:24 -08:00
|
|
|
|
* @since 1.17
|
2015-10-06 07:11:23 -07:00
|
|
|
|
*/
|
|
|
|
|
EAPI void ecore_wl2_subsurface_del(Ecore_Wl2_Subsurface *subsurface);
|
|
|
|
|
|
2015-10-06 07:14:06 -07:00
|
|
|
|
/**
|
|
|
|
|
* Get the wl_surface for this subsurface
|
|
|
|
|
*
|
|
|
|
|
* @param subsurface the subsurface
|
|
|
|
|
*
|
|
|
|
|
* @return the wl_surface associated with this subsurface, or NULL on failure
|
|
|
|
|
*
|
|
|
|
|
* @ingroup Ecore_Wl2_Subsurface_Group
|
2015-11-10 08:04:24 -08:00
|
|
|
|
* @since 1.17
|
2015-10-06 07:14:06 -07:00
|
|
|
|
*/
|
|
|
|
|
EAPI struct wl_surface *ecore_wl2_subsurface_surface_get(Ecore_Wl2_Subsurface *subsurface);
|
|
|
|
|
|
2015-10-06 07:17:25 -07:00
|
|
|
|
/**
|
|
|
|
|
* Set the position of this subsurface, relative to its parent surface.
|
|
|
|
|
* If subsurface is defined and the x, y coordinates differ from the currently
|
|
|
|
|
* tracked position, this also schedules a sub-surface position change.
|
|
|
|
|
*
|
|
|
|
|
* @param subsurface the subsurface
|
|
|
|
|
* @param x coordinate in the parent surface
|
|
|
|
|
* @param y coordinate in the parent surface
|
|
|
|
|
*
|
|
|
|
|
* @ingroup Ecore_Wl2_Subsurface_Group
|
2015-11-10 08:04:24 -08:00
|
|
|
|
* @since 1.17
|
2015-10-06 07:17:25 -07:00
|
|
|
|
*/
|
|
|
|
|
EAPI void ecore_wl2_subsurface_position_set(Ecore_Wl2_Subsurface *subsurface, int x, int y);
|
|
|
|
|
|
2015-10-06 07:19:05 -07:00
|
|
|
|
/**
|
|
|
|
|
* Get the position of this subsurface, relative to its parent surface.
|
|
|
|
|
* Coordinates will be returned in x and y if non-NULL.
|
|
|
|
|
*
|
|
|
|
|
* @param subsurface the subsurface
|
|
|
|
|
* @param x coordinate in the parent surface, or NULL to ignore
|
|
|
|
|
* @param y coordinate in the parent surface, or NULL to ignore
|
|
|
|
|
*
|
|
|
|
|
* @ingroup Ecore_Wl2_Subsurface_Group
|
2015-11-10 08:04:24 -08:00
|
|
|
|
* @since 1.17
|
2015-10-06 07:19:05 -07:00
|
|
|
|
*/
|
|
|
|
|
EAPI void ecore_wl2_subsurface_position_get(Ecore_Wl2_Subsurface *subsurface, int *x, int *y);
|
|
|
|
|
|
2015-10-06 07:21:51 -07:00
|
|
|
|
/**
|
|
|
|
|
* Place subsurface on layer above a reference surface
|
|
|
|
|
*
|
|
|
|
|
* Moves the @param subsurface to just above the reference @param
|
|
|
|
|
* surface, changing the z-order. The reference @param surface must
|
|
|
|
|
* be either a sibling or parent surface, else a protocol error will
|
|
|
|
|
* be generated.
|
|
|
|
|
*
|
|
|
|
|
* @param subsurface the subsurface
|
|
|
|
|
* @param surface the sibling reference surface
|
|
|
|
|
*
|
|
|
|
|
* @ingroup Ecore_Wl2_Subsurface_Group
|
2015-11-10 08:04:24 -08:00
|
|
|
|
* @since 1.17
|
2015-10-06 07:21:51 -07:00
|
|
|
|
*/
|
|
|
|
|
EAPI void ecore_wl2_subsurface_place_above(Ecore_Wl2_Subsurface *subsurface, struct wl_surface *surface);
|
|
|
|
|
|
2015-10-06 07:23:29 -07:00
|
|
|
|
/**
|
|
|
|
|
* Place subsurface on layer below a reference surface
|
|
|
|
|
*
|
|
|
|
|
* See ecore_wl2_subsurface_place_above.
|
|
|
|
|
*
|
|
|
|
|
* @param subsurface the subsurface
|
|
|
|
|
* @param surface the sibling reference surface
|
|
|
|
|
*
|
|
|
|
|
* @ingroup Ecore_Wl2_Subsurface_Group
|
2015-11-10 08:04:24 -08:00
|
|
|
|
* @since 1.17
|
2015-10-06 07:23:29 -07:00
|
|
|
|
*/
|
|
|
|
|
EAPI void ecore_wl2_subsurface_place_below(Ecore_Wl2_Subsurface *subsurface, struct wl_surface *surface);
|
|
|
|
|
|
2015-10-06 07:31:25 -07:00
|
|
|
|
/**
|
|
|
|
|
* Enables or disables sub-surface synchronization
|
|
|
|
|
*
|
|
|
|
|
* When synchronization is enabled, surface commits on the subsurface
|
|
|
|
|
* will be cached and only applied when the parent surface's state is
|
|
|
|
|
* applied. This ensures atomic updates of the parent and all of its
|
|
|
|
|
* synchronized sub-surfaces.
|
|
|
|
|
*
|
|
|
|
|
* When synchronization is disabled, commits will apply to the pending
|
|
|
|
|
* state directly without caching, just like a normal wl_surface. If
|
|
|
|
|
* there are already cached events when this is set, those events are
|
|
|
|
|
* applied simultaneously with the desync event.
|
|
|
|
|
*
|
|
|
|
|
* Attempting to enable synchronization when the subsurface already
|
|
|
|
|
* thinks it's sync'd, or desync when it believes its desync'd, will
|
|
|
|
|
* be trivially ignored and will not generate a Wayland event.
|
|
|
|
|
*
|
|
|
|
|
* See Wayland's set_desync documentation for further details and
|
|
|
|
|
* exceptional cases.
|
|
|
|
|
*
|
|
|
|
|
* @param subsurface the subsurface
|
|
|
|
|
* @param sync true to enable synchronization, false to desynchronize
|
|
|
|
|
*
|
|
|
|
|
* @ingroup Ecore_Wl2_Subsurface_Group
|
2015-11-10 08:04:24 -08:00
|
|
|
|
* @since 1.17
|
2015-10-06 07:31:25 -07:00
|
|
|
|
*/
|
|
|
|
|
EAPI void ecore_wl2_subsurface_sync_set(Ecore_Wl2_Subsurface *subsurface, Eina_Bool sync);
|
|
|
|
|
|
2015-10-06 07:36:35 -07:00
|
|
|
|
/**
|
|
|
|
|
* Set an opaque region for the given subsurface.
|
|
|
|
|
*
|
|
|
|
|
* This is an optimization hint to the compositor to allow it avoid
|
|
|
|
|
* redrawing content unnecessarily. Note that marking transparent
|
|
|
|
|
* content as opaque will cause repaint artifacts.
|
|
|
|
|
*
|
|
|
|
|
* Use a 0x0 region size to unset the opaque region.
|
|
|
|
|
*
|
|
|
|
|
* @param subsurface the subsurface
|
|
|
|
|
* @param x coordinate in the parent surface
|
|
|
|
|
* @param y coordinate in the parent surface
|
|
|
|
|
* @param w width to set as opaque
|
|
|
|
|
* @param h height to set as opaque
|
|
|
|
|
*
|
|
|
|
|
* @ingroup Ecore_Wl2_Subsurface_Group
|
2015-11-10 08:04:24 -08:00
|
|
|
|
* @since 1.17
|
2015-10-06 07:36:35 -07:00
|
|
|
|
*/
|
|
|
|
|
EAPI void ecore_wl2_subsurface_opaque_region_set(Ecore_Wl2_Subsurface *subsurface, int x, int y, int w, int h);
|
|
|
|
|
|
2015-10-13 11:24:56 -07:00
|
|
|
|
/**
|
|
|
|
|
* @defgroup Ecore_Wl2_Output_Group Wayland Library Output Functions
|
|
|
|
|
* @ingroup Ecore_Wl2_Group
|
|
|
|
|
*
|
|
|
|
|
* Functions that deal with creating, destroying, or interacting with
|
|
|
|
|
* Wayland Outputs
|
|
|
|
|
*/
|
|
|
|
|
|
2015-10-13 11:22:06 -07:00
|
|
|
|
/**
|
|
|
|
|
* Return the DPI of a given output
|
|
|
|
|
*
|
|
|
|
|
* This is a simplistic call to get DPI. It does not account for differing
|
|
|
|
|
* DPI in the x and y axes nor does it account for multihead or xinerama and
|
|
|
|
|
* xrandr where different parts of the screen may have different DPI etc.
|
|
|
|
|
*
|
|
|
|
|
* @param output The output to get the DPI of
|
|
|
|
|
*
|
|
|
|
|
* @return the general screen DPI (dots/pixels per inch).
|
|
|
|
|
*
|
|
|
|
|
* @ingroup Ecore_Wl2_Output_Group
|
2015-11-10 08:04:24 -08:00
|
|
|
|
* @since 1.17
|
2015-10-13 11:22:06 -07:00
|
|
|
|
*/
|
|
|
|
|
EAPI int ecore_wl2_output_dpi_get(Ecore_Wl2_Output *output);
|
|
|
|
|
|
2017-06-07 07:59:02 -07:00
|
|
|
|
/**
|
|
|
|
|
* Get the current transform of a given output
|
|
|
|
|
*
|
|
|
|
|
* @param output The output to get the transform of
|
|
|
|
|
*
|
|
|
|
|
* @return The output's current transform value
|
|
|
|
|
* @ingroup Ecore_Wl2_Output_Group
|
|
|
|
|
* @since 1.20
|
|
|
|
|
*/
|
|
|
|
|
EAPI int ecore_wl2_output_transform_get(Ecore_Wl2_Output *output);
|
|
|
|
|
|
2015-12-28 06:09:04 -08:00
|
|
|
|
/**
|
|
|
|
|
* Return the version of the display's compositor object
|
|
|
|
|
*
|
|
|
|
|
* @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);
|
|
|
|
|
|
2016-01-06 06:08:13 -08:00
|
|
|
|
/** @since 1.17 */
|
2015-12-05 10:05:15 -08:00
|
|
|
|
EAPI Ecore_Wl2_Display *ecore_wl2_window_display_get(const Ecore_Wl2_Window *window);
|
|
|
|
|
|
2016-09-22 00:13:48 -07:00
|
|
|
|
/**
|
|
|
|
|
* Get the actions available from the data source
|
|
|
|
|
*
|
|
|
|
|
* @param offer Offer object to use
|
|
|
|
|
*
|
|
|
|
|
* @return or´ed values from Ecore_Wl2_Drag_Action which are describing the available actions
|
2017-06-07 07:56:36 -07:00
|
|
|
|
* @ingroup Ecore_Wl2_Dnd_Group
|
2016-09-22 00:13:48 -07:00
|
|
|
|
* @since 1.19
|
|
|
|
|
*/
|
|
|
|
|
EAPI Ecore_Wl2_Drag_Action ecore_wl2_offer_actions_get(Ecore_Wl2_Offer *offer);
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Set the actions which are supported by you
|
|
|
|
|
*
|
|
|
|
|
* @param offer Offer object to use
|
|
|
|
|
* @param actions A or´ed value of mutliple Ecore_Wl2_Drag_Action values
|
|
|
|
|
* @param action the preffered action out of the actions
|
|
|
|
|
*
|
2017-06-07 07:56:36 -07:00
|
|
|
|
* @ingroup Ecore_Wl2_Dnd_Group
|
2016-09-22 00:13:48 -07:00
|
|
|
|
* @since 1.19
|
|
|
|
|
*/
|
|
|
|
|
EAPI void ecore_wl2_offer_actions_set(Ecore_Wl2_Offer *offer, Ecore_Wl2_Drag_Action actions, Ecore_Wl2_Drag_Action action);
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Get action which is set by either the data source or in the last call of actions_set
|
|
|
|
|
*
|
|
|
|
|
* @param offer Offer object to use
|
|
|
|
|
*
|
|
|
|
|
* @return the prefered action
|
|
|
|
|
*
|
2017-06-07 07:56:36 -07:00
|
|
|
|
* @ingroup Ecore_Wl2_Dnd_Group
|
2016-09-22 00:13:48 -07:00
|
|
|
|
* @since 1.19
|
|
|
|
|
*/
|
|
|
|
|
EAPI Ecore_Wl2_Drag_Action ecore_wl2_offer_action_get(Ecore_Wl2_Offer *offer);
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Get the mime types which are given by the source
|
|
|
|
|
*
|
|
|
|
|
* @param offer the offer to query
|
|
|
|
|
*
|
|
|
|
|
* @return a eina array of strdup´ed strings, this array must NOT be changed or freed
|
2017-06-07 07:56:36 -07:00
|
|
|
|
*
|
|
|
|
|
* @ingroup Ecore_Wl2_Dnd_Group
|
2016-09-22 00:13:48 -07:00
|
|
|
|
*/
|
|
|
|
|
EAPI Eina_Array* ecore_wl2_offer_mimes_get(Ecore_Wl2_Offer *offer);
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Set mimetypes you are accepting under this offer
|
|
|
|
|
*
|
|
|
|
|
* @param offer the offer to use
|
|
|
|
|
*
|
2017-06-07 07:56:36 -07:00
|
|
|
|
* @ingroup Ecore_Wl2_Dnd_Group
|
2016-09-22 00:13:48 -07:00
|
|
|
|
* @since 1.19
|
|
|
|
|
*/
|
|
|
|
|
EAPI void ecore_wl2_offer_mimes_set(Ecore_Wl2_Offer *offer, Eina_Array *mimes);
|
|
|
|
|
|
2017-05-12 09:08:32 -07:00
|
|
|
|
/**
|
|
|
|
|
* Accept a single mime type for an offer
|
|
|
|
|
*
|
|
|
|
|
* @param offer the offer to use
|
|
|
|
|
* @param mime_type the mime type
|
|
|
|
|
*
|
2017-06-07 07:56:36 -07:00
|
|
|
|
* @ingroup Ecore_Wl2_Dnd_Group
|
2017-05-12 09:08:32 -07:00
|
|
|
|
* @since 1.20
|
|
|
|
|
*/
|
|
|
|
|
EAPI void ecore_wl2_offer_accept(Ecore_Wl2_Offer *offer, const char *mime_type);
|
|
|
|
|
|
2016-09-22 00:13:48 -07:00
|
|
|
|
/**
|
|
|
|
|
* Request the data from this offer.
|
|
|
|
|
* The event ECORE_WL2_EVENT_OFFER_DATA_READY is called when the data is available.
|
|
|
|
|
* There offer will be not destroyed as long as requested data is not emitted by the event.
|
|
|
|
|
*
|
|
|
|
|
* @param offer the offer to use
|
|
|
|
|
* @param mime the mimetype to receive
|
|
|
|
|
*
|
2017-06-07 07:56:36 -07:00
|
|
|
|
* @ingroup Ecore_Wl2_Dnd_Group
|
2016-09-22 00:13:48 -07:00
|
|
|
|
* @since 1.19
|
|
|
|
|
*/
|
2016-09-26 02:41:12 -07:00
|
|
|
|
EAPI void ecore_wl2_offer_receive(Ecore_Wl2_Offer *offer, char *mime);
|
2016-09-22 00:13:48 -07:00
|
|
|
|
|
2017-05-12 09:08:32 -07:00
|
|
|
|
/**
|
|
|
|
|
* Request the data from this offer on an externally managed fd.
|
|
|
|
|
* The event ECORE_WL2_EVENT_OFFER_DATA_READY is called when the data is available.
|
|
|
|
|
* There offer will be not destroyed as long as requested data is not emitted by the event.
|
|
|
|
|
*
|
|
|
|
|
* @param offer the offer to use
|
|
|
|
|
* @param mime the mimetype to receive
|
|
|
|
|
* @param fd the fd to pass for receiving
|
|
|
|
|
*
|
2017-06-07 07:56:36 -07:00
|
|
|
|
* @ingroup Ecore_Wl2_Dnd_Group
|
2017-05-12 09:08:32 -07:00
|
|
|
|
* @since 1.20
|
|
|
|
|
*/
|
|
|
|
|
EAPI void ecore_wl2_offer_proxy_receive(Ecore_Wl2_Offer *offer, const char *mime, int fd);
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* End the use of a proxy received offer. This may invalidate the offer object
|
|
|
|
|
*
|
|
|
|
|
* @param offer the offer
|
|
|
|
|
*
|
2017-06-07 07:56:36 -07:00
|
|
|
|
* @ingroup Ecore_Wl2_Dnd_Group
|
2017-05-12 09:08:32 -07:00
|
|
|
|
* @since 1.20
|
|
|
|
|
*/
|
|
|
|
|
EAPI void ecore_wl2_offer_proxy_receive_end(Ecore_Wl2_Offer *offer);
|
|
|
|
|
|
2016-09-22 00:13:48 -07:00
|
|
|
|
/**
|
|
|
|
|
* Check if the given offer supports the given mimetype
|
|
|
|
|
*
|
|
|
|
|
* @param offer the offer to use
|
|
|
|
|
* @param mime the mimetype to check
|
|
|
|
|
*
|
|
|
|
|
* @return Returns true if the mimetype is supported by this offer, false if not
|
|
|
|
|
*
|
2017-06-07 07:56:36 -07:00
|
|
|
|
* @ingroup Ecore_Wl2_Dnd_Group
|
2016-09-22 00:13:48 -07:00
|
|
|
|
* @since 1.19
|
|
|
|
|
*/
|
2016-10-17 07:43:27 -07:00
|
|
|
|
EAPI Eina_Bool ecore_wl2_offer_supports_mime(Ecore_Wl2_Offer *offer, const char *mime);
|
2016-09-22 00:13:48 -07:00
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Mark this offer as finished
|
|
|
|
|
* This will call the dnd_finished event on the source of the sender.
|
|
|
|
|
*
|
|
|
|
|
* @param offer the offer to use
|
|
|
|
|
*
|
2017-06-07 07:56:36 -07:00
|
|
|
|
* @ingroup Ecore_Wl2_Dnd_Group
|
2016-09-22 00:13:48 -07:00
|
|
|
|
* @since 1.19
|
|
|
|
|
*/
|
|
|
|
|
EAPI void ecore_wl2_offer_finish(Ecore_Wl2_Offer *offer);
|
|
|
|
|
|
2016-10-14 14:01:54 -07:00
|
|
|
|
/**
|
|
|
|
|
* Check if a window has a shell surface - without one it can't be visible.
|
|
|
|
|
*
|
|
|
|
|
* @param The window to check
|
|
|
|
|
*
|
|
|
|
|
* @return Returns true if the window has an associated shell surface.
|
2017-06-07 07:56:36 -07:00
|
|
|
|
*
|
|
|
|
|
* @ingroup Ecore_Wl2_Window_Group
|
2016-10-14 14:01:54 -07:00
|
|
|
|
* @since 1.19
|
|
|
|
|
*/
|
2017-03-09 09:05:28 -08:00
|
|
|
|
EAPI Eina_Bool ecore_wl2_window_shell_surface_exists(Ecore_Wl2_Window *win);
|
2015-08-18 06:50:28 -07:00
|
|
|
|
|
2016-10-25 12:07:09 -07:00
|
|
|
|
/**
|
|
|
|
|
* Disable session recovery for any further connections. Must be called
|
|
|
|
|
* before connecting. This is irreversible and not intended for general
|
|
|
|
|
* use.
|
|
|
|
|
*
|
|
|
|
|
* @since 1.19
|
|
|
|
|
*/
|
|
|
|
|
EAPI void ecore_wl2_session_recovery_disable(void);
|
|
|
|
|
|
2017-05-17 13:02:53 -07:00
|
|
|
|
/**
|
|
|
|
|
* @brief Get the activated state of a window
|
|
|
|
|
* @param window The window
|
|
|
|
|
* @return @c EINA_TRUE if activated
|
|
|
|
|
*
|
2017-06-07 07:56:36 -07:00
|
|
|
|
* @ingroup Ecore_Wl2_Window_Group
|
2017-05-17 13:02:53 -07:00
|
|
|
|
* @since 1.20
|
|
|
|
|
*/
|
|
|
|
|
EAPI Eina_Bool ecore_wl2_window_activated_get(const Ecore_Wl2_Window *window);
|
2017-05-17 13:02:53 -07:00
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @brief Set the seat for a popup window to be used with grab
|
|
|
|
|
* @param window The window
|
|
|
|
|
* @param input The seat
|
|
|
|
|
*
|
|
|
|
|
* Use this function for desktop shell requests involving popup grabs which require
|
|
|
|
|
* a seat for the grab.
|
|
|
|
|
*
|
2017-06-07 07:56:36 -07:00
|
|
|
|
* @ingroup Ecore_Wl2_Window_Group
|
2017-05-17 13:02:53 -07:00
|
|
|
|
* @since 1.20
|
|
|
|
|
*/
|
|
|
|
|
EAPI void ecore_wl2_window_popup_input_set(Ecore_Wl2_Window *window, Ecore_Wl2_Input *input);
|
2017-06-07 07:56:36 -07:00
|
|
|
|
|
2016-01-06 09:16:33 -08:00
|
|
|
|
# endif
|
|
|
|
|
|
2015-08-18 06:50:28 -07:00
|
|
|
|
# undef EAPI
|
|
|
|
|
# define EAPI
|
|
|
|
|
|
2017-06-07 07:56:36 -07:00
|
|
|
|
/* # ifdef __cplusplus */
|
|
|
|
|
/* } */
|
|
|
|
|
/* # endif */
|
|
|
|
|
|
2015-08-18 06:50:28 -07:00
|
|
|
|
#endif
|