diff --git a/src/list_window.h b/src/list_window.h
index 8ffe40f9bd5ca0cf79d11b3a82c11b16e51f0744..b3452f13d23d51df6d971e66e2d87a22469c905a 100644 (file)
--- a/src/list_window.h
+++ b/src/list_window.h
/* ncmpc (Ncurses MPD Client)
- * (c) 2004-2009 The Music Player Daemon Project
+ * (c) 2004-2017 The Music Player Daemon Project
* Project homepage: http://musicpd.org
-
+ *
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
-
+ *
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
-
+ *
* You should have received a copy of the GNU General Public License along
* with this program; if not, write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-*/
+ */
#ifndef LIST_WINDOW_H
#define LIST_WINDOW_H
#include "config.h"
#include "command.h"
#include "colors.h"
+#include "ncmpc_curses.h"
#include <glib.h>
#include <stdbool.h>
-#ifdef HAVE_NCURSESW_NCURSES_H
-#include <ncursesw/ncurses.h>
-#else
-#include <ncurses.h>
-#endif
-
-typedef const char *(*list_window_callback_fn_t)(unsigned index,
- bool *highlight,
- char **second_column,
- void *data);
+typedef const char *
+(*list_window_callback_fn_t)(unsigned i, void *data);
typedef void
(*list_window_paint_callback_t)(WINDOW *w, unsigned i,
unsigned y, unsigned width,
bool selected,
- void *data);
+ const void *data);
struct list_window {
WINDOW *w;
struct list_window *list_window_init(WINDOW *w,
unsigned width, unsigned height);
-/* destroy a list window (returns NULL) */
+/* destroy a list window */
void list_window_free(struct list_window *lw);
/* reset a list window (selected=0, start=0) */
void
list_window_paint2(const struct list_window *lw,
list_window_paint_callback_t paint_callback,
- void *callback_data);
+ const void *callback_data);
/* perform basic list window commands (movement) */
bool
list_window_cmd(struct list_window *lw, command_t cmd);
/**
- * Scroll the window. Returns non-zero if the command has been
+ * Scroll the window. Returns true if the command has been
* consumed.
*/
bool
list_window_mouse(struct list_window *lw, unsigned long bstate, int y);
#endif
+/**
+ * Centers the visible range around item n on the list.
+ */
void
list_window_center(struct list_window *lw, unsigned n);
+/**
+ * Scrolls the view to item n, as if the cursor would have been moved
+ * to the position.
+ */
+void
+list_window_scroll_to(struct list_window *lw, unsigned n);
+
/**
* Sets the position of the cursor. Disables range selection.
*/