summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJonathan Bradley <jcb@pikum.xyz>2025-09-22 11:41:17 -0400
committerJonathan Bradley <jcb@pikum.xyz>2025-09-22 11:41:17 -0400
commit2144976223779e5cf97aa0118f251f4d2632dc58 (patch)
treefe2358cb3f83c79fa6c3e0f87fd2ec4b048cee85
parentaaf6c699b86450a5fdd03f329724b275dcb27b34 (diff)
pke: static ui button text position
-rw-r--r--src/static-ui.cpp28
1 files changed, 22 insertions, 6 deletions
diff --git a/src/static-ui.cpp b/src/static-ui.cpp
index 7145422..dc5ddc9 100644
--- a/src/static-ui.cpp
+++ b/src/static-ui.cpp
@@ -347,15 +347,31 @@ void pke_ui_calc_px(pk_arr_t<pke_ui_box_instance_buffer_item> &buffer, pk_arr_t<
box->internal.px_size.x = px_size.x;
box->internal.px_size.y = px_size.y;
- if (box->type_data != nullptr) {
- // type-specific changes
- if (box->type == PKE_UI_BOX_TYPE_TEXT) {
- FontRender *fr = FontType_GetFontRender(box->type_data->text.font_render_handle);
- FontRenderSettings frs = fr->settings;
+ // type-specific changes
+ FontRenderSettings frs;
+ switch (box->type) {
+ case PKE_UI_BOX_TYPE_TEXT:
+ frs = FontType_GetFontRender(box->type_data->text.font_render_handle)->settings;
frs.surface_area_pos = box->internal.px_corner;
frs.surface_area_size = box->internal.px_size;
FontType_UpdateStringRender(box->type_data->text.font_render_handle, &frs);
- }
+ break;
+ case PKE_UI_BOX_TYPE_BUTTON_TEXT:
+ frs = FontType_GetFontRender(box->type_data->button_text.font_render_handle)->settings;
+ frs.surface_area_pos = box->internal.px_corner;
+ frs.surface_area_size = box->internal.px_size;
+ FontType_UpdateStringRender(box->type_data->button_text.font_render_handle, &frs);
+ break;
+ case PKE_UI_BOX_TYPE_BUTTON_IMAGE:
+ break;
+ case PKE_UI_BOX_TYPE_INPUT_TEXT:
+ // TODO
+ break;
+ case PKE_UI_BOX_TYPE_INPUT_MULTILINE_TEXT:
+ // TODO
+ break;
+ default:
+ break;
}
pke_ui_update_state(*box);