From cf5e5620aa86d6cc7b49f3e22cf1b7199ad8bd98 Mon Sep 17 00:00:00 2001 From: Kp Date: Sat, 20 Dec 2014 04:36:09 +0000 Subject: [PATCH] Deduce input box text length --- common/include/ui.h | 8 ++++++++ common/ui/file.cpp | 2 +- similar/editor/medrobot.cpp | 9 +++------ 3 files changed, 12 insertions(+), 7 deletions(-) diff --git a/common/include/ui.h b/common/include/ui.h index 63a993fc3..95cdb6854 100644 --- a/common/include/ui.h +++ b/common/include/ui.h @@ -340,6 +340,14 @@ extern void ui_listbox_change(UI_DIALOG *dlg, UI_GADGET_LISTBOX *listbox, short extern void ui_draw_inputbox( UI_DIALOG *dlg, UI_GADGET_INPUTBOX * inputbox ); extern UI_GADGET_INPUTBOX * ui_add_gadget_inputbox( UI_DIALOG * dlg, short x, short y, short w, short h, const char * text ); + +template +static inline UI_GADGET_INPUTBOX * ui_add_gadget_inputbox(UI_DIALOG * dlg, short x, short y, const char (&text)[L]) +{ + static_assert(SL <= L, "SL too large"); + return ui_add_gadget_inputbox(dlg, x, y, L, SL, text); +} + window_event_result ui_inputbox_do( UI_DIALOG *dlg, UI_GADGET_INPUTBOX * inputbox, const d_event &event ); extern void ui_inputbox_set_text(UI_GADGET_INPUTBOX *inputbox, const char *text); diff --git a/common/ui/file.cpp b/common/ui/file.cpp index 855f1b464..cd0c2837c 100644 --- a/common/ui/file.cpp +++ b/common/ui/file.cpp @@ -308,7 +308,7 @@ int ui_get_filename( char * filename, const char * filespec, const char * messag dlg = ui_create_dialog( 200, 100, 400, 370, static_cast(DF_DIALOG | DF_MODAL), browser_handler, b.get()); - b->user_file = ui_add_gadget_inputbox( dlg, 60, 30, PATH_MAX, 40, InputText ); + b->user_file = ui_add_gadget_inputbox<40>(dlg, 60, 30, InputText); b->listbox1 = ui_add_gadget_listbox(dlg, 20, 110, 125, 200, b->num_files, b->filename_list); b->listbox2 = ui_add_gadget_listbox(dlg, 210, 110, 100, 200, b->num_dirs, b->directory_list); diff --git a/similar/editor/medrobot.cpp b/similar/editor/medrobot.cpp index 1e6f40063..67154aa7d 100644 --- a/similar/editor/medrobot.cpp +++ b/similar/editor/medrobot.cpp @@ -759,14 +759,11 @@ int do_object_dialog() o->initialMode[obj->movement_type == MT_SPINNING?1:0]->flag = 1; sprintf(Xmessage,"%.2f",f2fl(obj->mtype.spin_rate.x)); + o->xtext = ui_add_gadget_inputbox(MattWindow, 30, 132, Xmessage); sprintf(Ymessage,"%.2f",f2fl(obj->mtype.spin_rate.y)); + o->ytext = ui_add_gadget_inputbox(MattWindow, 30, 162, Ymessage); sprintf(Zmessage,"%.2f",f2fl(obj->mtype.spin_rate.z)); - - o->xtext = ui_add_gadget_inputbox( MattWindow, 30, 132, MATT_LEN, MATT_LEN, Xmessage ); - - o->ytext = ui_add_gadget_inputbox( MattWindow, 30, 162, MATT_LEN, MATT_LEN, Ymessage ); - - o->ztext = ui_add_gadget_inputbox( MattWindow, 30, 192, MATT_LEN, MATT_LEN, Zmessage ); + o->ztext = ui_add_gadget_inputbox(MattWindow, 30, 192, Zmessage); ui_gadget_calc_keys(MattWindow);