diff --git a/src/app.o b/src/app.o index 50a7b99..0204e55 100644 Binary files a/src/app.o and b/src/app.o differ diff --git a/src/main.o b/src/main.o index ce1de1b..2e54a5d 100644 Binary files a/src/main.o and b/src/main.o differ diff --git a/src/ui.c b/src/ui.c index 6def0e9..8b97d5d 100644 --- a/src/ui.c +++ b/src/ui.c @@ -467,14 +467,13 @@ static void draw_timeline_header_cached(SDL_Renderer *renderer, } } -static void draw_status_bar(SDL_Renderer *renderer, - TTF_Font *font, - const GuideTheme *theme, - const Channel *selected_channel, - const SDL_Rect *rect, - time_t now_wall) { - char clock_text[32]; - char channel_text[160]; +static void draw_mini_status_bar(SDL_Renderer *renderer, + TTF_Font *font, + const GuideTheme *theme, + const Channel *selected_channel, + const SDL_Rect *rect, + time_t now_wall) { + char status_text[256]; SDL_Color text_color; if (!rect) { @@ -483,22 +482,24 @@ static void draw_status_bar(SDL_Renderer *renderer, text_color = readable_text_color(theme->status_mid); - draw_beveled_bar(renderer, - rect, - blend_color(theme->status_top, theme->status_mid, 220), - theme->status_mid, - blend_color(theme->status_bottom, theme->status_mid, 220), - color_with_alpha(theme->gloss, 36), - theme->panel_border); - format_time_compact(clock_text, sizeof(clock_text), now_wall); - draw_text_clipped(renderer, font, clock_text, rect, rect->x + 12, rect->y + 10, text_color); - set_draw_color(renderer, theme->status_divider); - SDL_RenderDrawLine(renderer, rect->x + rect->w / 2, rect->y + 8, rect->x + rect->w / 2, rect->y + rect->h - 8); + fill_three_stop_gradient(renderer, + rect, + blend_color(theme->status_top, theme->status_mid, 220), + theme->status_mid, + blend_color(theme->status_bottom, theme->status_mid, 220)); + stroke_rect(renderer, rect, theme->panel_border); if (selected_channel) { - snprintf(channel_text, sizeof(channel_text), "%s %d", selected_channel->name, selected_channel->number); - draw_text_clipped(renderer, font, channel_text, rect, rect->x + rect->w - 260, rect->y + 10, text_color); + char clock_text[32]; + format_time_compact(clock_text, sizeof(clock_text), now_wall); + snprintf(status_text, sizeof(status_text), "Time %s | Channel %s %d", clock_text, selected_channel->name, selected_channel->number); + } else { + char clock_text[32]; + format_time_compact(clock_text, sizeof(clock_text), now_wall); + snprintf(status_text, sizeof(status_text), "Time %s", clock_text); } + + draw_text_clipped(renderer, font, status_text, rect, rect->x + 10, rect->y + 4, text_color); } static void draw_info_panel(SDL_Renderer *renderer, @@ -847,12 +848,16 @@ void ui_render_guide(SDL_Renderer *renderer, double scale_y = (double) window_height / WINDOW_HEIGHT; int guide_x_start = (int) (GUIDE_X_START * scale_x); int sidebar_width = (int) (GUIDE_SIDEBAR_WIDTH * scale_x); + int mini_status_height = (int) (26 * scale_y); SDL_Rect full = {0, 0, window_width, window_height}; SDL_Rect info_panel = {0, 0, (int) (GUIDE_INFO_WIDTH * scale_x), (int) (GUIDE_INFO_HEIGHT * scale_y)}; SDL_Rect preview = {window_width - (int) (GUIDE_PREVIEW_WIDTH * scale_x), 0, (int) (GUIDE_PREVIEW_WIDTH * scale_x), (int) (GUIDE_PREVIEW_HEIGHT * scale_y)}; - SDL_Rect status_bar = {info_panel.w, 0, window_width - info_panel.w, (int) (GUIDE_STATUS_HEIGHT * scale_y)}; - SDL_Rect header_row = {0, (int) ((GUIDE_GRID_TOP - GUIDE_STATUS_HEIGHT) * scale_y), window_width, (int) (GUIDE_STATUS_HEIGHT * scale_y)}; - SDL_Rect grid = {0, (int) (GUIDE_GRID_TOP * scale_y), window_width, window_height - (int) (GUIDE_GRID_TOP * scale_y) - (int) (GUIDE_FOOTER_HEIGHT * scale_y)}; + int mini_status_y = preview.y + preview.h; + int timeline_header_y = mini_status_y + mini_status_height; + int grid_y = timeline_header_y + (int) (GUIDE_STATUS_HEIGHT * scale_y); + SDL_Rect mini_status_bar = {preview.x, mini_status_y, preview.w, mini_status_height}; + SDL_Rect header_row = {0, timeline_header_y, window_width, (int) (GUIDE_STATUS_HEIGHT * scale_y)}; + SDL_Rect grid = {0, grid_y, window_width, window_height - grid_y - (int) (GUIDE_FOOTER_HEIGHT * scale_y)}; int row_height = grid.h / GUIDE_VISIBLE_ROWS; int timeline_w = window_width - guide_x_start - (int) (20 * scale_x); int start_index = active_channel - 2; @@ -877,7 +882,7 @@ void ui_render_guide(SDL_Renderer *renderer, draw_panel_shadow(renderer, &preview); fill_rect(renderer, &preview, COLOR_BLACK); draw_video(renderer, video_texture, texture_width, texture_height, preview); - draw_status_bar(renderer, fonts->medium, theme, selected_channel, &status_bar, now_wall); + draw_mini_status_bar(renderer, fonts->small, theme, selected_channel, &mini_status_bar, now_wall); if (cache->timeline_label_slot != guide_view_start_time / 60 || cache->timeline_theme != theme) { char label[32]; diff --git a/src/ui.o b/src/ui.o index 304cea0..4399d47 100644 Binary files a/src/ui.o and b/src/ui.o differ