Code

Added support for (auto) center/focus playlists.
[ncmpc.git] / screen_help.c
index 3d01363b91a1d552cf54e919c6e4eb67c1a03a2e..d2e8086af345659eb3bbf8e3fcd998409808d12b 100644 (file)
@@ -1,8 +1,3 @@
-/* 
- * $Id: screen_help.c,v 1.8 2004/03/17 13:40:25 kalle Exp $ 
- *
- */
-
 #include <stdlib.h>
 #include <string.h>
 #include <glib.h>
@@ -13,6 +8,7 @@
 #include "mpc.h"
 #include "command.h"
 #include "screen.h"
+#include "screen_utils.h"
 #include "screen_help.h"
 
 typedef struct
@@ -36,7 +32,10 @@ static help_text_row_t help_text[] =
   { 0, CMD_LIST_NEXT,      "Move cursor up" },
   { 0, CMD_LIST_PREVIOUS,  "Move cursor down" },
   { 0, CMD_LIST_FIND,      "Find" },
-  { 0, CMD_LIST_FIND_NEXT, "Find again" },
+  { 0, CMD_LIST_RFIND,     "find backward" },
+  { 0, CMD_LIST_FIND_NEXT, "Find next" },
+  { 0, CMD_LIST_RFIND_NEXT,"Find previuos" },
+  { 0, CMD_TOGGLE_FIND_WRAP, "Toggle find mode" },
   { 0, CMD_NONE, " " },
   { 0, CMD_SCREEN_NEXT,   "Change screen" },
   { 0, CMD_SCREEN_HELP,   "Help screen" },
@@ -47,18 +46,23 @@ static help_text_row_t help_text[] =
   { 0, CMD_NONE, " " },
   { 1, CMD_NONE, "    Keys - Playlist screen " },
   { 0, CMD_NONE, "  --------------------------" },
-  { 0, CMD_PLAY,    "Play selected entry" },
-  { 0, CMD_DELETE,  "Delete selected entry from platlist" },
-  { 0, CMD_SHUFFLE, "Shuffle playlist" },
-  { 0, CMD_CLEAR,   "Clear playlist" },
-  { 0, CMD_REPEAT,  "Toggle repeat mode" },
-  { 0, CMD_RANDOM,  "Toggle random mode" },
+  { 0, CMD_PLAY,           "Play selected entry" },
+  { 0, CMD_DELETE,         "Delete selected entry from playlist" },
+  { 0, CMD_SHUFFLE,        "Shuffle playlist" },
+  { 0, CMD_CLEAR,          "Clear playlist" },
+  { 0, CMD_SAVE_PLAYLIST,  "Save playlist" },
+  { 0, CMD_REPEAT,         "Toggle repeat mode" },
+  { 0, CMD_RANDOM,         "Toggle random mode" },
+  { 0, CMD_SCREEN_UPDATE,  "Center playing track" },
+  { 0, CMD_TOGGLE_AUTOCENTER, "Toggle auto center" },
   { 0, CMD_NONE, " " },
   { 0, CMD_NONE, " " },
   { 1, CMD_NONE, "    Keys - Browse screen " },
   { 0, CMD_NONE, "  ------------------------" },
-  { 0, CMD_PLAY,   "Change to selected directory" },
-  { 0, CMD_SELECT, "Add/Remove selected file" },
+  { 0, CMD_PLAY,            "Enter directory/Load playlist" },
+  { 0, CMD_SELECT,          "Add/remove song from playlist" },
+  { 0, CMD_DELETE,          "Delete playlist" },
+  { 0, CMD_SCREEN_UPDATE,   "Update" },
   { 0, CMD_NONE, " " },
   { 0, CMD_NONE, " " },
   { 1, CMD_NONE, " " PACKAGE " version " VERSION },
@@ -135,57 +139,13 @@ help_update(screen_t *screen, mpd_client_t *c)
 int 
 help_cmd(screen_t *screen, mpd_client_t *c, command_t cmd)
 {
- switch(cmd)
-    {
-    case CMD_LIST_PREVIOUS:
-      list_window_previous(screen->helplist);
-      screen->helplist->repaint=1;
-      break;
-    case CMD_LIST_NEXT:
-      list_window_next(screen->helplist, help_text_rows);
-      screen->helplist->repaint=1;
-      break;
-    case CMD_LIST_FIRST:
-      list_window_first(screen->helplist);
-      screen->helplist->repaint  = 1;
-      break;
-    case CMD_LIST_LAST:
-      list_window_last(screen->helplist, help_text_rows);
-      screen->helplist->repaint  = 1;
-      break;
-    case CMD_LIST_PREVIOUS_PAGE:
-      list_window_previous_page(screen->helplist);
-      screen->helplist->repaint  = 1;
-      break;
-    case CMD_LIST_NEXT_PAGE:
-      list_window_next_page(screen->helplist, help_text_rows);
-      screen->helplist->repaint  = 1;
-      break;
-    case CMD_LIST_FIND:
-      if( screen->findbuf )
-       {
-         free(screen->findbuf);
-         screen->findbuf=NULL;
-       }
-      /* continue... */
-    case CMD_LIST_FIND_NEXT:
-      if( !screen->findbuf )
-       screen->findbuf=screen_readln(screen->status_window.w, "/");
-      if( list_window_find(screen->helplist,
-                          list_callback,
-                          c,
-                          screen->findbuf) == 0 )
-       {
-         screen->helplist->repaint  = 1;
-       }
-      else
-       {
-         screen_status_printf("Unable to find \'%s\'", screen->findbuf);
-         beep();
-       }
-      break;
-    default:
-      return 0;
-    }
-  return 1;
+  int retval;
+
+  retval = list_window_cmd(screen->helplist, help_text_rows, cmd);
+  if( !retval )
+    return screen_find(screen, c, 
+                      screen->helplist, help_text_rows,
+                      cmd, list_callback);
+
+  return retval;
 }