summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJonathan Bradley <jcb@pikum.xyz>2025-09-23 09:39:59 -0400
committerJonathan Bradley <jcb@pikum.xyz>2025-09-23 09:39:59 -0400
commit3d7fbad4f59a1c5bd516c2482e4e368fa923b99b (patch)
tree9cb695dadc09ebf239a64feddd6b76cfc2d75c48
parented6b1a537939b37a7a66bfa6b10eb594a4c597e6 (diff)
pke: editor: edit text for text buttons
-rw-r--r--editor/editor.cpp31
1 files changed, 30 insertions, 1 deletions
diff --git a/editor/editor.cpp b/editor/editor.cpp
index 2a4860a..005892e 100644
--- a/editor/editor.cpp
+++ b/editor/editor.cpp
@@ -1414,7 +1414,6 @@ void RecordImGuiUIEdit() {
char *text_buffer = pk_new_arr<char>(buffer_len, pkeSettings.mem_bkt.game_transient);
size_t len = fr.text.length;
sprintf(text_buffer, "%s", fr.text.val);
- // nocheckin test this
if (ImGui::InputText("Text", text_buffer, buffer_len-1, text_flags)) {
// TODO specific bucket
len = strlen(text_buffer);
@@ -1497,6 +1496,36 @@ void RecordImGuiUIEdit() {
changed |= changed_sub;
}
+ if (selected_ui_box->type == PKE_UI_BOX_TYPE_BUTTON_TEXT) {
+ assert(selected_ui_box->type_data != NULL);
+ ImGui::Text("Type: Button Text");
+ ImGui::Separator();
+ FontRender fr = *FontType_GetFontRender(selected_ui_box->type_data->button_text.font_render_handle);
+ const int buffer_len = 1024;
+ char *text_buffer = pk_new_arr<char>(buffer_len, pkeSettings.mem_bkt.game_transient);
+ size_t len = fr.text.length;
+ sprintf(text_buffer, "%s", fr.text.val);
+ if (ImGui::InputText("Text", text_buffer, buffer_len-1, text_flags)) {
+ // TODO specific bucket
+ len = strlen(text_buffer);
+ char *s = pk_new_arr<char>(len + 1);
+ sprintf(s, "%s", text_buffer);
+ pk_cstr cstr{};
+ cstr.reserved = len+1;
+ cstr.length = len;
+ cstr.val = s;
+ FontType_UpdateStringRenderText(fr.fr_handle, std::move(cstr));
+ changed = true;
+ }
+ ImGui::SameLine();
+ ImGui::Text("(%.4zu/%4i)", len, buffer_len);
+ changed_sub = ImGui::ColorEdit4("color_foreground(txt)", &fr.settings.color_foreground[0]) || changed_sub;
+ changed_sub = ImGui::ColorEdit4("color_background(txt)", &fr.settings.color_background[0]) || changed_sub;
+ if (changed_sub) {
+ FontType_UpdateStringRender(fr.fr_handle, &fr.settings);
+ }
+ changed |= changed_sub;
+ }
if (changed) {
pke_ui_force_recalc();