From b566b9e2b3689238911283d2bbaffa21c21b1f14 Mon Sep 17 00:00:00 2001
From: Christian Heller <c.heller@plomlompom.de>
Date: Fri, 7 Nov 2014 13:38:17 +0100
Subject: [PATCH] Client: Further simplify display of available keybindings.

---
 confclient/commands              |  9 ++--
 confclient/interface_conf        | 35 ++++++---------
 confclient/single_wins/info      | 67 ++++++++++++++++-------------
 confclient/single_wins/inventory | 73 +++++++++++++++++---------------
 confclient/single_wins/log       | 68 +++++++++++++++--------------
 confclient/single_wins/map       | 70 ++++++++++++++----------------
 src/client/control.c             |  3 +-
 src/client/draw_wins.c           | 46 ++++++--------------
 src/client/draw_wins.h           |  1 -
 src/client/main.c                |  2 +-
 src/client/windows.c             |  5 +--
 11 files changed, 180 insertions(+), 199 deletions(-)

diff --git a/confclient/commands b/confclient/commands
index ffa618a..f5b987e 100644
--- a/confclient/commands
+++ b/confclient/commands
@@ -84,7 +84,7 @@ COMMAND g_keys_m
 DESCRIPTION 'mod global keys'
 
 COMMAND winconf
-DESCRIPTION 'toggle win config view'
+DESCRIPTION 'toggle win config'
 
 COMMAND grow_h
 DESCRIPTION 'grow window width'
@@ -161,12 +161,9 @@ DESCRIPTION 'map right'
 COMMAND map_c
 DESCRIPTION 'map center player'
 
-COMMAND to_A_keywin
+COMMAND to_a_keywin
 DESCRIPTION 'window keys of active window'
 
-COMMAND to_G_keywin
-DESCRIPTION 'window global keys'
-
 COMMAND to_inv
 DESCRIPTION 'window inventory'
 
@@ -189,4 +186,4 @@ COMMAND to_wk_keywin
 DESCRIPTION 'window keybinding keys'
 
 COMMAND to_autofocus
-DESCRIPTION 'toggle auto map center'
+DESCRIPTION 'toggle auto-center'
diff --git a/confclient/interface_conf b/confclient/interface_conf
index 40f998d..96a6b2e 100644
--- a/confclient/interface_conf
+++ b/confclient/interface_conf
@@ -8,15 +8,14 @@ KEY 262 scrl_l
 KEY 360 scrl_r
 KEY 82 reload_conf
 KEY 67 save_conf
-KEY 266 to_mapwin
-KEY 267 to_infowin
-KEY 268 to_inv
-KEY 269 to_logwin
-KEY 270 to_g_keywin
-KEY 271 to_wg_keywin
-KEY 272 to_wk_keywin
-KEY 273 to_A_keywin
-KEY 274 to_G_keywin
+KEY 265 to_mapwin
+KEY 266 to_infowin
+KEY 267 to_inv
+KEY 268 to_logwin
+KEY 269 to_g_keywin
+KEY 270 to_wg_keywin
+KEY 271 to_wk_keywin
+KEY 272 to_a_keywin
 
 KEYBINDINGS 'wingeom'
 KEY 258 shift_f
@@ -34,7 +33,7 @@ KEY 258 w_keys_d
 KEY 259 w_keys_u
 KEY 10 w_keys_m
 
-WIN_ORDER 'gamicl'
+WIN_ORDER 'micl0a'
 WIN_FOCUS 'm'
 
 WINDOW 1
@@ -80,7 +79,7 @@ HEIGHT -8
 WINDOW m
 NAME 'Map'
 BREAK 0
-WIDTH -42
+WIDTH -37
 HEIGHT 0
 KEY 97 ai
 KEY 112 pick
@@ -101,8 +100,8 @@ KEY 70 to_autofocus
 WINDOW 0
 NAME 'Set global keys'
 BREAK 0
-WIDTH 29
-HEIGHT -13
+WIDTH 22
+HEIGHT 7
 KEY 258 g_keys_d
 KEY 259 g_keys_u
 KEY 10 g_keys_m
@@ -110,11 +109,5 @@ KEY 10 g_keys_m
 WINDOW a
 NAME 'Active window`s keys'
 BREAK 0
-WIDTH 27
-HEIGHT -19
-
-WINDOW g
-NAME 'Global keys'
-BREAK 0
-WIDTH 27
-HEIGHT 18
+WIDTH 22
+HEIGHT -8
diff --git a/confclient/single_wins/info b/confclient/single_wins/info
index b18d3f8..c17470d 100644
--- a/confclient/single_wins/info
+++ b/confclient/single_wins/info
@@ -1,14 +1,13 @@
 KEYBINDINGS 'global'
 KEY 81 quit
-KEY 266 to_mapwin
-KEY 267 to_infowin
-KEY 268 to_inv
-KEY 269 to_logwin
-KEY 270 to_g_keywin
-KEY 271 to_wg_keywin
-KEY 272 to_wk_keywin
-KEY 273 to_A_keywin
-KEY 274 to_G_keywin
+KEY 265 to_mapwin
+KEY 266 to_infowin
+KEY 267 to_inv
+KEY 268 to_logwin
+KEY 269 to_g_keywin
+KEY 270 to_wg_keywin
+KEY 271 to_wk_keywin
+KEY 272 to_a_keywin
 KEY 87 winconf
 KEY 62 cyc_win_f
 KEY 60 cyc_win_b
@@ -49,11 +48,17 @@ KEY 10 w_keys_m
 WIN_ORDER 'i'
 WIN_FOCUS 'i'
 
+WINDOW i
+NAME 'Info'
+BREAK 2
+WIDTH 0
+HEIGHT 0
+
 WINDOW 1
 NAME 'Set window geometry keys'
 BREAK 0
 WIDTH 29
-HEIGHT 8
+HEIGHT 9
 KEY 258 wg_keys_d
 KEY 259 wg_keys_u
 KEY 10 wg_keys_m
@@ -70,50 +75,52 @@ KEY 10 wk_keys_m
 WINDOW c
 NAME 'Inventory'
 BREAK 2
-WIDTH 28
+WIDTH 13
 HEIGHT 4
+KEY 68 drop
 KEY 259 inv_u
 KEY 258 inv_d
-
-WINDOW i
-NAME 'Info'
-BREAK 2
-WIDTH 0
-HEIGHT 0
+KEY 117 use
 
 WINDOW l
 NAME 'Log'
 BREAK 0
-WIDTH 28
-HEIGHT -7
+WIDTH 13
+HEIGHT -8
 
 WINDOW m
 NAME 'Map'
 BREAK 0
-WIDTH -59
+WIDTH -37
 HEIGHT 0
+KEY 97 ai
+KEY 112 pick
+KEY 58 wait
+KEY 101 move_e
+KEY 100 move_d
+KEY 99 move_c
+KEY 120 move_x
+KEY 115 move_s
+KEY 119 move_w
 KEY 259 map_u
 KEY 258 map_d
 KEY 260 map_l
 KEY 261 map_r
+KEY 46 map_c
+KEY 70 to_autofocus
 
 WINDOW 0
 NAME 'Set global keys'
 BREAK 0
-WIDTH 29
-HEIGHT -13
+WIDTH 22
+HEIGHT 7
 KEY 258 g_keys_d
 KEY 259 g_keys_u
 KEY 10 g_keys_m
 
 WINDOW a
-NAME 'Active window´s keys'
+NAME 'Active window`s keys'
 BREAK 0
-WIDTH 27
-HEIGHT -19
+WIDTH 22
+HEIGHT -8
 
-WINDOW g
-NAME 'Global keys'
-BREAK 0
-WIDTH 27
-HEIGHT 18
diff --git a/confclient/single_wins/inventory b/confclient/single_wins/inventory
index 070b46b..481e9dc 100644
--- a/confclient/single_wins/inventory
+++ b/confclient/single_wins/inventory
@@ -1,14 +1,13 @@
 KEYBINDINGS 'global'
 KEY 81 quit
-KEY 266 to_mapwin
-KEY 267 to_infowin
-KEY 268 to_inv
-KEY 269 to_logwin
-KEY 270 to_g_keywin
-KEY 271 to_wg_keywin
-KEY 272 to_wk_keywin
-KEY 273 to_A_keywin
-KEY 274 to_G_keywin
+KEY 265 to_mapwin
+KEY 266 to_infowin
+KEY 267 to_inv
+KEY 268 to_logwin
+KEY 269 to_g_keywin
+KEY 270 to_wg_keywin
+KEY 271 to_wk_keywin
+KEY 272 to_a_keywin
 KEY 87 winconf
 KEY 62 cyc_win_f
 KEY 60 cyc_win_b
@@ -49,11 +48,19 @@ KEY 10 w_keys_m
 WIN_ORDER 'c'
 WIN_FOCUS 'c'
 
+WINDOW c
+NAME 'Inventory'
+BREAK 2
+WIDTH 0
+HEIGHT 0
+KEY 259 inv_u
+KEY 258 inv_d
+
 WINDOW 1
 NAME 'Set window geometry keys'
 BREAK 0
 WIDTH 29
-HEIGHT 8
+HEIGHT 9
 KEY 258 wg_keys_d
 KEY 259 wg_keys_u
 KEY 10 wg_keys_m
@@ -67,53 +74,51 @@ KEY 258 wk_keys_d
 KEY 259 wk_keys_u
 KEY 10 wk_keys_m
 
-WINDOW c
-NAME 'Inventory'
-BREAK 2
-WIDTH 0
-HEIGHT 0
-KEY 259 inv_u
-KEY 258 inv_d
-
 WINDOW i
 NAME 'Info'
-BREAK 2
-WIDTH 28
-HEIGHT 1
+BREAK 0
+WIDTH 13
+HEIGHT 2
 
 WINDOW l
 NAME 'Log'
 BREAK 0
-WIDTH 28
-HEIGHT -7
+WIDTH 13
+HEIGHT -8
 
 WINDOW m
 NAME 'Map'
 BREAK 0
-WIDTH -59
+WIDTH -37
 HEIGHT 0
+KEY 97 ai
+KEY 112 pick
+KEY 58 wait
+KEY 101 move_e
+KEY 100 move_d
+KEY 99 move_c
+KEY 120 move_x
+KEY 115 move_s
+KEY 119 move_w
 KEY 259 map_u
 KEY 258 map_d
 KEY 260 map_l
 KEY 261 map_r
+KEY 46 map_c
+KEY 70 to_autofocus
 
 WINDOW 0
 NAME 'Set global keys'
 BREAK 0
-WIDTH 29
-HEIGHT -13
+WIDTH 22
+HEIGHT 7
 KEY 258 g_keys_d
 KEY 259 g_keys_u
 KEY 10 g_keys_m
 
 WINDOW a
-NAME 'Active window´s keys'
+NAME 'Active window`s keys'
 BREAK 0
-WIDTH 27
-HEIGHT -19
+WIDTH 22
+HEIGHT -8
 
-WINDOW g
-NAME 'Global keys'
-BREAK 0
-WIDTH 27
-HEIGHT 18
diff --git a/confclient/single_wins/log b/confclient/single_wins/log
index fba95a9..c5825c6 100644
--- a/confclient/single_wins/log
+++ b/confclient/single_wins/log
@@ -1,14 +1,13 @@
 KEYBINDINGS 'global'
 KEY 81 quit
-KEY 266 to_mapwin
-KEY 267 to_infowin
-KEY 268 to_inv
-KEY 269 to_logwin
-KEY 270 to_g_keywin
-KEY 271 to_wg_keywin
-KEY 272 to_wk_keywin
-KEY 273 to_A_keywin
-KEY 274 to_G_keywin
+KEY 265 to_mapwin
+KEY 266 to_infowin
+KEY 267 to_inv
+KEY 268 to_logwin
+KEY 269 to_g_keywin
+KEY 270 to_wg_keywin
+KEY 271 to_wk_keywin
+KEY 272 to_a_keywin
 KEY 87 winconf
 KEY 62 cyc_win_f
 KEY 60 cyc_win_b
@@ -49,11 +48,17 @@ KEY 10 w_keys_m
 WIN_ORDER 'l'
 WIN_FOCUS 'l'
 
+WINDOW l
+NAME 'Log'
+BREAK 0
+WIDTH 0
+HEIGHT 0
+
 WINDOW 1
 NAME 'Set window geometry keys'
 BREAK 0
 WIDTH 29
-HEIGHT 8
+HEIGHT 9
 KEY 258 wg_keys_d
 KEY 259 wg_keys_u
 KEY 10 wg_keys_m
@@ -70,51 +75,52 @@ KEY 10 wk_keys_m
 WINDOW c
 NAME 'Inventory'
 BREAK 2
-WIDTH 28
+WIDTH 13
 HEIGHT 4
+KEY 68 drop
 KEY 259 inv_u
 KEY 258 inv_d
+KEY 117 use
 
 WINDOW i
 NAME 'Info'
-BREAK 2
-WIDTH 28
-HEIGHT 1
-
-WINDOW l
-NAME 'Log'
 BREAK 0
-WIDTH 0
-HEIGHT 0
+WIDTH 13
+HEIGHT 2
 
 WINDOW m
 NAME 'Map'
 BREAK 0
-WIDTH -59
+WIDTH -37
 HEIGHT 0
+KEY 97 ai
+KEY 112 pick
+KEY 58 wait
+KEY 101 move_e
+KEY 100 move_d
+KEY 99 move_c
+KEY 120 move_x
+KEY 115 move_s
+KEY 119 move_w
 KEY 259 map_u
 KEY 258 map_d
 KEY 260 map_l
 KEY 261 map_r
+KEY 46 map_c
+KEY 70 to_autofocus
 
 WINDOW 0
 NAME 'Set global keys'
 BREAK 0
-WIDTH 29
-HEIGHT -13
+WIDTH 22
+HEIGHT 7
 KEY 258 g_keys_d
 KEY 259 g_keys_u
 KEY 10 g_keys_m
 
 WINDOW a
-NAME 'Active window´s keys'
-BREAK 0
-WIDTH 27
-HEIGHT -19
-
-WINDOW g
-NAME 'Global keys'
+NAME 'Active window`s keys'
 BREAK 0
-WIDTH 27
-HEIGHT 18
+WIDTH 22
+HEIGHT -8
 
diff --git a/confclient/single_wins/map b/confclient/single_wins/map
index 4435fa1..77ddc78 100644
--- a/confclient/single_wins/map
+++ b/confclient/single_wins/map
@@ -1,14 +1,13 @@
 KEYBINDINGS 'global'
 KEY 81 quit
-KEY 266 to_mapwin
-KEY 267 to_infowin
-KEY 268 to_inv
-KEY 269 to_logwin
-KEY 270 to_g_keywin
-KEY 271 to_wg_keywin
-KEY 272 to_wk_keywin
-KEY 273 to_A_keywin
-KEY 274 to_G_keywin
+KEY 265 to_mapwin
+KEY 266 to_infowin
+KEY 267 to_inv
+KEY 268 to_logwin
+KEY 269 to_g_keywin
+KEY 270 to_wg_keywin
+KEY 271 to_wk_keywin
+KEY 272 to_a_keywin
 KEY 87 winconf
 KEY 62 cyc_win_f
 KEY 60 cyc_win_b
@@ -49,11 +48,21 @@ KEY 10 w_keys_m
 WIN_ORDER 'm'
 WIN_FOCUS 'm'
 
+WINDOW m
+NAME 'Map'
+BREAK 0
+WIDTH 0
+HEIGHT 0
+KEY 259 map_u
+KEY 258 map_d
+KEY 260 map_l
+KEY 261 map_r
+
 WINDOW 1
 NAME 'Set window geometry keys'
 BREAK 0
 WIDTH 29
-HEIGHT 8
+HEIGHT 9
 KEY 258 wg_keys_d
 KEY 259 wg_keys_u
 KEY 10 wg_keys_m
@@ -70,51 +79,36 @@ KEY 10 wk_keys_m
 WINDOW c
 NAME 'Inventory'
 BREAK 2
-WIDTH 28
+WIDTH 13
 HEIGHT 4
+KEY 68 drop
 KEY 259 inv_u
 KEY 258 inv_d
+KEY 117 use
 
 WINDOW i
 NAME 'Info'
-BREAK 2
-WIDTH 28
-HEIGHT 1
+BREAK 0
+WIDTH 13
+HEIGHT 2
 
 WINDOW l
 NAME 'Log'
 BREAK 0
-WIDTH 28
-HEIGHT -7
-
-WINDOW m
-NAME 'Map'
-BREAK 0
-WIDTH 0
-HEIGHT 0
-KEY 259 map_u
-KEY 258 map_d
-KEY 260 map_l
-KEY 261 map_r
+WIDTH 13
+HEIGHT -8
 
 WINDOW 0
 NAME 'Set global keys'
 BREAK 0
-WIDTH 29
-HEIGHT -13
+WIDTH 22
+HEIGHT 7
 KEY 258 g_keys_d
 KEY 259 g_keys_u
 KEY 10 g_keys_m
 
 WINDOW a
-NAME 'Active window´s keys'
+NAME 'Active window`s keys'
 BREAK 0
-WIDTH 27
-HEIGHT -19
-
-WINDOW g
-NAME 'Global keys'
-BREAK 0
-WIDTH 27
-HEIGHT 18
-
+WIDTH 22
+HEIGHT -8
diff --git a/src/client/control.c b/src/client/control.c
index f05d6cf..5595ccc 100644
--- a/src/client/control.c
+++ b/src/client/control.c
@@ -133,8 +133,7 @@ static uint8_t try_client_commands(struct Command * command)
             || try_1args(command, "cyc_win_b", cycle_active_win, 'b')
             || try_1args(command, "scrl_r", scroll_v_screen, '+')
             || try_1args(command, "scrl_l", scroll_v_screen, '-')
-            || try_1args(command, "to_A_keywin", toggle_window, 'a')
-            || try_1args(command, "to_G_keywin", toggle_window, 'g')
+            || try_1args(command, "to_a_keywin", toggle_window, 'a')
             || try_1args(command, "to_g_keywin", toggle_window, '0')
             || try_1args(command, "to_wg_keywin", toggle_window, '1')
             || try_1args(command, "to_wk_keywin", toggle_window, '2')
diff --git a/src/client/draw_wins.c b/src/client/draw_wins.c
index 1dbd8a8..ac21e09 100644
--- a/src/client/draw_wins.c
+++ b/src/client/draw_wins.c
@@ -63,10 +63,6 @@ static char * get_kb_line(struct KeyBinding * kb);
 static void draw_keybinding_config(struct Win * win, struct KeyBindingDB * kbdb,
                                    uint16_t offset);
 
-/* Draw into window "w" list of all the keybindings that start at "kbdb". */
-static void draw_titled_keybinding_list(struct Win * win,
-                                        struct KeyBindingDB * kbdb);
-
 
 
 static void try_resize_winmap(struct Win * win, int new_size_y, int new_size_x)
@@ -300,26 +296,6 @@ static void draw_keybinding_config(struct Win * win, struct KeyBindingDB * kbdb,
 
 
 
-static void draw_titled_keybinding_list(struct Win * win,
-                                        struct KeyBindingDB * kbdb)
-{
-    uint16_t offset = 0;
-    if (0 == kbdb->n_of_kbs)
-    {
-        add_line(win, "(none)", 0, &offset, 0);
-        return;
-    }
-    uint8_t kb_n;
-    for (kb_n = 0; kb_n < kbdb->n_of_kbs; kb_n++)
-    {
-        char * kb_line = get_kb_line(&kbdb->kbs[kb_n]);
-        add_line(win, kb_line, 0, &offset, (0 == kb_n + 1));
-        free(kb_line);
-    }
-}
-
-
-
 extern void draw_win_log(struct Win * win)
 {
     if (!world.log)
@@ -418,13 +394,6 @@ extern void draw_win_inventory(struct Win * win)
 
 
 
-extern void draw_win_global_keys(struct Win * win)
-{
-    draw_titled_keybinding_list(win, &world.kb_global);
-}
-
-
-
 extern void draw_win_active_windows_keys(struct Win * win)
 {
     struct Win * win_active = get_win_by_id(world.winDB.active);
@@ -437,7 +406,20 @@ extern void draw_win_active_windows_keys(struct Win * win)
     {
         kbdb = &world.kb_winkeys;
     }
-    draw_titled_keybinding_list(win, kbdb);
+    uint16_t offset = 0;
+    if (0 == kbdb->n_of_kbs)
+    {
+        add_line(win, "(none)", 0, &offset, 0);
+        return;
+    }
+    uint8_t kb_n;
+    for (kb_n = 0; kb_n < kbdb->n_of_kbs; kb_n++)
+    {
+        char * kb_line = get_kb_line(&kbdb->kbs[kb_n]);
+        add_line(win, kb_line, 0, &offset, (0 == kb_n + 1));
+        free(kb_line);
+    }
+
 }
 
 
diff --git a/src/client/draw_wins.h b/src/client/draw_wins.h
index 8210daa..f760ac8 100644
--- a/src/client/draw_wins.h
+++ b/src/client/draw_wins.h
@@ -19,7 +19,6 @@ extern void draw_win_log(struct Win * win);
 extern void draw_win_map(struct Win * win);
 extern void draw_win_info(struct Win * win);
 extern void draw_win_inventory(struct Win * win);
-extern void draw_win_global_keys(struct Win * win);
 extern void draw_win_active_windows_keys(struct Win * win);
 extern void draw_win_keybindings_global(struct Win * win);
 extern void draw_win_keybindings_winconf_geometry(struct Win * win);
diff --git a/src/client/main.c b/src/client/main.c
index 5039201..4bf6461 100644
--- a/src/client/main.c
+++ b/src/client/main.c
@@ -33,7 +33,7 @@ int main(int argc, char * argv[])
     /* Declare hard-coded paths and values here. */
     world.path_commands    = "confclient/commands";
     world.path_interface   = "confclient/interface_conf";
-    world.winDB.legal_ids  = "012cilmag";
+    world.winDB.legal_ids  = "012cilma";
     char * path_server_in  = "server/in";
     char * path_server_out = "server/out";
 
diff --git a/src/client/windows.c b/src/client/windows.c
index 49af3ec..6884ddf 100644
--- a/src/client/windows.c
+++ b/src/client/windows.c
@@ -21,10 +21,10 @@
 #include "../common/try_malloc.h" /* try_malloc() */
 #include "draw_wins.h" /* draw_winconf_geometry(), draw_winconf_keybindings(),
                         * draw_win_inventory(), draw_win_info(), draw_win_log(),
-                        * draw_win_global_keys(),draw_win_active_windows_keys(),
+                        * draw_win_active_windows_keys(), draw_win_map(),
                         * draw_win_keybindings_winconf_keybindings(),
                         * draw_win_keybindings_winconf_geometry(),
-                        * draw_win_keybindings_global(), draw_win_map()
+                        * draw_win_keybindings_global()
                         */
 #include "wincontrol.h" /* toggle_window() */
 #include "world.h" /* world */
@@ -121,7 +121,6 @@ static void (* get_drawfunc_by_char(char c)) ()
     if (   match_func(c, &f, 'c', draw_win_inventory)
         || match_func(c, &f, 'i', draw_win_info)
         || match_func(c, &f, 'l', draw_win_log)
-        || match_func(c, &f, 'g', draw_win_global_keys)
         || match_func(c, &f, 'a', draw_win_active_windows_keys)
         || match_func(c, &f, 'm', draw_win_map)
         || match_func(c, &f, '0', draw_win_keybindings_global)
-- 
2.30.2