Deduce input box text length

This commit is contained in:
Kp 2014-12-20 04:36:09 +00:00
parent 80a21ab7d6
commit cf5e5620aa
3 changed files with 12 additions and 7 deletions

View file

@ -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 <std::size_t SL, std::size_t L>
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);

View file

@ -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<dialog_flags>(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);

View file

@ -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<MATT_LEN>(MattWindow, 30, 132, Xmessage);
sprintf(Ymessage,"%.2f",f2fl(obj->mtype.spin_rate.y));
o->ytext = ui_add_gadget_inputbox<MATT_LEN>(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<MATT_LEN>(MattWindow, 30, 192, Zmessage);
ui_gadget_calc_keys(MattWindow);