forked from enlightenment/enlightenment
* Now gadman place the gadget when E say so, and not only on startup.
SVN revision: 37594
This commit is contained in:
parent
022a2caf44
commit
1a5b14aa48
|
@ -215,7 +215,10 @@ e_gadcon_provider_register(const E_Gadcon_Client_Class *cc)
|
|||
for (l = gadcons; l; l = l->next)
|
||||
{
|
||||
gc = l->data;
|
||||
e_gadcon_populate_class(gc, cc);
|
||||
if (gc->populate_class.func)
|
||||
gc->populate_class.func(gc->populate_class.data, gc, cc);
|
||||
else
|
||||
e_gadcon_populate_class(gc, cc);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -370,6 +373,16 @@ e_gadcon_frame_request_callback_set(E_Gadcon *gc, Evas_Object *(*func) (void *da
|
|||
gc->frame_request.data = data;
|
||||
}
|
||||
|
||||
EAPI void
|
||||
e_gadcon_populate_callback_set(E_Gadcon *gc, void (*func) (void *data, E_Gadcon *gc, const E_Gadcon_Client_Class *cc), void *data)
|
||||
{
|
||||
E_OBJECT_CHECK(gc);
|
||||
E_OBJECT_TYPE_CHECK(gc, E_GADCON_TYPE);
|
||||
|
||||
gc->populate_class.func = func;
|
||||
gc->populate_class.data = data;
|
||||
}
|
||||
|
||||
EAPI void
|
||||
e_gadcon_layout_policy_set(E_Gadcon *gc, E_Gadcon_Layout_Policy layout_policy)
|
||||
{
|
||||
|
|
|
@ -83,6 +83,11 @@ struct _E_Gadcon
|
|||
void (*func) (void *data, E_Gadcon_Client *gcc, E_Menu *menu);
|
||||
void *data;
|
||||
} menu_attach;
|
||||
struct
|
||||
{
|
||||
void (*func) (void *data, E_Gadcon *gc, const E_Gadcon_Client_Class *cc);
|
||||
void *data;
|
||||
} populate_class;
|
||||
|
||||
E_Config_Dialog *config_dialog;
|
||||
unsigned char editing : 1;
|
||||
|
@ -196,6 +201,7 @@ EAPI void e_gadcon_swallowed_min_size_set(E_Gadcon *gc, Evas_Coord w
|
|||
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);
|
||||
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);
|
||||
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);
|
||||
EAPI void e_gadcon_populate_callback_set(E_Gadcon *gc, void (*func) (void *data, E_Gadcon *gc, const E_Gadcon_Client_Class *cc), void *data);
|
||||
EAPI void e_gadcon_layout_policy_set(E_Gadcon *gc, E_Gadcon_Layout_Policy layout_policy);
|
||||
EAPI void e_gadcon_populate(E_Gadcon *gc);
|
||||
EAPI void e_gadcon_unpopulate(E_Gadcon *gc);
|
||||
|
|
|
@ -74,23 +74,6 @@ gadman_init(E_Module *m)
|
|||
/* Create 2 mover objects */
|
||||
Man->mover = _create_mover(Man->gc);
|
||||
Man->mover_top = _create_mover(Man->gc_top);
|
||||
|
||||
/* Start existing gadgets */
|
||||
for (l = Man->gc->cf->clients; l; l = l->next)
|
||||
{
|
||||
E_Config_Gadcon_Client *cf_gcc;
|
||||
|
||||
if (!(cf_gcc = l->data)) continue;
|
||||
gadman_gadget_place(cf_gcc, 0);
|
||||
}
|
||||
|
||||
for (l = Man->gc_top->cf->clients; l; l = l->next)
|
||||
{
|
||||
E_Config_Gadcon_Client *cf_gcc;
|
||||
|
||||
if(!(cf_gcc = l->data)) continue;
|
||||
gadman_gadget_place(cf_gcc, 1);
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
|
@ -127,6 +110,22 @@ gadman_shutdown(void)
|
|||
Man = NULL;
|
||||
}
|
||||
|
||||
void
|
||||
gadman_populate_class(void *data, E_Gadcon *gc, const E_Gadcon_Client_Class *cc)
|
||||
{
|
||||
Eina_List *l;
|
||||
|
||||
for (l = gc->cf->clients; l; l = l->next)
|
||||
{
|
||||
E_Config_Gadcon_Client *cf_gcc;
|
||||
|
||||
if (!(cf_gcc = l->data)) continue;
|
||||
printf(" cf_gcc name %s\n", cf_gcc->name);
|
||||
if (cf_gcc->name && cc->name && !strcmp(cf_gcc->name, cc->name))
|
||||
gadman_gadget_place(cf_gcc, (int)data);
|
||||
}
|
||||
}
|
||||
|
||||
E_Gadcon_Client *
|
||||
gadman_gadget_place(E_Config_Gadcon_Client *cf, int ontop)
|
||||
{
|
||||
|
@ -494,6 +493,7 @@ _gadman_gadcon_new(const char* name, int ontop)
|
|||
|
||||
e_gadcon_zone_set(gc, e_zone_current_get(Man->container));
|
||||
e_gadcon_util_menu_attach_func_set(gc, _attach_menu, NULL);
|
||||
e_gadcon_populate_callback_set(gc, gadman_populate_class, (void*)ontop);
|
||||
|
||||
gc->id = 114 + ontop; // TODO what's this ??????? 114 is a random number
|
||||
gc->edje.o_parent = NULL;
|
||||
|
|
|
@ -29,7 +29,7 @@ e_modapi_init(E_Module *m)
|
|||
|
||||
/* Set this module to be loaded after all other modules, or we don't see
|
||||
modules loaded after this */
|
||||
e_module_priority_set(m, -100);
|
||||
e_module_priority_set(m, 100);
|
||||
|
||||
gadman_init(m);
|
||||
|
||||
|
|
Loading…
Reference in New Issue