forked from enlightenment/enlightenment
abstract config dialogs more - include params.
SVN revision: 30588
This commit is contained in:
parent
5e8a55ff99
commit
371504515f
|
@ -60,14 +60,14 @@ struct _E_Configure_It
|
|||
const char *label;
|
||||
const char *icon_file;
|
||||
const char *icon;
|
||||
E_Config_Dialog *(*func) (E_Container *con);
|
||||
E_Config_Dialog *(*func) (E_Container *con, const char *params);
|
||||
};
|
||||
|
||||
static E_Configure *_e_configure = NULL;
|
||||
static Evas_List *_e_configure_registry = NULL;
|
||||
|
||||
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))
|
||||
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))
|
||||
{
|
||||
Evas_List *l;
|
||||
char *cat;
|
||||
|
@ -215,7 +215,7 @@ e_configure_registry_category_del(const char *path)
|
|||
}
|
||||
|
||||
EAPI void
|
||||
e_configure_registry_call(const char *path, E_Container *con)
|
||||
e_configure_registry_call(const char *path, E_Container *con, const char *params)
|
||||
{
|
||||
Evas_List *l;
|
||||
char *cat;
|
||||
|
@ -242,7 +242,7 @@ e_configure_registry_call(const char *path, E_Container *con)
|
|||
printf("%s == %s\n", item, eci->item);
|
||||
if (!strcmp(item, eci->item))
|
||||
{
|
||||
if (eci->func) eci->func(con);
|
||||
if (eci->func) eci->func(con, params);
|
||||
goto done;
|
||||
}
|
||||
}
|
||||
|
@ -478,6 +478,17 @@ e_configure_init(void)
|
|||
e_configure_registry_category_add("extensions", 90, _("Extensions"), NULL, "enlightenment/extensions");
|
||||
e_configure_registry_item_add("extensions/modules", 10, _("Modules"), NULL, "enlightenment/modules", e_int_config_modules);
|
||||
e_configure_registry_item_add("extensions/shelves", 20, _("Shelves"), NULL, "enlightenment/shelf", e_int_config_shelf);
|
||||
|
||||
/* internal calls - not in config dialog but accessible from other code
|
||||
* that knows these config dialogs exist and how to interact. they require
|
||||
* parameters to be passed and will not work without them being set and
|
||||
* set properly
|
||||
*/
|
||||
e_configure_registry_category_add("internal", -1, _("Internal"), NULL, "enlightenment/internal");
|
||||
e_configure_registry_item_add("internal/borders_border", -1, _("Border"), NULL, "enlightenment/windows", e_int_config_borders_border);
|
||||
e_configure_registry_item_add("internal/wallpaper_desk", -1, _("Wallpaper"), NULL, "enlightenment/windows", e_int_config_wallpaper_desk);
|
||||
e_configure_registry_item_add("internal/desk", -1, _("Desk"), NULL, "enlightenment/windows", e_int_config_desk);
|
||||
e_configure_registry_item_add("internal/ibar_other", -1, _("IBar Other"), NULL, "enlightenment/windows", e_int_config_apps_ibar_other);
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -644,7 +655,7 @@ _e_configure_item_cb(void *data)
|
|||
ci = data;
|
||||
if (!ci) return;
|
||||
cb = ci->cb;
|
||||
if (cb->path) e_configure_registry_call(cb->path, cb->eco->con);
|
||||
if (cb->path) e_configure_registry_call(cb->path, cb->eco->con, NULL);
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -748,7 +759,7 @@ _e_configure_fill_cat_list(void *data)
|
|||
E_Configure_Cat *ecat;
|
||||
|
||||
ecat = l->data;
|
||||
if (ecat->items)
|
||||
if ((ecat->pri >= 0) && (ecat->items))
|
||||
{
|
||||
cat = _e_configure_category_add(eco, ecat->label, ecat->icon);
|
||||
for (ll = ecat->items; ll; ll = ll->next)
|
||||
|
@ -757,8 +768,11 @@ _e_configure_fill_cat_list(void *data)
|
|||
char buf[1024];
|
||||
|
||||
eci = ll->data;
|
||||
snprintf(buf, sizeof(buf), "%s/%s", ecat->cat, eci->item);
|
||||
_e_configure_item_add(cat, eci->label, eci->icon, buf);
|
||||
if (eci->pri >= 0)
|
||||
{
|
||||
snprintf(buf, sizeof(buf), "%s/%s", ecat->cat, eci->item);
|
||||
_e_configure_item_add(cat, eci->label, eci->icon, buf);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -25,11 +25,11 @@ struct _E_Configure
|
|||
Evas_List *cats;
|
||||
};
|
||||
|
||||
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));
|
||||
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_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);
|
||||
EAPI void e_configure_registry_call(const char *path, E_Container *con);
|
||||
EAPI void e_configure_registry_call(const char *path, E_Container *con, const char *params);
|
||||
EAPI int e_configure_registry_exists(const char *path);
|
||||
|
||||
EAPI E_Configure *e_configure_show(E_Container *con);
|
||||
|
|
|
@ -158,7 +158,7 @@ e_desklock_show(void)
|
|||
|
||||
zone = e_util_zone_current_get(e_manager_current_get());
|
||||
if (zone)
|
||||
e_configure_registry_call("screen/screen_lock", zone->container);
|
||||
e_configure_registry_call("screen/screen_lock", zone->container, NULL);
|
||||
return 0;
|
||||
}
|
||||
#ifdef HAVE_PAM
|
||||
|
|
|
@ -431,9 +431,12 @@ static void
|
|||
_e_border_menu_cb_border(void *data, E_Menu *m, E_Menu_Item *mi)
|
||||
{
|
||||
E_Border *bd;
|
||||
char buf[256];
|
||||
|
||||
bd = data;
|
||||
if (bd->border_border_dialog) return;
|
||||
e_int_config_borders_border(bd);
|
||||
snprintf(buf, sizeof(buf), "%p", bd);
|
||||
e_configure_registry_call("internal/borders_border", bd->zone->container, buf);
|
||||
}
|
||||
|
||||
static void
|
||||
|
|
|
@ -125,6 +125,7 @@ e_int_config_apps_ibar_other(E_Container *con, const char *path)
|
|||
{
|
||||
E_Config_Once *once;
|
||||
|
||||
if (!path) return NULL;
|
||||
once = E_NEW(E_Config_Once, 1);
|
||||
once->title = _("IBar Applications");
|
||||
once->icon = "enlightenment/ibar_applications";
|
||||
|
|
|
@ -33,11 +33,16 @@ e_int_config_borders(E_Container *con)
|
|||
}
|
||||
|
||||
EAPI E_Config_Dialog *
|
||||
e_int_config_borders_border(E_Border *bd)
|
||||
e_int_config_borders_border(E_Container *con, const char *params)
|
||||
{
|
||||
E_Config_Dialog *cfd;
|
||||
E_Config_Dialog_View *v;
|
||||
E_Border *bd;
|
||||
|
||||
if (!params) return NULL;
|
||||
bd = NULL;
|
||||
sscanf(params, "%p", &bd);
|
||||
if (!bd) return NULL;
|
||||
v = _config_view_new();
|
||||
if (!v) return NULL;
|
||||
cfd = e_config_dialog_new(bd->zone->container,
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
#define E_INT_CONFIG_BORDERS_H
|
||||
|
||||
EAPI E_Config_Dialog *e_int_config_borders(E_Container *con);
|
||||
EAPI E_Config_Dialog *e_int_config_borders_border(E_Border *border);
|
||||
EAPI E_Config_Dialog *e_int_config_borders_border(E_Container *con, const char *params);
|
||||
|
||||
#endif
|
||||
#endif
|
||||
|
|
|
@ -21,12 +21,18 @@ struct _E_Config_Dialog_Data
|
|||
};
|
||||
|
||||
EAPI E_Config_Dialog *
|
||||
e_int_config_desk(E_Container *con, int con_num, int zone_num, int dx, int dy)
|
||||
e_int_config_desk(E_Container *con, const char *params)
|
||||
{
|
||||
E_Config_Dialog *cfd;
|
||||
E_Config_Dialog_View *v;
|
||||
E_Config_Dialog_Data *cfdata;
|
||||
int con_num, zone_num, dx, dy;
|
||||
|
||||
if (!params) return NULL;
|
||||
con_num = zone_num = dx = dy = -1;
|
||||
if (sscanf(params, "%i %i %i %i", &con_num, &zone_num, &dx, &dy) != 4)
|
||||
return NULL;
|
||||
|
||||
if (e_config_dialog_find("E", "_config_desk_dialog")) return NULL;
|
||||
|
||||
v = E_NEW(E_Config_Dialog_View, 1);
|
||||
|
@ -169,10 +175,13 @@ static void
|
|||
_cb_config(void *data, void *data2)
|
||||
{
|
||||
E_Config_Dialog_Data *cfdata;
|
||||
char buf[256];
|
||||
|
||||
cfdata = data;
|
||||
if (!cfdata) return;
|
||||
e_int_config_wallpaper_desk(cfdata->con_num, cfdata->zone_num, cfdata->desk_x, cfdata->desk_y);
|
||||
snprintf(buf, sizeof(buf), "%i %i %i %i",
|
||||
cfdata->con_num, cfdata->zone_num, cfdata->desk_x, cfdata->desk_y);
|
||||
e_configure_registry_call("internal/wallpaper_desk", e_container_current_get(e_manager_current_get()), buf);
|
||||
}
|
||||
|
||||
static int
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
#ifndef E_INT_CONFIG_DESK_H
|
||||
#define E_INT_CONFIG_DESK_H
|
||||
|
||||
EAPI E_Config_Dialog *e_int_config_desk(E_Container *con, int con_num, int zone_num, int dx, int dy);
|
||||
EAPI E_Config_Dialog *e_int_config_desk(E_Container *con, const char *params);
|
||||
|
||||
#endif
|
||||
#endif
|
||||
|
|
|
@ -9,8 +9,8 @@ static void _cb_standby_slider_change(void *data, Evas_Object *obj);
|
|||
static void _cb_suspend_slider_change(void *data, Evas_Object *obj);
|
||||
static void _cb_off_slider_change(void *data, Evas_Object *obj);
|
||||
|
||||
static int _e_int_config_dpms_available();
|
||||
static int _e_int_config_dpms_capable();
|
||||
static int _e_int_config_dpms_available(void);
|
||||
static int _e_int_config_dpms_capable(void);
|
||||
|
||||
struct _E_Config_Dialog_Data
|
||||
{
|
||||
|
@ -44,7 +44,7 @@ _cb_dpms_dialog_ok(void *data, E_Dialog *dia)
|
|||
}
|
||||
|
||||
static int
|
||||
_e_int_config_dpms_capable()
|
||||
_e_int_config_dpms_capable(void)
|
||||
{
|
||||
if (ecore_x_dpms_capable_get()) return 1;
|
||||
|
||||
|
@ -65,7 +65,7 @@ _e_int_config_dpms_capable()
|
|||
}
|
||||
|
||||
static int
|
||||
_e_int_config_dpms_available()
|
||||
_e_int_config_dpms_available(void)
|
||||
{
|
||||
if (ecore_x_dpms_query()) return 1;
|
||||
|
||||
|
|
|
@ -7,6 +7,7 @@
|
|||
#define E_INT_CONFIG_THEME_H
|
||||
|
||||
EAPI E_Config_Dialog *e_int_config_theme(E_Container *con);
|
||||
|
||||
EAPI void e_int_config_theme_import_done(E_Config_Dialog *dia);
|
||||
EAPI void e_int_config_theme_update(E_Config_Dialog *dia, char *file);
|
||||
|
||||
|
|
|
@ -12,6 +12,8 @@ static Evas_Object *_basic_create_widgets (E_Config_Dialog *cfd, Evas *evas,
|
|||
static int _advanced_apply_data (E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata);
|
||||
static Evas_Object *_advanced_create_widgets (E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data *cfdata);
|
||||
|
||||
static E_Config_Dialog *_e_int_config_wallpaper_desk(E_Container *con, int con_num, int zone_num, int desk_x, int desk_y);
|
||||
|
||||
#define E_CONFIG_WALLPAPER_ALL 0
|
||||
#define E_CONFIG_WALLPAPER_DESK 1
|
||||
#define E_CONFIG_WALLPAPER_SCREEN 2
|
||||
|
@ -48,16 +50,27 @@ struct _E_Config_Dialog_Data
|
|||
EAPI E_Config_Dialog *
|
||||
e_int_config_wallpaper(E_Container *con)
|
||||
{
|
||||
return e_int_config_wallpaper_desk(-1, -1, -1, -1);
|
||||
return _e_int_config_wallpaper_desk(con, -1, -1, -1, -1);
|
||||
}
|
||||
|
||||
EAPI E_Config_Dialog *
|
||||
e_int_config_wallpaper_desk(int con_num, int zone_num, int desk_x, int desk_y)
|
||||
e_int_config_wallpaper_desk(E_Container *con, const char *params)
|
||||
{
|
||||
int con_num, zone_num, desk_x, desk_y;
|
||||
|
||||
if (!params) return NULL;
|
||||
con_num = zone_num = desk_x = desk_y = -1;
|
||||
if (sscanf(params, "%i %i %i %i", &con_num, &zone_num, &desk_x, &desk_y) != 4)
|
||||
return NULL;
|
||||
_e_int_config_wallpaper_desk(con, con_num, zone_num, desk_x, desk_y);
|
||||
}
|
||||
|
||||
static E_Config_Dialog *
|
||||
_e_int_config_wallpaper_desk(E_Container *con, int con_num, int zone_num, int desk_x, int desk_y)
|
||||
{
|
||||
E_Config_Dialog *cfd;
|
||||
E_Config_Dialog_View *v;
|
||||
E_Config_Wallpaper *cw;
|
||||
E_Container *con;
|
||||
|
||||
if (e_config_dialog_find("E", "_config_wallpaper_dialog")) return NULL;
|
||||
v = E_NEW(E_Config_Dialog_View, 1);
|
||||
|
@ -83,8 +96,6 @@ e_int_config_wallpaper_desk(int con_num, int zone_num, int desk_x, int desk_y)
|
|||
cw->desk_x = desk_x;
|
||||
cw->desk_y = desk_y;
|
||||
|
||||
con = e_container_current_get(e_manager_current_get());
|
||||
|
||||
cfd = e_config_dialog_new(con,
|
||||
_("Wallpaper Settings"),
|
||||
"E", "_config_wallpaper_dialog",
|
||||
|
|
|
@ -8,7 +8,8 @@ typedef struct _E_Config_Wallpaper E_Config_Wallpaper;
|
|||
#define E_INT_CONFIG_WALLPAPER_H
|
||||
|
||||
EAPI E_Config_Dialog *e_int_config_wallpaper(E_Container *con);
|
||||
EAPI E_Config_Dialog *e_int_config_wallpaper_desk(int con_num, int zone_num, int desk_x, int desk_y);
|
||||
EAPI E_Config_Dialog *e_int_config_wallpaper_desk(E_Container *con, const char *params);
|
||||
|
||||
EAPI void e_int_config_wallpaper_update(E_Config_Dialog *dia, char *file);
|
||||
EAPI void e_int_config_wallpaper_import_done(E_Config_Dialog *dia);
|
||||
EAPI void e_int_config_wallpaper_gradient_done(E_Config_Dialog *dia);
|
||||
|
|
|
@ -714,7 +714,7 @@ _e_int_menus_virtuals_pre_cb(void *data, E_Menu *m)
|
|||
static void
|
||||
_e_int_menus_desk_item_cb(void *data, E_Menu *m, E_Menu_Item *mi)
|
||||
{
|
||||
e_configure_registry_call("screen/virtual_desktops", m->zone->container);
|
||||
e_configure_registry_call("screen/virtual_desktops", m->zone->container, NULL);
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -728,25 +728,25 @@ _e_int_menus_virtuals_item_cb(void *data, E_Menu *m, E_Menu_Item *mi)
|
|||
static void
|
||||
_e_int_menus_background_item_cb(void *data, E_Menu *m, E_Menu_Item *mi)
|
||||
{
|
||||
e_configure_registry_call("appearance/wallpaper", m->zone->container);
|
||||
e_configure_registry_call("appearance/wallpaper", m->zone->container, NULL);
|
||||
}
|
||||
|
||||
static void
|
||||
_e_int_menus_theme_item_cb(void *data, E_Menu *m, E_Menu_Item *mi)
|
||||
{
|
||||
e_configure_registry_call("appearance/theme", m->zone->container);
|
||||
e_configure_registry_call("appearance/theme", m->zone->container, NULL);
|
||||
}
|
||||
|
||||
static void
|
||||
_e_int_menus_module_item_cb(void *data, E_Menu *m, E_Menu_Item *mi)
|
||||
{
|
||||
e_configure_registry_call("extensions/modules", m->zone->container);
|
||||
e_configure_registry_call("extensions/modules", m->zone->container, NULL);
|
||||
}
|
||||
|
||||
static void
|
||||
_e_int_menus_shelf_item_cb(void *data, E_Menu *m, E_Menu_Item *mi)
|
||||
{
|
||||
e_configure_registry_call("extensions/shelves", m->zone->container);
|
||||
e_configure_registry_call("extensions/shelves", m->zone->container, NULL);
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -1629,5 +1629,5 @@ _e_int_menus_shelves_add_cb(void *data, E_Menu *m, E_Menu_Item *mi)
|
|||
static void
|
||||
_e_int_menus_shelves_del_cb(void *data, E_Menu *m, E_Menu_Item *mi)
|
||||
{
|
||||
e_configure_registry_call("extensions/shelves", m->zone->container);
|
||||
e_configure_registry_call("extensions/shelves", m->zone->container, NULL);
|
||||
}
|
||||
|
|
|
@ -217,7 +217,7 @@ _e_test_dia(E_Container *con)
|
|||
{
|
||||
E_Config_Dialog *dia;
|
||||
|
||||
dia = e_int_config_focus(con);
|
||||
dia = e_int_config_modules(con);
|
||||
return dia;
|
||||
}
|
||||
|
||||
|
|
|
@ -257,10 +257,12 @@ _e_wid_desk_cb_config(void *data, Evas *e, Evas_Object *obj, void *event_info)
|
|||
if (ev->button == 1)
|
||||
{
|
||||
E_Container *con;
|
||||
char buf[256];
|
||||
|
||||
con = e_container_current_get(e_manager_current_get());
|
||||
/* FIXME: this isn't abstracted like the rest of the config. */
|
||||
e_int_config_desk(con, dd->container, dd->zone, dd->x, dd->y);
|
||||
snprintf(buf, sizeof(buf), "%i %i %i %i",
|
||||
dd->container, dd->zone, dd->x, dd->y);
|
||||
e_configure_registry_call("internal/desk", con, buf);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -190,13 +190,15 @@ _cb_del(void *data, void *data2)
|
|||
static void
|
||||
_cb_config(void *data, void *data2)
|
||||
{
|
||||
char path[4096];
|
||||
char path[PATH_MAX];
|
||||
E_Config_Dialog_Data *cfdata;
|
||||
|
||||
cfdata = data;
|
||||
snprintf(path, sizeof(path), "%s/.e/e/applications/bar/%s/.order",
|
||||
e_user_homedir_get(), cfdata->dir);
|
||||
e_int_config_apps_ibar_other(e_container_current_get(e_manager_current_get()), path);
|
||||
e_configure_registry_call("internal/ibar_other",
|
||||
e_container_current_get(e_manager_current_get()),
|
||||
path);
|
||||
}
|
||||
|
||||
static void
|
||||
|
|
|
@ -692,8 +692,9 @@ _ibar_cb_menu_add(void *data, E_Menu *m, E_Menu_Item *mi)
|
|||
IBar *b;
|
||||
|
||||
b = data;
|
||||
e_int_config_apps_ibar_other(b->inst->gcc->gadcon->zone->container,
|
||||
b->apps->path);
|
||||
e_configure_registry_call("internal/ibar_other",
|
||||
b->inst->gcc->gadcon->zone->container,
|
||||
b->apps->path);
|
||||
}
|
||||
|
||||
static void
|
||||
|
|
|
@ -684,7 +684,7 @@ _pager_inst_cb_menu_virtual_desktops_dialog(void *data, E_Menu *m, E_Menu_Item *
|
|||
Instance *inst;
|
||||
|
||||
inst = data;
|
||||
e_int_config_desks(inst->gcc->gadcon->zone->container);
|
||||
e_configure_registry_call("screen/virtual_desktops", inst->gcc->gadcon->zone->container, NULL);
|
||||
}
|
||||
|
||||
static void
|
||||
|
|
Loading…
Reference in New Issue