Code

screen: moved list_window mouse code to list_window.c
[ncmpc.git] / src / list_window.h
index ab02f4bdd759a29c0e7300b861e16530f9597316..78593948add8eae7438f33ced05e8278d40c0fdf 100644 (file)
@@ -1,6 +1,7 @@
 #ifndef LIST_WINDOW_H
 #define LIST_WINDOW_H
 
+#include "../config.h"
 #include "command.h"
 
 #include <ncurses.h>
@@ -36,7 +37,7 @@ struct list_window *list_window_init(WINDOW *w,
                                     unsigned width, unsigned height);
 
 /* destroy a list window (returns NULL) */
-struct list_window *list_window_free(struct list_window *lw);
+void list_window_free(struct list_window *lw);
 
 /* reset a list window (selected=0, start=0, clear=1) */
 void list_window_reset(struct list_window *lw);
@@ -56,6 +57,18 @@ int list_window_cmd(struct list_window *lw, unsigned rows, command_t cmd);
 int
 list_window_scroll_cmd(struct list_window *lw, unsigned rows, command_t cmd);
 
+#ifdef HAVE_GETMOUSE
+/**
+ * The mouse was clicked.  Check if the list should be scrolled
+ * Returns non-zero if the mouse event has been handled.
+ */
+int
+list_window_mouse(struct list_window *lw, unsigned rows,
+                 unsigned long bstate, int y);
+#endif
+
+void
+list_window_center(struct list_window *lw, unsigned rows, unsigned n);
 
 /* select functions */
 void list_window_set_selected(struct list_window *lw, unsigned n);
@@ -85,7 +98,7 @@ list_window_rfind(struct list_window *lw,
 
 /* list window states */
 list_window_state_t *list_window_init_state(void);
-list_window_state_t *list_window_free_state(list_window_state_t *state);
+void list_window_free_state(list_window_state_t *state);
 void list_window_push_state(list_window_state_t *state,
                            struct list_window *lw);
 bool list_window_pop_state(list_window_state_t *state, struct list_window *lw);