This shows you the differences between two versions of the page.
Next revision | Previous revision | ||
jwlua:customwindow [2015/11/30 11:51] jariw created |
jwlua:customwindow [2015/11/30 12:32] (current) jariw |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | To create fully-feature dialog user interfaces in JW Lua, use the FCCustomWindow or FCCustomLuaWindow classes. (FCCustomLuaWindow is a subclass of FCCustomWindow that adds Lua callback functionality.) | + | To create fully-feature dialog user interfaces in JW Lua, use the [[http://www.finaletips.nu/frameworkref/class_f_c_custom_window.html|FCCustomWindow]] or [[http://www.finaletips.nu/frameworkref/class_f_c_custom_lua_window.html|FCCustomLuaWindow]] classes. (FCCustomLuaWindow is a subclass of FCCustomWindow that adds Lua callback functionality.) |
+ | |||
+ | The dialogs are device independent and uses **points** as measurement (top-left as the origin). Dialog margins and Ok/Cancel button placement conform to the UI design guidelines for the platform the script runs on. | ||
+ | |||
+ | The following script adds all available types of controls to a dialog. | ||
+ | |||
+ | **Windows output:** | ||
+ | |||
+ | {{:wiki:jwlua:allcontrols-windows.jpg}} | ||
+ | |||
+ | **Mac output:** | ||
+ | |||
+ | {{:wiki:jwlua:allcontrols-mac.png?544|}} | ||
+ | |||
+ | <code lua allcontrols.lua>local str = finale.FCString() | ||
+ | |||
+ | str.LuaString = "JW Lua Control Demo" | ||
+ | local dialog = finale.FCCustomWindow() | ||
+ | dialog:SetTitle(str) | ||
+ | |||
+ | str.LuaString = "Text" | ||
+ | |||
+ | -- Static text | ||
+ | local static = dialog:CreateStatic(0, 0) | ||
+ | static:SetText(str) | ||
+ | |||
+ | -- Edit box | ||
+ | dialog:CreateEdit(0, 16) | ||
+ | |||
+ | -- Up/Down control | ||
+ | dialog:CreateUpDown(70, 16) | ||
+ | |||
+ | -- Push button | ||
+ | local button = dialog:CreateButton(0, 50) | ||
+ | button:SetText(str) | ||
+ | |||
+ | -- List box | ||
+ | local listbox = dialog:CreateListBox(0, 80) | ||
+ | listbox:AddString(str) | ||
+ | listbox:AddString(str) | ||
+ | listbox:AddString(str) | ||
+ | listbox:AddString(str) | ||
+ | |||
+ | -- Popup | ||
+ | local popup = dialog:CreatePopup(0, 260) | ||
+ | popup:AddString(str) | ||
+ | popup:AddString(str) | ||
+ | popup:AddString(str) | ||
+ | |||
+ | -- Slider | ||
+ | local slider = dialog:CreateSlider(0, 290) | ||
+ | slider:SetMinValue(1) | ||
+ | slider:SetMaxValue(10) | ||
+ | |||
+ | -- Checkbox | ||
+ | local checkbox = dialog:CreateCheckbox(0, 330) | ||
+ | checkbox:SetText(str) | ||
+ | |||
+ | -- Vertical line | ||
+ | dialog:CreateVerticalLine(170, 0, 340) | ||
+ | |||
+ | -- Tree | ||
+ | local tree = dialog:CreateTree(190, 0) | ||
+ | local masternode = tree:AddNode(nil, true, str) | ||
+ | tree:AddNode(masternode, false, str) | ||
+ | tree:AddNode(masternode, false, str) | ||
+ | tree:AddNode(masternode, false, str) | ||
+ | |||
+ | -- Data list | ||
+ | local datalist = dialog:CreateDataList(190, 190) | ||
+ | datalist.UseCheckboxes = | ||
+ | datalist:AddColumn(str, 90) | ||
+ | datalist:AddColumn(str, 90) | ||
+ | local row = datalist:CreateRow() | ||
+ | row:GetItemAt(0).LuaString = "Data 1" | ||
+ | row:GetItemAt(1).LuaString = "Data 2" | ||
+ | |||
+ | -- Horizontal Line | ||
+ | dialog:CreateHorizontalLine(0, 350, 390) | ||
+ | |||
+ | -- Ok button | ||
+ | dialog:CreateOkButton() | ||
+ | |||
+ | -- Cancel button | ||
+ | dialog:CreateCancelButton() | ||
+ | |||
+ | -- Display dialog box: | ||
+ | if dialog:ExecuteModal(nil) == 1 then | ||
+ | -- Ok button was pressed | ||
+ | end</code> | ||