X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=src%2Fscreen_browser.h;h=6679a93cc797f580c10643869d2426def1e9c3f6;hb=911670a90a1a2f50651351157f16775a00f784da;hp=0726d0b35b971b38dd2877c24501cab8e0ad7e21;hpb=b7d7beeed8cab78bcc7c3df2f63a93bf682f84ca;p=ncmpc.git diff --git a/src/screen_browser.h b/src/screen_browser.h index 0726d0b..6679a93 100644 --- a/src/screen_browser.h +++ b/src/screen_browser.h @@ -1,34 +1,73 @@ +/* ncmpc (Ncurses MPD Client) + * (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 SCREEN_BROWSER_H +#define SCREEN_BROWSER_H + +#include "command.h" +#include "config.h" +#include "ncmpc_curses.h" + +#include + +struct mpdclient; +struct mpdclient_playlist; +struct filelist; +struct list_window; +struct list_window_state; + +struct screen_browser { + struct list_window *lw; + + struct filelist *filelist; + const char *song_format; +}; + +#ifndef NCMPC_MINI + +void +screen_browser_sync_highlights(struct filelist *fl, + const struct mpdclient_playlist *playlist); -void clear_highlights(mpdclient_filelist_t *filelist); -void sync_highlights(mpdclient_t *c, mpdclient_filelist_t *filelist); -void set_highlight(mpdclient_filelist_t *filelist, - mpd_Song *song, - int highlight); - - -const char *browse_lw_callback(unsigned index, int *highlight, void *filelist); - -int browse_handle_select(screen_t *screen, - mpdclient_t *c, - list_window_t *lw, - mpdclient_filelist_t *filelist); -int browse_handle_select_all (screen_t *screen, - mpdclient_t *c, - list_window_t *lw, - mpdclient_filelist_t *filelist); -int browse_handle_enter(screen_t *screen, - mpdclient_t *c, - list_window_t *lw, - mpdclient_filelist_t *filelist); - -#ifdef HAVE_GETMOUSE -int browse_handle_mouse_event(screen_t *screen, - mpdclient_t *c, - list_window_t *lw, - mpdclient_filelist_t *filelist); #else -#define browse_handle_mouse_event(s,c,lw,filelist) (0) + +#include +static inline void +screen_browser_sync_highlights(gcc_unused struct filelist *fl, + gcc_unused const struct mpdclient_playlist *playlist) +{ +} + #endif +void +screen_browser_paint_directory(WINDOW *w, unsigned width, + bool selected, const char *name); +void +screen_browser_paint(const struct screen_browser *browser); +struct filelist_entry * +browser_get_selected_entry(const struct screen_browser *browser); + +bool +browser_cmd(struct screen_browser *browser, + struct mpdclient *c, command_t cmd); + +#endif