commit - 505b557c39f60c33968f0aa3252ad94ea45a6789
commit + 98d0e23f0c6d7384bfd5f4cfe5ac016c019f71e3
blob - 05dea7d5eeebc776750c1c185b4f4f6105f6ed6a
blob + f38629d25d4e1a4e1308def65684adf2c6022363
--- aui.h
+++ aui.h
};
struct aui_frame_config {
- struct aui_color bg;
+ struct aui_color background;
};
struct aui_canvas_config {
- struct aui_color bg;
+ struct aui_color background;
};
struct aui_label_config {
void aui_destroy(struct aui_widget *);
struct aui_window *aui_window_new(struct aui_window_config *);
struct aui_button *aui_button_new(struct aui_widget *, struct aui_button_config *);
-struct aui_frame *aui_frame_new(struct aui_widget *);
-struct aui_canvas *aui_canvas_new(struct aui_widget *);
+int aui_button_config(struct aui_widget *, struct aui_button_config *);
+struct aui_frame *aui_frame_new(struct aui_widget *, struct aui_frame_config *);
+int aui_frame_config(struct aui_widget *, struct aui_frame_config *);
+struct aui_canvas *aui_canvas_new(struct aui_widget *, struct aui_canvas_config *);
+int aui_canvas_config(struct aui_widget *, struct aui_canvas_config *);
struct aui_label *aui_label_new(struct aui_widget *, struct aui_label_config *);
int aui_label_config(struct aui_widget *, struct aui_label_config *);
int aui_place(struct aui_widget *, struct aui_placepar *);
blob - 05d261df8fbc7e48865fdd6f704122cb3d5ad61f
blob + 4c55709846422afb7b0a278df81d9c3cae5d277f
--- aui_run.3
+++ aui_run.3
-.Dd $Mdocdate: June 25 2026$
+.Dd $Mdocdate: July 07 2026$
.Dt AUI_RUN 3
.Os
.Sh NAME
.Fn aui_button_new "struct aui_widget * parent" "struct aui_button_config * config"
.Ft struct aui_label*
.Fn aui_label_new "struct aui_widget * parent" "struct aui_label_config * config"
+.Ft int
+.Fn aui_label_config "struct aui_widget * widget" "struct aui_label_config * config"
.Ft struct aui_frame*
-.Fn aui_frame_new "struct aui_widget * parent"
+.Fn aui_frame_new "struct aui_widget * parent" "struct aui_frame_config * config"
+.Ft int
+.Fn aui_frame_config "struct aui_widget * widget" "struct aui_frame_config * config"
.Ft struct aui_canvas*
.Fn aui_canvas_new "struct aui_widget * parent"
.Ft int
container like frame. Here is an example.
.Pp
.Bd -literal -offset indent
-struct aui_frame *frame = aui_frame_new(AUI_WIDGET(aw));
+struct aui_frame *frame = aui_frame_new(AUI_WIDGET(aw), NULL);
struct aui_button *btn = aui_button_new(AUI_WIDGET(frame));
.Ed
.Pp
blob - 56a859f9038051123999454079c51e46acdeac6c
blob + d3bbeda2bba3d8e751a603f30dc66edd518f168a
--- canvas.c
+++ canvas.c
};
struct aui_canvas*
-aui_canvas_new(struct aui_widget *parent)
+aui_canvas_new(struct aui_widget *parent, struct aui_canvas_config *config)
{
struct aui_canvas *canvas = calloc(1, sizeof(struct aui_canvas));
struct aui_widget *widget = (struct aui_widget *)canvas;
blob - 7cc1676291c032cf1d849d8ae3185b1e481d28b4
blob + a68537cc8a39f45621290298693e63dcd7c0b066
--- frame.c
+++ frame.c
frame_get_min_size,
};
-static struct aui_color colors[] = {
- { 0x77, 0x77, 0x77, 0xff },
+static struct aui_frame_config default_config = {
+ .background = { 0x77, 0x77, 0x77, 0xff },
};
struct aui_frame*
-aui_frame_new(struct aui_widget *parent)
+aui_frame_new(struct aui_widget *parent, struct aui_frame_config *config)
{
struct aui_frame *frame = calloc(1, sizeof(struct aui_frame));
struct aui_widget *widget = (struct aui_widget *)frame;
widget->primitives.list = calloc(widget->primitives.count, sizeof(struct primitive *));
widget->primitives.list[0] = driver->ops->create_rectangle();
- driver->ops->set_rectangle_color(widget->window, widget->primitives.list[0], &colors[0]);
+ aui_frame_config(widget, config);
return frame;
}
+int
+aui_frame_config(struct aui_widget *widget, struct aui_frame_config *config)
+{
+ struct aui_frame *frame = (struct aui_frame *)widget;
+
+ frame->config = (config == NULL) ? default_config : *config;
+ driver->ops->set_rectangle_color(widget->window, widget->primitives.list[0],
+ &frame->config.background);
+
+ return 0;
+}
+
static void
frame_mouse_hover(struct aui_widget *widget, uint16_t x, uint16_t y)
{
blob - 16fc86b3515613a0f806806202e8806d70ea3f2d
blob + f5e91b8a3d37b22614a38538601fcc76e0b3ea3e
--- widget.h
+++ widget.h
struct aui_frame {
struct aui_container con;
+ struct aui_frame_config config;
};
struct aui_canvas_item {