1 /* ncmpc (Ncurses MPD Client)
2 * (c) 2004-2010 The Music Player Daemon Project
3 * Project homepage: http://musicpd.org
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; either version 2 of the License, or
8 * (at your option) any later version.
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
15 * You should have received a copy of the GNU General Public License along
16 * with this program; if not, write to the Free Software Foundation, Inc.,
17 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
23 #include "list_window.h"
32 struct list_window
*lw
;
36 screen_text_init(struct screen_text
*text
, WINDOW
*w
, int cols
, int rows
)
38 text
->lines
= g_ptr_array_new();
40 text
->lw
= list_window_init(w
, cols
, rows
);
41 text
->lw
->hide_cursor
= true;
45 screen_text_clear(struct screen_text
*text
);
48 screen_text_deinit(struct screen_text
*text
)
50 screen_text_clear(text
);
51 g_ptr_array_free(text
->lines
, TRUE
);
53 list_window_free(text
->lw
);
57 screen_text_resize(struct screen_text
*text
, int cols
, int rows
)
59 list_window_resize(text
->lw
, cols
, rows
);
63 screen_text_is_empty(const struct screen_text
*text
)
65 return text
->lines
->len
== 0;
69 screen_text_append(struct screen_text
*text
, const char *str
);
72 screen_text_set(struct screen_text
*text
, const char *str
)
74 screen_text_clear(text
);
75 screen_text_append(text
, str
);
79 screen_text_list_callback(unsigned idx
, void *data
);
82 screen_text_paint(struct screen_text
*text
)
84 list_window_paint(text
->lw
, screen_text_list_callback
, text
);
88 * Repaint and update the screen.
91 screen_text_repaint(struct screen_text
*text
)
93 screen_text_paint(text
);
94 wrefresh(text
->lw
->w
);
98 screen_text_cmd(struct screen_text
*text
, struct mpdclient
*c
, command_t cmd
);