diff --git a/src/factory.c b/src/factory.c index c972ab33..e7f30ffc 100644 --- a/src/factory.c +++ b/src/factory.c @@ -840,6 +840,7 @@ int L_InputBox(lua_State* L) CONTROL_INPUT_MINUS = 0x0400, CONTROL_INPUT_PLUS = 0x0500, CONTROL_CHECKBOX = 0x0600, + CONTROL_LABEL = 0x0700, CONTROL_VALUE_MASK = 0x00FF, CONTROL_TYPE_MASK = 0xFF00 }; @@ -880,10 +881,11 @@ int L_InputBox(lua_State* L) for (setting=0; setting max_label_length) - max_label_length = strlen(label[setting]); + int label_length; + LUA_ARG_STRING(setting*args_per_setting+2, "inputbox", label[setting]); + label_length=strlen(label[setting]); + LUA_ARG_NUMBER(setting*args_per_setting+3, "inputbox", current_value[setting], -DBL_MAX, DBL_MAX); LUA_ARG_NUMBER(setting*args_per_setting+4, "inputbox", min_value[setting], -DBL_MAX, DBL_MAX); /*if (min_value[setting] < -999999999999999.0) @@ -905,6 +907,11 @@ int L_InputBox(lua_State* L) current_value[setting] = min_value[setting]; else if (current_value[setting] > max_value[setting]) current_value[setting] = max_value[setting]; + + if (min_value[setting]==0 && max_value[setting]==0) + label_length-=12; + if (label_length > (int)max_label_length) + max_label_length = label_length; } // Max is 25 to keep window under 320 pixel wide if (max_label_length>25) @@ -927,13 +934,20 @@ int L_InputBox(lua_State* L) for (setting=0; setting