From 196187f3bf387325971c2d010866ebe588be5f7a Mon Sep 17 00:00:00 2001 From: Alec Murphy Date: Tue, 29 Apr 2025 11:03:29 -0400 Subject: [PATCH] Media/Themes/Umami: Add RectWidget, BorderedRectWidget to @umami_widgets_repaint --- Media/Themes/Umami/Theme.HC | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/Media/Themes/Umami/Theme.HC b/Media/Themes/Umami/Theme.HC index 1dfeda6..ff896ae 100644 --- a/Media/Themes/Umami/Theme.HC +++ b/Media/Themes/Umami/Theme.HC @@ -1328,6 +1328,27 @@ U0 @umami_set_focused_and_hovered_widget(Window* win, I64 event) } } +U0 @umami_bordered_rect_repaint(Window* win, BorderedRectWidget* widget, I64 x, I64 y) +{ + I64 rw = widget->left.size + widget->width + widget->right.size; + I64 rh = widget->top.size + widget->height + widget->bottom.size; + Rect2D(win->render_ctx, x, y, rw, rh, widget->color); + // Draw borders + // FIXME: style + if (widget->top.size) { + Rect2D(win->render_ctx, x + 0, y + 0, rw, widget->top.size, widget->top.color); + } + if (widget->bottom.size) { + Rect2D(win->render_ctx, x + 0, y + rh - widget->bottom.size, rw, widget->bottom.size, widget->bottom.color); + } + if (widget->left.size) { + Rect2D(win->render_ctx, x + 0, y + 0, widget->left.size, rh, widget->left.color); + } + if (widget->right.size) { + Rect2D(win->render_ctx, x + rw - widget->right.size, y + 0, widget->right.size, rh, widget->right.color); + } +} + U0 @umami_widgets_repaint(Window* win, I64 event, I64 origin_x, I64 origin_y) { @window_widgets_list* widgets_list; @@ -1350,6 +1371,14 @@ U0 @umami_widgets_repaint(Window* win, I64 event, I64 origin_x, I64 origin_y) switch (widget->type) { case NULL: break; + case WIDGET_TYPE_BORDERED_RECT: + if (widget->width && widget->height) + @umami_bordered_rect_repaint(win, widget, x, y); + break; + case WIDGET_TYPE_RECT: + if (widget->width && widget->height) + Rect2D(win->render_ctx, x, y, widget->width, widget->height, widget(RectWidget*)->color); + break; case WIDGET_TYPE_BUTTON: @umami_button_repaint(win, widget, x, y); break;