home · contact · privacy
Client: Further simplify display of available keybindings.
[plomrogue] / src / client / draw_wins.c
index 7e8ca5aa307b9aa0fbc642f78c2bfbeb7bfe60a7..ac21e09d5f30b6b4537ad12d53a2376a7b5e2417 100644 (file)
@@ -63,13 +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" from line "start" on a "title" followed by an empty
- * line followed by a list of all keybindings starting in "kbdb".
- */
-static void draw_titled_keybinding_list(char * title, struct Win * win,
-                                        uint16_t * offset, uint8_t last,
-                                        struct KeyBindingDB * kbdb);
-
 
 
 static void try_resize_winmap(struct Win * win, int new_size_y, int new_size_x)
@@ -303,34 +296,6 @@ static void draw_keybinding_config(struct Win * win, struct KeyBindingDB * kbdb,
 
 
 
-static void draw_titled_keybinding_list(char * title, struct Win * win,
-                                        uint16_t * offset, uint8_t last,
-                                        struct KeyBindingDB * kbdb)
-{
-    uint8_t state = 0;
-    uint8_t kb_n = 0;
-    while (0 == state || kb_n < kbdb->n_of_kbs)
-    {
-        if (0 == state)
-        {
-            add_line(win, title, 0, offset, 0);
-            add_line(win, " ", 0, offset, 0);
-            state = 1 + (0 == kbdb->n_of_kbs);
-            continue;
-        }
-        char * kb_line = get_kb_line(&kbdb->kbs[kb_n]);
-        add_line(win, kb_line, 0, offset, (last * kbdb->n_of_kbs == kb_n + 1));
-        free(kb_line);
-        kb_n++;
-    }
-    if (2 == state)
-    {
-        add_line(win, "(none)", 0, offset, last);
-    }
-}
-
-
-
 extern void draw_win_log(struct Win * win)
 {
     if (!world.log)
@@ -429,9 +394,8 @@ extern void draw_win_inventory(struct Win * win)
 
 
 
-extern void draw_win_available_keybindings(struct Win * win)
+extern void draw_win_active_windows_keys(struct Win * win)
 {
-    char * title = "Active window's keys:";
     struct Win * win_active = get_win_by_id(world.winDB.active);
     struct KeyBindingDB * kbdb = &win_active->kb;
     if      (1 == win_active->view)
@@ -443,12 +407,20 @@ extern void draw_win_available_keybindings(struct Win * win)
         kbdb = &world.kb_winkeys;
     }
     uint16_t offset = 0;
-    draw_titled_keybinding_list(title, win, &offset, 0, kbdb);
-    add_line(win, " ", 0, &offset, 0);
-    title = "Global keys:";
-    draw_titled_keybinding_list(title, win, &offset, 1, &world.kb_global);
-}
+    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);
+    }
 
+}
 
 
 
@@ -501,7 +473,7 @@ extern void draw_winconf_geometry(struct Win * win)
     char w_value[6 + 1];
     test = sprintf(w_value, "%d", win->target_width);
     exit_trouble(test < 0, __func__, "sprintf");
-    char * w_plus = "(height in cells)\n\n";
+    char * w_plus = " (height in cells)\n\n";
     char * w_minus = " (negative diff: cells to screen height)\n\n";
     char * w_type = (1 == win->target_width_type)  ? w_minus : w_plus;
     char * breaks_title = "Linebreak type: ";