Enlightenment CVS committal Author : devilhorns Project : e17 Module : apps/e
Dir : e17/apps/e/src/bin Modified Files: e_int_border_menu.c Log Message: ZGold's patch for adding 'Add Keyboard Shortcut' to border menu. =================================================================== RCS file: /cvs/e/e17/apps/e/src/bin/e_int_border_menu.c,v retrieving revision 1.73 retrieving revision 1.74 diff -u -3 -r1.73 -r1.74 --- e_int_border_menu.c 3 Aug 2007 06:11:55 -0000 1.73 +++ e_int_border_menu.c 28 Oct 2007 19:07:25 -0000 1.74 @@ -33,6 +33,7 @@ static void _e_border_menu_cb_state_pre(void *data, E_Menu *m, E_Menu_Item *mi); static void _e_border_menu_cb_skip(void *data, E_Menu *m, E_Menu_Item *mi); static void _e_border_menu_cb_fav_add(void *data, E_Menu *m, E_Menu_Item *mi); +static void _e_border_menu_cb_kbdshrtct_add(void *data, E_Menu *m, E_Menu_Item *mi); static void _e_border_menu_cb_ibar_add_pre(void *data, E_Menu *m, E_Menu_Item *mi); static void _e_border_menu_cb_ibar_add(void *data, E_Menu *m, E_Menu_Item *mi); static void _e_border_menu_cb_border_pre(void *data, E_Menu *m, E_Menu_Item *mi); @@ -96,56 +97,56 @@ /* Only allow to change layer for windows in "normal" layers */ if ((!bd->lock_user_maximize) && (!bd->shaded) && ((bd->layer == 50) || (bd->layer == 100) || (bd->layer == 150))) - { - m = e_menu_new(); - e_menu_category_set(m,"border/maximize"); - e_menu_category_data_set("border/maximize",bd); - bd->border_maximize_menu = m; - - mi = e_menu_item_new(m); - e_menu_item_label_set(mi, _("Maximize")); - e_menu_item_radio_set(mi, 1); - e_menu_item_radio_group_set(mi, 3); - e_menu_item_toggle_set(mi, (bd->maximized & E_MAXIMIZE_DIRECTION) == E_MAXIMIZE_BOTH); - e_menu_item_callback_set(mi, _e_border_menu_cb_maximize, bd); - e_menu_item_icon_edje_set(mi, - e_theme_edje_file_get("base/theme/borders", - "e/widgets/border/default/maximize"), - "e/widgets/border/default/maximize"); - - mi = e_menu_item_new(m); - e_menu_item_label_set(mi, _("Maximize vertically")); - e_menu_item_radio_set(mi, 1); - e_menu_item_radio_group_set(mi, 3); - e_menu_item_toggle_set(mi, (bd->maximized & E_MAXIMIZE_DIRECTION) == E_MAXIMIZE_VERTICAL); - e_menu_item_callback_set(mi, _e_border_menu_cb_maximize_vertically, bd); - e_menu_item_icon_edje_set(mi, - e_theme_edje_file_get("base/theme/borders", - "e/widgets/border/default/maximize"), - "e/widgets/border/default/maximize"); - - mi = e_menu_item_new(m); - e_menu_item_label_set(mi, _("Maximize horizontally")); - e_menu_item_radio_set(mi, 1); - e_menu_item_radio_group_set(mi, 3); - e_menu_item_toggle_set(mi, (bd->maximized & E_MAXIMIZE_DIRECTION) == E_MAXIMIZE_HORIZONTAL); - e_menu_item_callback_set(mi, _e_border_menu_cb_maximize_horizontally, bd); - e_menu_item_icon_edje_set(mi, - e_theme_edje_file_get("base/theme/borders", - "e/widgets/border/default/maximize"), - "e/widgets/border/default/maximize"); - - mi = e_menu_item_new(m); - e_menu_item_label_set(mi, _("Unmaximize")); - e_menu_item_radio_set(mi, 1); - e_menu_item_radio_group_set(mi, 3); - e_menu_item_toggle_set(mi, (bd->maximized & E_MAXIMIZE_DIRECTION) == E_MAXIMIZE_NONE); - e_menu_item_callback_set(mi, _e_border_menu_cb_unmaximize, bd); - e_menu_item_icon_edje_set(mi, - e_theme_edje_file_get("base/theme/borders", - "e/widgets/border/default/maximize"), - "e/widgets/border/default/maximize"); - } + { + m = e_menu_new(); + e_menu_category_set(m,"border/maximize"); + e_menu_category_data_set("border/maximize",bd); + bd->border_maximize_menu = m; + + mi = e_menu_item_new(m); + e_menu_item_label_set(mi, _("Maximize")); + e_menu_item_radio_set(mi, 1); + e_menu_item_radio_group_set(mi, 3); + e_menu_item_toggle_set(mi, (bd->maximized & E_MAXIMIZE_DIRECTION) == E_MAXIMIZE_BOTH); + e_menu_item_callback_set(mi, _e_border_menu_cb_maximize, bd); + e_menu_item_icon_edje_set(mi, + e_theme_edje_file_get("base/theme/borders", + "e/widgets/border/default/maximize"), + "e/widgets/border/default/maximize"); + + mi = e_menu_item_new(m); + e_menu_item_label_set(mi, _("Maximize vertically")); + e_menu_item_radio_set(mi, 1); + e_menu_item_radio_group_set(mi, 3); + e_menu_item_toggle_set(mi, (bd->maximized & E_MAXIMIZE_DIRECTION) == E_MAXIMIZE_VERTICAL); + e_menu_item_callback_set(mi, _e_border_menu_cb_maximize_vertically, bd); + e_menu_item_icon_edje_set(mi, + e_theme_edje_file_get("base/theme/borders", + "e/widgets/border/default/maximize"), + "e/widgets/border/default/maximize"); + + mi = e_menu_item_new(m); + e_menu_item_label_set(mi, _("Maximize horizontally")); + e_menu_item_radio_set(mi, 1); + e_menu_item_radio_group_set(mi, 3); + e_menu_item_toggle_set(mi, (bd->maximized & E_MAXIMIZE_DIRECTION) == E_MAXIMIZE_HORIZONTAL); + e_menu_item_callback_set(mi, _e_border_menu_cb_maximize_horizontally, bd); + e_menu_item_icon_edje_set(mi, + e_theme_edje_file_get("base/theme/borders", + "e/widgets/border/default/maximize"), + "e/widgets/border/default/maximize"); + + mi = e_menu_item_new(m); + e_menu_item_label_set(mi, _("Unmaximize")); + e_menu_item_radio_set(mi, 1); + e_menu_item_radio_group_set(mi, 3); + e_menu_item_toggle_set(mi, (bd->maximized & E_MAXIMIZE_DIRECTION) == E_MAXIMIZE_NONE); + e_menu_item_callback_set(mi, _e_border_menu_cb_unmaximize, bd); + e_menu_item_icon_edje_set(mi, + e_theme_edje_file_get("base/theme/borders", + "e/widgets/border/default/maximize"), + "e/widgets/border/default/maximize"); + } m = e_menu_new(); e_menu_category_set(m,"border"); @@ -274,7 +275,14 @@ e_menu_item_label_set(mi, _("Add To Favorites Menu")); e_menu_item_callback_set(mi, _e_border_menu_cb_fav_add, bd); e_util_menu_item_edje_icon_set(mi, "enlightenment/favorites"); - + + if (e_configure_registry_exists("keyboard_and_mouse/key_bindings")) + { + mi = e_menu_item_new(m); + e_menu_item_label_set(mi, _("Add Keyboard Shortcut")); + e_menu_item_callback_set(mi, _e_border_menu_cb_kbdshrtct_add, bd); + e_util_menu_item_edje_icon_set(mi, "enlightenment/keys"); + } mi = e_menu_item_new(m); e_menu_item_label_set(mi, _("Add To Launcher")); e_menu_item_submenu_pre_callback_set(mi, _e_border_menu_cb_ibar_add_pre, bd); @@ -363,7 +371,6 @@ } } - if (key) e_menu_activate_key(m, bd->zone, x, y, 1, 1, E_MENU_POP_DIRECTION_DOWN); else @@ -428,6 +435,7 @@ _e_border_menu_cb_remember(void *data, E_Menu *m, E_Menu_Item *mi) { E_Border *bd; + bd = data; if (bd->border_remember_dialog) return; e_int_border_remember(bd); @@ -533,7 +541,6 @@ e_border_unmaximize(bd, E_MAXIMIZE_BOTH); } -/*************************************************************/ static void _e_border_menu_cb_shade(void *data, E_Menu *m, E_Menu_Item *mi) { @@ -790,8 +797,8 @@ { o = e_icon_add(m->evas); e_icon_data_set(o, bd->client.netwm.icons[0].data, - bd->client.netwm.icons[0].width, - bd->client.netwm.icons[0].height); + bd->client.netwm.icons[0].width, + bd->client.netwm.icons[0].height); e_icon_alpha_set(o, 1); mi->icon_object = o; } @@ -818,9 +825,9 @@ e_menu_item_label_set(submi, _("Select Border Style")); e_menu_item_callback_set(submi, _e_border_menu_cb_border, bd); e_menu_item_icon_edje_set(submi, - e_theme_edje_file_get("base/theme/borders", - "e/widgets/border/default/borderless"), - "e/widgets/border/default/borderless"); + e_theme_edje_file_get("base/theme/borders", + "e/widgets/border/default/borderless"), + "e/widgets/border/default/borderless"); submi = e_menu_item_new(subm); e_menu_item_separator_set(submi, 1); @@ -958,7 +965,6 @@ e_object_data_set(E_OBJECT(subm), bd); e_menu_item_submenu_set(mi, subm); - submi = e_menu_item_new(subm); e_menu_item_label_set(submi, _("Window List")); e_menu_item_check_set(submi, 1); @@ -997,6 +1003,20 @@ efreet_menu_save(menu, buf); efreet_menu_free(menu); } +static void +_e_border_menu_cb_kbdshrtct_add(void *data, E_Menu *m, E_Menu_Item *mi) +{ + E_Border *bd; + E_Zone *zone; + char buf[4096]; + + bd = data; + if (!bd) return; + zone = e_util_zone_current_get(e_manager_current_get()); + if(!zone) return; + e_configure_registry_call("keyboard_and_mouse/key_bindings", + zone->container, bd->desktop->exec); +} static void _e_border_menu_cb_ibar_add_pre(void *data, E_Menu *m, E_Menu_Item *mi) @@ -1005,11 +1025,12 @@ E_Border *bd; Ecore_List *dirs; char buf[4096], *file; - + const char *homedir; + bd = data; if (!bd) return; - snprintf(buf, sizeof(buf), "%s/.e/e/applications/bar", - e_user_homedir_get()); + homedir = e_user_homedir_get(); + snprintf(buf, sizeof(buf), "%s/.e/e/applications/bar", homedir); dirs = ecore_file_ls(buf); if (!dirs) return; @@ -1019,8 +1040,7 @@ E_Menu_Item *smi; if (file[0] == '.') continue; - snprintf(buf, sizeof(buf), "%s/.e/e/applications/bar/%s", - e_user_homedir_get(), file); + snprintf(buf, sizeof(buf), "%s/.e/e/applications/bar/%s", homedir, file); if (ecore_file_is_dir(buf)) { smi = e_menu_item_new(sm); ------------------------------------------------------------------------- This SF.net email is sponsored by: Splunk Inc. Still grepping through log files to find problems? Stop. Now Search log events and configuration files using AJAX and a browser. Download your FREE copy of Splunk now >> http://get.splunk.com/ _______________________________________________ enlightenment-cvs mailing list enlightenment-cvs@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs