Enlightenment CVS committal
Author : raster
Project : e17
Module : apps/e
Dir : e17/apps/e/src/bin
Modified Files:
e_int_config_modules.c
Log Message:
jesse's module patch - quickly in.
===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_int_config_modules.c,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -3 -r1.5 -r1.6
--- e_int_config_modules.c 20 Dec 2005 02:38:47 -0000 1.5
+++ e_int_config_modules.c 21 Dec 2005 04:48:20 -0000 1.6
@@ -28,11 +28,10 @@
Evas_List *mods, *umods;
E_Module *cur_mod;
Evas_Object *mod_name;
- struct
- {
+ struct {
Evas_Object *configure, *enable, *disable, *about;
Evas_Object *load, *unload, *loaded, *unloaded;
- } gui;
+ } gui;
};
struct _E_Cfg_Mod_Data
@@ -63,37 +62,41 @@
}
/* FIXME : redo this to setup list of loaded and unloaded modules in one pass
(easy):)*/
+/* FIXME: this leaks ecore list of files - also same fn dealing with 2 lists
is a bit evil */
void
-_e_config_module_list(Evas_List **b,char *dir,int loaded)
+_e_config_module_list(Evas_List **b, char *dir, int loaded)
{
- Evas_List *l;
- l = *b;
+ Evas_List *l;
char fullpath[PATH_MAX];
+
+ l = *b;
if ((ecore_file_exists(dir)) && (ecore_file_is_dir(dir)))
- {
- Ecore_List *mods;
- mods = ecore_file_ls(dir);
- if (mods)
- {
- char *mod;
- int i = 0;
- while ((mod = ecore_list_next(mods)))
- {
- snprintf(fullpath, sizeof(fullpath), "%s/%s", dir, mod);
- if (ecore_file_is_dir(fullpath))
- {
- E_Module *m;
- m = e_module_find(mod);
+ {
+ Ecore_List *mods;
+
+ mods = ecore_file_ls(dir);
+ if (mods)
+ {
+ char *mod;
+ int i = 0;
- if(!m && !loaded)
- l = evas_list_append(l,mod);
- else if(m && loaded)
- l = evas_list_append(l,m);
- }
- }
- }
- }
- *b=l;
+ while ((mod = ecore_list_next(mods)))
+ {
+ snprintf(fullpath, sizeof(fullpath), "%s/%s", dir, mod);
+ if (ecore_file_is_dir(fullpath))
+ {
+ E_Module *m;
+
+ m = e_module_find(mod);
+ if ((!m) && (!loaded))
+ l = evas_list_append(l, mod);
+ else if ((m) && (loaded))
+ l = evas_list_append(l, m);
+ }
+ }
+ }
+ }
+ *b = l;
}
void
@@ -108,34 +111,34 @@
cfd = d->cfd;
cfdata = cfd->cfdata;
- if(cfd->view_type == E_CONFIG_DIALOG_CFDATA_TYPE_BASIC)
- {
- m = d->mod;
- cfd->data=m;
- if(m->enabled)
- {
- e_widget_disabled_set( cfdata->gui.enable, 1);
- e_widget_disabled_set( cfdata->gui.disable, 0);
- if(m->func.config)
- e_widget_disabled_set( cfdata->gui.configure, 0);
- else
- e_widget_disabled_set( cfdata->gui.configure, 1);
- }
- else
- {
- e_widget_disabled_set( cfdata->gui.configure, 1);
- e_widget_disabled_set( cfdata->gui.enable, 0);
- e_widget_disabled_set( cfdata->gui.disable, 1);
- }
-
- if(m->func.about)
- e_widget_disabled_set( cfdata->gui.about, 0);
- else
- e_widget_disabled_set( cfdata->gui.about, 1);
+ m = d->mod;
+ cfd->data = m;
+
+ if (m->enabled)
+ {
+ e_widget_disabled_set(cfdata->gui.enable, 1);
+ e_widget_disabled_set(cfdata->gui.disable, 0);
+ if (m->func.config)
+ e_widget_disabled_set(cfdata->gui.configure, 0);
+ else
+ e_widget_disabled_set(cfdata->gui.configure, 1);
}
- else /* Load / Unload menu */
+ else
{
- if(!d->loaded)/* unloaded module was clicked */
+ e_widget_disabled_set(cfdata->gui.configure, 1);
+ e_widget_disabled_set(cfdata->gui.enable, 0);
+ e_widget_disabled_set(cfdata->gui.disable, 1);
+ }
+
+ if (m->func.about)
+ e_widget_disabled_set(cfdata->gui.about, 0);
+ else
+ e_widget_disabled_set(cfdata->gui.about, 1);
+
+ /* Load / Unload menu */
+ if (cfd->view_type == E_CONFIG_DIALOG_CFDATA_TYPE_ADVANCED)
+ {
+ if (!d->loaded)/* unloaded module was clicked */
{
cfd->data=d->mod_name;
e_widget_disabled_set(cfdata->gui.load, 0);
@@ -158,33 +161,36 @@
E_Config_Dialog *cfd;
CFData *cfdata;
Evas_Object *ob;
-
+
cfd = data;
+ d = cfd->data;
cfdata = cfd->cfdata;
- e_module_new(cfd->data);
+ e_module_new(d->mod_name);
- cfd->view_dirty=1;
+ cfd->view_dirty = 1;
}
void *
_module_unload(void *data, void *data2)
{
+ E_Cfg_Mod_Data *d;
E_Module *m;
E_Config_Dialog *cfd;
CFData *cfdata;
cfd = data;
- m = cfd->data;
+ d = cfd->data;
+ m = d->mod;
cfdata = cfd->cfdata;
e_module_disable(m);
e_object_del(E_OBJECT(m));
e_config_save_queue();
- cfd->view_dirty=1;
+ cfd->view_dirty = 1;
}
void *
-_module_enable(void *data, void *data2)/* this enables and disables :) */
+_module_enable(void *data, void *data2) /* this enables and disables :) */
{
E_Config_Dialog *cfd;
CFData *cfdata;
@@ -192,43 +198,60 @@
E_Cfg_Mod_Data *d;
cfd = data;
- m = cfd->data;
+ d = cfd->data;
+
+ if (!d->loaded)
+ {
+ m = e_module_new(d->mod_name);
+ cfd->view_dirty = 1;
+ }
+ else
+ {
+ m = d->mod;
+ }
cfdata = cfd->cfdata;
- if(m->enabled)
+ if (m->enabled)
{
e_module_save(m);
e_module_disable(m);
- e_widget_disabled_set( cfdata->gui.configure, 1);
- e_widget_disabled_set( cfdata->gui.enable, 0);
- e_widget_disabled_set( cfdata->gui.disable, 1);
+ e_widget_disabled_set(cfdata->gui.configure, 1);
+ e_widget_disabled_set(cfdata->gui.enable, 0);
+ e_widget_disabled_set(cfdata->gui.disable, 1);
}
else
{
e_module_enable(m);
-
- if(m->func.config)
- e_widget_disabled_set( cfdata->gui.configure, 0);
- e_widget_disabled_set( cfdata->gui.enable, 1);
- e_widget_disabled_set( cfdata->gui.disable, 0);
+ if (m->func.config)
+ e_widget_disabled_set(cfdata->gui.configure, 0);
+ e_widget_disabled_set(cfdata->gui.enable, 1);
+ e_widget_disabled_set(cfdata->gui.disable, 0);
}
+
+ /* this forces a redraw of the window so that the buttons update their
+ * state properly... probably fix this with a better method that doesn't
+ * unselect the current selection
+ */
+ cfd->view_dirty = 1;
}
void *
_module_configure(void *data, void *data2)
{
+ E_Cfg_Mod_Data *d;
E_Config_Dialog *cfd;
CFData *cfdata;
E_Module *m;
cfd = data;
- m = cfd->data;
+ d = cfd->data;
+ m = d->mod;
cfdata = cfd->cfdata;
- if(m->func.config)
- {
- m->func.config(m);
- }
+ if (m->func.config)
+ {
+ m->func.config(m);
+ }
else
printf("Can't run config no module!!!\n");// Debug!!
}
@@ -243,10 +266,10 @@
cfd = data;
m = cfd->data;
cfdata = cfd->cfdata;
- if(m->func.about)
- {
- m->func.about(m);
- }
+ if (m->func.about)
+ {
+ m->func.about(m);
+ }
else
printf("Can't run about no module!!!\n");// Debug!!
}
@@ -256,29 +279,30 @@
static void
_fill_data(CFData *cfdata)
{
- char buf[4096];
- char fullpath[PATH_MAX];
- Evas_List *l=NULL;
-
- cfdata->umods = NULL;
-
- cfdata->mods= NULL;
+ char buf[4096];
+ char fullpath[PATH_MAX];
+ Evas_List *l = NULL;
+
+ cfdata->umods = NULL;
+ cfdata->mods = NULL;
//e_module_list();
-
- /* We could use e_module_list() but this method gives us alphabetical order
*/
- for(l = e_path_dir_list_get(path_modules);l;l = l->next)
- {
- E_Path_Dir *epd;
- epd = l->data;
- _e_config_module_list(&(cfdata->mods),epd->dir,1);
- }
-
- for(l = e_path_dir_list_get(path_modules);l;l = l->next)
- {
- E_Path_Dir *epd;
- epd = l->data;
- _e_config_module_list(&(cfdata->umods),epd->dir,0);
- }
+
+ /* We could use e_module_list() but this method gives us alphabetical order
*/
+ for (l = e_path_dir_list_get(path_modules); l; l = l->next)
+ {
+ E_Path_Dir *epd;
+
+ epd = l->data;
+ _e_config_module_list(&(cfdata->mods), epd->dir, 1);
+ }
+
+ for (l = e_path_dir_list_get(path_modules); l; l = l->next)
+ {
+ E_Path_Dir *epd;
+
+ epd = l->data;
+ _e_config_module_list(&(cfdata->umods), epd->dir, 0);
+ }
}
static void *
@@ -292,7 +316,6 @@
cfdata = E_NEW(CFData, 1);
_fill_data(cfdata);
-
return cfdata;
}
@@ -307,13 +330,13 @@
static int
_basic_apply_data(E_Config_Dialog *cfd, CFData *cfdata)
{
- return 1; /* Apply was OK */
+ return 1; /* Apply was OK */
}
static int
_advanced_apply_data(E_Config_Dialog *cfd, CFData *cfdata)
{
- return 1; /* Apply was OK */
+ return 1; /* Apply was OK */
}
/**--GUI--**/
@@ -331,19 +354,21 @@
o = e_widget_list_add(evas, 0, 1);
of = e_widget_framelist_add(evas, "Modules", 1);
- ob = e_widget_ilist_add(evas,16,16,NULL);
- for(l = cfdata->mods;l;l = l->next)
+ ob = e_widget_ilist_add(evas, 16, 16, NULL);
+ for(l = cfdata->mods; l; l = l->next)
{
E_Cfg_Mod_Data *cb_data;
+
m = l->data;
sob = e_icon_add(evas);
if (m->icon_file)
- e_icon_file_set(sob,m->icon_file);
+ e_icon_file_set(sob, m->icon_file);
/*else if (mod->edje_icon_file)
* {
* if (mod->edje_icon_key)
*/
cb_data = E_NEW(E_Cfg_Mod_Data, 1);
+ cb_data->loaded = 1;
cb_data->cfd = cfd;
cb_data->mod = m;
e_widget_ilist_append(ob, sob, m->name, _e_config_mod_cb_standard,
cb_data, m->name);
@@ -394,14 +419,15 @@
o = e_widget_list_add(evas, 0, 1);
of = e_widget_framelist_add(evas, "Loaded", 1);
- ob = e_widget_ilist_add(evas,16,16,NULL);
- for(l = cfdata->mods;l;l = l->next)
+ ob = e_widget_ilist_add(evas, 16, 16, NULL);
+ for(l = cfdata->mods; l; l = l->next)
{
E_Cfg_Mod_Data *cb_data;
+
m = l->data;
sob = e_icon_add(evas);
if (m->icon_file)
- e_icon_file_set(sob,m->icon_file);
+ e_icon_file_set(sob, m->icon_file);
cb_data = E_NEW(E_Cfg_Mod_Data, 1);
cb_data->cfd = cfd;
cb_data->loaded = 1;
@@ -414,38 +440,53 @@
e_widget_framelist_object_append(of, ob);
e_widget_list_object_append(o, of, 1, 1, 0.5);
- of = e_widget_list_add(evas, 0, 0);
+ of = e_widget_frametable_add(evas, "Actions", 1);
ob = e_widget_button_add(evas, "Load", NULL, _module_load, cfd, NULL);
cfdata->gui.load = ob;
e_widget_disabled_set(ob, 1);
- e_widget_list_object_append(of, ob, 1, 1, 0.5);
+ e_widget_frametable_object_append(of, ob, 0, 0, 1, 1, 32, 32, 1, 1);
+
+ ob = e_widget_button_add(evas, "Enable", NULL, _module_enable, cfd, NULL);
+ cfdata->gui.enable = ob;
+ e_widget_disabled_set(ob, 1);
+ e_widget_frametable_object_append(of, ob, 0, 1, 1, 1, 32, 32, 1, 1);
+
+ ob = e_widget_button_add(evas, "Disable", NULL, _module_enable, cfd, NULL);
+ cfdata->gui.disable = ob;
+ e_widget_disabled_set(ob, 1);
+ e_widget_frametable_object_append(of, ob, 0, 2, 1, 1, 32, 32, 1, 1);
ob = e_widget_button_add(evas, "Unload", NULL, _module_unload, cfd, NULL);
cfdata->gui.unload = ob;
e_widget_disabled_set(ob, 1);
- e_widget_list_object_append(of, ob, 1, 1, 0.5);
+ e_widget_frametable_object_append(of, ob, 0, 3, 1, 1, 32, 32, 1, 1);
+
+ ob = e_widget_button_add(evas, "Configure", NULL, _module_configure, cfd,
NULL);
+ cfdata->gui.configure = ob;
+ e_widget_disabled_set(ob, 1);
+ e_widget_frametable_object_append(of, ob, 0, 4, 1, 1, 32, 32, 1, 1);
e_widget_list_object_append(o, of, 1, 1, 0.5);
of = e_widget_framelist_add(evas, "Unloaded", 1);
- ob = e_widget_ilist_add(evas,16,16,NULL);
- for(l = cfdata->umods;l;l = l->next)
- {
- char *mod;
- char *icon;
- char buf[PATH_MAX];
- E_Cfg_Mod_Data *cb_data;
-
- mod = l->data;
- sob = e_icon_add(evas);
- snprintf(buf, sizeof(buf), "%s/module_icon.png", mod);
- icon = e_path_find(path_modules, buf);
- e_icon_file_set(sob,icon);
- cb_data = E_NEW(CFData,1);
- cb_data->cfd = cfd;
- cb_data->loaded = 0;
- cb_data->mod_name = strdup(mod);
- e_widget_ilist_append(ob, sob, mod, _e_config_mod_cb_standard, cb_data,
mod);
- }
+ ob = e_widget_ilist_add(evas, 16, 16, NULL);
+ for (l = cfdata->umods; l; l = l->next)
+ {
+ char *mod;
+ char *icon;
+ char buf[PATH_MAX];
+ E_Cfg_Mod_Data *cb_data;
+
+ mod = l->data;
+ sob = e_icon_add(evas);
+ snprintf(buf, sizeof(buf), "%s/module_icon.png", mod);
+ icon = e_path_find(path_modules, buf);
+ e_icon_file_set(sob,icon);
+ cb_data = E_NEW(CFData,1);
+ cb_data->cfd = cfd;
+ cb_data->loaded = 0;
+ cb_data->mod_name = strdup(mod);
+ e_widget_ilist_append(ob, sob, mod, _e_config_mod_cb_standard, cb_data,
mod);
+ }
cfdata->gui.unloaded = ob;
e_widget_ilist_go(ob);
e_widget_min_size_set(ob, 120, 120);
-------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc. Do you grep through log files
for problems? Stop! Download the new AJAX search engine that makes
searching your log files as easy as surfing the web. DOWNLOAD SPLUNK!
http://ads.osdn.com/?ad_id=7637&alloc_id=16865&op=click
_______________________________________________
enlightenment-cvs mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs