diff --git a/src/screen_help.c b/src/screen_help.c
index 2a9b72ab4fee3c1d4719ce8f0091a0e9a8ba6c66..2ac90b774c30bcc125af11eb4a5e02e274b60ed2 100644 (file)
--- a/src/screen_help.c
+++ b/src/screen_help.c
/* ncmpc (Ncurses MPD Client)
- * (c) 2004-2009 The Music Player Daemon Project
+ * (c) 2004-2010 The Music Player Daemon Project
* Project homepage: http://musicpd.org
* This program is free software; you can redistribute it and/or modify
{ 0, CMD_SCREEN_PREVIOUS,NULL },
{ 0, CMD_SCREEN_NEXT, NULL },
- { 0, CMD_SCREEN_SWAP, NULL },
+ { 0, CMD_SCREEN_SWAP, NULL },
{ 0, CMD_SCREEN_HELP, NULL },
{ 0, CMD_SCREEN_PLAY, NULL },
{ 0, CMD_SCREEN_FILE, NULL },
{ 0, CMD_INTERRUPT, N_("Interrupt retrieval") },
{ 0, CMD_LYRICS_UPDATE, N_("Download lyrics for currently playing song") },
{ 0, CMD_SAVE_PLAYLIST, N_("Save lyrics") },
+ { 0, CMD_DELETE, N_("Delete saved lyrics") },
#endif
#ifdef ENABLE_OUTPUTS_SCREEN
{ 0, CMD_NONE, NULL },
static struct list_window *lw;
static const char *
-list_callback(unsigned idx, bool *highlight, G_GNUC_UNUSED char** second_column, G_GNUC_UNUSED void *data)
+list_callback(unsigned i, G_GNUC_UNUSED void *data)
{
- static char buf[512];
-
- assert(idx < G_N_ELEMENTS(help_text));
+ const struct help_text_row *row = &help_text[i];
- if (help_text[idx].highlight)
- *highlight = true;
+ assert(i < G_N_ELEMENTS(help_text));
- if (help_text[idx].command == CMD_NONE) {
- if (help_text[idx].text)
- g_snprintf(buf, sizeof(buf), " %s", _(help_text[idx].text));
- else if (help_text[idx].highlight == 2) {
- int i;
+ if (row->text != NULL)
+ return _(row->text);
- for (i = 3; i < COLS - 3 && i < (int)sizeof(buf); i++)
- buf[i] = '-';
- buf[i] = '\0';
- } else
- g_strlcpy(buf, " ", sizeof(buf));
- return buf;
- }
+ if (row->command != CMD_NONE)
+ return get_key_description(row->command);
- if (help_text[idx].text)
- g_snprintf(buf, sizeof(buf),
- "%20s : %s ",
- get_key_names(help_text[idx].command, TRUE),
- _(help_text[idx].text));
- else
- g_snprintf(buf, sizeof(buf),
- "%20s : %s ",
- get_key_names(help_text[idx].command, TRUE),
- get_key_description(help_text[idx].command));
- return buf;
+ return "";
}
static void
help_init(WINDOW *w, int cols, int rows)
{
- lw = list_window_init(w, cols, rows);
+ lw = list_window_init(w, cols, rows);
lw->hide_cursor = true;
list_window_set_length(lw, G_N_ELEMENTS(help_text));
}
static void
help_exit(void)
{
- list_window_free(lw);
+ list_window_free(lw);
}
if (row->command == CMD_NONE) {
if (row->text != NULL)
- mvwaddstr(w, y, 6, row->text);
+ mvwaddstr(w, y, 6, _(row->text));
else if (row->highlight == 2)
mvwhline(w, y, 3, '-', width - 6);
} else {