commit - ed95fb5f71dab4a4ea1809b6c88d63fedfce91a9
commit + 505b557c39f60c33968f0aa3252ad94ea45a6789
blob - bb3058c078154d7eb7f571756a7c0e392bd9c9ba
blob + 05dea7d5eeebc776750c1c185b4f4f6105f6ed6a
--- aui.h
+++ aui.h
};
struct aui_button_config {
- struct aui_color fg;
+ struct aui_color foreground;
const char *text; /* Not allocated by libaui */
void (*command) (struct aui_button *, void *args);
void *args;
struct aui_label_config {
const char *text;
- struct aui_color fg;
+ struct aui_color foreground;
struct aui_color bg;
};
-struct aui_canvas_item;
-
void aui_run(void);
void aui_destroy(struct aui_widget *);
struct aui_window *aui_window_new(struct aui_window_config *);
struct aui_frame *aui_frame_new(struct aui_widget *);
struct aui_canvas *aui_canvas_new(struct aui_widget *);
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 *);
int aui_pack(struct aui_widget *, struct aui_packpar *);
int aui_grid(struct aui_widget *, struct aui_gridpar *);
int aui_getgridpar(struct aui_widget *, struct aui_gridpar *);
int aui_getpackpar(struct aui_widget *, struct aui_packpar *);
+#define AUI_CANVAS_RECTANGLE 0
+#define AUI_CANVAS_ARC 1
+#define AUI_CANVAS_IMAGE 2
+#define AUI_CANVAS_BITMAP 3
+#define AUI_CANVAS_OVAL 4
+#define AUI_CANVAS_POLYGON 5
+#define AUI_CANVAS_LINE 6
+#define AUI_CANVAS_TEXT 7
+#define AUI_CANVAS_WINDOW 8
+
+struct aui_canvas_item;
+
struct aui_canvas_line {
int x1, y1;
int x2, y2;
};
};
-#define AUI_CANVAS_RECTANGLE 0
-#define AUI_CANVAS_ARC 1
-#define AUI_CANVAS_IMAGE 2
-#define AUI_CANVAS_BITMAP 3
-#define AUI_CANVAS_OVAL 4
-#define AUI_CANVAS_POLYGON 5
-#define AUI_CANVAS_LINE 6
-#define AUI_CANVAS_TEXT 7
-#define AUI_CANVAS_WINDOW 8
struct aui_canvas_item *aui_canvas_create(struct aui_canvas *, unsigned char,
struct aui_canvas_item_config *);
void aui_canvas_delete(struct aui_canvas *, struct aui_canvas_item *);
blob - d1b87b2834c3c894c2546c1d69356c0ecd5abb1f
blob + 8992755a9f908bfc20928dd3142f9154d9990df6
--- button.c
+++ button.c
static struct aui_button_config default_config = {
.text = NULL,
- .fg = { 0xff, 0, 0, 0xff }
+ .foreground = { 0xff, 0, 0, 0xff }
};
struct aui_button*
driver->ops->set_rectangle_color(widget->window, widget->primitives.list[0], &color[0]);
driver->ops->set_rectangle_color(widget->window, widget->primitives.list[1], &color[1]);
driver->ops->set_text(widget->primitives.list[2], button->config.text, 0, 0);
- driver->ops->set_text_color(widget->primitives.list[2], &button->config.fg);
+ driver->ops->set_text_color(widget->primitives.list[2], &button->config.foreground);
return button;
}
button_set_geometry(struct aui_widget *widget, struct aui_geometry *geom)
{
struct aui_button *button = (struct aui_button *)widget;
- struct aui_geometry fgeom = { 0 };
+ struct aui_geometry foregroundeom = { 0 };
struct aui_geometry tgeom = driver->ops->get_text_geometry(widget->primitives.list[2]);
int tx = geom->x + geom->width / 2 - tgeom.width / 2;
int ty = geom->y + geom->height / 2 + tgeom.height / 2;
- fgeom.x = geom->x + 1;
- fgeom.y = geom->y + 1;
- fgeom.width = geom->width - 2;
- fgeom.height = geom->height - 2;
+ foregroundeom.x = geom->x + 1;
+ foregroundeom.y = geom->y + 1;
+ foregroundeom.width = geom->width - 2;
+ foregroundeom.height = geom->height - 2;
memcpy(&widget->geom, geom, sizeof(struct aui_geometry));
driver->ops->set_rectangle_geometry(widget->window, widget->primitives.list[0], geom);
- driver->ops->set_rectangle_geometry(widget->window, widget->primitives.list[1], &fgeom);
+ driver->ops->set_rectangle_geometry(widget->window, widget->primitives.list[1], &foregroundeom);
driver->ops->set_text(widget->primitives.list[2], button->config.text, tx, ty);
}
blob - 5d6c1758815a2dbf8c816da02ec80bb0a9566460
blob + 67e29c8288c0653462bfe0dd6cc2f9ecfd0659b0
--- label.c
+++ label.c
struct aui_label_config default_config = {
.text = "Hello AUI",
- .fg = { 0, 0, 0, 255 },
+ .foreground = { 0, 0, 0, 255 },
};
struct aui_label*
widget_init(widget, WIDGET_TYPE_LABEL, &label_ops);
widget_add(parent, widget);
- label->config = (config == NULL) ? default_config : *config;
-
widget->primitives.count = 1;
widget->primitives.list = calloc(widget->primitives.count, sizeof(struct primitive*));
widget->primitives.list[0] = driver->ops->create_text();
- driver->ops->set_text(widget->primitives.list[0], label->config.text, 0, 0);
- driver->ops->set_text_color(widget->primitives.list[0], &config->fg);
+ aui_label_config(widget, config);
return label;
}
+int
+aui_label_config(struct aui_widget *widget, struct aui_label_config *config)
+{
+ struct aui_label *label = (struct aui_label *)widget;
+ struct aui_geometry geom = widget->geom;
+
+ label->config = (config == NULL) ? default_config : *config;
+
+ driver->ops->set_text(widget->primitives.list[0], label->config.text, 0, 0);
+ driver->ops->set_text_color(widget->primitives.list[0], &label->config.foreground);
+ label_set_geometry(widget, &geom);
+ return 0;
+}
+
static void
label_mouse_hover(struct aui_widget *widget, uint16_t dx, uint16_t dy)
{