diff options
Diffstat (limited to 'apps/gui')
-rw-r--r-- | apps/gui/bitmap/list-skinned.c | 3 | ||||
-rw-r--r-- | apps/gui/bitmap/list.c | 8 | ||||
-rw-r--r-- | apps/gui/list.c | 45 | ||||
-rw-r--r-- | apps/gui/list.h | 5 |
4 files changed, 4 insertions, 57 deletions
diff --git a/apps/gui/bitmap/list-skinned.c b/apps/gui/bitmap/list-skinned.c index a67ac8cb0a..bebff821f8 100644 --- a/apps/gui/bitmap/list-skinned.c +++ b/apps/gui/bitmap/list-skinned.c | |||
@@ -213,8 +213,7 @@ bool skinlist_draw(struct screen *display, struct gui_synclist *list) | |||
213 | if (list_start_item+cur_line+1 > list->nb_items) | 213 | if (list_start_item+cur_line+1 > list->nb_items) |
214 | break; | 214 | break; |
215 | current_drawing_line = list_start_item+cur_line; | 215 | current_drawing_line = list_start_item+cur_line; |
216 | is_selected = list->show_selection_marker && | 216 | is_selected = list_start_item+cur_line == list->selected_item; |
217 | list_start_item+cur_line == list->selected_item; | ||
218 | 217 | ||
219 | for (viewport = SKINOFFSETTOPTR(get_skin_buffer(wps.data), listcfg[screen]->data->tree); | 218 | for (viewport = SKINOFFSETTOPTR(get_skin_buffer(wps.data), listcfg[screen]->data->tree); |
220 | viewport; | 219 | viewport; |
diff --git a/apps/gui/bitmap/list.c b/apps/gui/bitmap/list.c index b2987e9853..ca58d713d0 100644 --- a/apps/gui/bitmap/list.c +++ b/apps/gui/bitmap/list.c | |||
@@ -196,10 +196,7 @@ void list_draw(struct screen *display, struct gui_synclist *list) | |||
196 | const int list_start_item = list->start_item[screen]; | 196 | const int list_start_item = list->start_item[screen]; |
197 | const bool scrollbar_in_left = (list->scrollbar == SCROLLBAR_LEFT); | 197 | const bool scrollbar_in_left = (list->scrollbar == SCROLLBAR_LEFT); |
198 | const bool scrollbar_in_right = (list->scrollbar == SCROLLBAR_RIGHT); | 198 | const bool scrollbar_in_right = (list->scrollbar == SCROLLBAR_RIGHT); |
199 | 199 | const bool show_cursor = (list->cursor_style == SYNCLIST_CURSOR_NOSTYLE); | |
200 | const bool show_cursor = list->show_selection_marker && | ||
201 | (list->cursor_style == SYNCLIST_CURSOR_NOSTYLE); | ||
202 | |||
203 | const bool have_icons = list->callback_get_item_icon && list->show_icons; | 200 | const bool have_icons = list->callback_get_item_icon && list->show_icons; |
204 | 201 | ||
205 | struct viewport *parent = (list->parent[screen]); | 202 | struct viewport *parent = (list->parent[screen]); |
@@ -365,8 +362,7 @@ void list_draw(struct screen *display, struct gui_synclist *list) | |||
365 | !hide_selection && | 362 | !hide_selection && |
366 | #endif | 363 | #endif |
367 | i >= list->selected_item | 364 | i >= list->selected_item |
368 | && i < list->selected_item + list->selected_size | 365 | && i < list->selected_item + list->selected_size) |
369 | && list->show_selection_marker) | ||
370 | {/* The selected item must be displayed scrolling */ | 366 | {/* The selected item must be displayed scrolling */ |
371 | #ifdef HAVE_LCD_COLOR | 367 | #ifdef HAVE_LCD_COLOR |
372 | if (list->selection_color) | 368 | if (list->selection_color) |
diff --git a/apps/gui/list.c b/apps/gui/list.c index df5df22ca1..98e9fe0ada 100644 --- a/apps/gui/list.c +++ b/apps/gui/list.c | |||
@@ -191,7 +191,6 @@ void gui_synclist_init(struct gui_synclist * gui_list, | |||
191 | 191 | ||
192 | gui_list->scheduled_talk_tick = gui_list->last_talked_tick = 0; | 192 | gui_list->scheduled_talk_tick = gui_list->last_talked_tick = 0; |
193 | gui_list->dirty_tick = current_tick; | 193 | gui_list->dirty_tick = current_tick; |
194 | gui_list->show_selection_marker = true; | ||
195 | 194 | ||
196 | #ifdef HAVE_LCD_COLOR | 195 | #ifdef HAVE_LCD_COLOR |
197 | gui_list->title_color = -1; | 196 | gui_list->title_color = -1; |
@@ -200,13 +199,6 @@ void gui_synclist_init(struct gui_synclist * gui_list, | |||
200 | #endif | 199 | #endif |
201 | } | 200 | } |
202 | 201 | ||
203 | /* this toggles the selection bar or cursor */ | ||
204 | void gui_synclist_hide_selection_marker(struct gui_synclist * lists, bool hide) | ||
205 | { | ||
206 | lists->show_selection_marker = !hide; | ||
207 | } | ||
208 | |||
209 | |||
210 | int gui_list_get_item_offset(struct gui_synclist * gui_list, | 202 | int gui_list_get_item_offset(struct gui_synclist * gui_list, |
211 | int item_width, | 203 | int item_width, |
212 | int text_pos, | 204 | int text_pos, |
@@ -269,11 +261,7 @@ static void gui_list_put_selection_on_screen(struct gui_synclist * gui_list, | |||
269 | const int scroll_limit_up = (nb_lines < gui_list->selected_size+2 ? 0:1); | 261 | const int scroll_limit_up = (nb_lines < gui_list->selected_size+2 ? 0:1); |
270 | const int scroll_limit_down = (scroll_limit_up+gui_list->selected_size); | 262 | const int scroll_limit_down = (scroll_limit_up+gui_list->selected_size); |
271 | 263 | ||
272 | if (gui_list->show_selection_marker == false) | 264 | if (gui_list->selected_size >= nb_lines) |
273 | { | ||
274 | new_start_item = gui_list->selected_item; | ||
275 | } | ||
276 | else if (gui_list->selected_size >= nb_lines) | ||
277 | { | 265 | { |
278 | new_start_item = gui_list->selected_item; | 266 | new_start_item = gui_list->selected_item; |
279 | } | 267 | } |
@@ -420,31 +408,7 @@ static void gui_list_select_at_offset(struct gui_synclist * gui_list, | |||
420 | 0 : gui_list->nb_items - gui_list->selected_size; | 408 | 0 : gui_list->nb_items - gui_list->selected_size; |
421 | edge_beep(gui_list, !gui_list->limit_scroll); | 409 | edge_beep(gui_list, !gui_list->limit_scroll); |
422 | } | 410 | } |
423 | else if (gui_list->show_selection_marker == false) | ||
424 | { | ||
425 | FOR_NB_SCREENS(i) | ||
426 | { | ||
427 | int nb_lines = list_get_nb_lines(gui_list, i); | ||
428 | if (offset > 0) | ||
429 | { | ||
430 | int screen_top = MAX(0, gui_list->nb_items - nb_lines); | ||
431 | gui_list->start_item[i] = MIN(screen_top, gui_list->start_item[i] + | ||
432 | gui_list->selected_size); | ||
433 | gui_list->selected_item = gui_list->start_item[i]; | ||
434 | } | ||
435 | else | ||
436 | { | ||
437 | gui_list->start_item[i] = MAX(0, gui_list->start_item[i] - | ||
438 | gui_list->selected_size); | ||
439 | gui_list->selected_item = gui_list->start_item[i] + nb_lines; | ||
440 | } | ||
441 | 411 | ||
442 | #ifdef HAVE_TOUCHSCREEN | ||
443 | gui_list->y_pos = gui_list->start_item[SCREEN_MAIN] * gui_list->line_height[SCREEN_MAIN]; | ||
444 | #endif | ||
445 | } | ||
446 | return; | ||
447 | } | ||
448 | gui_synclist_select_item(gui_list, new_selection); | 412 | gui_synclist_select_item(gui_list, new_selection); |
449 | } | 413 | } |
450 | 414 | ||
@@ -950,12 +914,6 @@ bool simplelist_show_list(struct simplelist_info *info) | |||
950 | gui_synclist_set_sel_color(&lists, info->selection_color); | 914 | gui_synclist_set_sel_color(&lists, info->selection_color); |
951 | #endif | 915 | #endif |
952 | 916 | ||
953 | if (info->hide_selection) | ||
954 | { | ||
955 | gui_synclist_hide_selection_marker(&lists, true); | ||
956 | wrap = LIST_WRAP_OFF; | ||
957 | } | ||
958 | |||
959 | if (info->action_callback) | 917 | if (info->action_callback) |
960 | info->action_callback(ACTION_REDRAW, &lists); | 918 | info->action_callback(ACTION_REDRAW, &lists); |
961 | 919 | ||
@@ -1039,7 +997,6 @@ void simplelist_info_init(struct simplelist_info *info, char* title, | |||
1039 | info->title = title; | 997 | info->title = title; |
1040 | info->count = count; | 998 | info->count = count; |
1041 | info->selection_size = 1; | 999 | info->selection_size = 1; |
1042 | info->hide_selection = false; | ||
1043 | info->scroll_all = false; | 1000 | info->scroll_all = false; |
1044 | info->hide_theme = false; | 1001 | info->hide_theme = false; |
1045 | info->speak_onshow = true; | 1002 | info->speak_onshow = true; |
diff --git a/apps/gui/list.h b/apps/gui/list.h index 2df33b7541..388e3d2006 100644 --- a/apps/gui/list.h +++ b/apps/gui/list.h | |||
@@ -161,7 +161,6 @@ struct gui_synclist | |||
161 | /* whether the text of the whole items of the list have to be | 161 | /* whether the text of the whole items of the list have to be |
162 | * scrolled or only for the selected item */ | 162 | * scrolled or only for the selected item */ |
163 | bool scroll_all; | 163 | bool scroll_all; |
164 | bool show_selection_marker; /* set to true by default */ | ||
165 | int nb_items; | 164 | int nb_items; |
166 | int selected_item; | 165 | int selected_item; |
167 | 166 | ||
@@ -235,8 +234,6 @@ extern void gui_synclist_del_item(struct gui_synclist * lists); | |||
235 | extern void gui_synclist_limit_scroll(struct gui_synclist * lists, bool scroll); | 234 | extern void gui_synclist_limit_scroll(struct gui_synclist * lists, bool scroll); |
236 | extern void gui_synclist_set_title(struct gui_synclist * lists, const char * title, | 235 | extern void gui_synclist_set_title(struct gui_synclist * lists, const char * title, |
237 | enum themable_icons icon); | 236 | enum themable_icons icon); |
238 | extern void gui_synclist_hide_selection_marker(struct gui_synclist *lists, | ||
239 | bool hide); | ||
240 | extern bool gui_synclist_item_is_onscreen(struct gui_synclist *lists, | 237 | extern bool gui_synclist_item_is_onscreen(struct gui_synclist *lists, |
241 | enum screen_type screen, int item); | 238 | enum screen_type screen, int item); |
242 | 239 | ||
@@ -304,7 +301,6 @@ struct simplelist_info { | |||
304 | const char *title; /* title to show on the list */ | 301 | const char *title; /* title to show on the list */ |
305 | int count; /* number of items in the list, each item is selection_size high */ | 302 | int count; /* number of items in the list, each item is selection_size high */ |
306 | int selection_size; /* list selection size, usually 1 */ | 303 | int selection_size; /* list selection size, usually 1 */ |
307 | bool hide_selection; | ||
308 | bool scroll_all; | 304 | bool scroll_all; |
309 | bool hide_theme; | 305 | bool hide_theme; |
310 | bool speak_onshow; /* list speaks first item or 'empty list' */ | 306 | bool speak_onshow; /* list speaks first item or 'empty list' */ |
@@ -350,7 +346,6 @@ void simplelist_addline(const char *fmt, ...); | |||
350 | /* setup the info struct. members not setup in this function need to be assigned manually | 346 | /* setup the info struct. members not setup in this function need to be assigned manually |
351 | members set in this function: | 347 | members set in this function: |
352 | info.selection_size = 1; | 348 | info.selection_size = 1; |
353 | info.hide_selection = false; | ||
354 | info.scroll_all = false; | 349 | info.scroll_all = false; |
355 | info.hide_theme = false; | 350 | info.hide_theme = false; |
356 | info.speak_onshow = true; | 351 | info.speak_onshow = true; |