forked from enlightenment/enlightenment
Clean up some gadcon config code.
Make id unique for each gadcon. SVN revision: 27673
This commit is contained in:
parent
db5451759f
commit
805315670b
|
@ -1182,39 +1182,39 @@ e_config_init(void)
|
|||
|
||||
/* the default shelf on the default head/zone */
|
||||
CFG_GADCON("shelf", "0");
|
||||
CFG_GADCON_CLIENT("start", "default", 800, 32,
|
||||
CFG_GADCON_CLIENT("start", "0.start.0", 800, 32,
|
||||
0, NULL, 0, 0);
|
||||
CFG_GADCON_CLIENT("pager", "default", 800, 120,
|
||||
CFG_GADCON_CLIENT("pager", "0.pager.0", 800, 120,
|
||||
32, NULL, 0, 0);
|
||||
CFG_GADCON_CLIENT("ibox", "default", 800, 32,
|
||||
CFG_GADCON_CLIENT("ibox", "0.ibox.0", 800, 32,
|
||||
32 + 120, NULL, 0, 0);
|
||||
CFG_GADCON_CLIENT("ibar", "default", 800, 200,
|
||||
CFG_GADCON_CLIENT("ibar", "0.ibar.0", 800, 200,
|
||||
(800 / 2) - (100 / 2), NULL, 0, 0);
|
||||
CFG_GADCON_CLIENT("temperature", "default", 800, 32,
|
||||
CFG_GADCON_CLIENT("temperature", "0.temperature.0", 800, 32,
|
||||
800 - 128, NULL, 0, 0);
|
||||
CFG_GADCON_CLIENT("cpufreq", "default", 800, 32,
|
||||
CFG_GADCON_CLIENT("cpufreq", "0.cpufreq.0", 800, 32,
|
||||
800 - 96, NULL, 0, 0);
|
||||
CFG_GADCON_CLIENT("battery", "default", 800, 32,
|
||||
CFG_GADCON_CLIENT("battery", "0.battery.0", 800, 32,
|
||||
800 - 64, NULL, 0, 0);
|
||||
CFG_GADCON_CLIENT("clock", "default", 800, 32,
|
||||
CFG_GADCON_CLIENT("clock", "0.clock.0", 800, 32,
|
||||
800 - 32, NULL, 0, 0);
|
||||
/* additional shelves for up to 3 more heads by default */
|
||||
CFG_GADCON("shelf", "1");
|
||||
CFG_GADCON_CLIENT("pager", "default2", 800, 120,
|
||||
CFG_GADCON_CLIENT("pager", "1.pager.0", 800, 120,
|
||||
0, NULL, 0, 0);
|
||||
CFG_GADCON_CLIENT("ibox", "default", 800, 32,
|
||||
CFG_GADCON_CLIENT("ibox", "1.ibox.0", 800, 32,
|
||||
800 - 32, NULL, 0, 0);
|
||||
|
||||
CFG_GADCON("shelf", "2");
|
||||
CFG_GADCON_CLIENT("pager", "default3", 800, 120,
|
||||
CFG_GADCON_CLIENT("pager", "2.pager.0", 800, 120,
|
||||
0, NULL, 0, 0);
|
||||
CFG_GADCON_CLIENT("ibox", "default", 800, 32,
|
||||
CFG_GADCON_CLIENT("ibox", "2.ibox.0", 800, 32,
|
||||
800 - 32, NULL, 0, 0);
|
||||
|
||||
CFG_GADCON("shelf", "3");
|
||||
CFG_GADCON_CLIENT("pager", "default4", 800, 120,
|
||||
CFG_GADCON_CLIENT("pager", "3.pager.0", 800, 120,
|
||||
0, NULL, 0, 0);
|
||||
CFG_GADCON_CLIENT("ibox", "default", 800, 32,
|
||||
CFG_GADCON_CLIENT("ibox", "3.ibox.0", 800, 32,
|
||||
800 - 32, NULL, 0, 0);
|
||||
}
|
||||
IFCFGEND;
|
||||
|
|
|
@ -170,6 +170,33 @@ e_gadcon_shutdown(void)
|
|||
return 1;
|
||||
}
|
||||
|
||||
EAPI E_Config_Gadcon *
|
||||
e_gadcon_config_get(const char *name, const char *id)
|
||||
{
|
||||
Evas_List *l;
|
||||
E_Config_Gadcon *cf_gc = NULL;
|
||||
|
||||
if (!name) return NULL;
|
||||
|
||||
for (l = e_config->gadcons; l; l = l->next)
|
||||
{
|
||||
cf_gc = l->data;
|
||||
if ((!strcmp(cf_gc->name, name)) &&
|
||||
(!strcmp(cf_gc->id, id)))
|
||||
{
|
||||
return cf_gc;
|
||||
}
|
||||
}
|
||||
|
||||
cf_gc = E_NEW(E_Config_Gadcon, 1);
|
||||
if (!cf_gc) return NULL;
|
||||
cf_gc->name = evas_stringshare_add(name);
|
||||
cf_gc->id = evas_stringshare_add(id);
|
||||
e_config->gadcons = evas_list_append(e_config->gadcons, cf_gc);
|
||||
e_config_save_queue();
|
||||
return cf_gc;
|
||||
}
|
||||
|
||||
EAPI void
|
||||
e_gadcon_provider_register(const E_Gadcon_Client_Class *cc)
|
||||
{
|
||||
|
@ -302,78 +329,56 @@ EAPI void
|
|||
e_gadcon_populate(E_Gadcon *gc)
|
||||
{
|
||||
Evas_List *l;
|
||||
int ok;
|
||||
E_Config_Gadcon *cf_gc;
|
||||
E_Config_Gadcon_Client *cf_gcc;
|
||||
|
||||
E_OBJECT_CHECK(gc);
|
||||
E_OBJECT_TYPE_CHECK(gc, E_GADCON_TYPE);
|
||||
ok = 0;
|
||||
e_gadcon_layout_freeze(gc->o_container);
|
||||
for (l = e_config->gadcons; l; l = l->next)
|
||||
cf_gc = e_gadcon_config_get(gc->name, gc->id);
|
||||
if (!cf_gc) return;
|
||||
for (l = cf_gc->clients; l; l = l->next)
|
||||
{
|
||||
cf_gc = l->data;
|
||||
if ((!strcmp(cf_gc->name, gc->name)) &&
|
||||
(!strcmp(cf_gc->id, gc->id)))
|
||||
E_Gadcon_Client_Class *cc;
|
||||
|
||||
cf_gcc = l->data;
|
||||
if (!cf_gcc->name) continue;
|
||||
cc = evas_hash_find(providers, cf_gcc->name);
|
||||
if (cc)
|
||||
{
|
||||
ok = 1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (ok)
|
||||
{
|
||||
for (l = cf_gc->clients; l; l = l->next)
|
||||
{
|
||||
E_Gadcon_Client_Class *cc;
|
||||
|
||||
cf_gcc = l->data;
|
||||
if (!cf_gcc->name) continue;
|
||||
cc = evas_hash_find(providers, cf_gcc->name);
|
||||
if (cc)
|
||||
E_Gadcon_Client *gcc;
|
||||
|
||||
if (!cf_gcc->style)
|
||||
{
|
||||
E_Gadcon_Client *gcc;
|
||||
|
||||
if (!cf_gcc->style)
|
||||
{
|
||||
gcc = cc->func.init(gc, cf_gcc->name, cf_gcc->id,
|
||||
cc->default_style);
|
||||
}
|
||||
else
|
||||
gcc = cc->func.init(gc, cf_gcc->name, cf_gcc->id,
|
||||
cf_gcc->style);
|
||||
|
||||
if (gcc)
|
||||
{
|
||||
gcc->client_class = cc;
|
||||
gcc->config.pos = cf_gcc->geom.pos;
|
||||
gcc->config.size = cf_gcc->geom.size;
|
||||
gcc->config.res = cf_gcc->geom.res;
|
||||
gcc->state_info.seq = cf_gcc->state_info.seq;
|
||||
gcc->state_info.flags = cf_gcc->state_info.flags;
|
||||
if (gcc->o_frame)
|
||||
e_gadcon_layout_pack_options_set(gcc->o_frame, gcc);
|
||||
else
|
||||
e_gadcon_layout_pack_options_set(gcc->o_base, gcc);
|
||||
|
||||
e_gadcon_client_autoscroll_set(gcc, cf_gcc->autoscroll);
|
||||
e_gadcon_client_resizable_set(gcc, cf_gcc->resizable);
|
||||
if (gcc->client_class->func.orient)
|
||||
gcc->client_class->func.orient(gcc);
|
||||
|
||||
_e_gadcon_client_save(gcc);
|
||||
}
|
||||
gcc = cc->func.init(gc, cf_gcc->name, cf_gcc->id,
|
||||
cc->default_style);
|
||||
}
|
||||
else
|
||||
gcc = cc->func.init(gc, cf_gcc->name, cf_gcc->id,
|
||||
cf_gcc->style);
|
||||
|
||||
if (gcc)
|
||||
{
|
||||
gcc->name = evas_stringshare_add(cf_gcc->name);
|
||||
gcc->id = evas_stringshare_add(cf_gcc->id);
|
||||
gcc->client_class = cc;
|
||||
gcc->config.pos = cf_gcc->geom.pos;
|
||||
gcc->config.size = cf_gcc->geom.size;
|
||||
gcc->config.res = cf_gcc->geom.res;
|
||||
gcc->state_info.seq = cf_gcc->state_info.seq;
|
||||
gcc->state_info.flags = cf_gcc->state_info.flags;
|
||||
if (gcc->o_frame)
|
||||
e_gadcon_layout_pack_options_set(gcc->o_frame, gcc);
|
||||
else
|
||||
e_gadcon_layout_pack_options_set(gcc->o_base, gcc);
|
||||
|
||||
e_gadcon_client_autoscroll_set(gcc, cf_gcc->autoscroll);
|
||||
e_gadcon_client_resizable_set(gcc, cf_gcc->resizable);
|
||||
if (gcc->client_class->func.orient)
|
||||
gcc->client_class->func.orient(gcc);
|
||||
|
||||
_e_gadcon_client_save(gcc);
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
cf_gc = E_NEW(E_Config_Gadcon, 1);
|
||||
if (cf_gc)
|
||||
{
|
||||
cf_gc->name = evas_stringshare_add(gc->name);
|
||||
cf_gc->id = evas_stringshare_add(gc->id);
|
||||
e_config->gadcons = evas_list_append(e_config->gadcons, cf_gc);
|
||||
e_config_save_queue();
|
||||
}
|
||||
}
|
||||
e_gadcon_layout_thaw(gc->o_container);
|
||||
|
@ -403,56 +408,43 @@ EAPI void
|
|||
e_gadcon_populate_class(E_Gadcon *gc, const E_Gadcon_Client_Class *cc)
|
||||
{
|
||||
Evas_List *l;
|
||||
int ok;
|
||||
E_Config_Gadcon *cf_gc;
|
||||
E_Config_Gadcon_Client *cf_gcc;
|
||||
|
||||
E_OBJECT_CHECK(gc);
|
||||
E_OBJECT_TYPE_CHECK(gc, E_GADCON_TYPE);
|
||||
ok = 0;
|
||||
e_gadcon_layout_freeze(gc->o_container);
|
||||
for (l = e_config->gadcons; l; l = l->next)
|
||||
cf_gc = e_gadcon_config_get(gc->name, gc->id);
|
||||
if (!cf_gc) return;
|
||||
for (l = cf_gc->clients; l; l = l->next)
|
||||
{
|
||||
cf_gc = l->data;
|
||||
if ((cf_gc->name) && (gc->name) &&
|
||||
(cf_gc->id) && (gc->id) &&
|
||||
(!strcmp(cf_gc->name, gc->name)) &&
|
||||
(!strcmp(cf_gc->id, gc->id)))
|
||||
cf_gcc = l->data;
|
||||
if ((cf_gcc->name) && (cc->name) &&
|
||||
(!strcmp(cf_gcc->name, cc->name)))
|
||||
{
|
||||
ok = 1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (ok)
|
||||
{
|
||||
for (l = cf_gc->clients; l; l = l->next)
|
||||
{
|
||||
cf_gcc = l->data;
|
||||
if ((cf_gcc->name) && (cc->name) &&
|
||||
(!strcmp(cf_gcc->name, cc->name)))
|
||||
{
|
||||
E_Gadcon_Client *gcc;
|
||||
|
||||
gcc = cc->func.init(gc, cf_gcc->name, cf_gcc->id,
|
||||
cf_gcc->style);
|
||||
if (gcc)
|
||||
{
|
||||
gcc->client_class = cc;
|
||||
gcc->config.pos = cf_gcc->geom.pos;
|
||||
gcc->config.size = cf_gcc->geom.size;
|
||||
gcc->config.res = cf_gcc->geom.res;
|
||||
gcc->state_info.seq = cf_gcc->state_info.seq;
|
||||
gcc->state_info.flags = cf_gcc->state_info.flags;
|
||||
if (gcc->o_frame)
|
||||
e_gadcon_layout_pack_options_set(gcc->o_frame, gcc);
|
||||
else
|
||||
e_gadcon_layout_pack_options_set(gcc->o_base, gcc);
|
||||
E_Gadcon_Client *gcc;
|
||||
|
||||
if (gcc->client_class->func.orient)
|
||||
gcc->client_class->func.orient(gcc);
|
||||
|
||||
_e_gadcon_client_save(gcc);
|
||||
}
|
||||
gcc = cc->func.init(gc, cf_gcc->name, cf_gcc->id,
|
||||
cf_gcc->style);
|
||||
if (gcc)
|
||||
{
|
||||
gcc->name = evas_stringshare_add(cf_gcc->name);
|
||||
gcc->id = evas_stringshare_add(cf_gcc->id);
|
||||
gcc->client_class = cc;
|
||||
gcc->config.pos = cf_gcc->geom.pos;
|
||||
gcc->config.size = cf_gcc->geom.size;
|
||||
gcc->config.res = cf_gcc->geom.res;
|
||||
gcc->state_info.seq = cf_gcc->state_info.seq;
|
||||
gcc->state_info.flags = cf_gcc->state_info.flags;
|
||||
if (gcc->o_frame)
|
||||
e_gadcon_layout_pack_options_set(gcc->o_frame, gcc);
|
||||
else
|
||||
e_gadcon_layout_pack_options_set(gcc->o_base, gcc);
|
||||
|
||||
if (gcc->client_class->func.orient)
|
||||
gcc->client_class->func.orient(gcc);
|
||||
|
||||
_e_gadcon_client_save(gcc);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -638,9 +630,47 @@ e_gadcon_dnd_window_get(E_Gadcon *gc)
|
|||
E_OBJECT_TYPE_CHECK_RETURN(gc, E_GADCON_TYPE, 0);
|
||||
return gc->dnd_win;
|
||||
}
|
||||
|
||||
|
||||
EAPI E_Config_Gadcon_Client *
|
||||
e_gadcon_client_config_get(E_Gadcon *gc, const char *name, const char *id)
|
||||
{
|
||||
Evas_List *l;
|
||||
E_Config_Gadcon *cf_gc = NULL;
|
||||
E_Config_Gadcon_Client *cf_gcc = NULL;
|
||||
|
||||
E_OBJECT_CHECK_RETURN(gc, NULL);
|
||||
E_OBJECT_TYPE_CHECK_RETURN(gc, E_GADCON_TYPE, NULL);
|
||||
if (!name) return NULL;
|
||||
|
||||
cf_gc = e_gadcon_config_get(gc->name, gc->id);
|
||||
if (!cf_gc) return NULL;
|
||||
for (l = cf_gc->clients; l; l = l->next)
|
||||
{
|
||||
cf_gcc = l->data;
|
||||
if ((!strcmp(cf_gcc->name, name)) &&
|
||||
(!strcmp(cf_gcc->id, id)))
|
||||
{
|
||||
return cf_gcc;
|
||||
}
|
||||
}
|
||||
|
||||
cf_gcc = E_NEW(E_Config_Gadcon_Client, 1);
|
||||
if (!cf_gcc) return NULL;
|
||||
cf_gcc->name = evas_stringshare_add(name);
|
||||
cf_gcc->id = evas_stringshare_add(id);
|
||||
cf_gcc->geom.res = 800;
|
||||
cf_gcc->geom.size = 80;
|
||||
cf_gcc->geom.pos = cf_gcc->geom.res - cf_gcc->geom.size;
|
||||
cf_gcc->style = NULL;
|
||||
cf_gcc->autoscroll = 0;
|
||||
cf_gcc->resizable = 0;
|
||||
cf_gc->clients = evas_list_append(cf_gc->clients, cf_gcc);
|
||||
e_config_save_queue();
|
||||
return cf_gcc;
|
||||
}
|
||||
|
||||
EAPI E_Gadcon_Client *
|
||||
e_gadcon_client_new(E_Gadcon *gc, const char *name, const char *id, const char *style, Evas_Object *base_obj)
|
||||
e_gadcon_client_new(E_Gadcon *gc, const char *style, Evas_Object *base_obj)
|
||||
{
|
||||
E_Gadcon_Client *gcc;
|
||||
|
||||
|
@ -650,8 +680,6 @@ e_gadcon_client_new(E_Gadcon *gc, const char *name, const char *id, const char *
|
|||
if (!gcc) return NULL;
|
||||
gcc->gadcon = gc;
|
||||
gcc->o_base = base_obj;
|
||||
gcc->name = evas_stringshare_add(name);
|
||||
gcc->id = evas_stringshare_add(id);
|
||||
gc->clients = evas_list_append(gc->clients, gcc);
|
||||
if ((gc->frame_request.func) && (style))
|
||||
{
|
||||
|
@ -1057,46 +1085,27 @@ _e_gadcon_client_cb_menu_edit(void *data, E_Menu *m, E_Menu_Item *mi)
|
|||
static void
|
||||
_e_gadcon_client_cb_menu_remove(void *data, E_Menu *m, E_Menu_Item *mi)
|
||||
{
|
||||
E_Gadcon *gc;
|
||||
E_Gadcon_Client *gcc;
|
||||
E_Config_Gadcon *cf_gc;
|
||||
Evas_List *l;
|
||||
|
||||
E_Config_Gadcon_Client *cf_gcc;
|
||||
|
||||
gcc = data;
|
||||
for (l = e_config->gadcons; l; l = l->next)
|
||||
{
|
||||
cf_gc = l->data;
|
||||
if ((!cf_gc->name) || (!cf_gc->id) ||
|
||||
(!gcc->gadcon->name) || (!gcc->gadcon->id)) continue;
|
||||
if ((!strcmp(cf_gc->name, gcc->gadcon->name)) &&
|
||||
(!strcmp(cf_gc->id, gcc->gadcon->id)))
|
||||
{
|
||||
for (l = cf_gc->clients; l; l = l->next)
|
||||
{
|
||||
E_Config_Gadcon_Client *cf_gcc;
|
||||
|
||||
cf_gcc = l->data;
|
||||
if ((!cf_gcc->name) || (!cf_gcc->id) || (!gcc->name) ||
|
||||
(!gcc->id)) continue;
|
||||
if ((!strcmp(cf_gcc->name, gcc->name)) &&
|
||||
(!strcmp(cf_gcc->id, gcc->id)))
|
||||
{
|
||||
E_Gadcon *gc;
|
||||
gc = gcc->gadcon;
|
||||
|
||||
cf_gc = e_gadcon_config_get(gcc->gadcon->name, gcc->gadcon->id);
|
||||
if (!cf_gc) return;
|
||||
cf_gcc = e_gadcon_client_config_get(gcc->gadcon, gcc->name, gcc->id);
|
||||
if (!cf_gcc) return;
|
||||
|
||||
gc = gcc->gadcon;
|
||||
if (cf_gcc->name) evas_stringshare_del(cf_gcc->name);
|
||||
if (cf_gcc->id) evas_stringshare_del(cf_gcc->id);
|
||||
if (cf_gcc->style) evas_stringshare_del(cf_gcc->style);
|
||||
free(cf_gcc);
|
||||
cf_gc->clients = evas_list_remove_list(cf_gc->clients, l);
|
||||
e_gadcon_unpopulate(gc);
|
||||
e_gadcon_populate(gc);
|
||||
e_config_save_queue();
|
||||
return;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (cf_gcc->name) evas_stringshare_del(cf_gcc->name);
|
||||
if (cf_gcc->id) evas_stringshare_del(cf_gcc->id);
|
||||
if (cf_gcc->style) evas_stringshare_del(cf_gcc->style);
|
||||
free(cf_gcc);
|
||||
cf_gc->clients = evas_list_remove(cf_gc->clients, cf_gcc);
|
||||
e_gadcon_unpopulate(gc);
|
||||
e_gadcon_populate(gc);
|
||||
e_config_save_queue();
|
||||
}
|
||||
|
||||
EAPI void
|
||||
|
@ -1418,74 +1427,26 @@ _e_gadcon_cb_client_frame_moveresize(void *data, Evas *e, Evas_Object *obj, void
|
|||
static void
|
||||
_e_gadcon_client_save(E_Gadcon_Client *gcc)
|
||||
{
|
||||
Evas_List *l, *l2;
|
||||
E_Config_Gadcon *cf_gc;
|
||||
E_Config_Gadcon_Client *cf_gcc;
|
||||
int ok;
|
||||
|
||||
ok = 0;
|
||||
for (l = e_config->gadcons; l; l = l->next)
|
||||
{
|
||||
cf_gc = l->data;
|
||||
if ((cf_gc->name) && (gcc->gadcon->name) &&
|
||||
(cf_gc->id) && (gcc->gadcon->id) &&
|
||||
(!strcmp(cf_gc->name, gcc->gadcon->name)) &&
|
||||
(!strcmp(cf_gc->id, gcc->gadcon->id)))
|
||||
{
|
||||
ok++;
|
||||
for (l2 = cf_gc->clients; l2; l2 = l2->next)
|
||||
{
|
||||
cf_gcc = l2->data;
|
||||
|
||||
if ((cf_gcc->name) && (gcc->name) &&
|
||||
(cf_gcc->id) && (gcc->id) &&
|
||||
(!strcmp(cf_gcc->name, gcc->name)) &&
|
||||
(!strcmp(cf_gcc->id, gcc->id)))
|
||||
{
|
||||
cf_gcc->geom.pos = gcc->config.pos;
|
||||
cf_gcc->geom.size = gcc->config.size;
|
||||
cf_gcc->geom.res = gcc->config.res;
|
||||
cf_gcc->state_info.seq = gcc->state_info.seq;
|
||||
cf_gcc->state_info.flags = gcc->state_info.flags;
|
||||
cf_gcc->autoscroll = gcc->autoscroll;
|
||||
if (cf_gcc->style) evas_stringshare_del(cf_gcc->style);
|
||||
cf_gcc->style = NULL;
|
||||
if (gcc->style)
|
||||
cf_gcc->style = evas_stringshare_add(gcc->style);
|
||||
cf_gcc->resizable = gcc->resizable;
|
||||
ok++;
|
||||
break;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (ok == 0)
|
||||
{
|
||||
cf_gc = E_NEW(E_Config_Gadcon, 1);
|
||||
cf_gc->name = evas_stringshare_add(gcc->gadcon->name);
|
||||
cf_gc->id = evas_stringshare_add(gcc->gadcon->id);
|
||||
e_config->gadcons = evas_list_append(e_config->gadcons, cf_gc);
|
||||
ok++;
|
||||
}
|
||||
if (ok == 1)
|
||||
{
|
||||
cf_gcc = E_NEW(E_Config_Gadcon_Client, 1);
|
||||
cf_gcc->name = evas_stringshare_add(gcc->name);
|
||||
cf_gcc->id = evas_stringshare_add(gcc->id);
|
||||
cf_gcc->geom.pos = gcc->config.pos;
|
||||
cf_gcc->geom.size = gcc->config.size;
|
||||
cf_gcc->geom.res = gcc->config.res;
|
||||
cf_gcc->state_info.seq = gcc->state_info.seq;
|
||||
cf_gcc->state_info.flags = gcc->state_info.flags;
|
||||
cf_gcc->autoscroll = gcc->autoscroll;
|
||||
if (cf_gcc->style) evas_stringshare_del(cf_gcc->style);
|
||||
cf_gcc->style = NULL;
|
||||
if (gcc->style)
|
||||
cf_gcc->style = evas_stringshare_add(gcc->style);
|
||||
cf_gcc->resizable = gcc->resizable;
|
||||
cf_gc->clients = evas_list_append(cf_gc->clients, cf_gcc);
|
||||
}
|
||||
cf_gc = e_gadcon_config_get(gcc->gadcon->name, gcc->gadcon->id);
|
||||
if (!cf_gc) return;
|
||||
cf_gcc = e_gadcon_client_config_get(gcc->gadcon, gcc->name, gcc->id);
|
||||
if (!cf_gcc) return;
|
||||
|
||||
cf_gcc->geom.pos = gcc->config.pos;
|
||||
cf_gcc->geom.size = gcc->config.size;
|
||||
cf_gcc->geom.res = gcc->config.res;
|
||||
cf_gcc->state_info.seq = gcc->state_info.seq;
|
||||
cf_gcc->state_info.flags = gcc->state_info.flags;
|
||||
cf_gcc->autoscroll = gcc->autoscroll;
|
||||
if (cf_gcc->style) evas_stringshare_del(cf_gcc->style);
|
||||
cf_gcc->style = NULL;
|
||||
if (gcc->style)
|
||||
cf_gcc->style = evas_stringshare_add(gcc->style);
|
||||
cf_gcc->resizable = gcc->resizable;
|
||||
|
||||
e_config_save_queue();
|
||||
}
|
||||
|
||||
|
|
|
@ -152,6 +152,7 @@ struct _E_Gadcon_Client
|
|||
|
||||
EAPI int e_gadcon_init(void);
|
||||
EAPI int e_gadcon_shutdown(void);
|
||||
EAPI E_Config_Gadcon *e_gadcon_config_get(const char *name, const char *id);
|
||||
EAPI void e_gadcon_provider_register(const E_Gadcon_Client_Class *cc);
|
||||
EAPI void e_gadcon_provider_unregister(const E_Gadcon_Client_Class *cc);
|
||||
EAPI Evas_List *e_gadcon_provider_list(void);
|
||||
|
@ -177,7 +178,8 @@ EAPI void e_gadcon_util_menu_attach_func_set(E_Gadcon *gc, void (*fu
|
|||
EAPI void e_gadcon_dnd_window_set(E_Gadcon *gc, Ecore_X_Window win);
|
||||
EAPI Ecore_X_Window e_gadcon_dnd_window_get(E_Gadcon *gc);
|
||||
|
||||
EAPI E_Gadcon_Client *e_gadcon_client_new(E_Gadcon *gc, const char *name, const char *id, const char *style, Evas_Object *base_obj);
|
||||
EAPI E_Config_Gadcon_Client *e_gadcon_client_config_get(E_Gadcon *gc, const char *name, const char *id);
|
||||
EAPI E_Gadcon_Client *e_gadcon_client_new(E_Gadcon *gc, const char *style, Evas_Object *base_obj);
|
||||
EAPI void e_gadcon_client_edit_begin(E_Gadcon_Client *gcc);
|
||||
EAPI void e_gadcon_client_edit_end(E_Gadcon_Client *gcc);
|
||||
EAPI void e_gadcon_client_size_request(E_Gadcon_Client *gcc, Evas_Coord w, Evas_Coord h);
|
||||
|
|
|
@ -14,8 +14,8 @@ static void _load_selected_gadgets(void *data);
|
|||
struct _E_Config_Dialog_Data
|
||||
{
|
||||
E_Gadcon *gc;
|
||||
char *cname;
|
||||
char *ciname;
|
||||
char *name_add;
|
||||
char *id_remove;
|
||||
Evas_Object *o_add, *o_remove, *o_instances, *o_avail;
|
||||
|
||||
E_Config_Gadcon *cf_gc;
|
||||
|
@ -47,24 +47,9 @@ e_int_gadcon_config(E_Gadcon *gc)
|
|||
static void
|
||||
_fill_data(E_Config_Dialog_Data *cfdata)
|
||||
{
|
||||
Evas_List *l;
|
||||
|
||||
cfdata->cname = NULL;
|
||||
cfdata->ciname = NULL;
|
||||
cfdata->cf_gc = NULL;
|
||||
|
||||
for (l = e_config->gadcons; l; l = l->next)
|
||||
{
|
||||
cfdata->cf_gc = l->data;
|
||||
if ((!cfdata->cf_gc->name) || (!cfdata->cf_gc->id) ||
|
||||
(!cfdata->gc->name) || (!cfdata->gc->id)) continue;
|
||||
if ((!strcmp(cfdata->cf_gc->name, cfdata->gc->name)) &&
|
||||
(!strcmp(cfdata->cf_gc->id, cfdata->gc->id)))
|
||||
{
|
||||
break;
|
||||
}
|
||||
cfdata->cf_gc = NULL;
|
||||
}
|
||||
cfdata->name_add = NULL;
|
||||
cfdata->id_remove = NULL;
|
||||
cfdata->cf_gc = e_gadcon_config_get(cfdata->gc->name, cfdata->gc->id);
|
||||
}
|
||||
|
||||
static void *
|
||||
|
@ -82,8 +67,8 @@ static void
|
|||
_free_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata)
|
||||
{
|
||||
cfdata->gc->config_dialog = NULL;
|
||||
if (cfdata->cname) free(cfdata->cname);
|
||||
if (cfdata->ciname) free(cfdata->ciname);
|
||||
if (cfdata->name_add) free(cfdata->name_add);
|
||||
if (cfdata->id_remove) free(cfdata->id_remove);
|
||||
free(cfdata);
|
||||
}
|
||||
|
||||
|
@ -108,52 +93,24 @@ _cb_select_client_instance(void *data)
|
|||
static void
|
||||
_cb_add_instance(void *data, void *data2)
|
||||
{
|
||||
char buf[256];
|
||||
int i, ok;
|
||||
char buf[1024];
|
||||
int id = 0;
|
||||
E_Config_Dialog_Data *cfdata;
|
||||
E_Config_Gadcon *cf_gc;
|
||||
E_Config_Gadcon_Client *cf_gcc;
|
||||
Evas_List *l, *l2;
|
||||
Evas_List *l;
|
||||
|
||||
cfdata = data;
|
||||
if (!cfdata) return;
|
||||
|
||||
snprintf(buf, sizeof(buf), "default");
|
||||
for (i = 0; ; i++)
|
||||
for (l = cfdata->cf_gc->clients; l; l = l->next)
|
||||
{
|
||||
ok = 1;
|
||||
for (l = e_config->gadcons; l; l = l->next)
|
||||
{
|
||||
cf_gc = l->data;
|
||||
for (l2 = cf_gc->clients; l2; l2 = l2->next)
|
||||
{
|
||||
cf_gcc = l2->data;
|
||||
if ((!cf_gcc->name) || (!cf_gcc->id)) continue;
|
||||
if ((!strcmp(cf_gcc->name, cfdata->cname)) &&
|
||||
(!strcmp(cf_gcc->id, buf)))
|
||||
{
|
||||
ok = 0;
|
||||
goto done;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (ok) break;
|
||||
done:
|
||||
snprintf(buf, sizeof(buf), "other-%i", i);
|
||||
cf_gcc = l->data;
|
||||
if (!strcmp(cfdata->name_add, cf_gcc->name)) id++;
|
||||
}
|
||||
snprintf(buf, sizeof(buf), "%s.%s.%i", cfdata->cf_gc->id, cfdata->name_add, id);
|
||||
|
||||
cf_gcc = E_NEW(E_Config_Gadcon_Client, 1);
|
||||
cf_gcc->name = evas_stringshare_add(cfdata->cname);
|
||||
cf_gcc->id = evas_stringshare_add(buf);
|
||||
cf_gcc->geom.res = 800;
|
||||
cf_gcc->geom.size = 80;
|
||||
cf_gcc->geom.pos = cf_gcc->geom.res - cf_gcc->geom.size;
|
||||
cf_gcc->style = NULL;
|
||||
cf_gcc->autoscroll = 0;
|
||||
cf_gcc->resizable = 0;
|
||||
|
||||
cfdata->cf_gc->clients = evas_list_append(cfdata->cf_gc->clients, cf_gcc);
|
||||
|
||||
e_gadcon_client_config_get(cfdata->gc, cfdata->name_add, buf);
|
||||
|
||||
e_gadcon_unpopulate(cfdata->gc);
|
||||
e_gadcon_populate(cfdata->gc);
|
||||
e_config_save_queue();
|
||||
|
@ -180,7 +137,7 @@ _cb_remove_instance(void *data, void *data2)
|
|||
cf_gcc = l->data;
|
||||
if (!cf_gcc) continue;
|
||||
if (!cf_gcc->name) continue;
|
||||
if (!strcmp(cf_gcc->name, cfdata->ciname))
|
||||
if (!strcmp(cf_gcc->id, cfdata->id_remove))
|
||||
{
|
||||
if (cf_gcc->name) evas_stringshare_del(cf_gcc->name);
|
||||
if (cf_gcc->id) evas_stringshare_del(cf_gcc->id);
|
||||
|
@ -218,7 +175,7 @@ _basic_create_widgets(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data *cf
|
|||
|
||||
of = e_widget_framelist_add(evas, _("Available Gadgets"), 0);
|
||||
|
||||
oi = e_widget_ilist_add(evas, 24, 24, &(cfdata->cname));
|
||||
oi = e_widget_ilist_add(evas, 24, 24, &(cfdata->name_add));
|
||||
cfdata->o_avail = oi;
|
||||
_load_available_gadgets(cfdata);
|
||||
e_widget_min_size_get(oi, &wmw, &wmh);
|
||||
|
@ -234,7 +191,7 @@ _basic_create_widgets(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data *cf
|
|||
e_widget_list_object_append(o, of, 1, 1, 0.5);
|
||||
|
||||
of = e_widget_framelist_add(evas, _("Selected Gadgets"), 0);
|
||||
oi = e_widget_ilist_add(evas, 24, 24, &(cfdata->ciname));
|
||||
oi = e_widget_ilist_add(evas, 24, 24, &(cfdata->id_remove));
|
||||
cfdata->o_instances = oi;
|
||||
_load_selected_gadgets(cfdata);
|
||||
e_widget_min_size_get(oi, &wmw, &wmh);
|
||||
|
@ -331,7 +288,7 @@ _load_selected_gadgets(void *data)
|
|||
if (!label) label = cc->name;
|
||||
if (cc->func.icon) icon = cc->func.icon(evas);
|
||||
e_widget_ilist_append(oi, icon, label, _cb_select_client_instance,
|
||||
cfdata, cf_gcc->name);
|
||||
cfdata, cf_gcc->id);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -91,7 +91,7 @@ _gc_init(E_Gadcon *gc, const char *name, const char *id, const char *style)
|
|||
e_theme_edje_object_set(o, "base/theme/modules/battery",
|
||||
"e/modules/battery/main");
|
||||
|
||||
gcc = e_gadcon_client_new(gc, name, id, style, o);
|
||||
gcc = e_gadcon_client_new(gc, style, o);
|
||||
gcc->data = inst;
|
||||
|
||||
inst->gcc = gcc;
|
||||
|
|
|
@ -53,7 +53,7 @@ _gc_init(E_Gadcon *gc, const char *name, const char *id, const char *style)
|
|||
"e/modules/clock/main");
|
||||
evas_object_show(o);
|
||||
|
||||
gcc = e_gadcon_client_new(gc, name, id, style, o);
|
||||
gcc = e_gadcon_client_new(gc, style, o);
|
||||
gcc->data = inst;
|
||||
|
||||
inst->gcc = gcc;
|
||||
|
|
|
@ -86,7 +86,7 @@ _gc_init(E_Gadcon *gc, const char *name, const char *id, const char *style)
|
|||
edje_object_signal_callback_add(o, "e,action,frequency,increase", "*", _cpufreq_face_cb_set_frequency, NULL);
|
||||
edje_object_signal_callback_add(o, "e,action,frequency,decrease", "*", _cpufreq_face_cb_set_frequency, NULL);
|
||||
|
||||
gcc = e_gadcon_client_new(gc, name, id, style, o);
|
||||
gcc = e_gadcon_client_new(gc, style, o);
|
||||
gcc->data = inst;
|
||||
|
||||
inst->gcc = gcc;
|
||||
|
|
|
@ -141,7 +141,7 @@ _gc_init(E_Gadcon *gc, const char *name, const char *id, const char *style)
|
|||
b->inst = inst;
|
||||
inst->ibar = b;
|
||||
o = b->o_box;
|
||||
gcc = e_gadcon_client_new(gc, name, id, style, o);
|
||||
gcc = e_gadcon_client_new(gc, style, o);
|
||||
gcc->data = inst;
|
||||
|
||||
inst->gcc = gcc;
|
||||
|
|
|
@ -151,7 +151,7 @@ _gc_init(E_Gadcon *gc, const char *name, const char *id, const char *style)
|
|||
b->inst = inst;
|
||||
inst->ibox = b;
|
||||
o = b->o_box;
|
||||
gcc = e_gadcon_client_new(gc, name, id, style, o);
|
||||
gcc = e_gadcon_client_new(gc, style, o);
|
||||
gcc->data = inst;
|
||||
|
||||
inst->gcc = gcc;
|
||||
|
|
|
@ -171,7 +171,7 @@ _gc_init(E_Gadcon *gc, const char *name, const char *id, const char *style)
|
|||
p->inst = inst;
|
||||
inst->pager = p;
|
||||
o = p->o_table;
|
||||
gcc = e_gadcon_client_new(gc, name, id, style, o);
|
||||
gcc = e_gadcon_client_new(gc, style, o);
|
||||
gcc->data = inst;
|
||||
|
||||
inst->gcc = gcc;
|
||||
|
|
|
@ -56,7 +56,7 @@ _gc_init(E_Gadcon *gc, const char *name, const char *id, const char *style)
|
|||
e_theme_edje_object_set(o, "base/theme/modules/start", "e/modules/start/main");
|
||||
edje_object_signal_emit(o, "e,state,unfocused", "e");
|
||||
|
||||
gcc = e_gadcon_client_new(gc, name, id, style, o);
|
||||
gcc = e_gadcon_client_new(gc, style, o);
|
||||
gcc->data = inst;
|
||||
|
||||
inst->gcc = gcc;
|
||||
|
|
|
@ -77,7 +77,7 @@ _gc_init(E_Gadcon *gc, const char *name, const char *id, const char *style)
|
|||
e_theme_edje_object_set(o, "base/theme/modules/temperature",
|
||||
"e/modules/temperature/main");
|
||||
|
||||
gcc = e_gadcon_client_new(gc, name, id, style, o);
|
||||
gcc = e_gadcon_client_new(gc, style, o);
|
||||
gcc->data = inst;
|
||||
|
||||
inst->gcc = gcc;
|
||||
|
|
Loading…
Reference in New Issue