From 919a40f5612b5b2ce91284de337da17d6161edad Mon Sep 17 00:00:00 2001 From: Lukas Fleischer Date: Fri, 18 Jul 2014 10:25:54 +0200 Subject: Use wins_set_bindings() for the configuration menu Make use of the general key binding context switching implementation for the configuration main menu. Signed-off-by: Lukas Fleischer --- src/keys.c | 47 +++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 41 insertions(+), 6 deletions(-) (limited to 'src/keys.c') diff --git a/src/keys.c b/src/keys.c index 34e6c10..6d4c6f9 100644 --- a/src/keys.c +++ b/src/keys.c @@ -443,16 +443,51 @@ keys_display_bindings_bar(WINDOW * win, int *bindings, int count, else binding_key = KEY_GENERIC_OTHER_CMD; - strncpy(key, keys_action_firstkey(binding_key), - KEYS_KEYLEN); - key[KEYS_KEYLEN] = '\0'; - fmtkey = keys_format_label(key, KEYS_KEYLEN); + const char *label; + + if (binding_key < NBKEYS) { + strncpy(key, keys_action_firstkey(binding_key), + KEYS_KEYLEN); + key[KEYS_KEYLEN] = '\0'; + label = gettext(keydef[binding_key].sb_label); + } else { + switch (binding_key) { + case KEY_CONFIGMENU_GENERAL: + strcpy(key, "g"); + label = _("General"); + break; + case KEY_CONFIGMENU_LAYOUT: + strcpy(key, "l"); + label = _("Layout"); + break; + case KEY_CONFIGMENU_SIDEBAR: + strcpy(key, "s"); + label = _("Sidebar"); + break; + case KEY_CONFIGMENU_COLOR: + strcpy(key, "c"); + label = _("Color"); + break; + case KEY_CONFIGMENU_NOTIFY: + strcpy(key, "n"); + label = _("Notify"); + break; + case KEY_CONFIGMENU_KEYS: + strcpy(key, "k"); + label = _("Keys"); + break; + default: + strcpy(key, "?"); + label = _("Unknown"); + break; + } + } custom_apply_attr(win, ATTR_HIGHEST); + fmtkey = keys_format_label(key, KEYS_KEYLEN); mvwaddstr(win, key_pos_y, key_pos_x, fmtkey); custom_remove_attr(win, ATTR_HIGHEST); - mvwaddstr(win, label_pos_y, label_pos_x, - gettext(keydef[binding_key].sb_label)); + mvwaddstr(win, label_pos_y, label_pos_x, label); } wnoutrefresh(win); } -- cgit v1.2.3-54-g00ecf