[JW Lua] Dialog scaling bug not fixed when changing the positions afterwards - fixed

Jan Angermüller jan at angermueller.com
Wed Oct 25 14:03:10 CEST 2017


It's not a scaling bug, but different origins.
FCCtrl:SetLeft/SetTop uses the top left corner (0,0) of the dialog 
window as the origin,
while FCCtrl...:Create..(x,y) seems to use (11,11) as the origin (on 
Windows - haven't checked Mac).
I.e. a margin is automatically added when creating the elements.

So these should address the same position:
local button = dialog:CreateButton(50, 50)

button:SetLeft(50+11)
button:SetTop(50+11)

Maybe this should be added to the documentation?

Jan



-------- Weitergeleitete Nachricht --------
Betreff: 	[JW Lua] Dialog scaling bug not fixed when changing the 
positions afterwards
Datum: 	Wed, 25 Oct 2017 13:12:26 +0200
Von: 	Jan Angermüller <jan at angermueller.com>
Antwort an: 	The JW Lua script plug-in. <jwlua at jwmusic.nu>
An: 	The JW Lua script plug-in. <jwlua at jwmusic.nu>



Jari,

some versions ago you fixed the different scaling/positioning bug for 
dialogs on MacOS/Windows.
Today I noticed that the bug fix seem to only affect the 
scaling/positioning when creating the dialog.
If the dialog is changed on the fly afterwards, the values are still 
scaled differently (on Windows! Haven't tested MacOS).

Below is the test script which shows different positions when using 
CreateButton(x,y) compared to SetLeft(x) / SetTop(y).
Clicking on the "select" button should use the same position as before, 
but it changes.
This is how the script looks in action: https://youtu.be/gprmtghPbAs

It is relevant when I have a dialog with a "standard" and an "extended" 
version which use slightly different positions.

Jan

local str=finale.FCString()
str.LuaString="Test"
local dialog = finale.FCCustomLuaWindow()
dialog:SetTitle(str)

local static1= dialog:CreateStatic(0,0)
str.LuaString = "Test:"
static1:SetWidth(120)
static1:SetText(str)

local button = dialog:CreateButton(50, 50)
str.LuaString = "Select"
button:SetText(str)
button:SetWidth(100)

local function mycommandhandler(thecontrol)
     if thecontrol:GetControlID() ==button:GetControlID() then
         button:SetLeft(50)
         button:SetTop(50)
     end
end
dialog:RegisterHandleCommand(mycommandhandler)
dialog:CreateCancelButton()
dialog:ExecuteModal(nil)
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://jwmusic.nu/pipermail/jwlua_jwmusic.nu/attachments/20171025/28c22013/attachment.html>


More information about the JWLua mailing list