enlightenment/src/bin/e_container.h

82 lines
3.0 KiB
C

#ifndef E_CONTAINER_H
#define E_CONTAINER_H
typedef enum _E_Container_Shape_Change
{
E_CONTAINER_SHAPE_ADD,
E_CONTAINER_SHAPE_DEL,
E_CONTAINER_SHAPE_SHOW,
E_CONTAINER_SHAPE_HIDE,
E_CONTAINER_SHAPE_MOVE,
E_CONTAINER_SHAPE_RESIZE,
E_CONTAINER_SHAPE_RECTS
} E_Container_Shape_Change;
typedef struct _E_Container E_Container;
typedef struct _E_Container_Shape E_Container_Shape;
typedef struct _E_Container_Shape_Callback E_Container_Shape_Callback;
struct _E_Container
{
E_Object e_obj_inherit;
Ecore_X_Window win;
int x, y, w, h;
char visible : 1;
E_Manager *manager;
Ecore_Evas *bg_ecore_evas;
Evas *bg_evas;
Ecore_X_Window bg_win;
Evas_Object *bg_blank_object;
Evas_Object *bg_object;
Evas_Object *bg_event_object;
Evas_List *shapes;
Evas_List *shape_change_cb;
Evas_List *clients;
};
struct _E_Container_Shape
{
E_Object e_obj_inherit;
E_Container *con;
int x, y, w, h;
unsigned char visible : 1;
Evas_List *shape;
};
struct _E_Container_Shape_Callback
{
void (*func) (void *data, E_Container_Shape *es, E_Container_Shape_Change ch);
void *data;
};
EAPI int e_container_init(void);
EAPI int e_container_shutdown(void);
EAPI E_Container *e_container_new(E_Manager *man);
EAPI void e_container_show(E_Container *con);
EAPI void e_container_hide(E_Container *con);
EAPI void e_container_move(E_Container *con, int x, int y);
EAPI void e_container_resize(E_Container *con, int w, int h);
EAPI void e_container_move_resize(E_Container *con, int x, int y, int w, int h);
EAPI void e_container_raise(E_Container *con);
EAPI void e_container_lower(E_Container *con);
EAPI void e_container_bg_reconfigure(E_Container *con);
EAPI E_Container_Shape *e_container_shape_add(E_Container *con);
EAPI void e_container_shape_show(E_Container_Shape *es);
EAPI void e_container_shape_hide(E_Container_Shape *es);
EAPI void e_container_shape_move(E_Container_Shape *es, int x, int y);
EAPI void e_container_shape_resize(E_Container_Shape *es, int w, int h);
EAPI Evas_List *e_container_shape_list_get(E_Container *con);
EAPI void e_container_shape_geometry_get(E_Container_Shape *es, int *x, int *y, int *w, int *h);
EAPI E_Container *e_container_shape_container_get(E_Container_Shape *es);
EAPI void e_container_shape_change_callback_add(E_Container *con, void (*func) (void *data, E_Container_Shape *es, E_Container_Shape_Change ch), void *data);
EAPI void e_container_shape_change_callback_del(E_Container *con, void (*func) (void *data, E_Container_Shape *es, E_Container_Shape_Change ch), void *data);
EAPI Evas_List *e_container_shape_rects_get(E_Container_Shape *es);
#endif