2005-01-12 08:03:09 -08:00
|
|
|
#ifdef E_TYPEDEFS
|
2004-11-24 19:37:45 -08:00
|
|
|
|
|
|
|
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;
|
2005-05-13 03:09:55 -07:00
|
|
|
typedef struct _E_Border_List E_Border_List;
|
2004-11-24 19:37:45 -08:00
|
|
|
typedef struct _E_Container_Shape E_Container_Shape;
|
|
|
|
typedef struct _E_Container_Shape_Callback E_Container_Shape_Callback;
|
2004-12-25 07:33:48 -08:00
|
|
|
typedef struct _E_Event_Container_Resize E_Event_Container_Resize;
|
2004-11-24 19:37:45 -08:00
|
|
|
|
2005-01-12 08:03:09 -08:00
|
|
|
#else
|
|
|
|
#ifndef E_CONTAINER_H
|
|
|
|
#define E_CONTAINER_H
|
|
|
|
|
2010-06-24 09:19:12 -07:00
|
|
|
#define E_CONTAINER_TYPE (int) 0xE0b01003
|
|
|
|
#define E_CONTAINER_SHAPE_TYPE (int) 0xE0b01004
|
2005-01-21 22:58:34 -08:00
|
|
|
|
2004-11-24 19:37:45 -08:00
|
|
|
struct _E_Container
|
|
|
|
{
|
|
|
|
E_Object e_obj_inherit;
|
|
|
|
|
|
|
|
Ecore_X_Window win;
|
|
|
|
int x, y, w, h;
|
|
|
|
char visible : 1;
|
|
|
|
E_Manager *manager;
|
|
|
|
|
2005-05-12 06:13:53 -07:00
|
|
|
unsigned int num;
|
2006-03-02 04:03:48 -08:00
|
|
|
const char *name;
|
2005-01-05 00:30:25 -08:00
|
|
|
|
2004-11-24 19:37:45 -08:00
|
|
|
Ecore_Evas *bg_ecore_evas;
|
|
|
|
Evas *bg_evas;
|
2005-01-03 17:51:27 -08:00
|
|
|
Evas_Object *bg_blank_object;
|
2004-11-24 19:37:45 -08:00
|
|
|
Ecore_X_Window bg_win;
|
2005-07-30 23:22:31 -07:00
|
|
|
Ecore_X_Window event_win;
|
2004-11-24 19:37:45 -08:00
|
|
|
|
2008-10-22 04:49:33 -07:00
|
|
|
Eina_List *shapes;
|
|
|
|
Eina_List *shape_change_cb;
|
|
|
|
Eina_List *zones;
|
2005-04-28 02:55:41 -07:00
|
|
|
|
2006-08-07 18:34:49 -07:00
|
|
|
unsigned int clients;
|
2005-05-13 00:20:09 -07:00
|
|
|
struct {
|
2005-06-30 03:43:21 -07:00
|
|
|
Ecore_X_Window win;
|
2008-10-22 04:49:33 -07:00
|
|
|
Eina_List *clients;
|
2005-05-13 00:20:09 -07:00
|
|
|
} layers[7];
|
2004-11-24 19:37:45 -08:00
|
|
|
};
|
|
|
|
|
2005-05-13 03:09:55 -07:00
|
|
|
struct _E_Border_List
|
|
|
|
{
|
|
|
|
E_Container *container;
|
|
|
|
int layer;
|
2008-10-22 04:49:33 -07:00
|
|
|
Eina_List *clients;
|
2005-05-13 03:09:55 -07:00
|
|
|
};
|
|
|
|
|
2004-11-24 19:37:45 -08:00
|
|
|
struct _E_Container_Shape
|
|
|
|
{
|
|
|
|
E_Object e_obj_inherit;
|
|
|
|
|
|
|
|
E_Container *con;
|
|
|
|
int x, y, w, h;
|
|
|
|
unsigned char visible : 1;
|
2005-04-13 08:52:34 -07:00
|
|
|
struct {
|
|
|
|
int x, y, w, h;
|
|
|
|
} solid_rect;
|
2008-10-22 04:49:33 -07:00
|
|
|
Eina_List *shape;
|
2004-11-24 19:37:45 -08:00
|
|
|
};
|
|
|
|
|
|
|
|
struct _E_Container_Shape_Callback
|
|
|
|
{
|
|
|
|
void (*func) (void *data, E_Container_Shape *es, E_Container_Shape_Change ch);
|
|
|
|
void *data;
|
|
|
|
};
|
|
|
|
|
2004-12-25 07:33:48 -08:00
|
|
|
struct _E_Event_Container_Resize
|
|
|
|
{
|
|
|
|
E_Container *container;
|
|
|
|
};
|
|
|
|
|
2004-11-24 21:31:21 -08:00
|
|
|
EAPI int e_container_init(void);
|
|
|
|
EAPI int e_container_shutdown(void);
|
2004-11-24 19:37:45 -08:00
|
|
|
|
2004-11-24 21:31:21 -08:00
|
|
|
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);
|
2005-01-05 00:30:25 -08:00
|
|
|
EAPI E_Container *e_container_current_get(E_Manager *man);
|
2005-08-25 06:41:26 -07:00
|
|
|
EAPI E_Container *e_container_number_get(E_Manager *man, int num);
|
2004-11-24 21:31:21 -08:00
|
|
|
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);
|
2004-11-24 19:37:45 -08:00
|
|
|
|
2005-05-13 03:09:55 -07:00
|
|
|
EAPI E_Border_List *e_container_border_list_first(E_Container *con);
|
|
|
|
EAPI E_Border_List *e_container_border_list_last(E_Container *con);
|
|
|
|
EAPI E_Border *e_container_border_list_next(E_Border_List *list);
|
|
|
|
EAPI E_Border *e_container_border_list_prev(E_Border_List *list);
|
|
|
|
EAPI void e_container_border_list_free(E_Border_List *list);
|
|
|
|
|
2005-01-19 07:39:36 -08:00
|
|
|
EAPI E_Zone *e_container_zone_at_point_get(E_Container *con, int x, int y);
|
2005-01-21 07:45:56 -08:00
|
|
|
EAPI E_Zone *e_container_zone_number_get(E_Container *con, int num);
|
2007-10-17 04:06:59 -07:00
|
|
|
EAPI E_Zone *e_container_zone_id_get(E_Container *con, int id);
|
2005-02-13 02:44:02 -08:00
|
|
|
|
2004-11-24 21:31:21 -08:00
|
|
|
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);
|
2008-10-22 04:49:33 -07:00
|
|
|
EAPI Eina_List *e_container_shape_list_get(E_Container *con);
|
2004-11-24 21:31:21 -08:00
|
|
|
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);
|
2008-10-22 04:49:33 -07:00
|
|
|
EAPI Eina_List *e_container_shape_rects_get(E_Container_Shape *es);
|
2005-04-13 08:52:34 -07:00
|
|
|
EAPI void e_container_shape_rects_set(E_Container_Shape *es, Ecore_X_Rectangle *rects, int num);
|
|
|
|
EAPI void e_container_shape_solid_rect_set(E_Container_Shape *es, int x, int y, int w, int h);
|
|
|
|
EAPI void e_container_shape_solid_rect_get(E_Container_Shape *es, int *x, int *y, int *w, int *h);
|
2004-11-24 19:37:45 -08:00
|
|
|
|
2005-05-13 06:34:21 -07:00
|
|
|
EAPI int e_container_borders_count(E_Container *con);
|
|
|
|
EAPI void e_container_border_add(E_Border *bd);
|
|
|
|
EAPI void e_container_border_remove(E_Border *bd);
|
2009-12-28 10:01:39 -08:00
|
|
|
EAPI void e_container_window_raise(E_Container *con, Ecore_X_Window win, int layer);
|
|
|
|
EAPI void e_container_window_lower(E_Container *con, Ecore_X_Window win, int layer);
|
2005-08-29 16:43:58 -07:00
|
|
|
EAPI E_Border *e_container_border_raise(E_Border *bd);
|
|
|
|
EAPI E_Border *e_container_border_lower(E_Border *bd);
|
2005-05-13 06:34:21 -07:00
|
|
|
EAPI void e_container_border_stack_above(E_Border *bd, E_Border *above);
|
|
|
|
EAPI void e_container_border_stack_below(E_Border *bd, E_Border *below);
|
2005-04-28 02:55:41 -07:00
|
|
|
|
2005-05-26 08:30:10 -07:00
|
|
|
EAPI void e_container_all_freeze(void);
|
|
|
|
EAPI void e_container_all_thaw(void);
|
2005-07-30 23:22:31 -07:00
|
|
|
|
2004-12-25 07:33:48 -08:00
|
|
|
extern EAPI int E_EVENT_CONTAINER_RESIZE;
|
|
|
|
|
2004-11-24 19:37:45 -08:00
|
|
|
#endif
|
2005-01-12 08:03:09 -08:00
|
|
|
#endif
|