/** @copydoc widgetdata::background_func */ static void widget_background(widgetdata *widget, int draw) { if (!widget->redraw) { widget->redraw = list_need_redraw(list_skills); } if (!widget->redraw) { size_t i; for (i = 0; i < BUTTON_NUM; i++) { if (button_need_redraw(&buttons[i])) { widget->redraw = 1; break; } } } }
/** @copydoc widgetdata::background_func */ static void widget_background(widgetdata *widget, int draw) { size_t i; /* Create the party list. */ if (!list_party) { list_party = list_create(12, 2, 8); list_party->handle_enter_func = list_handle_enter; list_party->text_flags = TEXT_MARKUP; list_party->row_highlight_func = list_row_highlight; list_party->row_selected_func = list_row_selected; list_scrollbar_enable(list_party); list_set_column(list_party, 0, 130, 7, NULL, -1); list_set_column(list_party, 1, 60, 7, NULL, -1); list_party->header_height = 6; for (i = 0; i < BUTTON_NUM; i++) { button_create(&buttons[i]); if (i == BUTTON_CLOSE || i == BUTTON_HELP) { buttons[i].texture = texture_get(TEXTURE_TYPE_CLIENT, "button_round"); buttons[i].texture_pressed = texture_get(TEXTURE_TYPE_CLIENT, "button_round_down"); buttons[i].texture_over = texture_get(TEXTURE_TYPE_CLIENT, "button_round_over"); } else if (i == BUTTON_PARTIES || i == BUTTON_MEMBERS) { buttons[i].flags = TEXT_MARKUP; } } widget->redraw = 1; list_contents = -1; } if (!widget->redraw) { widget->redraw = list_need_redraw(list_party); } if (!widget->redraw) { for (i = 0; i < BUTTON_NUM; i++) { if (button_need_redraw(&buttons[i])) { widget->redraw = 1; break; } } } }
/** @copydoc widgetdata::background_func */ static void widget_background(widgetdata *widget, int draw) { uint32_t duration, num_lines; /* If shuffle is enabled, check whether we need to start playing * another song. */ if (shuffle) { mplayer_check_shuffle(); } duration = sound_music_get_duration(); num_lines = duration + MAX(1, duration / 10); if (num_lines != scrollbar_progress_info.num_lines) { scrollbar_progress_info.num_lines = num_lines; scrollbar_progress.max_lines = MAX(1, duration / 10); widget->redraw = 1; } if (list_mplayer) { if (scrollbar_progress_info.redraw && sound_music_can_seek()) { sound_music_seek(scrollbar_progress_info.scroll_offset + 1); scrollbar_progress_info.redraw = 0; widget->redraw = 1; } else { uint32_t offset; offset = scrollbar_progress_info.scroll_offset; scrollbar_progress.redraw = NULL; scrollbar_scroll_to(&scrollbar_progress, sound_music_get_offset()); scrollbar_progress.redraw = &scrollbar_progress_info.redraw; if (offset != scrollbar_progress_info.scroll_offset) { widget->redraw = 1; } } } /* Do mass blacklist status change if the button has been held for * some time. */ if (buttons[BUTTON_BLACKLIST].pressed && SDL_GetTicks() - buttons[BUTTON_BLACKLIST].pressed_ticks > BLACKLIST_ALL_DELAY) { mplayer_blacklist_mass_toggle(list_mplayer, mplayer_blacklisted(list_mplayer)); mplayer_blacklist_save(list_mplayer); buttons[BUTTON_BLACKLIST].pressed_ticks = SDL_GetTicks(); } if (!widget->redraw) { widget->redraw = list_need_redraw(list_mplayer); } if (!widget->redraw) { size_t i; for (i = 0; i < BUTTON_NUM; i++) { if (button_need_redraw(&buttons[i])) { widget->redraw = 1; break; } } } }