forked from enlightenment/enlightenment
and make module config dialog work again :)
SVN revision: 23046
This commit is contained in:
parent
3a2144cad0
commit
36dad3c9f5
|
@ -30,6 +30,7 @@ struct _E_Config_Dialog_Data
|
||||||
E_Config_Dialog *cfd;
|
E_Config_Dialog *cfd;
|
||||||
Evas_List *modules;
|
Evas_List *modules;
|
||||||
int state;
|
int state;
|
||||||
|
char *modname;
|
||||||
struct
|
struct
|
||||||
{
|
{
|
||||||
Evas_Object *configure, *about;
|
Evas_Object *configure, *about;
|
||||||
|
@ -58,34 +59,32 @@ e_int_config_modules(E_Container *con)
|
||||||
static void
|
static void
|
||||||
_module_configure(void *data, void *data2)
|
_module_configure(void *data, void *data2)
|
||||||
{
|
{
|
||||||
Evas_Object *obj;
|
E_Config_Dialog_Data *cfdata;
|
||||||
E_Module *m;
|
E_Module *m;
|
||||||
const char *v;
|
const char *v;
|
||||||
|
|
||||||
obj = data;
|
cfdata = data;
|
||||||
v = e_widget_ilist_selected_label_get(obj);
|
if (!cfdata->modname) return;
|
||||||
m = e_module_find(v);
|
m = e_module_find(cfdata->modname);
|
||||||
if (m)
|
if (m)
|
||||||
{
|
{
|
||||||
if (m->func.config)
|
if (m->func.config) m->func.config(m);
|
||||||
m->func.config(m);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
_module_about(void *data, void *data2)
|
_module_about(void *data, void *data2)
|
||||||
{
|
{
|
||||||
Evas_Object *obj;
|
E_Config_Dialog_Data *cfdata;
|
||||||
E_Module *m;
|
E_Module *m;
|
||||||
const char *v;
|
const char *v;
|
||||||
|
|
||||||
obj = data;
|
cfdata = data;
|
||||||
v = e_widget_ilist_selected_label_get(obj);
|
if (!cfdata->modname) return;
|
||||||
m = e_module_find(v);
|
m = e_module_find(cfdata->modname);
|
||||||
if (m)
|
if (m)
|
||||||
{
|
{
|
||||||
if (m->func.about)
|
if (m->func.about) m->func.about(m);
|
||||||
m->func.about(m);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -161,6 +160,7 @@ _free_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata)
|
||||||
free(m->path);
|
free(m->path);
|
||||||
E_FREE(m);
|
E_FREE(m);
|
||||||
}
|
}
|
||||||
|
E_FREE(cfdata->modname);
|
||||||
free(cfdata);
|
free(cfdata);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -237,7 +237,7 @@ _basic_create_widgets(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data *cf
|
||||||
ot = e_widget_table_add(evas, 1);
|
ot = e_widget_table_add(evas, 1);
|
||||||
|
|
||||||
of = e_widget_framelist_add(evas, _("Modules"), 1);
|
of = e_widget_framelist_add(evas, _("Modules"), 1);
|
||||||
ilist = e_widget_ilist_add(evas, 24, 24, NULL);
|
ilist = e_widget_ilist_add(evas, 24, 24, &(cfdata->modname));
|
||||||
cfdata->gui.list = ilist;
|
cfdata->gui.list = ilist;
|
||||||
e_widget_on_change_hook_set(ilist, _ilist_cb_change, cfdata);
|
e_widget_on_change_hook_set(ilist, _ilist_cb_change, cfdata);
|
||||||
|
|
||||||
|
@ -265,7 +265,7 @@ _basic_create_widgets(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data *cf
|
||||||
{
|
{
|
||||||
oc = edje_object_add(evas);
|
oc = edje_object_add(evas);
|
||||||
edje_object_file_set(oc, buf, "icon");
|
edje_object_file_set(oc, buf, "icon");
|
||||||
e_widget_ilist_append(ilist, oc, a->name, NULL, NULL, NULL);
|
e_widget_ilist_append(ilist, oc, a->name, NULL, NULL, cm->name);
|
||||||
e_object_unref(E_OBJECT(a));
|
e_object_unref(E_OBJECT(a));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -294,11 +294,11 @@ _basic_create_widgets(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data *cf
|
||||||
e_widget_table_object_append(ot, of, 2, 0, 2, 2, 1, 1, 1, 1);
|
e_widget_table_object_append(ot, of, 2, 0, 2, 2, 1, 1, 1, 1);
|
||||||
|
|
||||||
of = e_widget_framelist_add(evas, _("Module Actions"), 0);
|
of = e_widget_framelist_add(evas, _("Module Actions"), 0);
|
||||||
ob = e_widget_button_add(evas, _("Configure"), NULL, _module_configure, ilist, NULL);
|
ob = e_widget_button_add(evas, _("Configure"), NULL, _module_configure, cfdata, NULL);
|
||||||
cfdata->gui.configure = ob;
|
cfdata->gui.configure = ob;
|
||||||
e_widget_framelist_object_append(of, ob);
|
e_widget_framelist_object_append(of, ob);
|
||||||
|
|
||||||
ob = e_widget_button_add(evas, _("About"), NULL, _module_about, ilist, NULL);
|
ob = e_widget_button_add(evas, _("About"), NULL, _module_about, cfdata, NULL);
|
||||||
cfdata->gui.about = ob;
|
cfdata->gui.about = ob;
|
||||||
e_widget_framelist_object_append(of, ob);
|
e_widget_framelist_object_append(of, ob);
|
||||||
|
|
||||||
|
@ -316,17 +316,18 @@ _ilist_cb_change(void *data, Evas_Object *obj)
|
||||||
{
|
{
|
||||||
E_Module *m;
|
E_Module *m;
|
||||||
E_Config_Dialog_Data *cfdata;
|
E_Config_Dialog_Data *cfdata;
|
||||||
|
Evas_List *l;
|
||||||
const char *v;
|
const char *v;
|
||||||
int i;
|
|
||||||
|
|
||||||
cfdata = data;
|
cfdata = data;
|
||||||
|
|
||||||
v = e_widget_ilist_selected_label_get(obj);
|
v = cfdata->modname;
|
||||||
for (i = 0; i < evas_list_count(cfdata->modules); i++)
|
if (!v) return;
|
||||||
|
for (l = cfdata->modules; l; l = l->next)
|
||||||
{
|
{
|
||||||
CFModule *cm;
|
CFModule *cm;
|
||||||
|
|
||||||
cm = evas_list_nth(cfdata->modules, i);
|
cm = l->data;
|
||||||
if ((cm) && (!strcmp(cm->name, v)))
|
if ((cm) && (!strcmp(cm->name, v)))
|
||||||
{
|
{
|
||||||
cfdata->state = cm->state;
|
cfdata->state = cm->state;
|
||||||
|
@ -350,9 +351,8 @@ _ilist_cb_change(void *data, Evas_Object *obj)
|
||||||
{
|
{
|
||||||
if (m->func.about)
|
if (m->func.about)
|
||||||
e_widget_disabled_set(cfdata->gui.about, 0);
|
e_widget_disabled_set(cfdata->gui.about, 0);
|
||||||
|
|
||||||
if (m->enabled && m->func.config)
|
if (m->enabled && m->func.config)
|
||||||
e_widget_disabled_set(cfdata->gui.configure, 0);
|
e_widget_disabled_set(cfdata->gui.configure, 0);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
|
@ -308,7 +308,6 @@ _e_wid_cb_item_sel(void *data, void *data2)
|
||||||
e_scrollframe_child_region_show(wd->o_scrollframe, x, y, w, h);
|
e_scrollframe_child_region_show(wd->o_scrollframe, x, y, w, h);
|
||||||
if (wd->o_widget)
|
if (wd->o_widget)
|
||||||
{
|
{
|
||||||
e_widget_change(wd->o_widget);
|
|
||||||
if (wd->value)
|
if (wd->value)
|
||||||
{
|
{
|
||||||
if (*(wd->value)) free(*(wd->value));
|
if (*(wd->value)) free(*(wd->value));
|
||||||
|
@ -318,6 +317,7 @@ _e_wid_cb_item_sel(void *data, void *data2)
|
||||||
*(wd->value) = NULL;
|
*(wd->value) = NULL;
|
||||||
}
|
}
|
||||||
if (wcb->func) wcb->func(wcb->data);
|
if (wcb->func) wcb->func(wcb->data);
|
||||||
|
e_widget_change(wd->o_widget);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue