So I have made this thing that allows you to get the function arguments in string form its hard to explain.
I dont want you to ask me why I did it I just want you to tell me if it is efficient please
local ModuleTable = {
NumberOfCreateWindow = 1,
NumberOfSection = 1,
NumberOfLabel = 1,
NumberOfToggle = 1,
NumberOfSlider = 1,
NumberOfDropdown = 1,
NumberOfButton = 1,
NumberOfBind = 1,
NumberOfBox = 1,
NumberOfSearchBox = 1
}
ModuleTable.CreateSection = function(CreateWindowName, Name)
local SectionString = [[
local Section%s = %s:Section("%s")
]]
SectionString = string.format(SectionString, ModuleTable.NumberOfSection, CreateWindowName, Name)
ModuleTable.NumberOfSection = ModuleTable.NumberOfSection + 1
return SectionString
end
ModuleTable.CreateLabel = function(CreateWindowName, Name)
local LabelString = [[
local Label%s = %s:Label("%s")
]]
LabelString = string.format(LabelString, ModuleTable.NumberOfLabel, CreateWindowName, Name)
ModuleTable.NumberOfLabel = ModuleTable.NumberOfLabel + 1
return LabelString
end
ModuleTable.CreateToggle = function(CreateWindowName, Name, Flag, Location, Callback)
local ToggleString = [[
local Toggle%s = %s:Toggle("%s", {flag = "%s", location = %s}, %s
]]
ToggleString = string.format(ToggleString, ModuleTable.NumberOfToggle, CreateWindowName, Name, Flag, Location, Callback)
ModuleTable.NumberOfToggle = ModuleTable.NumberOfToggle + 1
return ToggleString
end
ModuleTable.CreateSlider = function(CreateWindowName, Name, Min, Max, Flag, Callback)
local SliderString = [[
local Slider%s = %s:Slider("%s", {
min = %s;
max = %s;
flag = "%s"
}, %s
]]
SliderString = string.format(SliderString, ModuleTable.NumberOfSlider, CreateWindowName, Name, Min, Max, Flag, Callback)
ModuleTable.NumberOfSlider = ModuleTable.NumberOfSlider + 1
return SliderString
end
ModuleTable.CreateDropdown = function(CreateWindowName, Name, Location, Flag, List, Callback)
local DropdownString = [[
local Dropdown%s = %s:Dropdown("%s", {
location = %s;
flag = "%s";
list = %s
}, %s
]]
DropdownString = string.format(DropdownString, ModuleTable.NumberOfDropdown, CreateWindowName, Name, Location, Flag, List, Callback)
ModuleTable.NumberOfDropdown = ModuleTable.NumberOfDropdown + 1
return DropdownString
end
ModuleTable.CreateButton = function(CreateWindowName, Name, Callback)
local ButtonString = [[
local Button%s = %s:Button("%s", %s
]]
ButtonString = string.format(ButtonString, ModuleTable.NumberOfButton, CreateWindowName, Name, Callback)
ModuleTable.NumberOfButton = ModuleTable.NumberOfButton + 1
return ButtonString
end
ModuleTable.CreateBind = function(CreateWindowName, Name, Flag, KBOnly, Default, Callback)
local BindString = [[
local Bind%s = %s:Bind("%s", {
flag = "%s";
kbonly = %s;
default = %s;
}, %s
]]
BindString = string.format(BindString, ModuleTable.NumberOfBind, CreateWindowName, Name, Flag, KBOnly, Default, Callback)
ModuleTable.NumberOfBind = ModuleTable.NumberOfBind + 1
return BindString
end
ModuleTable.CreateBox = function(CreateWindowName, Name, Flag, Type, Callback)
local BoxString = [[
local Box%s = %s:Box("%s", {
flag = "%s";
type = "%s";
}, %s
]]
BoxString = string.format(BoxString, ModuleTable.NumberOfBox, CreateWindowName, Name, Flag, Type, Callback)
ModuleTable.NumberOfBox = ModuleTable.NumberOfBox + 1
return BoxString
end
ModuleTable.CreateSearchBox = function(CreateWindowName, Name, Location, Flag, List, Callback)
local SearchBoxString = [[
local SearchBox%s = %s:SearchBox("%s", {
location = %s;
flag = "%s";
list = %s
}, %s
]]
SearchBoxString = string.format(SearchBoxString, ModuleTable.NumberOfSearchBox, CreateWindowName, Name, Location, Flag, List, Callback)
ModuleTable.NumberOfSearchBox = ModuleTable.NumberOfSearchBox + 1
return SearchBoxString
end