diff --git a/src/modules/syscon/e_mod_main.c b/src/modules/syscon/e_mod_main.c index d8b2aca43..4aba905d6 100644 --- a/src/modules/syscon/e_mod_main.c +++ b/src/modules/syscon/e_mod_main.c @@ -31,8 +31,8 @@ e_modapi_init(E_Module *m) e_action_predef_name_set(_("System"), _("System Control"), "syscon", NULL, NULL, 0); } -// maug = e_int_menus_menu_augmentation_add_sorted - // ("main/8", _("System"), _e_mod_menu_add, NULL, NULL, NULL); + maug = e_int_menus_menu_augmentation_add_sorted + ("main/8", _("System"), _e_mod_menu_add, NULL, NULL, NULL); e_configure_registry_category_add("advanced", 80, _("Advanced"), NULL, "preferences-advanced"); e_configure_registry_item_add("advanced/syscon", 10, _("Syscon"), NULL, "preferences-syscon", e_int_config_syscon); e_syscon_gadget_init(m); @@ -121,8 +121,7 @@ _e_mod_syscon_cb(void *data __UNUSED__, E_Menu *m, E_Menu_Item *mi __UNUSED__) static void _e_mod_menu_generate(void *data __UNUSED__, E_Menu *m) { - E_Menu_Item *mi; - mi = e_menu_item_new(m); + e_syscon_menu_fill(m); } /* menu item add hook */ diff --git a/src/modules/syscon/e_mod_main.h b/src/modules/syscon/e_mod_main.h index a38ef3294..96c05aa09 100644 --- a/src/modules/syscon/e_mod_main.h +++ b/src/modules/syscon/e_mod_main.h @@ -15,6 +15,7 @@ EAPI int e_modapi_save (E_Module *m); void e_syscon_gadget_init(E_Module *m); void e_syscon_gadget_shutdown(void); +void e_syscon_menu_fill(E_Menu *m); /** * @addtogroup Optional_Control diff --git a/src/modules/syscon/e_syscon_gadget.c b/src/modules/syscon/e_syscon_gadget.c index 7c608c0c0..99a7022c2 100644 --- a/src/modules/syscon/e_syscon_gadget.c +++ b/src/modules/syscon/e_syscon_gadget.c @@ -1,4 +1,5 @@ #include "e.h" +#include "e_mod_main.h" /* local structures */ typedef struct _Instance Instance; @@ -203,87 +204,9 @@ _cb_menu_sel(void *data, E_Menu *m, E_Menu_Item *mi __UNUSED__) static void _create_menu(Instance *inst) { - E_Config_Syscon_Action *sca; - E_Menu_Item *it; - if (!inst) return; inst->menu = e_menu_new(); - - if ((sca = _find_action("desk_lock"))) - { - it = e_menu_item_new(inst->menu); - e_menu_item_label_set(it, _(e_action_predef_label_get(sca->action, - sca->params))); - if (sca->icon) - e_util_menu_item_theme_icon_set(it, sca->icon); - e_menu_item_callback_set(it, _cb_menu_sel, sca); - } - - if ((sca = _find_action("logout"))) - { - it = e_menu_item_new(inst->menu); - e_menu_item_label_set(it, _(e_action_predef_label_get(sca->action, - sca->params))); - if (sca->icon) - e_util_menu_item_theme_icon_set(it, sca->icon); - e_menu_item_callback_set(it, _cb_menu_sel, sca); - if (!e_sys_action_possible_get(E_SYS_LOGOUT)) - e_menu_item_disabled_set(it, EINA_TRUE); - } - - it = e_menu_item_new(inst->menu); - e_menu_item_separator_set(it, EINA_TRUE); - - if ((sca = _find_action("suspend"))) - { - it = e_menu_item_new(inst->menu); - e_menu_item_label_set(it, _(e_action_predef_label_get(sca->action, - sca->params))); - if (sca->icon) - e_util_menu_item_theme_icon_set(it, sca->icon); - e_menu_item_callback_set(it, _cb_menu_sel, sca); - if (!e_sys_action_possible_get(E_SYS_SUSPEND)) - e_menu_item_disabled_set(it, EINA_TRUE); - } - - if ((sca = _find_action("hibernate"))) - { - it = e_menu_item_new(inst->menu); - e_menu_item_label_set(it, _(e_action_predef_label_get(sca->action, - sca->params))); - if (sca->icon) - e_util_menu_item_theme_icon_set(it, sca->icon); - e_menu_item_callback_set(it, _cb_menu_sel, sca); - if (!e_sys_action_possible_get(E_SYS_HIBERNATE)) - e_menu_item_disabled_set(it, EINA_TRUE); - } - - it = e_menu_item_new(inst->menu); - e_menu_item_separator_set(it, EINA_TRUE); - - if ((sca = _find_action("reboot"))) - { - it = e_menu_item_new(inst->menu); - e_menu_item_label_set(it, _(e_action_predef_label_get(sca->action, - sca->params))); - if (sca->icon) - e_util_menu_item_theme_icon_set(it, sca->icon); - e_menu_item_callback_set(it, _cb_menu_sel, sca); - if (!e_sys_action_possible_get(E_SYS_REBOOT)) - e_menu_item_disabled_set(it, EINA_TRUE); - } - - if ((sca = _find_action("halt"))) - { - it = e_menu_item_new(inst->menu); - e_menu_item_label_set(it, _(e_action_predef_label_get(sca->action, - sca->params))); - if (sca->icon) - e_util_menu_item_theme_icon_set(it, sca->icon); - e_menu_item_callback_set(it, _cb_menu_sel, sca); - if (!e_sys_action_possible_get(E_SYS_HALT)) - e_menu_item_disabled_set(it, EINA_TRUE); - } + e_syscon_menu_fill(inst->menu); } static E_Config_Syscon_Action * @@ -319,3 +242,87 @@ e_syscon_gadget_shutdown(void) mod = NULL; } + +void +e_syscon_menu_fill(E_Menu *m) +{ + E_Config_Syscon_Action *sca; + E_Menu_Item *it; + + if (!m) return; + if ((sca = _find_action("desk_lock"))) + { + it = e_menu_item_new(m); + e_menu_item_label_set(it, _(e_action_predef_label_get(sca->action, + sca->params))); + if (sca->icon) + e_util_menu_item_theme_icon_set(it, sca->icon); + e_menu_item_callback_set(it, _cb_menu_sel, sca); + } + + if ((sca = _find_action("logout"))) + { + it = e_menu_item_new(m); + e_menu_item_label_set(it, _(e_action_predef_label_get(sca->action, + sca->params))); + if (sca->icon) + e_util_menu_item_theme_icon_set(it, sca->icon); + e_menu_item_callback_set(it, _cb_menu_sel, sca); + if (!e_sys_action_possible_get(E_SYS_LOGOUT)) + e_menu_item_disabled_set(it, EINA_TRUE); + } + + it = e_menu_item_new(m); + e_menu_item_separator_set(it, EINA_TRUE); + + if ((sca = _find_action("suspend"))) + { + it = e_menu_item_new(m); + e_menu_item_label_set(it, _(e_action_predef_label_get(sca->action, + sca->params))); + if (sca->icon) + e_util_menu_item_theme_icon_set(it, sca->icon); + e_menu_item_callback_set(it, _cb_menu_sel, sca); + if (!e_sys_action_possible_get(E_SYS_SUSPEND)) + e_menu_item_disabled_set(it, EINA_TRUE); + } + + if ((sca = _find_action("hibernate"))) + { + it = e_menu_item_new(m); + e_menu_item_label_set(it, _(e_action_predef_label_get(sca->action, + sca->params))); + if (sca->icon) + e_util_menu_item_theme_icon_set(it, sca->icon); + e_menu_item_callback_set(it, _cb_menu_sel, sca); + if (!e_sys_action_possible_get(E_SYS_HIBERNATE)) + e_menu_item_disabled_set(it, EINA_TRUE); + } + + it = e_menu_item_new(m); + e_menu_item_separator_set(it, EINA_TRUE); + + if ((sca = _find_action("reboot"))) + { + it = e_menu_item_new(m); + e_menu_item_label_set(it, _(e_action_predef_label_get(sca->action, + sca->params))); + if (sca->icon) + e_util_menu_item_theme_icon_set(it, sca->icon); + e_menu_item_callback_set(it, _cb_menu_sel, sca); + if (!e_sys_action_possible_get(E_SYS_REBOOT)) + e_menu_item_disabled_set(it, EINA_TRUE); + } + + if ((sca = _find_action("halt"))) + { + it = e_menu_item_new(m); + e_menu_item_label_set(it, _(e_action_predef_label_get(sca->action, + sca->params))); + if (sca->icon) + e_util_menu_item_theme_icon_set(it, sca->icon); + e_menu_item_callback_set(it, _cb_menu_sel, sca); + if (!e_sys_action_possible_get(E_SYS_HALT)) + e_menu_item_disabled_set(it, EINA_TRUE); + } +}