2006-02-02 01:42:19 -08:00
|
|
|
/*
|
|
|
|
* vim:ts=8:sw=3:sts=8:noexpandtab:cino=>5n-3f0^-2{2
|
|
|
|
*/
|
|
|
|
#ifdef E_TYPEDEFS
|
|
|
|
|
2006-02-06 02:44:54 -08:00
|
|
|
/* different layout policies - only 1 supported for now */
|
|
|
|
typedef enum _E_Gadcon_Layout_Policy
|
|
|
|
{
|
|
|
|
E_GADCON_LAYOUT_POLICY_PANEL
|
|
|
|
} E_Gadcon_Layout_Policy;
|
|
|
|
|
2006-02-02 01:42:19 -08:00
|
|
|
typedef enum _E_Gadcon_Orient
|
|
|
|
{
|
|
|
|
/* generic orientations */
|
2006-02-14 05:09:01 -08:00
|
|
|
E_GADCON_ORIENT_FLOAT,
|
|
|
|
E_GADCON_ORIENT_HORIZ,
|
2006-02-02 01:42:19 -08:00
|
|
|
E_GADCON_ORIENT_VERT,
|
|
|
|
E_GADCON_ORIENT_LEFT,
|
|
|
|
E_GADCON_ORIENT_RIGHT,
|
|
|
|
E_GADCON_ORIENT_TOP,
|
2006-02-14 05:09:01 -08:00
|
|
|
E_GADCON_ORIENT_BOTTOM,
|
|
|
|
E_GADCON_ORIENT_CORNER_TL,
|
|
|
|
E_GADCON_ORIENT_CORNER_TR,
|
|
|
|
E_GADCON_ORIENT_CORNER_BL,
|
2006-04-05 07:00:32 -07:00
|
|
|
E_GADCON_ORIENT_CORNER_BR,
|
|
|
|
E_GADCON_ORIENT_CORNER_LT,
|
|
|
|
E_GADCON_ORIENT_CORNER_RT,
|
|
|
|
E_GADCON_ORIENT_CORNER_LB,
|
|
|
|
E_GADCON_ORIENT_CORNER_RB
|
2006-02-02 01:42:19 -08:00
|
|
|
} E_Gadcon_Orient;
|
|
|
|
|
2006-02-05 00:17:40 -08:00
|
|
|
typedef struct _E_Gadcon E_Gadcon;
|
|
|
|
typedef struct _E_Gadcon_Client E_Gadcon_Client;
|
|
|
|
typedef struct _E_Gadcon_Client_Class E_Gadcon_Client_Class;
|
2006-02-02 01:42:19 -08:00
|
|
|
|
|
|
|
#else
|
|
|
|
#ifndef E_GADCON_H
|
|
|
|
#define E_GADCON_H
|
|
|
|
|
|
|
|
#define E_GADCON_TYPE 0xE0b01022
|
|
|
|
#define E_GADCON_CLIENT_TYPE 0xE0b01023
|
|
|
|
|
|
|
|
struct _E_Gadcon
|
|
|
|
{
|
|
|
|
E_Object e_obj_inherit;
|
|
|
|
|
2006-05-31 09:07:22 -07:00
|
|
|
const char *name;
|
|
|
|
const char *id;
|
2006-02-05 00:17:40 -08:00
|
|
|
|
2006-02-06 02:44:54 -08:00
|
|
|
E_Gadcon_Layout_Policy layout_policy;
|
|
|
|
|
2006-02-02 01:42:19 -08:00
|
|
|
struct {
|
|
|
|
Evas_Object *o_parent;
|
2006-05-31 09:07:22 -07:00
|
|
|
const char *swallow_name;
|
2006-02-02 01:42:19 -08:00
|
|
|
} edje;
|
2006-02-10 04:21:22 -08:00
|
|
|
Ecore_Evas *ecore_evas;
|
|
|
|
E_Zone *zone;
|
2006-02-05 00:17:40 -08:00
|
|
|
|
|
|
|
E_Gadcon_Orient orient;
|
2006-02-02 01:42:19 -08:00
|
|
|
|
|
|
|
Evas *evas;
|
|
|
|
Evas_Object *o_container;
|
|
|
|
Evas_List *clients;
|
2006-04-02 04:35:35 -07:00
|
|
|
|
|
|
|
struct {
|
|
|
|
void (*func) (void *data, E_Gadcon *gc, Evas_Coord w, Evas_Coord h);
|
|
|
|
void *data;
|
2006-04-20 04:30:25 -07:00
|
|
|
} resize_request, min_size_request;
|
2006-04-04 08:42:25 -07:00
|
|
|
struct {
|
|
|
|
Evas_Object *(*func) (void *data, E_Gadcon_Client *gcc, const char *style);
|
|
|
|
void *data;
|
|
|
|
} frame_request;
|
2006-04-23 06:20:57 -07:00
|
|
|
|
2006-05-05 16:31:12 -07:00
|
|
|
E_Config_Dialog *config_dialog;
|
2006-04-23 06:20:57 -07:00
|
|
|
unsigned char editing : 1;
|
2006-02-02 01:42:19 -08:00
|
|
|
};
|
|
|
|
|
2006-02-05 00:17:40 -08:00
|
|
|
#define GADCON_CLIENT_CLASS_VERSION 1
|
|
|
|
struct _E_Gadcon_Client_Class
|
2006-02-02 01:42:19 -08:00
|
|
|
{
|
2006-02-05 00:17:40 -08:00
|
|
|
int version;
|
2006-05-09 06:02:48 -07:00
|
|
|
/* All members below are part of version 1 */
|
2006-02-05 00:17:40 -08:00
|
|
|
char *name;
|
2006-02-02 01:42:19 -08:00
|
|
|
struct {
|
2006-05-31 09:07:22 -07:00
|
|
|
E_Gadcon_Client *(*init) (E_Gadcon *gc, const char *name, const char *id, const char *style);
|
2006-02-05 00:17:40 -08:00
|
|
|
void (*shutdown) (E_Gadcon_Client *gcc);
|
|
|
|
void (*orient) (E_Gadcon_Client *gcc);
|
2006-05-09 06:02:48 -07:00
|
|
|
char *(*label) (void);
|
|
|
|
Evas_Object *(*icon) (Evas *evas);
|
|
|
|
/* All members below are part of version 2 */
|
2006-02-05 00:17:40 -08:00
|
|
|
} func;
|
|
|
|
};
|
|
|
|
|
|
|
|
struct _E_Gadcon_Client
|
|
|
|
{
|
|
|
|
E_Object e_obj_inherit;
|
|
|
|
E_Gadcon *gadcon;
|
2006-05-31 09:07:22 -07:00
|
|
|
const char *name;
|
|
|
|
const char *id;
|
2006-02-05 00:17:40 -08:00
|
|
|
Evas_Object *o_base;
|
2006-04-20 04:30:25 -07:00
|
|
|
Evas_Object *o_box;
|
2006-04-04 08:42:25 -07:00
|
|
|
Evas_Object *o_frame;
|
2006-02-08 07:06:25 -08:00
|
|
|
Evas_Object *o_control;
|
|
|
|
Evas_Object *o_event;
|
2006-05-31 09:07:22 -07:00
|
|
|
const E_Gadcon_Client_Class *client_class;
|
2006-02-05 00:17:40 -08:00
|
|
|
void *data;
|
2006-02-10 00:14:57 -08:00
|
|
|
struct {
|
|
|
|
int pos, size, res;
|
|
|
|
} config;
|
2006-04-05 07:00:32 -07:00
|
|
|
struct {
|
|
|
|
Evas_Coord w, h;
|
2006-04-20 04:30:25 -07:00
|
|
|
} pad, min, aspect;
|
|
|
|
Ecore_Timer *scroll_timer;
|
|
|
|
Ecore_Animator *scroll_animator;
|
|
|
|
double scroll_pos;
|
|
|
|
double scroll_wanted;
|
|
|
|
E_Menu *menu;
|
2006-05-31 09:07:22 -07:00
|
|
|
const char *style;
|
2006-04-28 20:51:27 -07:00
|
|
|
unsigned char autoscroll : 1;
|
|
|
|
unsigned char resizable : 1;
|
2006-02-10 00:14:57 -08:00
|
|
|
|
2006-02-08 07:06:25 -08:00
|
|
|
unsigned char moving : 1;
|
2006-04-20 04:30:25 -07:00
|
|
|
unsigned char resizing : 1;
|
|
|
|
Evas_Coord dx, dy, sx, sy, sw, sh;
|
2006-02-02 01:42:19 -08:00
|
|
|
};
|
|
|
|
|
|
|
|
EAPI int e_gadcon_init(void);
|
|
|
|
EAPI int e_gadcon_shutdown(void);
|
2006-05-31 09:07:22 -07:00
|
|
|
EAPI void e_gadcon_provider_register(const E_Gadcon_Client_Class *cc);
|
|
|
|
EAPI void e_gadcon_provider_unregister(const E_Gadcon_Client_Class *cc);
|
2006-05-07 02:49:37 -07:00
|
|
|
EAPI Evas_List *e_gadcon_provider_list(void);
|
2006-03-02 04:03:48 -08:00
|
|
|
EAPI E_Gadcon *e_gadcon_swallowed_new(const char *name, char *id, Evas_Object *obj, char *swallow_name);
|
2006-04-04 02:54:50 -07:00
|
|
|
EAPI void e_gadcon_swallowed_min_size_set(E_Gadcon *gc, Evas_Coord w, Evas_Coord h);
|
2006-04-20 04:30:25 -07:00
|
|
|
EAPI void e_gadcon_min_size_request_callback_set(E_Gadcon *gc, void (*func) (void *data, E_Gadcon *gc, Evas_Coord w, Evas_Coord h), void *data);
|
2006-04-02 04:35:35 -07:00
|
|
|
EAPI void e_gadcon_size_request_callback_set(E_Gadcon *gc, void (*func) (void *data, E_Gadcon *gc, Evas_Coord w, Evas_Coord h), void *data);
|
2006-04-04 08:42:25 -07:00
|
|
|
EAPI void e_gadcon_frame_request_callback_set(E_Gadcon *gc, Evas_Object *(*func) (void *data, E_Gadcon_Client *gcc, const char *style), void *data);
|
2006-02-06 02:44:54 -08:00
|
|
|
EAPI void e_gadcon_layout_policy_set(E_Gadcon *gc, E_Gadcon_Layout_Policy layout_policy);
|
2006-02-05 00:17:40 -08:00
|
|
|
EAPI void e_gadcon_populate(E_Gadcon *gc);
|
2006-04-20 04:30:25 -07:00
|
|
|
EAPI void e_gadcon_unpopulate(E_Gadcon *gc);
|
2006-05-31 09:07:22 -07:00
|
|
|
EAPI void e_gadcon_populate_class(E_Gadcon *gc, const E_Gadcon_Client_Class *cc);
|
2006-02-05 00:17:40 -08:00
|
|
|
EAPI void e_gadcon_orient(E_Gadcon *gc, E_Gadcon_Orient orient);
|
2006-02-08 07:06:25 -08:00
|
|
|
EAPI void e_gadcon_edit_begin(E_Gadcon *gc);
|
2006-02-10 00:14:57 -08:00
|
|
|
EAPI void e_gadcon_edit_end(E_Gadcon *gc);
|
|
|
|
EAPI void e_gadcon_all_edit_begin(void);
|
|
|
|
EAPI void e_gadcon_all_edit_end(void);
|
2006-02-10 04:21:22 -08:00
|
|
|
EAPI void e_gadcon_zone_set(E_Gadcon *gc, E_Zone *zone);
|
|
|
|
EAPI E_Zone *e_gadcon_zone_get(E_Gadcon *gc);
|
|
|
|
EAPI void e_gadcon_ecore_evas_set(E_Gadcon *gc, Ecore_Evas *ee);
|
|
|
|
EAPI int e_gadcon_canvas_zone_geometry_get(E_Gadcon *gc, int *x, int *y, int *w, int *h);
|
2006-02-05 00:17:40 -08:00
|
|
|
|
2006-04-04 08:42:25 -07:00
|
|
|
EAPI E_Gadcon_Client *e_gadcon_client_new(E_Gadcon *gc, char *name, char *id, char *style, Evas_Object *base_obj);
|
2006-04-20 04:30:25 -07:00
|
|
|
EAPI void e_gadcon_client_edit_begin(E_Gadcon_Client *gcc);
|
|
|
|
EAPI void e_gadcon_client_edit_end(E_Gadcon_Client *gcc);
|
2006-02-05 00:17:40 -08:00
|
|
|
EAPI void e_gadcon_client_size_request(E_Gadcon_Client *gcc, Evas_Coord w, Evas_Coord h);
|
2006-02-05 01:29:47 -08:00
|
|
|
EAPI void e_gadcon_client_min_size_set(E_Gadcon_Client *gcc, Evas_Coord w, Evas_Coord h);
|
2006-02-10 04:21:22 -08:00
|
|
|
EAPI void e_gadcon_client_aspect_set(E_Gadcon_Client *gcc, int w, int h);
|
2006-04-20 04:30:25 -07:00
|
|
|
EAPI void e_gadcon_client_autoscroll_set(E_Gadcon_Client *gcc, int autoscroll);
|
|
|
|
EAPI void e_gadcon_client_resizable_set(E_Gadcon_Client *gcc, int resizable);
|
|
|
|
|
|
|
|
EAPI void e_gadcon_client_util_menu_items_append(E_Gadcon_Client *gcc, E_Menu *menu, int flags);
|
|
|
|
EAPI void e_gadcon_client_util_menu_attach(E_Gadcon_Client *gcc);
|
|
|
|
|
2006-05-19 05:56:47 -07:00
|
|
|
EAPI E_Gadcon_Client *e_gadcon_client_find(E_Gadcon *gc, char *name, char *id);
|
|
|
|
|
2006-02-02 01:42:19 -08:00
|
|
|
#endif
|
|
|
|
#endif
|