/* src/client/draw_wins.c */
+#define _POSIX_C_SOURCE 200809L /* strdup() */
#include "draw_wins.h"
#include <ncurses.h> /* typedefs attr_t, chtype, define A_REVERSE */
#include <stddef.h> /* NULL */
static void draw_text_from_bottom(struct Win * win, char * text);
/* Return a properly formatted keybinding list line for "kb". */
-static char * get_kb_line(struct KeyBinding * kb, uint8_t linebreak_type);
+static char * get_kb_line(struct KeyBinding * kb);
/* Draw from line "start" on config view for keybindings defined at "kb". */
static void draw_keybinding_config(struct Win * win, struct KeyBindingDB * kbdb,
-static char * get_kb_line(struct KeyBinding * kb, uint8_t linebreak_type)
+static char * get_kb_line(struct KeyBinding * kb)
{
char * f_name = "get_kb_line()";
char * keyname = get_keyname_to_keycode(kb->keycode);
- char * format = "%-9s %s";
- uint16_t first_size = 9;
- if (1 != linebreak_type)
- {
- format = "%s: %s";
- first_size = strlen(keyname) + 1;
- }
- uint16_t size = first_size + 1 + strlen(kb->command->dsc_long) + 1;
+ uint16_t size = strlen(keyname) + 3 + strlen(kb->command->dsc_long) + 1;
char * kb_line = try_malloc(size, f_name);
- sprintf(kb_line, format, keyname, kb->command->dsc_long);
+ sprintf(kb_line, "%s - %s", keyname, kb->command->dsc_long);
free(keyname);
return kb_line;
}
add_line(win, "(none)", 0, &offset, 0);
return;
}
- uint16_t kb_n;
+ uint8_t kb_n;
for (kb_n = 0; kb_n < kbdb->n_of_kbs; kb_n++)
{
attr_t attri = 0;
}
win->center.y = win->winmap_size.y;
}
- char * kb_line = get_kb_line(&kbdb->kbs[kb_n], win->linebreak);
+ char * kb_line = get_kb_line(&kbdb->kbs[kb_n]);
add_line(win, kb_line, attri, &offset, (kbdb->n_of_kbs == kb_n + 1));
free(kb_line);
}
struct KeyBindingDB * kbdb)
{
uint8_t state = 0;
- uint16_t kb_n = 0;
- for (; (0 == state || kb_n < kbdb->n_of_kbs); kb_n++)
+ uint8_t kb_n = 0;
+ while (0 == state || kb_n < kbdb->n_of_kbs)
{
if (0 == state)
{
state = 1 + (0 == kbdb->n_of_kbs);
continue;
}
- char * kb_line = get_kb_line(&kbdb->kbs[kb_n], win->linebreak);
+ 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)
{
extern void draw_win_available_keybindings(struct Win * win)
{
- char * title = "Active window's keybindings:";
- struct KeyBindingDB * kbdb;
+ char * title = "Active window's keys:";
struct Win * win_active = get_win_by_id(world.winDB.active);
- if (0 == win_active->view)
- {
- kbdb = &win_active->kb;
- }
- else if (1 == win_active->view)
+ struct KeyBindingDB * kbdb = &win_active->kb;
+ if (1 == win_active->view)
{
kbdb = &world.kb_wingeom;
}
uint16_t offset = 0;
draw_titled_keybinding_list(title, win, &offset, 0, kbdb);
add_line(win, " ", 0, &offset, 0);
- title = "Global keybindings:";
+ title = "Global keys:";
draw_titled_keybinding_list(title, win, &offset, 1, &world.kb_global);
}
extern void draw_winconf_keybindings(struct Win * win)
{
- char * title = "Window's keybindings:";
+ char * title = "Window's keys:";
uint16_t offset = 0;
add_line(win, title, 0, &offset, 0);
add_line(win, " ", 0, &offset, 0);