nice little overhaul of module related stuff. moduels now finally RELY on

module.eap files being installed - and using the e_apps api to load them and
ask for a name. Also icon is expected to be in this file too and i have
removed the info func call from modules as well as config_menu, module menus,
and other cruft in moduel structs. this also means revving the module api
version and saving users from a "if i recompile it will work" thing. :)
moduels need serious updates, not just a recompile for this. your modules
WILL break.


SVN revision: 23045
This commit is contained in:
Carsten Haitzler 2006-06-01 06:44:37 +00:00
parent f0ae0e8d64
commit 3a2144cad0
59 changed files with 44 additions and 584 deletions

20
TODO
View File

@ -48,14 +48,15 @@ Some of the things (in very short form) that need to be done to E17...
* finish complete netwm support * finish complete netwm support
* add a "taskbar" module * add a "taskbar" module
* add cpu load module * add cpu load module
* add a way to access "all" apps app dir * add a way to access "all" apps app dir (and dnd from it into ibar etc.)
* add setup/install wizard to seed eap files etc. etc. * add setup/install wizard to seed eap files etc. etc.
* support color classes * support color classes (gui config etc. etc.)
* add clientinfo pane/popdown for borders * add clientinfo pane/popdown for borders
* gui config dialogs for all config * gui config dialogs for all config
* make it possible to disable border buttons/actions (tell theme what is * make it possible to disable border buttons/actions (tell theme what is
disabled) disabled)
* shelf gui config needs a basic mode that is simpler. * shelf gui config needs a basic mode that is simpler and current becomes
"advanced" mode.
* ibar should support creating and deleting bar dirs * ibar should support creating and deleting bar dirs
* ibar labels need to be selected (name, generic, etc.) * ibar labels need to be selected (name, generic, etc.)
]]] ]]]
@ -65,6 +66,7 @@ Some of the things (in very short form) that need to be done to E17...
CLEANUPS CLEANUPS
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
* ipc is a mess. overgrown. hard to work with. what to do? remove?
* EAP cache files can be hit and miss and have problems. move things to be * EAP cache files can be hit and miss and have problems. move things to be
explicit reloads. explicit reloads.
* winlist should support place for window "screenshot" in list as well as * winlist should support place for window "screenshot" in list as well as
@ -73,8 +75,6 @@ Some of the things (in very short form) that need to be done to E17...
per desktop (with stick windows considered to live on the "current" desk per desktop (with stick windows considered to live on the "current" desk
when winlist starts) when winlist starts)
* make it easy for modules to hook into ipc and extend it for themselves * make it easy for modules to hook into ipc and extend it for themselves
* module api needs to move label and icon to data file (.eap file?), not api
* allow object paranoia to be a runtime option too
]]] ]]]
[[[ [[[
@ -82,6 +82,8 @@ Some of the things (in very short form) that need to be done to E17...
"NICE TO HAVE" FEATURES "NICE TO HAVE" FEATURES
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
* option to allow flipping desktops to wrap at virtual desktop grid edges
* window menu with raise/lower for windows (obviously missing currently)
* ibox should have options "Show from this desktop", "Show from all desktops", * ibox should have options "Show from this desktop", "Show from all desktops",
"show from zones", "show from this zone", etc. Similarly to those, that are "show from zones", "show from this zone", etc. Similarly to those, that are
in winlist. in winlist.
@ -90,11 +92,6 @@ Some of the things (in very short form) that need to be done to E17...
* switch to desktop of a new window if it opens on another desktop than the * switch to desktop of a new window if it opens on another desktop than the
current one current one
* emit signal to submenu entries if they have a submenu shown for them or not * emit signal to submenu entries if they have a submenu shown for them or not
* tip/hint/suggestion dialog
* add tooltips
* add locale and encoding fields to eapp files (to launch eapp in that
locale+encoding)
* add input method selector stuff to eapp - same as locale
* setup configs for gnome and kde (as options) if they are installed (eg * setup configs for gnome and kde (as options) if they are installed (eg
run gnome-settings-daemon). run gnome-settings-daemon).
* check engine can work on a given screen before using it * check engine can work on a given screen before using it
@ -102,8 +99,6 @@ Some of the things (in very short form) that need to be done to E17...
* add "osd" subsystem for things like volume controls on keybboards, etc. * add "osd" subsystem for things like volume controls on keybboards, etc.
that overlay the screen that overlay the screen
* file icons on the desktop (people ask for it) - xdnd for these * file icons on the desktop (people ask for it) - xdnd for these
* a "togglelist" widget (a scrollable list of items where u toggle
each of them on or off - much like ilist, but with a checkbox)
* "disable this gadget" menu option on gadcon clients * "disable this gadget" menu option on gadcon clients
* improve drag/resize of gadget items * improve drag/resize of gadget items
* pager should be able to be configured to control more than the current zone * pager should be able to be configured to control more than the current zone
@ -117,4 +112,3 @@ Some of the things (in very short form) that need to be done to E17...
* optimize clock theme (speed/cpu) (rotation in edje??? or evas???) * optimize clock theme (speed/cpu) (rotation in edje??? or evas???)
]]] ]]]

View File

@ -7,6 +7,8 @@
#include "config.h" #include "config.h"
#define USE_IPC #define USE_IPC
/* #define OBJECT_PARANOIA_CHECK */
/* #define OBJECT_CHECK */
#include <stdio.h> #include <stdio.h>
#include <stdlib.h> #include <stdlib.h>

View File

@ -264,7 +264,6 @@ _e_gadget_free(E_Gadget *gad)
} }
evas_list_free(gad->faces); evas_list_free(gad->faces);
gad->module->config_menu = NULL;
e_object_unref(E_OBJECT(gad->module)); e_object_unref(E_OBJECT(gad->module));
if (gad->name) evas_stringshare_del(gad->name); if (gad->name) evas_stringshare_del(gad->name);
free(gad); free(gad);

View File

@ -250,17 +250,24 @@ _basic_create_widgets(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data *cf
cm = l->data; cm = l->data;
if (cm) if (cm)
{ {
E_App *a;
cm->state = MOD_UNLOADED; cm->state = MOD_UNLOADED;
m = e_module_find(cm->name); m = e_module_find(cm->name);
if (m) if (m)
{ {
if (m->enabled) cm->state = MOD_ENABLED; if (m->enabled) cm->state = MOD_ENABLED;
} }
/* This Fails if module author names icon something else */ snprintf(buf, sizeof(buf), "%s/module.eap", cm->path);
snprintf(buf, sizeof(buf), "%s/module_icon.png", cm->path);
oc = e_icon_add(evas); a = e_app_new(buf, 0);
e_icon_file_set(oc, buf); if (a)
e_widget_ilist_append(ilist, oc, cm->name, NULL, NULL, NULL); {
oc = edje_object_add(evas);
edje_object_file_set(oc, buf, "icon");
e_widget_ilist_append(ilist, oc, a->name, NULL, NULL, NULL);
e_object_unref(E_OBJECT(a));
}
} }
} }

View File

@ -444,179 +444,3 @@ _basic_create_widgets(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data *cf
return o; return o;
} }
/************* raster original code ********************/
#if 0
static int
_basic_apply_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata)
{
Evas_List *l, *l2;
E_Config_Gadcon *cf_gc, *cf_gc2;
E_Config_Gadcon_Client *cf_gcc, *cf_gcc2;
int i, ok = 0;
char buf[256];
cfdata->gc->config_dialog = cfd;
for (l = e_config->gadcons; l; l = l->next)
{
cf_gc = l->data;
if ((!strcmp(cf_gc->name, cfdata->gc->name)) &&
(!strcmp(cf_gc->id, cfdata->gc->id)))
{
ok = 1;
break;
}
}
if (!ok) return 1;
for (l = cf_gc->clients; l; l = l->next)
{
cf_gcc = l->data;
if (!cf_gcc->name) continue;
if (!strcmp(cf_gcc->name, cfdata->cname))
{
if (!cfdata->enabled)
{
/* remove from list */
cf_gc->clients = evas_list_remove_list(cf_gc->clients, l);
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);
goto savedone;
}
return 1; /* Apply was OK */
}
}
snprintf(buf, sizeof(buf), "default");
for (i = 0; ; i++)
{
ok = 1;
for (l = e_config->gadcons; l; l = l->next)
{
cf_gc2 = l->data;
for (l2 = cf_gc2->clients; l2; l2 = l2->next)
{
cf_gcc2 = l2->data;
if ((!cf_gcc2->name) || (!cf_gcc2->id)) continue;
if ((!strcmp(cf_gcc2->name, cfdata->cname)) && (!strcmp(cf_gcc2->id, buf)))
{
ok = 0;
goto done;
}
}
}
if (ok) break;
done:
snprintf(buf, sizeof(buf), "other-%i", i);
}
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->autoscroll = 0;
cf_gcc->resizable = 0;
cf_gc->clients = evas_list_append(cf_gc->clients, cf_gcc);
savedone:
e_gadcon_unpopulate(cfdata->gc);
e_gadcon_populate(cfdata->gc);
e_config_save_queue();
return 1; /* Apply was OK */
}
static void
_cb_select(void *data)
{
E_Config_Dialog_Data *cfdata;
Evas_List *l;
E_Config_Gadcon *cf_gc;
E_Config_Gadcon_Client *cf_gcc;
int ok = 0, enabled = 0;
cfdata = data;
e_widget_disabled_set(cfdata->o_enabled, 0);
e_widget_disabled_set(cfdata->o_disabled, 0);
for (l = e_config->gadcons; l; l = l->next)
{
cf_gc = l->data;
if ((!strcmp(cf_gc->name, cfdata->gc->name)) &&
(!strcmp(cf_gc->id, cfdata->gc->id)))
{
ok = 1;
break;
}
}
if (!ok) return;
for (l = cf_gc->clients; l; l = l->next)
{
cf_gcc = l->data;
if (!cf_gcc->name) continue;
if (!strcmp(cf_gcc->name, cfdata->cname))
{
enabled = 1;
break;
}
}
e_widget_radio_toggle_set(cfdata->o_enabled, enabled);
e_widget_radio_toggle_set(cfdata->o_disabled, 1 - enabled);
}
static Evas_Object *
_basic_create_widgets(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data *cfdata)
{
/* generate the core widget layout for a basic dialog */
Evas_Object *o, *o2, *of, *ob, *oi, *oj;
E_Radio_Group *rg;
Evas_Coord wmw, wmh;
Evas_List *styles, *l;
int sel, n;
/* FIXME: this is just raw config now - it needs UI improvments */
o = e_widget_list_add(evas, 0, 1);
of = e_widget_framelist_add(evas, _("Available Items"), 0);
oi = e_widget_ilist_add(evas, 24, 24, &(cfdata->cname));
for (l = e_gadcon_provider_list(); l; l = l->next)
{
E_Gadcon_Client_Class *cc;
char *label;
Evas_Object *icon;
cc = l->data;
icon = NULL;
label = NULL;
if (cc->func.label) label = cc->func.label();
if (!label) label = cc->name;
if (cc->func.icon) icon = cc->func.icon(evas);
e_widget_ilist_append(oi, icon, label, _cb_select, cfdata, cc->name);
}
e_widget_ilist_go(oi);
e_widget_min_size_get(oi, &wmw, &wmh);
if (wmw < 200) wmw = 200;
e_widget_min_size_set(oi, wmw, 250);
e_widget_framelist_object_append(of, oi);
e_widget_list_object_append(o, of, 1, 1, 0.5);
of = e_widget_framelist_add(evas, _("Status"), 0);
rg = e_widget_radio_group_new(&(cfdata->enabled));
ob = e_widget_radio_add(evas, _("Enabled"), 1, rg);
e_widget_disabled_set(ob, 1);
e_widget_framelist_object_append(of, ob);
cfdata->o_enabled = ob;
ob = e_widget_radio_add(evas, _("Disabled"), 0, rg);
e_widget_disabled_set(ob, 1);
e_widget_framelist_object_append(of, ob);
cfdata->o_disabled = ob;
e_widget_list_object_append(o, of, 0, 0, 0.0);
return o;
}
#endif

View File

@ -11,9 +11,7 @@ struct _Main_Data
E_Menu *apps; E_Menu *apps;
E_Menu *desktops; E_Menu *desktops;
E_Menu *clients; E_Menu *clients;
// E_Menu *modules;
E_Menu *gadgets; E_Menu *gadgets;
// E_Menu *themes;
E_Menu *config; E_Menu *config;
E_Menu *lost_clients; E_Menu *lost_clients;
}; };
@ -46,12 +44,10 @@ static void _e_int_menus_desktops_pre_cb (void *data, E_Menu *m);
static void _e_int_menus_desktops_item_cb (void *data, E_Menu *m, E_Menu_Item *mi); static void _e_int_menus_desktops_item_cb (void *data, E_Menu *m, E_Menu_Item *mi);
static void _e_int_menus_gadgets_pre_cb (void *data, E_Menu *m); static void _e_int_menus_gadgets_pre_cb (void *data, E_Menu *m);
static void _e_int_menus_gadgets_edit_mode_cb(void *data, E_Menu *m, E_Menu_Item *mi); static void _e_int_menus_gadgets_edit_mode_cb(void *data, E_Menu *m, E_Menu_Item *mi);
static void _e_int_menus_themes_pre_cb (void *data, E_Menu *m);
static void _e_int_menus_themes_edit_mode_cb (void *data, E_Menu *m, E_Menu_Item *mi);
static void _e_int_menus_themes_about (void *data, E_Menu *m, E_Menu_Item *mi); static void _e_int_menus_themes_about (void *data, E_Menu *m, E_Menu_Item *mi);
static void _e_int_menus_lost_clients_pre_cb (void *data, E_Menu *m); static void _e_int_menus_lost_clients_pre_cb (void *data, E_Menu *m);
static void _e_int_menus_lost_clients_free_hook (void *obj); static void _e_int_menus_lost_clients_free_hook(void *obj);
static void _e_int_menus_lost_clients_item_cb (void *data, E_Menu *m, E_Menu_Item *mi); static void _e_int_menus_lost_clients_item_cb (void *data, E_Menu *m, E_Menu_Item *mi);
static void _e_int_menus_augmentation_add (E_Menu *m, Evas_List *augmentation); static void _e_int_menus_augmentation_add (E_Menu *m, Evas_List *augmentation);
static void _e_int_menus_augmentation_del (E_Menu *m, Evas_List *augmentation); static void _e_int_menus_augmentation_del (E_Menu *m, Evas_List *augmentation);
@ -90,20 +86,6 @@ e_int_menus_main_new(void)
mi = e_menu_item_new(m); mi = e_menu_item_new(m);
e_menu_item_separator_set(mi, 1); e_menu_item_separator_set(mi, 1);
/* Modules menu MUST go. it's inconsistsent with the dialog - it displays only
* loaded modules, dialog displays everything so u can load and unload etc.
* it's BAD to have 2 UI's and each be inconsistent with the other. use the
* dialog. this code will go soon.
*/
/*
subm = e_module_menu_new();
dat->modules = subm;
mi = e_menu_item_new(m);
e_menu_item_label_set(mi, _("Modules"));
e_util_menu_item_edje_icon_set(mi, "enlightenment/modules");
e_menu_item_submenu_set(mi, subm);
*/
subm = e_int_menus_desktops_new(); subm = e_int_menus_desktops_new();
dat->desktops = subm; dat->desktops = subm;
mi = e_menu_item_new(m); mi = e_menu_item_new(m);
@ -132,18 +114,6 @@ e_int_menus_main_new(void)
e_util_menu_item_edje_icon_set(mi, "enlightenment/gadgets"); e_util_menu_item_edje_icon_set(mi, "enlightenment/gadgets");
e_menu_item_submenu_set(mi, subm); e_menu_item_submenu_set(mi, subm);
/* We have a config dialog for this - this menu was a hack nayway to start
* with
*/
/*
subm = e_int_menus_themes_new();
dat->themes = subm;
mi = e_menu_item_new(m);
e_menu_item_label_set(mi, _("Themes"));
e_util_menu_item_edje_icon_set(mi, "enlightenment/themes");
e_menu_item_submenu_set(mi, subm);
*/
mi = e_menu_item_new(m); mi = e_menu_item_new(m);
e_menu_item_separator_set(mi, 1); e_menu_item_separator_set(mi, 1);
@ -253,18 +223,6 @@ e_int_menus_gadgets_new(void)
return m; return m;
} }
/*
EAPI E_Menu *
e_int_menus_themes_new(void)
{
E_Menu *m;
m = e_menu_new();
e_menu_pre_activate_callback_set(m, _e_int_menus_themes_pre_cb, NULL);
return m;
}
*/
EAPI E_Menu * EAPI E_Menu *
e_int_menus_lost_clients_new(void) e_int_menus_lost_clients_new(void)
{ {
@ -355,11 +313,9 @@ _e_int_menus_main_del_hook(void *obj)
if (dat) if (dat)
{ {
e_object_del(E_OBJECT(dat->apps)); e_object_del(E_OBJECT(dat->apps));
// e_object_del(E_OBJECT(dat->modules));
e_object_del(E_OBJECT(dat->desktops)); e_object_del(E_OBJECT(dat->desktops));
e_object_del(E_OBJECT(dat->clients)); e_object_del(E_OBJECT(dat->clients));
e_object_del(E_OBJECT(dat->gadgets)); e_object_del(E_OBJECT(dat->gadgets));
// e_object_del(E_OBJECT(dat->themes));
e_object_del(E_OBJECT(dat->config)); e_object_del(E_OBJECT(dat->config));
e_object_del(E_OBJECT(dat->lost_clients)); e_object_del(E_OBJECT(dat->lost_clients));
free(dat); free(dat);
@ -831,135 +787,6 @@ _e_int_menus_gadgets_edit_mode_cb(void *data, E_Menu *m, E_Menu_Item *mi)
e_gadman_mode_set(gm, E_GADMAN_MODE_NORMAL); e_gadman_mode_set(gm, E_GADMAN_MODE_NORMAL);
} }
} }
/* FIXME:
*
* Remove this later, keep for fast theme switching now.
*/
/*
static void
_e_int_menus_themes_pre_cb(void *data, E_Menu *m)
{
E_Menu_Item *mi;
E_Menu *root;
e_menu_pre_activate_callback_set(m, NULL, NULL);
root = e_menu_root_get(m);
mi = e_menu_item_new(m);
e_menu_item_label_set(mi, _("About This Theme"));
e_util_menu_item_edje_icon_set(mi, "enlightenment/theme");
e_menu_item_callback_set(mi, _e_int_menus_themes_about, NULL);
mi = e_menu_item_new(m);
e_menu_item_separator_set(mi, 1);
if ((root) && (root->zone))
{
char buf[4096];
char *homedir;
homedir = e_user_homedir_get();
if (homedir)
{
snprintf(buf, sizeof(buf), "%s/.e/e/themes", homedir);
free(homedir);
}
if (ecore_file_is_dir(buf))
{
Ecore_List *themes;
themes = ecore_file_ls(buf);
if (themes)
{
char *theme, *deftheme = NULL;
char fulltheme[PATH_MAX];
Evas_Object *o;
Ecore_Evas *eebuf;
Evas *evasbuf;
Evas_List *l;
for (l = e_config->themes; l; l = l->next)
{
E_Config_Theme *et;
et = l->data;
if (!strcmp(et->category, "theme")) deftheme = et->file;
}
mi = e_menu_item_new(m);
e_menu_item_radio_set(mi, 1);
e_menu_item_radio_group_set(mi, 1);
if (((deftheme) && (!strcmp("default", deftheme))) ||
(!deftheme))
e_menu_item_toggle_set(mi, 1);
e_menu_item_label_set(mi, "default");
e_menu_item_callback_set(mi, _e_int_menus_themes_edit_mode_cb, NULL);
eebuf = ecore_evas_buffer_new(1, 1);
evasbuf = ecore_evas_get(eebuf);
o = edje_object_add(evasbuf);
while ((theme = ecore_list_next(themes)))
{
snprintf(fulltheme, sizeof(fulltheme), "%s/%s", buf, theme);
if (ecore_file_is_dir(fulltheme)) continue;
if(edje_object_file_set(o, fulltheme, "widgets/border/default/border"))
{
mi = e_menu_item_new(m);
e_menu_item_radio_set(mi, 1);
e_menu_item_radio_group_set(mi, 1);
if (deftheme)
{
if (!strcmp(theme, deftheme))
e_menu_item_toggle_set(mi, 1);
}
e_menu_item_label_set(mi, theme);
e_menu_item_callback_set(mi, _e_int_menus_themes_edit_mode_cb, NULL);
}
}
evas_object_del(o);
ecore_evas_free(eebuf);
ecore_list_destroy(themes);
}
}
}
}
static void
_e_int_menus_themes_edit_mode_cb(void *data, E_Menu *m, E_Menu_Item *mi)
{
E_Config_Theme *et;
Evas_List *l;
E_Action *a;
for (l = e_config->themes; l; l = l->next)
{
et = l->data;
if (!strcmp(et->category, "theme"))
{
e_config->themes = evas_list_remove_list(e_config->themes, l);
evas_stringshare_del(et->category);
evas_stringshare_del(et->file);
E_FREE(et);
break;
}
}
et = E_NEW(E_Config_Theme, 1);
et->category = evas_stringshare_add("theme");
et->file = evas_stringshare_add(mi->label);
e_config->themes = evas_list_append(e_config->themes, et);
e_config_save_queue();
a = e_action_find("restart");
if ((a) && (a->func.go)) a->func.go(NULL, NULL);
}
*/
static void static void
_e_int_menus_lost_clients_pre_cb(void *data, E_Menu *m) _e_int_menus_lost_clients_pre_cb(void *data, E_Menu *m)

View File

@ -130,16 +130,19 @@ e_module_new(const char *name)
m->func.init = dlsym(m->handle, "e_modapi_init"); m->func.init = dlsym(m->handle, "e_modapi_init");
m->func.shutdown = dlsym(m->handle, "e_modapi_shutdown"); m->func.shutdown = dlsym(m->handle, "e_modapi_shutdown");
m->func.save = dlsym(m->handle, "e_modapi_save"); m->func.save = dlsym(m->handle, "e_modapi_save");
m->func.info = dlsym(m->handle, "e_modapi_info");
m->func.about = dlsym(m->handle, "e_modapi_about"); m->func.about = dlsym(m->handle, "e_modapi_about");
m->func.config = dlsym(m->handle, "e_modapi_config"); m->func.config = dlsym(m->handle, "e_modapi_config");
if ((!m->func.init) || if ((!m->func.init) ||
(!m->func.shutdown) || (!m->func.shutdown) ||
(!m->func.save) || (!m->func.save) ||
(!m->func.info) ||
(!m->func.about) || (!m->func.about) ||
(!m->api) (!m->api) ||
// this is to more forcibly catch old/bad modules. will go - eventually,
// but for now is a good check to have
(dlsym(m->handle, "e_modapi_info"))
) )
{ {
snprintf(body, sizeof(body), _("There was an error loading module named: %s<br>" snprintf(body, sizeof(body), _("There was an error loading module named: %s<br>"
@ -153,7 +156,6 @@ e_module_new(const char *name)
m->func.init = NULL; m->func.init = NULL;
m->func.shutdown = NULL; m->func.shutdown = NULL;
m->func.save = NULL; m->func.save = NULL;
m->func.info = NULL;
m->func.about = NULL; m->func.about = NULL;
m->func.config = NULL; m->func.config = NULL;
@ -176,7 +178,6 @@ e_module_new(const char *name)
m->func.init = NULL; m->func.init = NULL;
m->func.shutdown = NULL; m->func.shutdown = NULL;
m->func.save = NULL; m->func.save = NULL;
m->func.info = NULL;
m->func.about = NULL; m->func.about = NULL;
m->func.config = NULL; m->func.config = NULL;
dlclose(m->handle); dlclose(m->handle);
@ -205,8 +206,6 @@ init_done:
} }
} }
} }
if (m->func.info)
m->func.info(m);
for (l = e_config->modules; l; l = l->next) for (l = e_config->modules; l; l = l->next)
{ {
E_Config_Module *em; E_Config_Module *em;
@ -356,53 +355,6 @@ e_module_list(void)
return _e_modules; return _e_modules;
} }
EAPI E_Menu *
e_module_menu_new(void)
{
E_Menu *m, *subm;
E_Menu_Item *mi;
Evas_List *l;
Module_Menu_Data *dat;
int mod_count = 0;
dat = calloc(1, sizeof(Module_Menu_Data));
m = e_menu_new();
e_object_data_set(E_OBJECT(m), dat);
e_object_free_attach_func_set(E_OBJECT(m), _e_module_menu_free);
for (l = _e_modules; l; l = l->next)
{
E_Module *mod;
mod = l->data;
mi = e_menu_item_new(m);
if ((mod->api) && (mod->api->name))
e_menu_item_label_set(mi, mod->api->name);
else e_menu_item_label_set(mi, mod->name);
if (mod->edje_icon_file)
{
if (mod->edje_icon_key)
e_menu_item_icon_edje_set(mi, mod->edje_icon_file, mod->edje_icon_key);
else
e_menu_item_icon_edje_set(mi, mod->edje_icon_file, "icon");
}
else if (mod->icon_file)
e_menu_item_icon_file_set(mi, mod->icon_file);
subm = _e_module_control_menu_new(mod);
if (subm)
{
e_menu_item_submenu_set(mi, subm);
dat->submenus = evas_list_append(dat->submenus, subm);
}
++mod_count;
}
if (mod_count == 0)
{
mi = e_menu_item_new(m);
e_menu_item_label_set(mi, _("(No Loaded Modules)"));
}
return m;
}
EAPI void EAPI void
e_module_dialog_show(const char *title, const char *body) e_module_dialog_show(const char *title, const char *body)
{ {
@ -455,9 +407,6 @@ _e_module_free(E_Module *m)
if (m->dir) evas_stringshare_del(m->dir); if (m->dir) evas_stringshare_del(m->dir);
if (m->handle) dlclose(m->handle); if (m->handle) dlclose(m->handle);
_e_modules = evas_list_remove(_e_modules, m); _e_modules = evas_list_remove(_e_modules, m);
if (m->icon_file) free(m->icon_file);
if (m->edje_icon_file) free(m->edje_icon_file);
if (m->edje_icon_key) free(m->edje_icon_key);
free(m); free(m);
} }

View File

@ -3,7 +3,7 @@
*/ */
#ifdef E_TYPEDEFS #ifdef E_TYPEDEFS
#define E_MODULE_API_VERSION 2 #define E_MODULE_API_VERSION 3
typedef struct _E_Module E_Module; typedef struct _E_Module E_Module;
typedef struct _E_Module_Api E_Module_Api; typedef struct _E_Module_Api E_Module_Api;
@ -28,7 +28,6 @@ struct _E_Module
void * (*init) (E_Module *m); void * (*init) (E_Module *m);
int (*shutdown) (E_Module *m); int (*shutdown) (E_Module *m);
int (*save) (E_Module *m); int (*save) (E_Module *m);
int (*info) (E_Module *m);
int (*about) (E_Module *m); int (*about) (E_Module *m);
int (*config) (E_Module *m); int (*config) (E_Module *m);
} func; } func;
@ -38,14 +37,6 @@ struct _E_Module
/* the module is allowed to modify these */ /* the module is allowed to modify these */
void *data; void *data;
E_Menu *config_menu;
/* modify these but only set them up when the info func is called */
/* e_module will free them when the module is freed. */
/* note you will need to malloc (strdup) these fields due to the free */
char *icon_file;
char *edje_icon_file;
char *edje_icon_key;
}; };
struct _E_Module_Api struct _E_Module_Api
@ -66,7 +57,6 @@ EAPI int e_module_enabled_get(E_Module *m);
EAPI int e_module_save_all(void); EAPI int e_module_save_all(void);
EAPI E_Module *e_module_find(const char *name); EAPI E_Module *e_module_find(const char *name);
EAPI Evas_List *e_module_list(void); EAPI Evas_List *e_module_list(void);
EAPI E_Menu *e_module_menu_new(void);
EAPI void e_module_dialog_show(const char *title, const char *body); EAPI void e_module_dialog_show(const char *title, const char *body);
#endif #endif

View File

@ -3,17 +3,6 @@
*/ */
#include "e.h" #include "e.h"
/* TODO List:
*
* * fix a lot of parts of e17's code to use e_object_del NOT e_object_unref.
* there is a subtle difference. unref means u had a reference and you stop
* referencing the object - thats ALL. if you created it and now literally
* want to destroy it - del is the way to go. there is a separate handler for
* this so on del it can go and clean up objects that may reference this one
* etc.
*
*/
/* yes - i know. glibc specific... but i like being able to do my own */ /* yes - i know. glibc specific... but i like being able to do my own */
/* backtraces! NB: you need CFLAGS="-rdynamic -g" LDFLAGS="-rdynamic -g" */ /* backtraces! NB: you need CFLAGS="-rdynamic -g" LDFLAGS="-rdynamic -g" */
#ifdef OBJECT_PARANOIA_CHECK #ifdef OBJECT_PARANOIA_CHECK

View File

@ -6,15 +6,12 @@
/* Object safety/debugging checks */ /* Object safety/debugging checks */
/* */ /* */
/* OBJECT_PARANOIA_CHECK is paranoid and checkes pointers and traps segv's */ /* OBJECT_PARANOIA_CHECK is paranoid and checkes pointers and traps segv's */
/* incase they dont work... very paranoid and slow. NB for backtrace to */ /* in case they dont work... very paranoid and slow. NB for backtrace to */
/* work you need gcc, glibc and you need to compile with compile options of */ /* work you need gcc, glibc and you need to compile with compile options of */
/* -g -rdynamic and link with them too */ /* -g -rdynamic and link with them too */
/* OBJECT_CHECK is a simple null pointer and magic number check with no */ /* OBJECT_CHECK is a simple null pointer and magic number check with no */
/* debug output */ /* debug output */
/* #define OBJECT_PARANOIA_CHECK */
/* #define OBJECT_CHECK */
#ifndef __GLIBC__ #ifndef __GLIBC__
# ifdef OBJECT_PARANOIA_CHECK # ifdef OBJECT_PARANOIA_CHECK
# warning "Your system doesn't have glibc. Paranoid object checking disabled." # warning "Your system doesn't have glibc. Paranoid object checking disabled."

View File

@ -4,8 +4,7 @@ MODULE = battery
# data files for the module # data files for the module
filesdir = $(libdir)/enlightenment/modules/$(MODULE) filesdir = $(libdir)/enlightenment/modules/$(MODULE)
files_DATA = \ files_DATA = \
module.eap \ module.eap
module_icon.png
EXTRA_DIST = $(files_DATA) EXTRA_DIST = $(files_DATA)

View File

@ -1424,16 +1424,6 @@ e_modapi_save(E_Module *m)
return 1; return 1;
} }
EAPI int
e_modapi_info(E_Module *m)
{
char buf[4096];
snprintf(buf, sizeof(buf), "%s/module_icon.png", e_module_dir_get(m));
m->icon_file = strdup(buf);
return 1;
}
EAPI int EAPI int
e_modapi_about(E_Module *m) e_modapi_about(E_Module *m)
{ {

View File

@ -63,7 +63,6 @@ EAPI extern E_Module_Api e_modapi;
EAPI void *e_modapi_init (E_Module *m); EAPI void *e_modapi_init (E_Module *m);
EAPI int e_modapi_shutdown (E_Module *m); EAPI int e_modapi_shutdown (E_Module *m);
EAPI int e_modapi_save (E_Module *m); EAPI int e_modapi_save (E_Module *m);
EAPI int e_modapi_info (E_Module *m);
EAPI int e_modapi_about (E_Module *m); EAPI int e_modapi_about (E_Module *m);
EAPI int e_modapi_config (E_Module *m); EAPI int e_modapi_config (E_Module *m);

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

View File

@ -4,8 +4,7 @@ MODULE = clock
# data files for the module # data files for the module
filesdir = $(libdir)/enlightenment/modules/$(MODULE) filesdir = $(libdir)/enlightenment/modules/$(MODULE)
files_DATA = \ files_DATA = \
module.eap \ module.eap
module_icon.png
EXTRA_DIST = $(files_DATA) EXTRA_DIST = $(files_DATA)

View File

@ -143,16 +143,6 @@ e_modapi_save(E_Module *m)
return 1; return 1;
} }
EAPI int
e_modapi_info(E_Module *m)
{
char buf[4096];
snprintf(buf, sizeof(buf), "%s/module_icon.png", e_module_dir_get(m));
m->icon_file = strdup(buf);
return 1;
}
EAPI int EAPI int
e_modapi_about(E_Module *m) e_modapi_about(E_Module *m)
{ {

View File

@ -9,7 +9,6 @@ EAPI extern E_Module_Api e_modapi;
EAPI void *e_modapi_init (E_Module *m); EAPI void *e_modapi_init (E_Module *m);
EAPI int e_modapi_shutdown (E_Module *m); EAPI int e_modapi_shutdown (E_Module *m);
EAPI int e_modapi_save (E_Module *m); EAPI int e_modapi_save (E_Module *m);
EAPI int e_modapi_info (E_Module *m);
EAPI int e_modapi_about (E_Module *m); EAPI int e_modapi_about (E_Module *m);
EAPI int e_modapi_config (E_Module *m); EAPI int e_modapi_config (E_Module *m);

Binary file not shown.

View File

@ -4,8 +4,7 @@ MODULE = cpufreq
# data files for the module # data files for the module
filesdir = $(libdir)/enlightenment/modules/$(MODULE) filesdir = $(libdir)/enlightenment/modules/$(MODULE)
files_DATA = \ files_DATA = \
module.eap \ module.eap
module_icon.png
EXTRA_DIST = $(files_DATA) EXTRA_DIST = $(files_DATA)

View File

@ -933,16 +933,6 @@ e_modapi_save(E_Module *m)
return 1; return 1;
} }
EAPI int
e_modapi_info(E_Module *m)
{
char buf[4096];
snprintf(buf, sizeof(buf), "%s/module_icon.png", e_module_dir_get(m));
m->icon_file = strdup(buf);
return 1;
}
EAPI int EAPI int
e_modapi_about(E_Module *m) e_modapi_about(E_Module *m)
{ {

View File

@ -37,7 +37,6 @@ EAPI extern E_Module_Api e_modapi;
EAPI void *e_modapi_init (E_Module *m); EAPI void *e_modapi_init (E_Module *m);
EAPI int e_modapi_shutdown (E_Module *m); EAPI int e_modapi_shutdown (E_Module *m);
EAPI int e_modapi_save (E_Module *m); EAPI int e_modapi_save (E_Module *m);
EAPI int e_modapi_info (E_Module *m);
EAPI int e_modapi_about (E_Module *m); EAPI int e_modapi_about (E_Module *m);
EAPI int e_modapi_config (E_Module *m); EAPI int e_modapi_config (E_Module *m);

Binary file not shown.

Before

Width:  |  Height:  |  Size: 985 B

View File

@ -4,21 +4,8 @@ MODULE = dropshadow
# data files for the module # data files for the module
filesdir = $(libdir)/enlightenment/modules/$(MODULE) filesdir = $(libdir)/enlightenment/modules/$(MODULE)
files_DATA = \ files_DATA = \
module.eap \ module.eap
module_icon.png \
menu_icon_close.png \
menu_icon_dark.png \
menu_icon_far.png \
menu_icon_fuzzy.png \
menu_icon_light.png \
menu_icon_medium.png \
menu_icon_sharp.png \
menu_icon_underneath.png \
menu_icon_very_dark.png \
menu_icon_very_far.png \
menu_icon_very_fuzzy.png \
menu_icon_very_light.png \
menu_icon_very_sharp.png
EXTRA_DIST = $(files_DATA) EXTRA_DIST = $(files_DATA)
# the module .so file # the module .so file

View File

@ -151,16 +151,6 @@ e_modapi_save(E_Module *m)
return 1; return 1;
} }
EAPI int
e_modapi_info(E_Module *m)
{
char buf[4096];
snprintf(buf, sizeof(buf), "%s/module_icon.png", e_module_dir_get(m));
m->icon_file = strdup(buf);
return 1;
}
EAPI int EAPI int
e_modapi_about(E_Module *m) e_modapi_about(E_Module *m)
{ {

Binary file not shown.

Before

Width:  |  Height:  |  Size: 671 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 578 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 713 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 624 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 518 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 604 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 528 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 539 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 604 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 728 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 640 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 456 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 281 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

View File

@ -4,8 +4,7 @@ MODULE = ibar
# data files for the module # data files for the module
filesdir = $(libdir)/enlightenment/modules/$(MODULE) filesdir = $(libdir)/enlightenment/modules/$(MODULE)
files_DATA = \ files_DATA = \
module.eap \ module.eap
module_icon.png
EXTRA_DIST = $(files_DATA) EXTRA_DIST = $(files_DATA)

View File

@ -1333,16 +1333,6 @@ e_modapi_save(E_Module *m)
return 1; return 1;
} }
EAPI int
e_modapi_info(E_Module *m)
{
char buf[4096];
snprintf(buf, sizeof(buf), "%s/module_icon.png", e_module_dir_get(m));
m->icon_file = strdup(buf);
return 1;
}
EAPI int EAPI int
e_modapi_about(E_Module *m) e_modapi_about(E_Module *m)
{ {

Binary file not shown.

Before

Width:  |  Height:  |  Size: 581 B

View File

@ -4,8 +4,7 @@ MODULE = ibox
# data files for the module # data files for the module
filesdir = $(libdir)/enlightenment/modules/$(MODULE) filesdir = $(libdir)/enlightenment/modules/$(MODULE)
files_DATA = \ files_DATA = \
module.eap \ module.eap
module_icon.png
EXTRA_DIST = $(files_DATA) EXTRA_DIST = $(files_DATA)

View File

@ -1263,16 +1263,6 @@ e_modapi_save(E_Module *m)
return 1; return 1;
} }
EAPI int
e_modapi_info(E_Module *m)
{
char buf[4096];
snprintf(buf, sizeof(buf), "%s/module_icon.png", e_module_dir_get(m));
m->icon_file = strdup(buf);
return 1;
}
EAPI int EAPI int
e_modapi_about(E_Module *m) e_modapi_about(E_Module *m)
{ {

View File

@ -29,7 +29,6 @@ EAPI extern E_Module_Api e_modapi;
EAPI void *e_modapi_init (E_Module *m); EAPI void *e_modapi_init (E_Module *m);
EAPI int e_modapi_shutdown (E_Module *m); EAPI int e_modapi_shutdown (E_Module *m);
EAPI int e_modapi_save (E_Module *m); EAPI int e_modapi_save (E_Module *m);
EAPI int e_modapi_info (E_Module *m);
EAPI int e_modapi_about (E_Module *m); EAPI int e_modapi_about (E_Module *m);
void _ibox_config_update(void); void _ibox_config_update(void);

Binary file not shown.

View File

@ -3,8 +3,7 @@ MODULE = itray
# data files for the module # data files for the module
filesdir = $(libdir)/enlightenment/modules/$(MODULE) filesdir = $(libdir)/enlightenment/modules/$(MODULE)
files_DATA = \ files_DATA =
module_icon.png
EXTRA_DIST = $(files_DATA) EXTRA_DIST = $(files_DATA)

Binary file not shown.

Before

Width:  |  Height:  |  Size: 688 B

View File

@ -4,8 +4,7 @@ MODULE = pager
# data files for the module # data files for the module
filesdir = $(libdir)/enlightenment/modules/$(MODULE) filesdir = $(libdir)/enlightenment/modules/$(MODULE)
files_DATA = \ files_DATA = \
module.eap \ module.eap
module_icon.png
EXTRA_DIST = $(files_DATA) EXTRA_DIST = $(files_DATA)

View File

@ -1822,16 +1822,6 @@ e_modapi_save(E_Module *m)
return 1; return 1;
} }
EAPI int
e_modapi_info(E_Module *m)
{
char buf[4096];
snprintf(buf, sizeof(buf), "%s/module_icon.png", e_module_dir_get(m));
m->icon_file = strdup(buf);
return 1;
}
EAPI int EAPI int
e_modapi_about(E_Module *m) e_modapi_about(E_Module *m)
{ {

View File

@ -46,7 +46,6 @@ EAPI extern E_Module_Api e_modapi;
EAPI void *e_modapi_init (E_Module *m); EAPI void *e_modapi_init (E_Module *m);
EAPI int e_modapi_shutdown (E_Module *m); EAPI int e_modapi_shutdown (E_Module *m);
EAPI int e_modapi_save (E_Module *m); EAPI int e_modapi_save (E_Module *m);
EAPI int e_modapi_info (E_Module *m);
EAPI int e_modapi_about (E_Module *m); EAPI int e_modapi_about (E_Module *m);
void _pager_cb_config_updated(void); void _pager_cb_config_updated(void);

Binary file not shown.

View File

@ -4,8 +4,7 @@ MODULE = start
# data files for the module # data files for the module
filesdir = $(libdir)/enlightenment/modules/$(MODULE) filesdir = $(libdir)/enlightenment/modules/$(MODULE)
files_DATA = \ files_DATA = \
module.eap \ module.eap
module_icon.png
EXTRA_DIST = $(files_DATA) EXTRA_DIST = $(files_DATA)

View File

@ -249,16 +249,6 @@ e_modapi_save(E_Module *m)
return 1; return 1;
} }
EAPI int
e_modapi_info(E_Module *m)
{
char buf[4096];
snprintf(buf, sizeof(buf), "%s/module_icon.png", e_module_dir_get(m));
m->icon_file = strdup(buf);
return 1;
}
EAPI int EAPI int
e_modapi_about(E_Module *m) e_modapi_about(E_Module *m)
{ {
@ -268,3 +258,4 @@ e_modapi_about(E_Module *m)
} }
/**/ /**/
/***************************************************************************/ /***************************************************************************/

View File

@ -9,7 +9,6 @@ EAPI extern E_Module_Api e_modapi;
EAPI void *e_modapi_init (E_Module *m); EAPI void *e_modapi_init (E_Module *m);
EAPI int e_modapi_shutdown (E_Module *m); EAPI int e_modapi_shutdown (E_Module *m);
EAPI int e_modapi_save (E_Module *m); EAPI int e_modapi_save (E_Module *m);
EAPI int e_modapi_info (E_Module *m);
EAPI int e_modapi_about (E_Module *m); EAPI int e_modapi_about (E_Module *m);
#endif #endif

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.5 KiB

View File

@ -4,8 +4,7 @@ MODULE = temperature
# data files for the module # data files for the module
filesdir = $(libdir)/enlightenment/modules/$(MODULE) filesdir = $(libdir)/enlightenment/modules/$(MODULE)
files_DATA = \ files_DATA = \
module.eap \ module.eap
module_icon.png
EXTRA_DIST = $(files_DATA) EXTRA_DIST = $(files_DATA)

View File

@ -443,16 +443,6 @@ e_modapi_save(E_Module *m)
return 1; return 1;
} }
EAPI int
e_modapi_info(E_Module *m)
{
char buf[4096];
snprintf(buf, sizeof(buf), "%s/module_icon.png", e_module_dir_get(m));
m->icon_file = strdup(buf);
return 1;
}
EAPI int EAPI int
e_modapi_about(E_Module *m) e_modapi_about(E_Module *m)
{ {

View File

@ -33,7 +33,6 @@ EAPI extern E_Module_Api e_modapi;
EAPI void *e_modapi_init (E_Module *m); EAPI void *e_modapi_init (E_Module *m);
EAPI int e_modapi_shutdown (E_Module *m); EAPI int e_modapi_shutdown (E_Module *m);
EAPI int e_modapi_save (E_Module *m); EAPI int e_modapi_save (E_Module *m);
EAPI int e_modapi_info (E_Module *m);
EAPI int e_modapi_about (E_Module *m); EAPI int e_modapi_about (E_Module *m);
EAPI int e_modapi_config (E_Module *m); EAPI int e_modapi_config (E_Module *m);

Binary file not shown.

Before

Width:  |  Height:  |  Size: 706 B