Better settings in menu.
Instead of disabling nice quick access menus (by disabling config/1 augmentation), just add itself as the last submenu named "All", then with entries. This looks fine and I guess can even be the default. SVN revision: 46688
This commit is contained in:
parent
3d895520f6
commit
6cae71ebda
|
@ -1,7 +1,7 @@
|
|||
#include "e.h"
|
||||
#include "e_mod_main.h"
|
||||
|
||||
struct _E_Config_Dialog_Data
|
||||
struct _E_Config_Dialog_Data
|
||||
{
|
||||
int menu_augmentation;
|
||||
};
|
||||
|
@ -13,7 +13,7 @@ static Evas_Object *_basic_create(E_Config_Dialog *cfd, Evas *evas, E_Config_Dia
|
|||
static int _basic_apply(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata);
|
||||
|
||||
E_Config_Dialog *
|
||||
e_int_config_conf_module(E_Container *con, const char *params)
|
||||
e_int_config_conf_module(E_Container *con, const char *params)
|
||||
{
|
||||
E_Config_Dialog *cfd = NULL;
|
||||
E_Config_Dialog_View *v = NULL;
|
||||
|
@ -31,7 +31,7 @@ e_int_config_conf_module(E_Container *con, const char *params)
|
|||
v->basic.apply_cfdata = _basic_apply;
|
||||
|
||||
snprintf(buf, sizeof(buf), "%s/e-module-conf.edj", conf->module->dir);
|
||||
cfd = e_config_dialog_new(con, _("Configuration Panel"), "Conf",
|
||||
cfd = e_config_dialog_new(con, _("Configuration Panel"), "Conf",
|
||||
"advanced/conf", buf, 0, v, NULL);
|
||||
|
||||
conf->cfd = cfd;
|
||||
|
@ -39,7 +39,7 @@ e_int_config_conf_module(E_Container *con, const char *params)
|
|||
}
|
||||
|
||||
static void *
|
||||
_create_data(E_Config_Dialog *cfd)
|
||||
_create_data(E_Config_Dialog *cfd)
|
||||
{
|
||||
E_Config_Dialog_Data *cfdata = NULL;
|
||||
|
||||
|
@ -48,21 +48,21 @@ _create_data(E_Config_Dialog *cfd)
|
|||
return cfdata;
|
||||
}
|
||||
|
||||
static void
|
||||
_free_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata)
|
||||
static void
|
||||
_free_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata)
|
||||
{
|
||||
conf->cfd = NULL;
|
||||
E_FREE(cfdata);
|
||||
}
|
||||
|
||||
static void
|
||||
_fill_data(E_Config_Dialog_Data *cfdata)
|
||||
static void
|
||||
_fill_data(E_Config_Dialog_Data *cfdata)
|
||||
{
|
||||
cfdata->menu_augmentation = conf->menu_augmentation;
|
||||
}
|
||||
|
||||
static Evas_Object *
|
||||
_basic_create(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data *cfdata)
|
||||
_basic_create(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data *cfdata)
|
||||
{
|
||||
Evas_Object *o = NULL, *of = NULL, *ow = NULL;
|
||||
|
||||
|
@ -70,7 +70,7 @@ _basic_create(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data *cfdata)
|
|||
|
||||
of = e_widget_framelist_add(evas, _("General"), 0);
|
||||
e_widget_framelist_content_align_set(of, 0.0, 0.0);
|
||||
ow = e_widget_check_add(evas, _("Show configuration panel contents in Settings menu"),
|
||||
ow = e_widget_check_add(evas, _("Show configurations in menu"),
|
||||
&(cfdata->menu_augmentation));
|
||||
e_widget_framelist_object_append(of, ow);
|
||||
e_widget_list_object_append(o, of, 1, 0, 0.5);
|
||||
|
@ -78,26 +78,22 @@ _basic_create(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data *cfdata)
|
|||
return o;
|
||||
}
|
||||
|
||||
static int
|
||||
_basic_apply(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata)
|
||||
static int
|
||||
_basic_apply(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata)
|
||||
{
|
||||
conf->menu_augmentation = cfdata->menu_augmentation;
|
||||
if (conf->aug)
|
||||
{
|
||||
e_int_menus_menu_augmentation_del("config/0", conf->aug);
|
||||
e_int_menus_menu_augmentation_del("config/2", conf->aug);
|
||||
conf->aug = NULL;
|
||||
}
|
||||
|
||||
if (conf->menu_augmentation)
|
||||
{
|
||||
conf->aug =
|
||||
e_int_menus_menu_augmentation_add("config/0",
|
||||
e_mod_config_menu_add,
|
||||
NULL, NULL, NULL);
|
||||
e_int_menus_menu_augmentation_point_disabled_set("config/1", 1);
|
||||
conf->aug =
|
||||
e_int_menus_menu_augmentation_add
|
||||
("config/2", e_mod_config_menu_add, NULL, NULL, NULL);
|
||||
}
|
||||
else
|
||||
e_int_menus_menu_augmentation_point_disabled_set("config/1", 0);
|
||||
|
||||
e_config_save_queue();
|
||||
return 1;
|
||||
|
|
|
@ -152,8 +152,7 @@ _config_pre_activate_cb(void *data, E_Menu *m)
|
|||
Eina_List *l;
|
||||
E_Menu_Item *mi;
|
||||
|
||||
/*XXX is this the right way to not initiate the menu a second time ?*/
|
||||
if (e_menu_item_nth(m, 0)) return;
|
||||
e_menu_pre_activate_callback_set(m, NULL, NULL);
|
||||
|
||||
EINA_LIST_FOREACH(ecat->items, l, eci)
|
||||
{
|
||||
|
@ -175,40 +174,54 @@ _config_pre_activate_cb(void *data, E_Menu *m)
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
/* menu item add hook */
|
||||
void
|
||||
e_mod_config_menu_add(void *data, E_Menu *m)
|
||||
static void
|
||||
_config_all_pre_activate_cb(void *data __UNUSED__, E_Menu *m)
|
||||
{
|
||||
E_Menu_Item *mi;
|
||||
E_Menu *sub;
|
||||
Eina_List *l;
|
||||
const Eina_List *l;
|
||||
E_Configure_Cat *ecat;
|
||||
|
||||
mi = e_menu_item_new(m);
|
||||
e_menu_item_separator_set(mi, 1);
|
||||
e_menu_pre_activate_callback_set(m, NULL, NULL);
|
||||
|
||||
EINA_LIST_FOREACH(e_configure_registry, l, ecat)
|
||||
{
|
||||
if ((ecat->pri >= 0) && (ecat->items))
|
||||
{
|
||||
mi = e_menu_item_new(m);
|
||||
e_menu_item_label_set(mi, ecat->label);
|
||||
if (ecat->icon)
|
||||
{
|
||||
if (ecat->icon_file)
|
||||
e_menu_item_icon_edje_set(mi, ecat->icon_file, ecat->icon);
|
||||
else
|
||||
e_util_menu_item_theme_icon_set(mi, ecat->icon);
|
||||
}
|
||||
E_Menu_Item *mi;
|
||||
E_Menu *sub;
|
||||
|
||||
sub = e_menu_new();
|
||||
e_menu_item_submenu_set(mi, sub);
|
||||
e_menu_pre_activate_callback_set(sub, _config_pre_activate_cb, ecat);
|
||||
}
|
||||
if ((ecat->pri < 0) || (!ecat->items)) continue;
|
||||
|
||||
mi = e_menu_item_new(m);
|
||||
e_menu_item_label_set(mi, ecat->label);
|
||||
if (ecat->icon)
|
||||
{
|
||||
if (ecat->icon_file)
|
||||
e_menu_item_icon_edje_set(mi, ecat->icon_file, ecat->icon);
|
||||
else
|
||||
e_util_menu_item_theme_icon_set(mi, ecat->icon);
|
||||
}
|
||||
|
||||
sub = e_menu_new();
|
||||
e_menu_item_submenu_set(mi, sub);
|
||||
e_menu_pre_activate_callback_set(sub, _config_pre_activate_cb, ecat);
|
||||
}
|
||||
}
|
||||
|
||||
/* menu item add hook */
|
||||
void
|
||||
e_mod_config_menu_add(void *data __UNUSED__, E_Menu *m)
|
||||
{
|
||||
E_Menu_Item *mi;
|
||||
E_Menu *sub;
|
||||
|
||||
e_menu_pre_activate_callback_set(m, NULL, NULL);
|
||||
|
||||
sub = e_menu_new();
|
||||
e_menu_pre_activate_callback_set(sub, _config_all_pre_activate_cb, NULL);
|
||||
|
||||
mi = e_menu_item_new(m);
|
||||
e_menu_item_label_set(mi, _("All"));
|
||||
e_menu_item_submenu_set(mi, sub);
|
||||
}
|
||||
|
||||
/* module setup */
|
||||
EAPI E_Module_Api e_modapi = { E_MODULE_API_VERSION, "Conf" };
|
||||
|
||||
|
@ -291,12 +304,9 @@ e_modapi_init(E_Module *m)
|
|||
if (conf->menu_augmentation)
|
||||
{
|
||||
conf->aug =
|
||||
e_int_menus_menu_augmentation_add("config/0", e_mod_config_menu_add,
|
||||
NULL, NULL, NULL);
|
||||
e_int_menus_menu_augmentation_point_disabled_set("config/1", 1);
|
||||
e_int_menus_menu_augmentation_add
|
||||
("config/2", e_mod_config_menu_add, NULL, NULL, NULL);
|
||||
}
|
||||
else
|
||||
e_int_menus_menu_augmentation_point_disabled_set("config/1", 0);
|
||||
|
||||
e_gadcon_provider_register(&_gadcon_class);
|
||||
return m;
|
||||
|
@ -323,9 +333,8 @@ e_modapi_shutdown(E_Module *m)
|
|||
}
|
||||
if (conf->aug)
|
||||
{
|
||||
e_int_menus_menu_augmentation_del("config/0", conf->aug);
|
||||
e_int_menus_menu_augmentation_del("config/2", conf->aug);
|
||||
conf->aug = NULL;
|
||||
e_int_menus_menu_augmentation_point_disabled_set("config/1", 0);
|
||||
}
|
||||
|
||||
/* remove module-supplied action */
|
||||
|
|
Loading…
Reference in New Issue