66 lines
1.2 KiB
C
66 lines
1.2 KiB
C
#ifdef E_TYPEDEFS
|
|
|
|
typedef enum _E_Shell_Surface_Type E_Shell_Surface_Type;
|
|
typedef struct _E_Shell_Surface E_Shell_Surface;
|
|
|
|
#else
|
|
# ifndef E_SHELL_SURFACE_H
|
|
# define E_SHELL_SURFACE_H
|
|
|
|
enum _E_Shell_Surface_Type
|
|
{
|
|
E_SHELL_SURFACE_TYPE_NONE,
|
|
E_SHELL_SURFACE_TYPE_TOPLEVEL,
|
|
E_SHELL_SURFACE_TYPE_TRANSIENT,
|
|
E_SHELL_SURFACE_TYPE_FULLSCREEN,
|
|
E_SHELL_SURFACE_TYPE_MAXIMIZED,
|
|
E_SHELL_SURFACE_TYPE_POPUP
|
|
};
|
|
|
|
struct _E_Shell_Surface
|
|
{
|
|
struct
|
|
{
|
|
struct wl_resource resource;
|
|
struct wl_listener surface_destroy;
|
|
struct wl_list link;
|
|
} wl;
|
|
|
|
struct
|
|
{
|
|
Evas_Coord x, y, w, h;
|
|
Eina_Bool valid : 1;
|
|
} saved;
|
|
|
|
struct
|
|
{
|
|
struct wl_list grabs;
|
|
// struct wl_pointer_grab *grab;
|
|
struct wl_seat *seat;
|
|
struct wl_listener parent_destroy;
|
|
Evas_Coord x, y;
|
|
Eina_Bool up : 1;
|
|
unsigned int serial;
|
|
} popup;
|
|
|
|
struct
|
|
{
|
|
Evas_Coord x, y;
|
|
unsigned int flags;
|
|
} transient;
|
|
|
|
E_Surface *surface, *parent;
|
|
E_Shell_Surface_Type type, ntype;
|
|
|
|
char *title, *clas;
|
|
|
|
Eina_Bool active : 1;
|
|
|
|
void *ping_timer;
|
|
};
|
|
|
|
EAPI E_Shell_Surface *e_shell_surface_new(E_Surface *surface, unsigned int id);
|
|
|
|
# endif
|
|
#endif
|