From 3ae0ff5edfb362ab73c17f8db22200d6c4dd07e5 Mon Sep 17 00:00:00 2001 From: Yves Rizoud Date: Fri, 24 Aug 2012 13:46:42 +0000 Subject: [PATCH] Lua inputbox: support for labels. Labels are defined with min=max=0 git-svn-id: svn://pulkomandy.tk/GrafX2/trunk@1992 416bcca6-2ee7-4201-b75f-2eb2f807beb1 --- src/factory.c | 26 +++++++++++++++++++++----- 1 file changed, 21 insertions(+), 5 deletions(-) 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