add generic cfg call

SVN revision: 34409
This commit is contained in:
Carsten Haitzler 2008-04-30 12:01:32 +00:00
parent ee431269a7
commit 9c02f966a8
3 changed files with 20 additions and 3 deletions

View File

@ -6,7 +6,8 @@
typedef enum _E_Config_Dialog_CFData_Type
{
E_CONFIG_DIALOG_CFDATA_TYPE_BASIC,
E_CONFIG_DIALOG_CFDATA_TYPE_ADVANCED
E_CONFIG_DIALOG_CFDATA_TYPE_ADVANCED,
E_CONFIG_DIALOG_CFDATA_TYPE_NORMAL_WINDOW
} E_Config_Dialog_CFData_Type;
typedef struct _E_Config_Dialog E_Config_Dialog;

View File

@ -9,8 +9,8 @@ e_configure_init(void)
e_configure_registry_item_add("extensions/modules", 10, _("Modules"), NULL, "enlightenment/modules", e_int_config_modules);
}
EAPI void
e_configure_registry_item_add(const char *path, int pri, const char *label, const char *icon_file, const char *icon, E_Config_Dialog *(*func) (E_Container *con, const char *params))
static void
_e_configure_registry_item_full_add(const char *path, int pri, const char *label, const char *icon_file, const char *icon, E_Config_Dialog *(*func) (E_Container *con, const char *params), void (*generic_func) (E_Container *con, const char *params))
{
Evas_List *l;
char *cat;
@ -30,6 +30,7 @@ e_configure_registry_item_add(const char *path, int pri, const char *label, cons
if (icon_file) eci->icon_file = evas_stringshare_add(icon_file);
if (icon) eci->icon = evas_stringshare_add(icon);
eci->func = func;
eci->generic_func = generic_func;
for (l = e_configure_registry; l; l = l->next)
{
@ -59,6 +60,18 @@ e_configure_registry_item_add(const char *path, int pri, const char *label, cons
free(cat);
}
EAPI void
e_configure_registry_item_add(const char *path, int pri, const char *label, const char *icon_file, const char *icon, E_Config_Dialog *(*func) (E_Container *con, const char *params))
{
_e_configure_registry_item_full_add(path, pri, label, icon_file, icon, func, NULL);
}
EAPI void
e_configure_registry_generic_item_add(const char *path, int pri, const char *label, const char *icon_file, const char *icon, void (*generic_func) (E_Container *con, const char *params))
{
_e_configure_registry_item_full_add(path, pri, label, icon_file, icon, NULL, generic_func);
}
EAPI void
e_configure_registry_item_del(const char *path)
{
@ -187,6 +200,7 @@ e_configure_registry_call(const char *path, E_Container *con, const char *params
if (!strcmp(item, eci->item))
{
if (eci->func) eci->func(con, params);
else if (eci->generic_func) eci->generic_func(con, params);
goto done;
}
}

View File

@ -25,9 +25,11 @@ struct _E_Configure_It
const char *icon_file;
const char *icon;
E_Config_Dialog *(*func) (E_Container *con, const char *params);
void (*generic_func) (E_Container *con, const char *params);
};
EAPI void e_configure_registry_item_add(const char *path, int pri, const char *label, const char *icon_file, const char *icon, E_Config_Dialog *(*func) (E_Container *con, const char *params));
EAPI void e_configure_registry_generic_item_add(const char *path, int pri, const char *label, const char *icon_file, const char *icon, void (*generic_func) (E_Container *con, const char *params));
EAPI void e_configure_registry_item_del(const char *path);
EAPI void e_configure_registry_category_add(const char *path, int pri, const char *label, const char *icon_file, const char *icon);
EAPI void e_configure_registry_category_del(const char *path);