and make module config dialog work again :)

SVN revision: 23046
This commit is contained in:
Carsten Haitzler 2006-06-01 06:57:32 +00:00
parent 3a2144cad0
commit 36dad3c9f5
2 changed files with 23 additions and 23 deletions

View File

@ -30,6 +30,7 @@ struct _E_Config_Dialog_Data
E_Config_Dialog *cfd;
Evas_List *modules;
int state;
char *modname;
struct
{
Evas_Object *configure, *about;
@ -58,34 +59,32 @@ e_int_config_modules(E_Container *con)
static void
_module_configure(void *data, void *data2)
{
Evas_Object *obj;
E_Config_Dialog_Data *cfdata;
E_Module *m;
const char *v;
obj = data;
v = e_widget_ilist_selected_label_get(obj);
m = e_module_find(v);
cfdata = data;
if (!cfdata->modname) return;
m = e_module_find(cfdata->modname);
if (m)
{
if (m->func.config)
m->func.config(m);
if (m->func.config) m->func.config(m);
}
}
static void
_module_about(void *data, void *data2)
{
Evas_Object *obj;
E_Config_Dialog_Data *cfdata;
E_Module *m;
const char *v;
obj = data;
v = e_widget_ilist_selected_label_get(obj);
m = e_module_find(v);
cfdata = data;
if (!cfdata->modname) return;
m = e_module_find(cfdata->modname);
if (m)
{
if (m->func.about)
m->func.about(m);
if (m->func.about) m->func.about(m);
}
}
@ -161,6 +160,7 @@ _free_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata)
free(m->path);
E_FREE(m);
}
E_FREE(cfdata->modname);
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);
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;
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);
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));
}
}
@ -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);
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;
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;
e_widget_framelist_object_append(of, ob);
@ -316,17 +316,18 @@ _ilist_cb_change(void *data, Evas_Object *obj)
{
E_Module *m;
E_Config_Dialog_Data *cfdata;
Evas_List *l;
const char *v;
int i;
cfdata = data;
v = e_widget_ilist_selected_label_get(obj);
for (i = 0; i < evas_list_count(cfdata->modules); i++)
v = cfdata->modname;
if (!v) return;
for (l = cfdata->modules; l; l = l->next)
{
CFModule *cm;
cm = evas_list_nth(cfdata->modules, i);
cm = l->data;
if ((cm) && (!strcmp(cm->name, v)))
{
cfdata->state = cm->state;
@ -350,9 +351,8 @@ _ilist_cb_change(void *data, Evas_Object *obj)
{
if (m->func.about)
e_widget_disabled_set(cfdata->gui.about, 0);
if (m->enabled && m->func.config)
e_widget_disabled_set(cfdata->gui.configure, 0);
e_widget_disabled_set(cfdata->gui.configure, 0);
}
break;
}

View File

@ -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);
if (wd->o_widget)
{
e_widget_change(wd->o_widget);
if (wd->value)
{
if (*(wd->value)) free(*(wd->value));
@ -318,6 +317,7 @@ _e_wid_cb_item_sel(void *data, void *data2)
*(wd->value) = NULL;
}
if (wcb->func) wcb->func(wcb->data);
e_widget_change(wd->o_widget);
}
}