1
1
Fork 0
mirror of https://github.com/FellippeHeitor/InForm.git synced 2025-01-15 11:59:34 +00:00

Gets Editor and Preview working with Binding data.

This commit is contained in:
FellippeHeitor 2020-02-10 00:11:47 -03:00
parent b01432708c
commit 745e2709b7
4 changed files with 241 additions and 110 deletions

View file

@ -456,8 +456,8 @@ SUB __UI_InternalMenus
ToolTip(__UI_NewID) = "The default button can be triggered with Enter even if it doesn't have focus at run time." ToolTip(__UI_NewID) = "The default button can be triggered with Enter even if it doesn't have focus at run time."
__UI_NewID = __UI_NewControl(__UI_Type_MenuItem, "__UI_PreviewMenuBindControls", 0, 0, 0, 0, __UI_GetID("__UI_PreviewMenu")) __UI_NewID = __UI_NewControl(__UI_Type_MenuItem, "__UI_PreviewMenuBindControls", 0, 0, 0, 0, __UI_GetID("__UI_PreviewMenu"))
SetCaption __UI_GetID("__UI_PreviewMenuBindControls"), "Bind selected controls-" SetCaption __UI_GetID("__UI_PreviewMenuBindControls"), "Bind selected controls...-"
ToolTip(__UI_NewID) = "The default button can be triggered with Enter even if it doesn't have focus at run time." ToolTip(__UI_NewID) = "Binds a control's property to another control's property."
__UI_NewID = __UI_NewControl(__UI_Type_MenuItem, "__UI_PreviewMenuConvertType", 0, 0, 0, 0, __UI_GetID("__UI_PreviewMenu")) __UI_NewID = __UI_NewControl(__UI_Type_MenuItem, "__UI_PreviewMenuConvertType", 0, 0, 0, 0, __UI_GetID("__UI_PreviewMenu"))
SetCaption __UI_GetID("__UI_PreviewMenuConvertType"), "Co&nvert to type-" SetCaption __UI_GetID("__UI_PreviewMenuConvertType"), "Co&nvert to type-"
@ -1161,6 +1161,18 @@ SUB __UI_UpdateDisplay
_DEST 0 _DEST 0
END IF END IF
IF i = __UI_FirstSelectedID AND Control(i).BoundTo > 0 AND __UI_DesignMode = True AND __UI_ShowInvisibleControls = True THEN
LINE (Control(i).Left - 5 + Control(Control(i).ParentID).Left, _
Control(i).Top - 5 + Control(Control(i).ParentID).Top)- _
STEP(Control(i).Width + 10, Control(i).Height + 10), _
_RGB32(127, 105, 183, 50), BF
LINE (Control(Control(i).BoundTo).Left - 5 + Control(Control(Control(i).BoundTo).ParentID).Left, _
Control(Control(i).BoundTo).Top - 5 + Control(Control(Control(i).BoundTo).ParentID).Top)- _
STEP(Control(Control(i).BoundTo).Width + 10, Control(Control(i).BoundTo).Height + 10), _
_RGB32(127, 105, 183, 50), BF
END IF
IF Control(i).Hidden = True AND __UI_DesignMode = True AND __UI_ShowInvisibleControls = True THEN IF Control(i).Hidden = True AND __UI_DesignMode = True AND __UI_ShowInvisibleControls = True THEN
LINE (Control(i).Left, Control(i).Top)-STEP(Control(i).Width - 1, Control(i).Height - 1), _RGBA32(127, 127, 127, 80), BF LINE (Control(i).Left, Control(i).Top)-STEP(Control(i).Width - 1, Control(i).Height - 1), _RGBA32(127, 127, 127, 80), BF
_FONT 8 _FONT 8
@ -2032,6 +2044,7 @@ SUB __UI_EventDispatcher
Control(__UI_GetID("__UI_PreviewMenuImageOriginalSize")).Hidden = True Control(__UI_GetID("__UI_PreviewMenuImageOriginalSize")).Hidden = True
Control(__UI_GetID("__UI_PreviewMenuNumericOnly")).Hidden = True Control(__UI_GetID("__UI_PreviewMenuNumericOnly")).Hidden = True
Control(__UI_GetID("__UI_PreviewMenuSetDefaultButton")).Hidden = True Control(__UI_GetID("__UI_PreviewMenuSetDefaultButton")).Hidden = True
Control(__UI_GetID("__UI_PreviewMenuBindControls")).Hidden = True
Control(__UI_GetID("__UI_PreviewMenuShowInvisibleControls")).Hidden = False Control(__UI_GetID("__UI_PreviewMenuShowInvisibleControls")).Hidden = False
Control(__UI_GetID("__UI_PreviewMenuConvertType")).Hidden = True Control(__UI_GetID("__UI_PreviewMenuConvertType")).Hidden = True
Control(__UI_GetID("__UI_PreviewMenuNewMenuBar")).Hidden = False Control(__UI_GetID("__UI_PreviewMenuNewMenuBar")).Hidden = False
@ -2113,7 +2126,19 @@ SUB __UI_EventDispatcher
ELSE ELSE
Control(__UI_GetID("__UI_PreviewMenuConvertType")).Hidden = True Control(__UI_GetID("__UI_PreviewMenuConvertType")).Hidden = True
END IF END IF
IF Control(__UI_FirstSelectedID).BoundTo > 0 THEN
Control(__UI_GetID("__UI_PreviewMenuBindControls")).Hidden = False
SetCaption __UI_GetID("__UI_PreviewMenuBindControls"), "Edit binding...-"
END IF
ELSEIF __UI_TotalSelectedControls = 2 THEN ELSEIF __UI_TotalSelectedControls = 2 THEN
Control(__UI_GetID("__UI_PreviewMenuBindControls")).Hidden = False
IF Control(__UI_FirstSelectedID).BoundTo > 0 THEN
SetCaption __UI_GetID("__UI_PreviewMenuBindControls"), "Edit binding...-"
ELSE
SetCaption __UI_GetID("__UI_PreviewMenuBindControls"), "Bind selected controls...-"
END IF
Control(__UI_GetID("__UI_PreviewMenuNewMenuBar")).Hidden = True Control(__UI_GetID("__UI_PreviewMenuNewMenuBar")).Hidden = True
Control(__UI_GetID("__UI_PreviewMenuNewContextMenu")).Hidden = True Control(__UI_GetID("__UI_PreviewMenuNewContextMenu")).Hidden = True
Control(__UI_GetID("__UI_PreviewMenuShowInvisibleControls")).Hidden = True Control(__UI_GetID("__UI_PreviewMenuShowInvisibleControls")).Hidden = True
@ -2931,12 +2956,14 @@ SUB __UI_EventDispatcher
END IF END IF
CASE UCASE$("__UI_PreviewMenuNewMenuBar") CASE UCASE$("__UI_PreviewMenuNewMenuBar")
__UI_KeyPress 224 __UI_KeyPress 224
CASE UCASE$("__UI_PreviewMenuShowInvisibleControls")
__UI_KeyPress 227
CASE UCASE$("__UI_PreviewMenuConvertType") CASE UCASE$("__UI_PreviewMenuConvertType")
__UI_KeyPress 225 __UI_KeyPress 225
CASE UCASE$("__UI_PreviewMenuNewContextMenu") CASE UCASE$("__UI_PreviewMenuNewContextMenu")
__UI_KeyPress 226 __UI_KeyPress 226
CASE UCASE$("__UI_PreviewMenuShowInvisibleControls")
__UI_KeyPress 227
CASE UCASE$("__UI_PreviewMenuBindControls")
__UI_KeyPress 228
CASE "__UI_PREVIEWMENUCUT": GOTO ControlCut CASE "__UI_PREVIEWMENUCUT": GOTO ControlCut
CASE "__UI_PREVIEWMENUCOPY": GOTO ControlCopy CASE "__UI_PREVIEWMENUCOPY": GOTO ControlCopy
CASE "__UI_PREVIEWMENUPASTE": GOTO ControlPaste CASE "__UI_PREVIEWMENUPASTE": GOTO ControlPaste
@ -6856,10 +6883,10 @@ SUB __UI_Bind(id AS LONG, targetID AS LONG, __PropertyID$, __PropertyTargetID$)
Control(id).BoundTo = targetID Control(id).BoundTo = targetID
Control(id).BoundProperty = __UI_PropertyEnum(PropertyID$) Control(id).BoundProperty = __UI_PropertyEnum(PropertyID$, 0)
IF Control(id).BoundProperty = 0 THEN Control(id).BoundTo = 0: EXIT SUB IF Control(id).BoundProperty = 0 THEN Control(id).BoundTo = 0: EXIT SUB
Control(targetID).BoundTo = id Control(targetID).BoundTo = id
Control(targetID).BoundProperty = __UI_PropertyEnum(PropertyTargetID$) Control(targetID).BoundProperty = __UI_PropertyEnum(PropertyTargetID$, 0)
IF Control(targetID).BoundProperty = 0 THEN IF Control(targetID).BoundProperty = 0 THEN
Control(id).BoundTo = 0 Control(id).BoundTo = 0
Control(targetID).BoundTo = 0 Control(targetID).BoundTo = 0
@ -6867,37 +6894,57 @@ SUB __UI_Bind(id AS LONG, targetID AS LONG, __PropertyID$, __PropertyTargetID$)
__UI_CheckBinding targetID 'acquire current value of targetID __UI_CheckBinding targetID 'acquire current value of targetID
END SUB END SUB
FUNCTION __UI_PropertyEnum& (__property$) FUNCTION __UI_PropertyEnum& (__property$, index AS LONG)
DIM property$ 'If __property$ is passed:
' - __UI_PropertyEnum& returns the index/hash value;
'If index is passed:
' - __property$ returns the property name found and
' - __UI_PropertyEnum& returns True (-1)
DIM property$, NextAt AS LONG
STATIC EnumInitialized AS _BYTE, Enum$ STATIC EnumInitialized AS _BYTE, Enum$
IF LEN(_TRIM$(__property$)) = 0 THEN EXIT FUNCTION IF LEN(_TRIM$(__property$)) = 0 AND index = 0 THEN EXIT FUNCTION
IF NOT EnumInitialized THEN IF NOT EnumInitialized THEN
RESTORE EnumNames RESTORE EnumNames
DO DO
READ property$ READ property$
IF property$ = "*" THEN EXIT DO IF property$ = "*" THEN EXIT DO
Enum$ = Enum$ + "@" + UCASE$(property$) Enum$ = Enum$ + "@" + property$
LOOP LOOP
Enum$ = Enum$ + "@" Enum$ = Enum$ + "@"
EnumInitialized = True EnumInitialized = True
END IF END IF
IF index > 0 THEN
'return property name
IF index > LEN(Enum$) THEN EXIT FUNCTION
IF ASC(Enum$, index) <> 64 THEN EXIT FUNCTION
NextAt = INSTR(index + 1, Enum$, "@")
__property$ = MID$(Enum$, index + 1, NextAt - index - 1)
__UI_PropertyEnum& = -1
ELSE
'return index
property$ = "@" + _TRIM$(UCASE$(__property$)) + "@" property$ = "@" + _TRIM$(UCASE$(__property$)) + "@"
__UI_PropertyEnum& = INSTR(Enum$, property$) __UI_PropertyEnum& = INSTR(UCASE$(Enum$), property$)
END IF
EXIT FUNCTION EXIT FUNCTION
EnumNames: EnumNames:
DATA Top, Left, Width, Height, Bordersize, Padding, Value DATA Top,Left,Width,Height,Bordersize,Padding,Value
DATA Min, Max, Interval, MinInterval, Stretch, HasBorder, ShowPercentage DATA Min,Max,Interval,MinInterval,Stretch,HasBorder,ShowPercentage
DATA AutoScroll, AutoSize, PasswordField, Disabled, Hidden DATA AutoScroll,AutoSize,PasswordMask,Disabled,Hidden
DATA * DATA *
END FUNCTION END FUNCTION
SUB __UI_UnBind(id AS LONG, targetID AS LONG) SUB __UI_UnBind(id AS LONG)
IF Control(id).BoundTo > 0 THEN
Control(Control(id).BoundTo).Redraw = True
Control(Control(id).BoundTo).BoundTo = 0
Control(id).BoundTo = 0 Control(id).BoundTo = 0
Control(targetID).BoundTo = 0 Control(id).Redraw = True
END IF
END SUB END SUB
SUB __UI_CheckBinding(id AS LONG) SUB __UI_CheckBinding(id AS LONG)
@ -6907,90 +6954,90 @@ SUB __UI_CheckBinding(id AS LONG)
IF BindTarget = 0 THEN EXIT SUB IF BindTarget = 0 THEN EXIT SUB
IF Control(id).BoundProperty = Control(BindTarget).BoundProperty AND _ IF Control(id).BoundProperty = Control(BindTarget).BoundProperty AND _
Control(id).BoundProperty = __UI_PropertyEnum&("Value") THEN Control(id).BoundProperty = __UI_PropertyEnum&("Value", 0) THEN
Control(id).Min = Control(BindTarget).Min Control(id).Min = Control(BindTarget).Min
Control(id).Max = Control(BindTarget).Max Control(id).Max = Control(BindTarget).Max
END IF END IF
SELECT CASE Control(id).BoundProperty SELECT CASE Control(id).BoundProperty
CASE __UI_PropertyEnum&("Top") CASE __UI_PropertyEnum&("Top", 0)
Temp = Control(id).Top Temp = Control(id).Top
CASE __UI_PropertyEnum&("Left") CASE __UI_PropertyEnum&("Left", 0)
Temp = Control(id).Left Temp = Control(id).Left
CASE __UI_PropertyEnum&("Width") CASE __UI_PropertyEnum&("Width", 0)
Temp = Control(id).Width Temp = Control(id).Width
CASE __UI_PropertyEnum&("Height") CASE __UI_PropertyEnum&("Height", 0)
Temp = Control(id).Height Temp = Control(id).Height
CASE __UI_PropertyEnum&("BorderSize") CASE __UI_PropertyEnum&("BorderSize", 0)
Temp = Control(id).BorderSize Temp = Control(id).BorderSize
CASE __UI_PropertyEnum&("Padding") CASE __UI_PropertyEnum&("Padding", 0)
Temp = Control(id).Padding Temp = Control(id).Padding
CASE __UI_PropertyEnum&("Value") CASE __UI_PropertyEnum&("Value", 0)
Temp = Control(id).Value Temp = Control(id).Value
CASE __UI_PropertyEnum&("Min") CASE __UI_PropertyEnum&("Min", 0)
Temp = Control(id).Min Temp = Control(id).Min
CASE __UI_PropertyEnum&("Max") CASE __UI_PropertyEnum&("Max", 0)
Temp = Control(id).Max Temp = Control(id).Max
CASE __UI_PropertyEnum&("Interval") CASE __UI_PropertyEnum&("Interval", 0)
Temp = Control(id).Interval Temp = Control(id).Interval
CASE __UI_PropertyEnum&("Mininterval") CASE __UI_PropertyEnum&("Mininterval", 0)
Temp = Control(id).Mininterval Temp = Control(id).Mininterval
CASE __UI_PropertyEnum&("Stretch") CASE __UI_PropertyEnum&("Stretch", 0)
Temp = Control(id).Stretch Temp = Control(id).Stretch
CASE __UI_PropertyEnum&("HasBorder") CASE __UI_PropertyEnum&("HasBorder", 0)
Temp = Control(id).HasBorder Temp = Control(id).HasBorder
CASE __UI_PropertyEnum&("ShowPercentage") CASE __UI_PropertyEnum&("ShowPercentage", 0)
Temp = Control(id).ShowPercentage Temp = Control(id).ShowPercentage
CASE __UI_PropertyEnum&("AutoScroll") CASE __UI_PropertyEnum&("AutoScroll", 0)
Temp = Control(id).AutoScroll Temp = Control(id).AutoScroll
CASE __UI_PropertyEnum&("AutoSize") CASE __UI_PropertyEnum&("AutoSize", 0)
Temp = Control(id).AutoSize Temp = Control(id).AutoSize
CASE __UI_PropertyEnum&("PasswordField") CASE __UI_PropertyEnum&("PasswordField", 0)
Temp = Control(id).PasswordField Temp = Control(id).PasswordField
CASE __UI_PropertyEnum&("Disabled") CASE __UI_PropertyEnum&("Disabled", 0)
Temp = Control(id).Disabled Temp = Control(id).Disabled
CASE __UI_PropertyEnum&("Hidden") CASE __UI_PropertyEnum&("Hidden", 0)
Temp = Control(id).Hidden Temp = Control(id).Hidden
END SELECT END SELECT
SELECT CASE Control(BindTarget).BoundProperty SELECT CASE Control(BindTarget).BoundProperty
CASE __UI_PropertyEnum&("Top") CASE __UI_PropertyEnum&("Top", 0)
Control(BindTarget).Top = Temp Control(BindTarget).Top = Temp
CASE __UI_PropertyEnum&("Left") CASE __UI_PropertyEnum&("Left", 0)
Control(BindTarget).Left = Temp Control(BindTarget).Left = Temp
CASE __UI_PropertyEnum&("Width") CASE __UI_PropertyEnum&("Width", 0)
Control(BindTarget).Width = Temp Control(BindTarget).Width = Temp
CASE __UI_PropertyEnum&("Height") CASE __UI_PropertyEnum&("Height", 0)
Control(BindTarget).Height = Temp Control(BindTarget).Height = Temp
CASE __UI_PropertyEnum&("BorderSize") CASE __UI_PropertyEnum&("BorderSize", 0)
Control(BindTarget).BorderSize = Temp Control(BindTarget).BorderSize = Temp
CASE __UI_PropertyEnum&("Padding") CASE __UI_PropertyEnum&("Padding", 0)
Control(BindTarget).Padding = Temp Control(BindTarget).Padding = Temp
CASE __UI_PropertyEnum&("Value") CASE __UI_PropertyEnum&("Value", 0)
Control(BindTarget).Value = Temp Control(BindTarget).Value = Temp
CASE __UI_PropertyEnum&("Min") CASE __UI_PropertyEnum&("Min", 0)
Control(BindTarget).Min = Temp Control(BindTarget).Min = Temp
CASE __UI_PropertyEnum&("Max") CASE __UI_PropertyEnum&("Max", 0)
Control(BindTarget).Max = Temp Control(BindTarget).Max = Temp
CASE __UI_PropertyEnum&("Interval") CASE __UI_PropertyEnum&("Interval", 0)
Control(BindTarget).Interval = Temp Control(BindTarget).Interval = Temp
CASE __UI_PropertyEnum&("MinInterval") CASE __UI_PropertyEnum&("MinInterval", 0)
Control(BindTarget).MinInterval = Temp Control(BindTarget).MinInterval = Temp
CASE __UI_PropertyEnum&("Stretch") CASE __UI_PropertyEnum&("Stretch", 0)
Control(BindTarget).Stretch = Temp Control(BindTarget).Stretch = Temp
CASE __UI_PropertyEnum&("HasBorder") CASE __UI_PropertyEnum&("HasBorder", 0)
Control(BindTarget).HasBorder = Temp Control(BindTarget).HasBorder = Temp
CASE __UI_PropertyEnum&("ShowPercentage") CASE __UI_PropertyEnum&("ShowPercentage", 0)
Control(BindTarget).ShowPercentage = Temp Control(BindTarget).ShowPercentage = Temp
CASE __UI_PropertyEnum&("AutoScroll") CASE __UI_PropertyEnum&("AutoScroll", 0)
Control(BindTarget).AutoScroll = Temp Control(BindTarget).AutoScroll = Temp
CASE __UI_PropertyEnum&("AutoSize") CASE __UI_PropertyEnum&("AutoSize", 0)
Control(BindTarget).AutoSize = Temp Control(BindTarget).AutoSize = Temp
CASE __UI_PropertyEnum&("PasswordField") CASE __UI_PropertyEnum&("PasswordField", 0)
Control(BindTarget).PasswordField = Temp Control(BindTarget).PasswordField = Temp
CASE __UI_PropertyEnum&("Disabled") CASE __UI_PropertyEnum&("Disabled", 0)
Control(BindTarget).Disabled = Temp Control(BindTarget).Disabled = Temp
CASE __UI_PropertyEnum&("Hidden") CASE __UI_PropertyEnum&("Hidden", 0)
Control(BindTarget).Hidden = Temp Control(BindTarget).Hidden = Temp
END SELECT END SELECT

View file

@ -188,6 +188,7 @@ REDIM SHARED PreviewActualFonts(0) AS STRING
REDIM SHARED PreviewControls(0) AS __UI_ControlTYPE REDIM SHARED PreviewControls(0) AS __UI_ControlTYPE
REDIM SHARED PreviewParentIDS(0) AS STRING REDIM SHARED PreviewParentIDS(0) AS STRING
REDIM SHARED PreviewContextMenu(0) AS STRING REDIM SHARED PreviewContextMenu(0) AS STRING
REDIM SHARED PreviewBoundTo(0) AS STRING
REDIM SHARED PreviewKeyCombos(0) AS STRING REDIM SHARED PreviewKeyCombos(0) AS STRING
REDIM SHARED PreviewAnimatedGif(0) AS _BYTE REDIM SHARED PreviewAnimatedGif(0) AS _BYTE
REDIM SHARED PreviewAutoPlayGif(0) AS _BYTE REDIM SHARED PreviewAutoPlayGif(0) AS _BYTE
@ -583,7 +584,7 @@ SUB __UI_Click (id AS LONG)
SYSTEM SYSTEM
CASE EditMenuZOrdering CASE EditMenuZOrdering
'Fill the list: 'Fill the list:
Caption(StatusBar) = "Editing z-ordering/tab ordering..." Caption(StatusBar) = "Editing z-ordering/tab ordering"
DIM j AS LONG, i AS LONG DIM j AS LONG, i AS LONG
STATIC Moving AS _BYTE STATIC Moving AS _BYTE
REDIM _PRESERVE zOrderIDs(1 TO UBOUND(PreviewControls)) AS LONG REDIM _PRESERVE zOrderIDs(1 TO UBOUND(PreviewControls)) AS LONG
@ -603,17 +604,60 @@ SUB __UI_Click (id AS LONG)
__UI_Focus = ControlList __UI_Focus = ControlList
ZOrderingDialogOpen = True ZOrderingDialogOpen = True
CASE EditMenuBindControls CASE EditMenuBindControls
Caption(StatusBar) = "Setting control bindings..." 'Get controls' names
DIM CurrentSource$
j = 0
FOR i = 1 TO UBOUND(PreviewControls)
IF PreviewControls(i).ControlIsSelected THEN
j = j + 1
IF j = 1 THEN
Caption(SourceControlNameLB) = RTRIM$(PreviewControls(i).Name)
CurrentSource$ = PreviewBoundTo(i)
END IF
IF j = 2 THEN
Caption(TargetControlNameLB) = RTRIM$(PreviewControls(i).Name)
EXIT FOR
END IF
END IF
NEXT
IF CurrentSource$ = Caption(TargetControlNameLB) THEN
Caption(CancelBindBT) = "Unbind"
ELSE
Caption(CancelBindBT) = "Cancel"
END IF
Caption(StatusBar) = "Defining control bindings"
Control(DialogBG).Left = 0: Control(DialogBG).Top = 0 Control(DialogBG).Left = 0: Control(DialogBG).Top = 0
Control(SetControlBinding).Left = 83: Control(SetControlBinding).Top = 192 Control(SetControlBinding).Left = 83: Control(SetControlBinding).Top = 169
__UI_Focus = SourcePropertyList __UI_Focus = SourcePropertyList
SetBindingDialogOpen = True SetBindingDialogOpen = True
CASE SwapBT CASE SwapBT
SWAP Caption(SourceControlNameLB), Caption(TargetControlNameLB) SWAP Caption(SourceControlNameLB), Caption(TargetControlNameLB)
CASE BindBT, CancelBindBT SWAP Control(SourcePropertyList).Value, Control(TargetPropertyList).Value
CASE BindBT
Control(DialogBG).Left = -600: Control(DialogBG).Top = -600 Control(DialogBG).Left = -600: Control(DialogBG).Top = -600
Control(SetControlBinding).Left = -600: Control(SetControlBinding).Top = -600 Control(SetControlBinding).Left = -600: Control(SetControlBinding).Top = -600
SetBindingDialogOpen = False SetBindingDialogOpen = False
b$ = "BINDCONTROLS>"
b$ = b$ + MKL$(LEN(Caption(SourceControlNameLB))) + Caption(SourceControlNameLB)
b$ = b$ + MKL$(LEN(Caption(TargetControlNameLB))) + Caption(TargetControlNameLB)
b$ = b$ + MKL$(LEN(GetItem(SourcePropertyList, Control(SourcePropertyList).Value)))
b$ = b$ + GetItem(SourcePropertyList, Control(SourcePropertyList).Value)
b$ = b$ + MKL$(LEN(GetItem(TargetPropertyList, Control(TargetPropertyList).Value)))
b$ = b$ + GetItem(TargetPropertyList, Control(TargetPropertyList).Value)
b$ = b$ + "<END>"
Send Client, b$
CASE CancelBindBT
Control(DialogBG).Left = -600: Control(DialogBG).Top = -600
Control(SetControlBinding).Left = -600: Control(SetControlBinding).Top = -600
SetBindingDialogOpen = False
IF Caption(CancelBindBT) = "Unbind" THEN
b$ = "UNBINDCONTROLS>"
b$ = b$ + Caption(SourceControlNameLB)
b$ = b$ + "<END>"
Send Client, b$
END IF
CASE CloseZOrderingBT CASE CloseZOrderingBT
Caption(StatusBar) = "Ready." Caption(StatusBar) = "Ready."
Control(DialogBG).Left = -600: Control(DialogBG).Top = -600 Control(DialogBG).Left = -600: Control(DialogBG).Top = -600
@ -927,7 +971,7 @@ SUB __UI_MouseEnter (id AS LONG)
CASE ViewMenuShowPositionAndSize CASE ViewMenuShowPositionAndSize
Caption(StatusBar) = "Toggles whether size and position indicators will be shown in the preview." Caption(StatusBar) = "Toggles whether size and position indicators will be shown in the preview."
CASE ViewMenuShowInvisibleControls CASE ViewMenuShowInvisibleControls
Caption(StatusBar) = "Toggles whether invisible controls (e.g. ContextMenus) will be shown in the preview." Caption(StatusBar) = "Show or hide invisible controls and binding indicators in the preview dialog."
CASE ViewMenuPreview CASE ViewMenuPreview
Caption(StatusBar) = "Launches the preview window in case it's been closed accidentaly." Caption(StatusBar) = "Launches the preview window in case it's been closed accidentaly."
CASE ViewMenuLoadedFonts CASE ViewMenuLoadedFonts
@ -1543,6 +1587,20 @@ SUB __UI_BeforeUpdateDisplay
CASE "SHOWINVISIBLECONTROLS" CASE "SHOWINVISIBLECONTROLS"
__UI_ShowInvisibleControls = CVI(thisData$) __UI_ShowInvisibleControls = CVI(thisData$)
Control(ViewMenuShowInvisibleControls).Value = __UI_ShowInvisibleControls Control(ViewMenuShowInvisibleControls).Value = __UI_ShowInvisibleControls
CASE "SHOWBINDCONTROLDIALOG"
b$ = ReadSequential(thisData$, 4)
IF CVL(b$) = 0 THEN
j = SelectItem(SourcePropertyList, "Value")
ELSE
j = SelectItem(SourcePropertyList, ReadSequential(thisData$, CVL(b$)))
END IF
b$ = ReadSequential(thisData$, 4)
IF CVL(b$) = 0 THEN
j = SelectItem(TargetPropertyList, "Value")
ELSE
j = SelectItem(TargetPropertyList, ReadSequential(thisData$, CVL(b$)))
END IF
__UI_Click EditMenuBindControls
CASE "ORIGINALIMAGEWIDTH" CASE "ORIGINALIMAGEWIDTH"
OriginalImageWidth = CVI(thisData$) OriginalImageWidth = CVI(thisData$)
CASE "ORIGINALIMAGEHEIGHT" CASE "ORIGINALIMAGEHEIGHT"
@ -1705,6 +1763,7 @@ SUB __UI_BeforeUpdateDisplay
Control(EditMenuSetDefaultButton).Disabled = True Control(EditMenuSetDefaultButton).Disabled = True
Control(EditMenuSetDefaultButton).Value = False Control(EditMenuSetDefaultButton).Value = False
Control(EditMenuBindControls).Disabled = True
Control(EditMenuAllowMinMax).Disabled = True Control(EditMenuAllowMinMax).Disabled = True
Control(EditMenuAllowMinMax).Value = False Control(EditMenuAllowMinMax).Value = False
IF INSTR(LCASE$(PreviewControls(PreviewFormID).Name), "form") = 0 THEN IF INSTR(LCASE$(PreviewControls(PreviewFormID).Name), "form") = 0 THEN
@ -1787,6 +1846,8 @@ SUB __UI_BeforeUpdateDisplay
END IF END IF
END IF END IF
ELSEIF TotalSelected = 2 THEN ELSEIF TotalSelected = 2 THEN
Control(EditMenuBindControls).Disabled = False
Caption(ControlProperties) = "Control properties: (multiple selection)" Caption(ControlProperties) = "Control properties: (multiple selection)"
Control(EditMenuCut).Disabled = False Control(EditMenuCut).Disabled = False
@ -3718,6 +3779,7 @@ SUB LoadPreview
REDIM PreviewControls(0 TO CVL(b$)) AS __UI_ControlTYPE REDIM PreviewControls(0 TO CVL(b$)) AS __UI_ControlTYPE
REDIM PreviewParentIDS(0 TO CVL(b$)) AS STRING REDIM PreviewParentIDS(0 TO CVL(b$)) AS STRING
REDIM PreviewContextMenu(0 TO CVL(b$)) AS STRING REDIM PreviewContextMenu(0 TO CVL(b$)) AS STRING
REDIM PreviewBoundTo(0 TO CVL(b$)) AS STRING
REDIM PreviewKeyCombos(0 TO CVL(b$)) AS STRING REDIM PreviewKeyCombos(0 TO CVL(b$)) AS STRING
REDIM PreviewAnimatedGif(0 TO CVL(b$)) AS _BYTE REDIM PreviewAnimatedGif(0 TO CVL(b$)) AS _BYTE
REDIM PreviewAutoPlayGif(0 TO CVL(b$)) AS _BYTE REDIM PreviewAutoPlayGif(0 TO CVL(b$)) AS _BYTE
@ -3890,6 +3952,12 @@ SUB LoadPreview
END IF END IF
CASE -46 'Auto-play Gif CASE -46 'Auto-play Gif
PreviewAutoPlayGif(Dummy) = True PreviewAutoPlayGif(Dummy) = True
CASE -47 'ControlIsSelected
PreviewControls(Dummy).ControlIsSelected = True
CASE -48 'BoundTo
b$ = ReadSequential$(FormData$, 2)
b$ = ReadSequential$(FormData$, CVI(b$))
PreviewBoundTo(Dummy) = b$
CASE -1 'new control CASE -1 'new control
EXIT DO EXIT DO
CASE -1024 CASE -1024

View file

@ -152,7 +152,7 @@ SUB __UI_LoadForm
__UI_NewID = __UI_NewControl(__UI_Type_MenuItem, "EditMenuBindControls", 103, 18, 0, 88, __UI_GetID("EditMenu")) __UI_NewID = __UI_NewControl(__UI_Type_MenuItem, "EditMenuBindControls", 103, 18, 0, 88, __UI_GetID("EditMenu"))
SetCaption __UI_NewID, "&Bind controls..." SetCaption __UI_NewID, "&Bind controls..."
'Control(__UI_NewID).Disabled = True Control(__UI_NewID).Disabled = True
__UI_NewID = __UI_NewControl(__UI_Type_MenuItem, "EditMenuAllowMinMax", 103, 18, 0, 88, __UI_GetID("EditMenu")) __UI_NewID = __UI_NewControl(__UI_Type_MenuItem, "EditMenuAllowMinMax", 103, 18, 0, 88, __UI_GetID("EditMenu"))
SetCaption __UI_NewID, "Validate .Min/.Ma&x bounds-" SetCaption __UI_NewID, "Validate .Min/.Ma&x bounds-"
@ -170,7 +170,7 @@ SUB __UI_LoadForm
Control(__UI_NewID).Value = -1 Control(__UI_NewID).Value = -1
__UI_NewID = __UI_NewControl(__UI_Type_MenuItem, "ViewMenuShowInvisibleControls", 253, 18, 0, 22, __UI_GetID("ViewMenu")) __UI_NewID = __UI_NewControl(__UI_Type_MenuItem, "ViewMenuShowInvisibleControls", 253, 18, 0, 22, __UI_GetID("ViewMenu"))
SetCaption __UI_NewID, "&Show invisible controls on the preview" SetCaption __UI_NewID, "&Show invisible elements on the preview"
Control(__UI_NewID).Value = -1 Control(__UI_NewID).Value = -1
__UI_NewID = __UI_NewControl(__UI_Type_MenuItem, "ViewMenuPreview", 168, 18, 0, 40, __UI_GetID("ViewMenu")) __UI_NewID = __UI_NewControl(__UI_Type_MenuItem, "ViewMenuPreview", 168, 18, 0, 40, __UI_GetID("ViewMenu"))
@ -768,37 +768,33 @@ SUB __UI_LoadForm
SetCaption __UI_NewID, "Close" SetCaption __UI_NewID, "Close"
Control(__UI_NewID).CanHaveFocus = True Control(__UI_NewID).CanHaveFocus = True
__UI_NewID = __UI_NewControl(__UI_Type_Frame, "SetControlBinding", 434, 216, -600, -600, 0) __UI_NewID = __UI_NewControl(__UI_Type_Frame, "SetControlBinding", 434, 263, -600, -600, 0)
SetCaption __UI_NewID, "Set control binding" SetCaption __UI_NewID, "Set control binding"
Control(__UI_NewID).Font = SetFont("segoeui.ttf?arial.ttf?/Library/Fonts/Arial.ttf?/usr/share/fonts/truetype/liberation/LiberationSans-Regular.ttf?/usr/share/fonts/TTF/arial.ttf?InForm/resources/NotoMono-Regular.ttf?cour.ttf", 12)
Control(__UI_NewID).HasBorder = True Control(__UI_NewID).HasBorder = True
Control(__UI_NewID).Value = 11
Control(__UI_NewID).BorderSize = 1 Control(__UI_NewID).BorderSize = 1
__UI_NewID = __UI_NewControl(__UI_Type_Label, "SourceControlLB", 100, 23, 19, 18, __UI_GetID("SetControlBinding")) __UI_NewID = __UI_NewControl(__UI_Type_Label, "SourceControlLB", 81, 23, 19, 18, __UI_GetID("SetControlBinding"))
SetCaption __UI_NewID, "Source control:" SetCaption __UI_NewID, "Bind:"
Control(__UI_NewID).VAlign = __UI_Middle Control(__UI_NewID).VAlign = __UI_Middle
__UI_NewID = __UI_NewControl(__UI_Type_Label, "SourceControlNameLB", 311, 23, 110, 18, __UI_GetID("SetControlBinding")) __UI_NewID = __UI_NewControl(__UI_Type_Label, "SourceControlNameLB", 380, 23, 35, 43, __UI_GetID("SetControlBinding"))
SetCaption __UI_NewID, "SourceControlName" SetCaption __UI_NewID, "SourceControlName"
Control(__UI_NewID).VAlign = __UI_Middle Control(__UI_NewID).VAlign = __UI_Middle
__UI_NewID = __UI_NewControl(__UI_Type_Label, "TargetControlLB", 100, 23, 19, 46, __UI_GetID("SetControlBinding")) __UI_NewID = __UI_NewControl(__UI_Type_Label, "TargetControlLB", 81, 23, 19, 114, __UI_GetID("SetControlBinding"))
SetCaption __UI_NewID, "Target control:" SetCaption __UI_NewID, "To:"
Control(__UI_NewID).VAlign = __UI_Middle Control(__UI_NewID).VAlign = __UI_Middle
__UI_NewID = __UI_NewControl(__UI_Type_Label, "TargetControlNameLB", 311, 23, 110, 46, __UI_GetID("SetControlBinding")) __UI_NewID = __UI_NewControl(__UI_Type_Label, "TargetControlNameLB", 380, 23, 35, 133, __UI_GetID("SetControlBinding"))
SetCaption __UI_NewID, "TargetControlName" SetCaption __UI_NewID, "TargetControlName"
Control(__UI_NewID).VAlign = __UI_Middle Control(__UI_NewID).VAlign = __UI_Middle
__UI_NewID = __UI_NewControl(__UI_Type_Button, "SwapBT", 62, 23, 359, 32, __UI_GetID("SetControlBinding")) __UI_NewID = __UI_NewControl(__UI_Type_Button, "SwapBT", 160, 23, 19, 220, __UI_GetID("SetControlBinding"))
SetCaption __UI_NewID, "Swap" SetCaption __UI_NewID, "Swap source and target"
Control(__UI_NewID).CanHaveFocus = True Control(__UI_NewID).CanHaveFocus = True
__UI_NewID = __UI_NewControl(__UI_Type_Label, "SourcePropertyLB", 112, 23, 19, 99, __UI_GetID("SetControlBinding")) __UI_NewID = __UI_NewControl(__UI_Type_DropdownList, "SourcePropertyList", 380, 23, 35, 71, __UI_GetID("SetControlBinding"))
SetCaption __UI_NewID, "Source property:"
Control(__UI_NewID).VAlign = __UI_Middle
__UI_NewID = __UI_NewControl(__UI_Type_DropdownList, "SourcePropertyList", 295, 23, 124, 99, __UI_GetID("SetControlBinding"))
AddItem __UI_NewID, "Top" AddItem __UI_NewID, "Top"
AddItem __UI_NewID, "Left" AddItem __UI_NewID, "Left"
AddItem __UI_NewID, "Width" AddItem __UI_NewID, "Width"
@ -815,7 +811,7 @@ SUB __UI_LoadForm
AddItem __UI_NewID, "ShowPercentage" AddItem __UI_NewID, "ShowPercentage"
AddItem __UI_NewID, "AutoScroll" AddItem __UI_NewID, "AutoScroll"
AddItem __UI_NewID, "AutoSize" AddItem __UI_NewID, "AutoSize"
AddItem __UI_NewID, "PasswordField" AddItem __UI_NewID, "PasswordMask"
AddItem __UI_NewID, "Disabled" AddItem __UI_NewID, "Disabled"
AddItem __UI_NewID, "Hidden" AddItem __UI_NewID, "Hidden"
Control(__UI_NewID).HasBorder = True Control(__UI_NewID).HasBorder = True
@ -823,40 +819,19 @@ SUB __UI_LoadForm
Control(__UI_NewID).CanHaveFocus = True Control(__UI_NewID).CanHaveFocus = True
Control(__UI_NewID).BorderSize = 1 Control(__UI_NewID).BorderSize = 1
__UI_NewID = __UI_NewControl(__UI_Type_Label, "TargetPropertyLB", 112, 23, 19, 127, __UI_GetID("SetControlBinding")) __UI_NewID = __UI_NewControl(__UI_Type_DropdownList, "TargetPropertyList", 380, 23, 35, 161, __UI_GetID("SetControlBinding"))
SetCaption __UI_NewID, "Target property:" Text(__UI_NewID) = Text(__UI_GetID("SourcePropertyList"))
Control(__UI_NewID).VAlign = __UI_Middle Control(__UI_NewID).Max = Control(__UI_GetID("SourcePropertyList")).Max
__UI_NewID = __UI_NewControl(__UI_Type_DropdownList, "TargetPropertyList", 295, 23, 124, 127, __UI_GetID("SetControlBinding"))
AddItem __UI_NewID, "Top"
AddItem __UI_NewID, "Left"
AddItem __UI_NewID, "Width"
AddItem __UI_NewID, "Height"
AddItem __UI_NewID, "Bordersize"
AddItem __UI_NewID, "Padding"
AddItem __UI_NewID, "Value"
AddItem __UI_NewID, "Min"
AddItem __UI_NewID, "Max"
AddItem __UI_NewID, "Interval"
AddItem __UI_NewID, "MinInterval"
AddItem __UI_NewID, "Stretch"
AddItem __UI_NewID, "HasBorder"
AddItem __UI_NewID, "ShowPercentage"
AddItem __UI_NewID, "AutoScroll"
AddItem __UI_NewID, "AutoSize"
AddItem __UI_NewID, "PasswordField"
AddItem __UI_NewID, "Disabled"
AddItem __UI_NewID, "Hidden"
Control(__UI_NewID).HasBorder = True Control(__UI_NewID).HasBorder = True
Control(__UI_NewID).Value = 7 Control(__UI_NewID).Value = 7
Control(__UI_NewID).CanHaveFocus = True Control(__UI_NewID).CanHaveFocus = True
Control(__UI_NewID).BorderSize = 1 Control(__UI_NewID).BorderSize = 1
__UI_NewID = __UI_NewControl(__UI_Type_Button, "BindBT", 80, 23, 131, 173, __UI_GetID("SetControlBinding")) __UI_NewID = __UI_NewControl(__UI_Type_Button, "BindBT", 80, 23, 248, 220, __UI_GetID("SetControlBinding"))
SetCaption __UI_NewID, "Bind" SetCaption __UI_NewID, "Bind"
Control(__UI_NewID).CanHaveFocus = True Control(__UI_NewID).CanHaveFocus = True
__UI_NewID = __UI_NewControl(__UI_Type_Button, "CancelBindBT", 80, 23, 224, 173, __UI_GetID("SetControlBinding")) __UI_NewID = __UI_NewControl(__UI_Type_Button, "CancelBindBT", 80, 23, 341, 220, __UI_GetID("SetControlBinding"))
SetCaption __UI_NewID, "Cancel" SetCaption __UI_NewID, "Cancel"
Control(__UI_NewID).CanHaveFocus = True Control(__UI_NewID).CanHaveFocus = True
END SUB END SUB

View file

@ -47,6 +47,7 @@ CONST EmptyForm$ = "9iVA_9GK1P<000`ooO7000@00D006mVL]53;1`B000000000noO100006mVL
' 225 = Convert control type to alternative type ' 225 = Convert control type to alternative type
' 226 = Add new ContextMenu control ' 226 = Add new ContextMenu control
' 227 = Toggle __UI_ShowInvisibleControls ' 227 = Toggle __UI_ShowInvisibleControls
' 228 = Bind/Unbind selected controls
'SavePreview parameters: 'SavePreview parameters:
CONST InDisk = 1 CONST InDisk = 1
@ -329,6 +330,19 @@ SUB __UI_BeforeUpdateDisplay
StopGif i StopGif i
END IF END IF
NEXT NEXT
CASE "BINDCONTROLS"
DIM BindInfo$(1 TO 4)
FOR i = 1 TO 4
TempValue = CVL(LEFT$(thisData$, 4))
thisData$ = MID$(thisData$, 5)
BindInfo$(i) = LEFT$(thisData$, TempValue)
thisData$ = MID$(thisData$, TempValue + 1)
NEXT
__UI_Bind __UI_GetID(BindInfo$(1)), __UI_GetID(BindInfo$(2)), BindInfo$(3), BindInfo$(4)
CASE "UNBINDCONTROLS"
__UI_UnBind __UI_GetID(thisData$)
END SELECT END SELECT
LOOP LOOP
@ -1750,6 +1764,23 @@ SUB __UI_KeyPress (id AS LONG)
SelectNewControl TempValue SelectNewControl TempValue
CASE 227 'Toggle __UI_ShowInvisibleControls CASE 227 'Toggle __UI_ShowInvisibleControls
__UI_ShowInvisibleControls = NOT __UI_ShowInvisibleControls __UI_ShowInvisibleControls = NOT __UI_ShowInvisibleControls
CASE 228 'Bind/unbind controls
DIM a$, b$, c$, found AS _BYTE
DIM i AS LONG, j AS LONG
FOR i = 1 TO UBOUND(Control)
IF Control(i).ControlIsSelected THEN
j = j + 1
IF j = 1 THEN
found = __UI_PropertyEnum(a$, Control(i).BoundProperty)
IF __UI_TotalSelectedControls = 1 THEN EXIT FOR
ELSEIF j = 2 THEN
found = __UI_PropertyEnum(b$, Control(i).BoundProperty)
EXIT FOR
END IF
END IF
NEXT
c$ = MKL$(LEN(a$)) + a$ + MKL$(LEN(b$)) + b$
SendData c$, "SHOWBINDCONTROLDIALOG"
END SELECT END SELECT
END SUB END SUB
@ -2674,6 +2705,8 @@ SUB LoadPreview (Destination AS _BYTE)
IF TempValue <= UBOUND(AutoPlayGif) THEN IF TempValue <= UBOUND(AutoPlayGif) THEN
AutoPlayGif(i) = True AutoPlayGif(i) = True
END IF END IF
CASE -47
Control(TempValue).ControlIsSelected = True
CASE -1 'new control CASE -1 'new control
IF LogFileLoad THEN PRINT #LogFileNum, "READ NEW CONTROL: -1" IF LogFileLoad THEN PRINT #LogFileNum, "READ NEW CONTROL: -1"
EXIT DO EXIT DO
@ -3502,6 +3535,18 @@ SUB SavePreview (Destination AS _BYTE)
END IF END IF
END IF END IF
END IF END IF
IF Control(i).ControlIsSelected THEN
b$ = MKI$(-47)
IF Disk THEN
PUT #BinFileNum, , b$
ELSE
Clip$ = Clip$ + b$
END IF
END IF
IF Control(i).BoundTo > 0 THEN
b$ = MKI$(-48) + MKI$(LEN(RTRIM$(Control(Control(i).BoundTo).Name))) + RTRIM$(Control(Control(i).BoundTo).Name)
IF Disk THEN PUT #BinFileNum, , b$ ELSE Clip$ = Clip$ + b$
END IF
END IF END IF
NEXT NEXT
NEXT NEXT
@ -3558,10 +3603,6 @@ SUB SavePreview (Destination AS _BYTE)
END SUB END SUB
SUB SendData (b$, thisCommand$) SUB SendData (b$, thisCommand$)
'DIM FileNum AS INTEGER
'FileNum = FREEFILE
'OPEN "InForm/UiEditor.dat" FOR BINARY AS #FileNum
b$ = UCASE$(thisCommand$) + ">" + b$ + "<END>" b$ = UCASE$(thisCommand$) + ">" + b$ + "<END>"
PUT #Host, , b$ PUT #Host, , b$
END SUB END SUB