----------------------------------------------------------------------------- -- Name: All <0> Variables -- Author: Ya-Nvr-No -- Modified by: -- Created: 07/27/2014 -- Copyright: (c) 2014 Ya-Nvr-No. All rights reserved. -- Licence: BSD license ----------------------------------------------------------------------------- --global var to hold the frame inst = mc.mcGetInstance(); mainframe = nil gtimer = nil panel = nil m_iniName = "Varibles" varnum1 = {};varvalue1 = {};ca1 = {}; varnum2 = {};varvalue2 = {};ca2 = {}; varnumA = {};varvalueA = {}; rc, buff = mc.mcCntlGetCwd(0) function fillcombobox1(numval,varnumA,varvalueA) local varnum = 0; for varnum = 1, numval, 1 do if (varnum <10) then ca1[varnum] = tostring(varnumA[varnum]) ..' '.. tostring(varvalueA[varnum]) else ca1[varnum] = tostring(varnumA[varnum]) ..' '.. tostring(varvalueA[varnum]) end end m_variable1 = AddSelectControl(tostring(numval),{ ca1[1],ca1[2],ca1[3],ca1[4],ca1[5],ca1[6],ca1[7],ca1[8],ca1[9],ca1[10], ca1[11],ca1[12],ca1[13],ca1[14],ca1[15],ca1[16],ca1[17],ca1[18],ca1[19],ca1[20], ca1[21],ca1[22],ca1[23],ca1[24],ca1[25],ca1[26],ca1[27],ca1[28],ca1[29],ca1[30], ca1[31],ca1[32],ca1[33],ca1[34],ca1[35],ca1[36],ca1[37],ca1[38],ca1[39],ca1[40], ca1[41],ca1[42],ca1[43],ca1[44],ca1[45],ca1[46],ca1[47],ca1[48],ca1[49],ca1[50], ca1[51],ca1[52],ca1[53],ca1[54],ca1[55],ca1[56],ca1[57],ca1[58],ca1[59],ca1[60], ca1[61],ca1[62],ca1[63],ca1[64],ca1[65],ca1[66],ca1[67],ca1[68],ca1[69],ca1[70], ca1[71],ca1[72],ca1[73],ca1[74],ca1[75],ca1[76],ca1[77],ca1[78],ca1[79],ca1[80], ca1[81],ca1[82],ca1[83],ca1[84],ca1[85],ca1[86],ca1[87],ca1[88],ca1[89],ca1[90], ca1[91],ca1[92],ca1[93],ca1[94],ca1[95],ca1[96],ca1[97],ca1[98],ca1[99],ca1[100]}, nil) end function fillcombobox2(numval,varnumA,varvalueA) if numval ~= 0 then local varnum = 0; for varnum = 1, numval, 1 do ca2[varnum] = tostring(varnumA[varnum]) ..' '.. tostring(varvalueA[varnum]) end m_variable2 = AddSelectControl(tostring(numval),{ ca2[1],ca2[2],ca2[3],ca2[4],ca2[5],ca2[6],ca2[7],ca2[8],ca2[9],ca2[10], ca2[11],ca2[12],ca2[13],ca2[14],ca2[15],ca2[16],ca2[17],ca2[18],ca2[19],ca2[20], ca2[21],ca2[22],ca2[23],ca2[24],ca2[25],ca2[26],ca2[27],ca2[28],ca2[29],ca2[30], ca2[31],ca2[32],ca2[33],ca2[34],ca2[35],ca2[36],ca2[37],ca2[38],ca2[39],ca2[40], ca2[41],ca2[42],ca2[43],ca2[44],ca2[45],ca2[46],ca2[47],ca2[48],ca2[49],ca2[50], ca2[51],ca2[52],ca2[53],ca2[54],ca2[55],ca2[56],ca2[57],ca2[58],ca2[59],ca2[60], ca2[61],ca2[62],ca2[63],ca2[64],ca2[65],ca2[66],ca2[67],ca2[68],ca2[69],ca2[70], ca2[71],ca2[72],ca2[73],ca2[74],ca2[75],ca2[76],ca2[77],ca2[78],ca2[79],ca2[80], ca2[81],ca2[82],ca2[83],ca2[84],ca2[85],ca2[86],ca2[87],ca2[88],ca2[89],ca2[90], ca2[91],ca2[92],ca2[93],ca2[94],ca2[95],ca2[96],ca2[97],ca2[98],ca2[99],ca2[100], ca2[101],ca2[102],ca2[103],ca2[104],ca2[105],ca2[106],ca2[107],ca2[108],ca2[109],ca2[110], ca2[111],ca2[112],ca2[113],ca2[114],ca2[115],ca2[116],ca2[117],ca2[118],ca2[119],ca2[120], ca2[121],ca2[122],ca2[123],ca2[124],ca2[125],ca2[126],ca2[127],ca2[128],ca2[129],ca2[130], ca2[131],ca2[132],ca2[133],ca2[134],ca2[135],ca2[136],ca2[137],ca2[138],ca2[139],ca2[140], ca2[141],ca2[142],ca2[143],ca2[144],ca2[145],ca2[146],ca2[147],ca2[148],ca2[149],ca2[150], ca2[151],ca2[152],ca2[153],ca2[154],ca2[155],ca2[156],ca2[157],ca2[158],ca2[159],ca2[160], ca2[161],ca2[162],ca2[163],ca2[164],ca2[165],ca2[166],ca2[167],ca2[168],ca2[169],ca2[170], ca2[171],ca2[172],ca2[173],ca2[174],ca2[175],ca2[176],ca2[177],ca2[178],ca2[179],ca2[180], ca2[181],ca2[182],ca2[183],ca2[184],ca2[185],ca2[186],ca2[187],ca2[188],ca2[189],ca2[190], ca2[191],ca2[192],ca2[193],ca2[194],ca2[195],ca2[196],ca2[197],ca2[198],ca2[199],ca2[200]}, nil) end end function Setupinputs() local inst = mc.mcGetInstance(); --Add all the inputs local numval = 0 local varnum =0 local varvalue = 0 local startval = 10000 local endval = 30000 local varnum2 = 0 for varnum = 1, startval do if (numval <= 100) then varvalue = (mc.mcCntlGetPoundVar(inst, varnum)); if (varvalue < -1000000 or varvalue > 1000000) then varvalue = 0; elseif (varvalue < 0 or varvalue > 0) then numval = numval + 1; varnum1[numval] = varnum; varvalue1[numval] = varvalue; end varnum2 = varnum; end end startval = (varnum2 + 1); fillcombobox1(numval,varnum1,varvalue1); --box1 numval=0; if (startval < endval) then for varnum = startval, endval, 1 do if (numval<=199) then varvalue = mc.mcCntlGetPoundVar(inst, varnum); if (varvalue < -1000000 or varvalue > 1000000) then varvalue = 0; elseif (varvalue < 0 or varvalue > 0) then numval = numval + 1; varnum1[numval] = varnum; varvalue1[numval] = varvalue; end varnum2 = varnum; end end startval = (varnum2 + 1) fillcombobox2(numval,varnum1,varvalue1); --box2 numval = 0; end if (startval < endval) then for varnum = startval, endval, 1 do if (numval<=199) then varvalue = mc.mcCntlGetPoundVar(inst, varnum); if (varvalue < -1000000 or varvalue > 1000000) then varvalue = 0; elseif (varvalue < 0 or varvalue > 0) then numval = numval + 1; varnum1[numval] = varnum; varvalue1[numval] = varvalue; end varnum2 = varnum; end end startval = (varnum2 + 1) fillcombobox2(numval,varnum1,varvalue1); --box3 numval=0; end if (startval < endval) then for varnum = startval, endval, 1 do if (numval<=199) then varvalue = mc.mcCntlGetPoundVar(inst, varnum); if (varvalue < 0 or varvalue > 0) then varvalue = 0; elseif (varvalue < 0 or varvalue > 0) then numval = numval + 1; varnum1[numval] = varnum; varvalue1[numval] = varvalue; end varnum2 = varnum; end end startval = (varnum2 + 1) fillcombobox2(numval,varnum1,varvalue1); --box4 numval=0; end if (startval < endval) then for varnum = startval, endval, 1 do if (numval<=199) then varvalue = mc.mcCntlGetPoundVar(inst, varnum); if (varvalue < -1000000 or varvalue > 1000000) then varvalue = 0; elseif (varvalue < 0 or varvalue > 0) then numval = numval + 1; varnum1[numval] = varnum; varvalue1[numval] = varvalue; end varnum2 = varnum; end end startval = (varnum2 + 1) fillcombobox2(numval,varnum1,varvalue1); --box5 numval=0; end if (startval < endval) then for varnum = startval, endval, 1 do if (numval<=199) then varvalue = mc.mcCntlGetPoundVar(inst, varnum); if (varvalue < -1000000 or varvalue > 1000000) then varvalue = 0; elseif (varvalue < 0 or varvalue > 0) then numval = numval + 1; varnum1[numval] = varnum; varvalue1[numval] = varvalue; end varnum2 = varnum; end end startval = (varnum2 + 1) fillcombobox2(numval,varnum1,varvalue1); --box6 numval=0; end if (startval < endval) then for varnum = startval, endval, 1 do if (numval<=199) then varvalue = mc.mcCntlGetPoundVar(inst, varnum); if (varvalue < -1000000 or varvalue > 1000000) then varvalue = 0; elseif (varvalue < 0 or varvalue > 0) then numval = numval + 1; varnum1[numval] = varnum; varvalue1[numval] = varvalue; end varnum2 = varnum; end end startval = (varnum2 + 1) fillcombobox2(numval,varnum1,varvalue1); --box7 numval=0; end if (startval < endval) then for varnum = startval, endval, 1 do if (numval<=199) then varvalue = mc.mcCntlGetPoundVar(inst, varnum); if (varvalue < -1000000 or varvalue > 1000000) then varvalue = 0; elseif (varvalue < 0 or varvalue > 0) then numval = numval + 1; varnum1[numval] = varnum; varvalue1[numval] = varvalue; end varnum2 = varnum; end end startval = (varnum2 + 1) fillcombobox2(numval,varnum1,varvalue1); --box8 numval=0; end if (startval < endval) then for varnum = startval, endval, 1 do if (numval<=199) then varvalue = mc.mcCntlGetPoundVar(inst, varnum); if (varvalue < -1000000 or varvalue > 1000000) then varvalue = 0; elseif (varvalue < 0 or varvalue > 0) then numval = numval + 1; varnum1[numval] = varnum; varvalue1[numval] = varvalue; end varnum2 = varnum; end end startval = (varnum2 + 1) fillcombobox2(numval,varnum1,varvalue1); --box9 numval=0; end if (startval < endval) then for varnum = startval, endval, 1 do if (numval<=199) then varvalue = mc.mcCntlGetPoundVar(inst, varnum); if (varvalue < -1000000 or varvalue > 1000000) then varvalue = 0; elseif (varvalue < 0 or varvalue > 0) then numval = numval + 1; varnum1[numval] = varnum; varvalue1[numval] = varvalue; end varnum2 = varnum; end end startval = (varnum2 + 1) fillcombobox2(numval,varnum1,varvalue1); --box10 numval=0; end if (startval < endval) then for varnum = startval, endval, 1 do if (numval<=199) then varvalue = mc.mcCntlGetPoundVar(inst, varnum); if (varvalue < -1000000 or varvalue > 1000000) then varvalue = 0; elseif (varvalue < 0 or varvalue > 0) then numval = numval + 1; varnum1[numval] = varnum; varvalue1[numval] = varvalue; end varnum2 = varnum; end end startval = (varnum2 + 1) fillcombobox2(numval,varnum1,varvalue1); --box11 numval=0; end if (startval < endval) then for varnum = startval, endval, 1 do if (numval<=199) then varvalue = mc.mcCntlGetPoundVar(inst, varnum); if (varvalue < -1000000 or varvalue > 1000000) then varvalue = 0; elseif (varvalue < 0 or varvalue > 0) then numval = numval + 1; varnum1[numval] = varnum; varvalue1[numval] = varvalue; end varnum2 = varnum; end end startval = (varnum2 + 1) fillcombobox2(numval,varnum1,varvalue1); --box12 numval=0; end if (startval < endval) then for varnum = startval, endval, 1 do if (numval<=199) then varvalue = mc.mcCntlGetPoundVar(inst, varnum); if (varvalue < -1000000 or varvalue > 1000000) then varvalue = 0; elseif (varvalue < 0 or varvalue > 0) then numval = numval + 1; varnum1[numval] = varnum; varvalue1[numval] = varvalue; end varnum2 = varnum; end end startval = (varnum2 + 1) fillcombobox2(numval,varnum1,varvalue1); --box13 numval=0; end if (startval < endval) then for varnum = startval, endval, 1 do if (numval<=199) then varvalue = mc.mcCntlGetPoundVar(inst, varnum); if (varvalue < -1000000 or varvalue > 1000000) then varvalue = 0; elseif (varvalue < 0 or varvalue > 0) then numval = numval + 1; varnum1[numval] = varnum; varvalue1[numval] = varvalue; end varnum2 = varnum; end end startval = (varnum2 + 1) fillcombobox2(numval,varnum1,varvalue1); --box14 numval=0; end if (startval < endval) then for varnum = startval, endval, 1 do if (numval<=199) then varvalue = mc.mcCntlGetPoundVar(inst, varnum); if (varvalue < -1000000 or varvalue > 1000000) then varvalue = 0; elseif (varvalue < 0 or varvalue > 0) then numval = numval + 1; varnum1[numval] = varnum; varvalue1[numval] = varvalue; end varnum2 = varnum; end end startval = (varnum2 + 1) fillcombobox2(numval,varnum1,varvalue1); --box15 numval=0; end if (startval < endval) then for varnum = startval, endval, 1 do if (numval<=199) then varvalue = mc.mcCntlGetPoundVar(inst, varnum); if (varvalue < -1000000 or varvalue > 1000000) then varvalue = 0; elseif (varvalue < 0 or varvalue > 0) then numval = numval + 1; varnum1[numval] = varnum; varvalue1[numval] = varvalue; end varnum2 = varnum; end end startval = (varnum2 + 1) fillcombobox2(numval,varnum1,varvalue1); --box16 numval=0; end if (startval < endval) then for varnum = startval, endval, 1 do if (numval<=199) then varvalue = mc.mcCntlGetPoundVar(inst, varnum); if (varvalue < -1000000 or varvalue > 1000000) then varvalue = 0; elseif (varvalue < 0 or varvalue > 0) then numval = numval + 1; varnum1[numval] = varnum; varvalue1[numval] = varvalue; end varnum2 = varnum; end end startval = (varnum2 + 1) fillcombobox2(numval,varnum1,varvalue1); --box17 numval=0; end if (startval < endval) then for varnum = startval, endval, 1 do if (numval<=199) then varvalue = mc.mcCntlGetPoundVar(inst, varnum); if (varvalue < -1000000 or varvalue > 1000000) then varvalue = 0; elseif (varvalue < 0 or varvalue > 0) then numval = numval + 1; varnum1[numval] = varnum; varvalue1[numval] = varvalue; end varnum2 = varnum; end end startval = (varnum2 + 1) fillcombobox2(numval,varnum1,varvalue1); --box18 numval=0; end if (startval < endval) then for varnum = startval, endval, 1 do if (numval<=199) then varvalue = mc.mcCntlGetPoundVar(inst, varnum); if (varvalue < -1000000 or varvalue > 1000000) then varvalue = 0; elseif (varvalue < 0 or varvalue > 0) then numval = numval + 1; varnum1[numval] = varnum; varvalue1[numval] = varvalue; end varnum2 = varnum; end end startval = (varnum2 + 1) fillcombobox2(numval,varnum1,varvalue1); --box19 numval=0; end if (startval < endval) then for varnum = startval, endval, 1 do if (numval<=199) then varvalue = mc.mcCntlGetPoundVar(inst, varnum); if (varvalue < -1000000 or varvalue > 1000000) then varvalue = 0; elseif (varvalue < 0 or varvalue > 0) then numval = numval + 1; varnum1[numval] = varnum; varvalue1[numval] = varvalue; end varnum2 = varnum; end end startval = (varnum2 + 1) fillcombobox2(numval,varnum1,varvalue1); --box20 numval=0; end if (startval < endval) then for varnum = startval, endval, 1 do if (numval<=199) then varvalue = mc.mcCntlGetPoundVar(inst, varnum); if (varvalue < -1000000 or varvalue > 1000000) then varvalue = 0; elseif (varvalue < 0 or varvalue > 0) then numval = numval + 1; varnum1[numval] = varnum; varvalue1[numval] = varvalue; end varnum2 = varnum; end end startval = (varnum2 + 1) fillcombobox2(numval,varnum1,varvalue1); --box21 numval=0; end if (startval < endval) then for varnum = startval, endval, 1 do if (numval<=199) then varvalue = mc.mcCntlGetPoundVar(inst, varnum); if (varvalue < -1000000 or varvalue > 1000000) then varvalue = 0; elseif (varvalue < 0 or varvalue > 0) then numval = numval + 1; varnum1[numval] = varnum; varvalue1[numval] = varvalue; end varnum2 = varnum; end end startval = (varnum2 + 1) fillcombobox2(numval,varnum1,varvalue1); --box22 numval=0; end if (startval < endval) then for varnum = startval, endval, 1 do if (numval<=199) then varvalue = mc.mcCntlGetPoundVar(inst, varnum); if (varvalue < -1000000 or varvalue > 1000000) then varvalue = 0; elseif (varvalue < 0 or varvalue > 0) then numval = numval + 1; varnum1[numval] = varnum; varvalue1[numval] = varvalue; end varnum2 = varnum; end end startval = (varnum2 + 1) fillcombobox2(numval,varnum1,varvalue1); --box23 numval=0; end if (startval < endval) then for varnum = startval, endval, 1 do if (numval<=199) then varvalue = mc.mcCntlGetPoundVar(inst, varnum); if (varvalue < -1000000 or varvalue > 1000000) then varvalue = 0; elseif (varvalue < 0 or varvalue > 0) then numval = numval + 1; varnum1[numval] = varnum; varvalue1[numval] = varvalue; end varnum2 = varnum; end end startval = (varnum2 + 1) fillcombobox2(numval,varnum1,varvalue1); --box24 numval=0; end if (startval < endval) then for varnum = startval, endval, 1 do if (numval<=199) then varvalue = mc.mcCntlGetPoundVar(inst, varnum); if (varvalue < -1000000 or varvalue > 1000000) then varvalue = 0; elseif (varvalue < 0 or varvalue > 0) then numval = numval + 1; varnum1[numval] = varnum; varvalue1[numval] = varvalue; end varnum2 = varnum; end end startval = (varnum2 + 1) fillcombobox2(numval,varnum1,varvalue1); --box25 numval=0; end end function OnClose() gtimer:Stop(); end function main() local inst = mc.mcGetInstance(); buff = mc.mcCntlGetCwd(inst, 'value', 0); if(mcLuaPanelParent == nil)then -- create the wxFrame window mainframe = wx.wxFrame( wx.NULL, -- no parent wx.wxID_ANY, -- whatever for wxWindow ID "Mach4 Variables", -- frame caption wx.wxDefaultPosition, -- place the frame in default position wx.wxDefaultSize, -- default frame size wx.wxDEFAULT_FRAME_STYLE ) -- use default frame styles -- create a panel in the frame panel = wx.wxPanel(mainframe, wx.wxID_ANY) -- create a simple file menu with an exit local fileMenu = wx.wxMenu() fileMenu:Append(wx.wxID_EXIT, "E&xit", "Quit the wizard") -- create a simple help menu local helpMenu = wx.wxMenu() helpMenu:Append(wx.wxID_ABOUT, "&About", "About Variables") -- create a menu bar and append the file and help menus local menuBar = wx.wxMenuBar() menuBar:Append(fileMenu, "&File") menuBar:Append(helpMenu, "&Help") -- attach the menu bar into the frame mainframe:SetMenuBar(menuBar) mainframe:Connect(wx.wxID_EXIT, wx.wxEVT_COMMAND_MENU_SELECTED, function (event) OnClose(); mainframe:Close(true) end ) -- connect the selection event of the about menu item mainframe:Connect(wx.wxID_ABOUT, wx.wxEVT_COMMAND_MENU_SELECTED, function (event) wx.wxMessageBox("Variables wizard \n\nAuthor: Ya-Nvr-No\nDate: 7/27/14\nThis wizard is to be used to view all Variables <0>", "About this Variables wizzard", wx.wxOK + wx.wxICON_INFORMATION, mainframe) end ) gtimer = wx.wxTimer(mainframe); --mainframe:Connect(wx.wxEVT_TIMER, TimerTick); gtimer:Start(100); mainframe:Connect(wx.wxEVT_CLOSE_WINDOW, function (event) OnClose() gtimer:Stop(); event:Skip(); end) else panel = mcLuaPanelParent end --Set up the main sizer so we can start adding controls local mainSizer = wx.wxBoxSizer(wx.wxHORIZONTAL) local InputsGridSizer = wx.wxFlexGridSizer( 0, 2, 0, 0 ) InputsGridSizer:AddGrowableCol(1, 0) function AddSelectControl(name_string, selections, selCtrlID) if (selCtrlID == nil) then selCtrlID = wx.wxID_ANY end local staticText = wx.wxStaticText( panel, wx.wxID_ANY, name_string ) local selCtrl = wx.wxComboBox(panel, selCtrlID, "", wx.wxDefaultPosition, wx.wxSize(190, -1), selections,250) selCtrl:SetSelection(0) InputsGridSizer:Add( staticText, 0, wx.wxALIGN_CENTER_VERTICAL+wx.wxALL+wx.wxALIGN_RIGHT, 2) InputsGridSizer:Add( selCtrl, 0, wx.wxGROW+wx.wxALIGN_CENTER, 2) return selCtrl end Setupinputs() mainSizer:Add( InputsGridSizer, 0, wx.wxALIGN_CENTER+wx.wxALL, 2 ) --mainSizer:Add( buttonSizer, 0, wx.wxALIGN_CENTER+wx.wxALL, 2 ) panel:SetSizer( mainSizer ) -- show the frame window panel:Fit() if (mcLuaPanelParent == nil) then mainframe:Fit() mainframe:Show(true) end end main() wx.wxGetApp():MainLoop()