mirror of
https://github.com/FellippeHeitor/InForm.git
synced 2025-01-15 11:59:34 +00:00
#41: Transfers Align routines from InForm.ui to UiEditorPreview.bas
This commit is contained in:
parent
51a745ec79
commit
15793320a3
2 changed files with 293 additions and 282 deletions
295
InForm/InForm.ui
295
InForm/InForm.ui
|
@ -196,7 +196,7 @@ DIM SHARED __UI_WaitMessage AS STRING, __UI_TotalSelectedControls AS LONG
|
|||
DIM SHARED __UI_WaitMessageHandle AS LONG
|
||||
DIM SHARED __UI_LastRenderedLineWidth AS LONG, __UI_LastRenderedCharCount AS LONG
|
||||
DIM SHARED __UI_SelectionRectangleTop AS INTEGER, __UI_SelectionRectangleLeft AS INTEGER
|
||||
DIM SHARED __UI_SelectionRectangle AS _BYTE, __UI_DesignModeAlignCommand AS INTEGER
|
||||
DIM SHARED __UI_SelectionRectangle AS _BYTE
|
||||
DIM SHARED __UI_CantShowContextMenu AS _BYTE, __UI_ShowPositionAndSize AS _BYTE
|
||||
DIM SHARED __UI_Snapped AS _BYTE
|
||||
DIM SHARED __UI_SnappedByProximityX AS _BYTE, __UI_SnappedByProximityY AS _BYTE
|
||||
|
@ -1305,23 +1305,6 @@ SUB __UI_EventDispatcher
|
|||
DIM i AS LONG, ThisItem%
|
||||
DIM ContainerOffsetLeft AS INTEGER, ContainerOffsetTop AS INTEGER
|
||||
|
||||
IF __UI_DesignModeAlignCommand > 0 THEN
|
||||
SELECT CASE __UI_DesignModeAlignCommand
|
||||
CASE 201: __UI_HoveringID = __UI_GetID("__UI_PreviewMenuALIGNLEFT")
|
||||
CASE 202: __UI_HoveringID = __UI_GetID("__UI_PreviewMenuALIGNRIGHT")
|
||||
CASE 203: __UI_HoveringID = __UI_GetID("__UI_PreviewMenuALIGNTOPS")
|
||||
CASE 204: __UI_HoveringID = __UI_GetID("__UI_PreviewMenuALIGNBOTTOMS")
|
||||
CASE 205: __UI_HoveringID = __UI_GetID("__UI_PreviewMenuALIGNCENTERSV")
|
||||
CASE 206: __UI_HoveringID = __UI_GetID("__UI_PreviewMenuALIGNCENTERSH")
|
||||
CASE 207: __UI_HoveringID = __UI_GetID("__UI_PreviewMenuALIGNCENTERV")
|
||||
CASE 208: __UI_HoveringID = __UI_GetID("__UI_PreviewMenuALIGNCENTERH")
|
||||
CASE 209: __UI_HoveringID = __UI_GetID("__UI_PreviewMenuDISTRIBUTEV")
|
||||
CASE 210: __UI_HoveringID = __UI_GetID("__UI_PreviewMenuDISTRIBUTEH")
|
||||
END SELECT
|
||||
__UI_DesignModeAlignCommand = 0
|
||||
GOTO ProcessHotKey
|
||||
END IF
|
||||
|
||||
IF __UI_HoveringID = 0 AND __UI_Focus = 0 THEN EXIT SUB
|
||||
|
||||
IF Control(__UI_HoveringID).ParentID > 0 AND Control(__UI_HoveringID).Type <> __UI_Type_MenuItem THEN
|
||||
|
@ -2316,271 +2299,25 @@ SUB __UI_EventDispatcher
|
|||
Control(__UI_Focus).TextIsSelected = True
|
||||
END IF
|
||||
CASE "__UI_PREVIEWMENUALIGNLEFT"
|
||||
IF __UI_TotalSelectedControls > 1 THEN
|
||||
DIM LeftMost AS INTEGER
|
||||
LeftMost = Control(__UI_FormID).Width
|
||||
FOR i = 1 TO UBOUND(Control)
|
||||
IF Control(i).ControlIsSelected THEN
|
||||
IF Control(i).Left < LeftMost THEN LeftMost = Control(i).Left
|
||||
END IF
|
||||
NEXT
|
||||
FOR i = 1 TO UBOUND(Control)
|
||||
IF Control(i).ControlIsSelected THEN
|
||||
__UI_Click 0 'Force the preview to inform it was edited
|
||||
Control(i).Left = LeftMost
|
||||
END IF
|
||||
NEXT
|
||||
END IF
|
||||
__UI_KeyPress 201
|
||||
CASE "__UI_PREVIEWMENUALIGNRIGHT"
|
||||
IF __UI_TotalSelectedControls > 1 THEN
|
||||
DIM RightMost AS INTEGER
|
||||
RightMost = 0
|
||||
FOR i = 1 TO UBOUND(Control)
|
||||
IF Control(i).ControlIsSelected THEN
|
||||
IF Control(i).Left + Control(i).Width - 1 > RightMost THEN RightMost = Control(i).Left + Control(i).Width - 1
|
||||
END IF
|
||||
NEXT
|
||||
FOR i = 1 TO UBOUND(Control)
|
||||
IF Control(i).ControlIsSelected THEN
|
||||
__UI_Click 0 'Force the preview to inform it was edited
|
||||
Control(i).Left = RightMost - (Control(i).Width - 1)
|
||||
END IF
|
||||
NEXT
|
||||
END IF
|
||||
CASE "__UI_PREVIEWMENUALIGNCENTERV"
|
||||
IF __UI_TotalSelectedControls = 1 THEN
|
||||
IF Control(__UI_FirstSelectedID).ParentID = 0 THEN
|
||||
Control(__UI_FirstSelectedID).Top = Control(__UI_FormID).Height / 2 - Control(__UI_FirstSelectedID).Height / 2
|
||||
ELSE
|
||||
Control(__UI_FirstSelectedID).Top = Control(Control(__UI_FirstSelectedID).ParentID).Height / 2 - Control(__UI_FirstSelectedID).Height / 2
|
||||
END IF
|
||||
ELSEIF __UI_TotalSelectedControls > 1 THEN
|
||||
DIM TopMost AS INTEGER, BottomMost AS INTEGER, SelectionHeight AS INTEGER
|
||||
DIM TopDifference AS INTEGER, NewTopMost AS INTEGER
|
||||
IF Control(__UI_FirstSelectedID).ParentID = 0 THEN
|
||||
TopMost = Control(__UI_FormID).Height
|
||||
ELSE
|
||||
TopMost = Control(Control(__UI_FirstSelectedID).ParentID).Height
|
||||
END IF
|
||||
BottomMost = 0
|
||||
FOR i = 1 TO UBOUND(Control)
|
||||
IF Control(i).ControlIsSelected THEN
|
||||
__UI_Click 0 'Force the preview to inform it was edited
|
||||
IF Control(i).Top < TopMost THEN TopMost = Control(i).Top
|
||||
IF Control(i).Top + Control(i).Height - 1 > BottomMost THEN BottomMost = Control(i).Top + Control(i).Height - 1
|
||||
END IF
|
||||
NEXT
|
||||
SelectionHeight = BottomMost - TopMost
|
||||
IF Control(__UI_FirstSelectedID).ParentID = 0 THEN
|
||||
NewTopMost = Control(__UI_FormID).Height / 2 - SelectionHeight / 2
|
||||
ELSE
|
||||
NewTopMost = Control(Control(__UI_FirstSelectedID).ParentID).Height / 2 - SelectionHeight / 2
|
||||
END IF
|
||||
TopDifference = TopMost - NewTopMost
|
||||
FOR i = 1 TO UBOUND(Control)
|
||||
IF Control(i).ControlIsSelected THEN
|
||||
__UI_Click 0 'Force the preview to inform it was edited
|
||||
Control(i).Top = Control(i).Top - TopDifference
|
||||
END IF
|
||||
NEXT
|
||||
END IF
|
||||
CASE "__UI_PREVIEWMENUALIGNCENTERH"
|
||||
IF __UI_TotalSelectedControls = 1 THEN
|
||||
IF Control(__UI_FirstSelectedID).ParentID = 0 THEN
|
||||
Control(__UI_FirstSelectedID).Left = Control(__UI_FormID).Width / 2 - Control(__UI_FirstSelectedID).Width / 2
|
||||
ELSE
|
||||
Control(__UI_FirstSelectedID).Left = Control(Control(__UI_FirstSelectedID).ParentID).Width / 2 - Control(__UI_FirstSelectedID).Width / 2
|
||||
END IF
|
||||
ELSEIF __UI_TotalSelectedControls > 1 THEN
|
||||
DIM SelectionWidth AS INTEGER
|
||||
DIM LeftDifference AS INTEGER, NewLeftMost AS INTEGER
|
||||
IF Control(__UI_FirstSelectedID).ParentID = 0 THEN
|
||||
LeftMost = Control(__UI_FormID).Width
|
||||
ELSE
|
||||
LeftMost = Control(Control(__UI_FirstSelectedID).ParentID).Width
|
||||
END IF
|
||||
RightMost = 0
|
||||
FOR i = 1 TO UBOUND(Control)
|
||||
IF Control(i).ControlIsSelected THEN
|
||||
IF Control(i).Left < LeftMost THEN LeftMost = Control(i).Left
|
||||
IF Control(i).Left + Control(i).Width - 1 > RightMost THEN RightMost = Control(i).Left + Control(i).Width - 1
|
||||
END IF
|
||||
NEXT
|
||||
SelectionWidth = RightMost - LeftMost
|
||||
IF Control(__UI_FirstSelectedID).ParentID = 0 THEN
|
||||
NewLeftMost = Control(__UI_FormID).Width / 2 - SelectionWidth / 2
|
||||
ELSE
|
||||
NewLeftMost = Control(Control(__UI_FirstSelectedID).ParentID).Width / 2 - SelectionWidth / 2
|
||||
END IF
|
||||
LeftDifference = LeftMost - NewLeftMost
|
||||
FOR i = 1 TO UBOUND(Control)
|
||||
IF Control(i).ControlIsSelected THEN
|
||||
__UI_Click 0 'Force the preview to inform it was edited
|
||||
Control(i).Left = Control(i).Left - LeftDifference
|
||||
END IF
|
||||
NEXT
|
||||
END IF
|
||||
CASE "__UI_PREVIEWMENUALIGNCENTERSV"
|
||||
IF __UI_TotalSelectedControls > 1 THEN
|
||||
IF Control(__UI_FirstSelectedID).ParentID = 0 THEN
|
||||
TopMost = Control(__UI_FormID).Height
|
||||
ELSE
|
||||
TopMost = Control(Control(__UI_FirstSelectedID).ParentID).Height
|
||||
END IF
|
||||
BottomMost = 0
|
||||
FOR i = 1 TO UBOUND(Control)
|
||||
IF Control(i).ControlIsSelected THEN
|
||||
IF Control(i).Top < TopMost THEN TopMost = Control(i).Top
|
||||
IF Control(i).Top + Control(i).Height - 1 > BottomMost THEN BottomMost = Control(i).Top + Control(i).Height - 1
|
||||
END IF
|
||||
NEXT
|
||||
SelectionHeight = BottomMost - TopMost
|
||||
NewTopMost = TopMost + SelectionHeight / 2
|
||||
FOR i = 1 TO UBOUND(Control)
|
||||
IF Control(i).ControlIsSelected THEN
|
||||
__UI_Click 0 'Force the preview to inform it was edited
|
||||
Control(i).Top = NewTopMost - Control(i).Height / 2
|
||||
END IF
|
||||
NEXT
|
||||
END IF
|
||||
CASE "__UI_PREVIEWMENUALIGNCENTERSH"
|
||||
IF __UI_TotalSelectedControls > 1 THEN
|
||||
IF Control(__UI_FirstSelectedID).ParentID = 0 THEN
|
||||
LeftMost = Control(__UI_FormID).Width
|
||||
ELSE
|
||||
LeftMost = Control(Control(__UI_FirstSelectedID).ParentID).Width
|
||||
END IF
|
||||
RightMost = 0
|
||||
FOR i = 1 TO UBOUND(Control)
|
||||
IF Control(i).ControlIsSelected THEN
|
||||
IF Control(i).Left < LeftMost THEN LeftMost = Control(i).Left
|
||||
IF Control(i).Left + Control(i).Width - 1 > RightMost THEN RightMost = Control(i).Left + Control(i).Width - 1
|
||||
END IF
|
||||
NEXT
|
||||
SelectionWidth = RightMost - LeftMost
|
||||
NewLeftMost = LeftMost + SelectionWidth / 2
|
||||
FOR i = 1 TO UBOUND(Control)
|
||||
IF Control(i).ControlIsSelected THEN
|
||||
__UI_Click 0 'Force the preview to inform it was edited
|
||||
Control(i).Left = NewLeftMost - Control(i).Width / 2
|
||||
END IF
|
||||
NEXT
|
||||
END IF
|
||||
__UI_KeyPress 202
|
||||
CASE "__UI_PREVIEWMENUALIGNTOPS"
|
||||
IF __UI_TotalSelectedControls > 1 THEN
|
||||
TopMost = Control(__UI_FormID).Height
|
||||
FOR i = 1 TO UBOUND(Control)
|
||||
IF Control(i).ControlIsSelected THEN
|
||||
IF Control(i).Top < TopMost THEN TopMost = Control(i).Top
|
||||
END IF
|
||||
NEXT
|
||||
FOR i = 1 TO UBOUND(Control)
|
||||
IF Control(i).ControlIsSelected THEN
|
||||
__UI_Click 0 'Force the preview to inform it was edited
|
||||
Control(i).Top = TopMost
|
||||
END IF
|
||||
NEXT
|
||||
END IF
|
||||
__UI_KeyPress 203
|
||||
CASE "__UI_PREVIEWMENUALIGNBOTTOMS"
|
||||
IF __UI_TotalSelectedControls > 1 THEN
|
||||
BottomMost = 0
|
||||
FOR i = 1 TO UBOUND(Control)
|
||||
IF Control(i).ControlIsSelected THEN
|
||||
IF Control(i).Top + Control(i).Height - 1 > BottomMost THEN BottomMost = Control(i).Top + Control(i).Height - 1
|
||||
END IF
|
||||
NEXT
|
||||
FOR i = 1 TO UBOUND(Control)
|
||||
IF Control(i).ControlIsSelected THEN
|
||||
__UI_Click 0 'Force the preview to inform it was edited
|
||||
Control(i).Top = BottomMost - (Control(i).Height - 1)
|
||||
END IF
|
||||
NEXT
|
||||
END IF
|
||||
CASE "__UI_PREVIEWMENUDISTRIBUTEH"
|
||||
'Build a sublist containing the selected controls in the order they
|
||||
'are currently placed horizontally:
|
||||
REDIM SubList(1 TO __UI_TotalSelectedControls) AS LONG
|
||||
DIM FindLefts AS INTEGER, NextControlToDistribute AS LONG
|
||||
DIM TotalSpace AS INTEGER, BinSize AS INTEGER
|
||||
|
||||
__UI_AutoRefresh = False
|
||||
FOR FindLefts = 0 TO Control(__UI_FormID).Width - 1
|
||||
FOR i = 1 TO UBOUND(Control)
|
||||
IF Control(i).ControlIsSelected AND Control(i).Left = FindLefts THEN
|
||||
IF NextControlToDistribute > 0 THEN
|
||||
IF SubList(NextControlToDistribute) <> i THEN
|
||||
NextControlToDistribute = NextControlToDistribute + 1
|
||||
SubList(NextControlToDistribute) = i
|
||||
EXIT FOR
|
||||
END IF
|
||||
ELSE
|
||||
NextControlToDistribute = NextControlToDistribute + 1
|
||||
SubList(NextControlToDistribute) = i
|
||||
EXIT FOR
|
||||
END IF
|
||||
END IF
|
||||
NEXT
|
||||
IF NextControlToDistribute = __UI_TotalSelectedControls THEN EXIT FOR
|
||||
NEXT
|
||||
|
||||
TotalSpace = (Control(SubList(__UI_TotalSelectedControls)).Left + Control(SubList(__UI_TotalSelectedControls)).Width) - Control(SubList(1)).Left
|
||||
FOR i = 1 TO __UI_TotalSelectedControls
|
||||
TotalSpace = TotalSpace - Control(SubList(i)).Width
|
||||
NEXT
|
||||
|
||||
BinSize = TotalSpace \ (__UI_TotalSelectedControls - 1)
|
||||
FindLefts = Control(SubList(1)).Left - BinSize
|
||||
FOR i = 1 TO __UI_TotalSelectedControls
|
||||
__UI_Click 0 'Force the preview to inform it was edited
|
||||
FindLefts = FindLefts + BinSize
|
||||
Control(SubList(i)).Left = FindLefts
|
||||
FindLefts = FindLefts + Control(SubList(i)).Width
|
||||
NEXT
|
||||
|
||||
__UI_AutoRefresh = True
|
||||
__UI_ForceRedraw = True
|
||||
__UI_KeyPress 204
|
||||
CASE "__UI_PREVIEWMENUALIGNCENTERSV"
|
||||
__UI_KeyPress 205
|
||||
CASE "__UI_PREVIEWMENUALIGNCENTERSH"
|
||||
__UI_KeyPress 206
|
||||
CASE "__UI_PREVIEWMENUALIGNCENTERV"
|
||||
__UI_KeyPress 207
|
||||
CASE "__UI_PREVIEWMENUALIGNCENTERH"
|
||||
__UI_KeyPress 208
|
||||
CASE "__UI_PREVIEWMENUDISTRIBUTEV"
|
||||
'Build a sublist containing the selected controls in the order they
|
||||
'are currently placed vertically:
|
||||
REDIM SubList(1 TO __UI_TotalSelectedControls) AS LONG
|
||||
DIM FindTops AS INTEGER
|
||||
|
||||
__UI_AutoRefresh = False
|
||||
FOR FindTops = 0 TO Control(__UI_FormID).Height - 1
|
||||
FOR i = 1 TO UBOUND(Control)
|
||||
IF Control(i).ControlIsSelected AND Control(i).Top = FindTops THEN
|
||||
IF NextControlToDistribute > 0 THEN
|
||||
IF SubList(NextControlToDistribute) <> i THEN
|
||||
NextControlToDistribute = NextControlToDistribute + 1
|
||||
SubList(NextControlToDistribute) = i
|
||||
EXIT FOR
|
||||
END IF
|
||||
ELSE
|
||||
NextControlToDistribute = NextControlToDistribute + 1
|
||||
SubList(NextControlToDistribute) = i
|
||||
EXIT FOR
|
||||
END IF
|
||||
END IF
|
||||
NEXT
|
||||
IF NextControlToDistribute = __UI_TotalSelectedControls THEN EXIT FOR
|
||||
NEXT
|
||||
|
||||
TotalSpace = (Control(SubList(__UI_TotalSelectedControls)).Top + Control(SubList(__UI_TotalSelectedControls)).Height) - Control(SubList(1)).Top
|
||||
FOR i = 1 TO __UI_TotalSelectedControls
|
||||
TotalSpace = TotalSpace - Control(SubList(i)).Height
|
||||
NEXT
|
||||
|
||||
BinSize = TotalSpace \ (__UI_TotalSelectedControls - 1)
|
||||
FindTops = Control(SubList(1)).Top - BinSize
|
||||
FOR i = 1 TO __UI_TotalSelectedControls
|
||||
__UI_Click 0 'Force the preview to inform it was edited
|
||||
FindTops = FindTops + BinSize
|
||||
Control(SubList(i)).Top = FindTops
|
||||
FindTops = FindTops + Control(SubList(i)).Height
|
||||
NEXT
|
||||
|
||||
__UI_AutoRefresh = True
|
||||
__UI_ForceRedraw = True
|
||||
__UI_KeyPress 209
|
||||
CASE "__UI_PREVIEWMENUDISTRIBUTEH"
|
||||
__UI_KeyPress 210
|
||||
CASE "__UI_PREVIEWMENUIMAGEORIGINALSIZE"
|
||||
IF LEN(Text(__UI_FirstSelectedID)) THEN
|
||||
__UI_RestoreImageOriginalSize
|
||||
|
|
|
@ -40,7 +40,7 @@ CONST EmptyForm$ = "9iVA_9GK1P<000`ooO7000@00D006mVL]53;1`B000000000noO100006mVL
|
|||
' 203 = Align Tops
|
||||
' 204 = Align Bottoms
|
||||
' 205 = Align Centers Vertically
|
||||
' 206 = Align Center Horizontally
|
||||
' 206 = Align Centers Horizontally
|
||||
' 207 = Align Center Vertically (to form)
|
||||
' 208 = Align Center Horizontally (to form)
|
||||
' 209 = Align Distribute Vertically
|
||||
|
@ -855,8 +855,7 @@ SUB __UI_BeforeUpdateDisplay
|
|||
NEXT
|
||||
CASE 201 TO 210
|
||||
'Alignment commands
|
||||
__UI_DesignModeAlignCommand = TempValue
|
||||
__UI_HasInput = True
|
||||
DoAlign TempValue
|
||||
CASE 211, 212 'Z-Ordering -> Move up/down
|
||||
DIM tID1 AS LONG, tID2 AS LONG
|
||||
a$ = SPACE$(4): GET #UiEditorFile, OffsetPropertyValue, a$
|
||||
|
@ -966,6 +965,8 @@ END SUB
|
|||
|
||||
SUB __UI_KeyPress (id AS LONG)
|
||||
SELECT CASE id
|
||||
CASE 201 TO 210
|
||||
DoAlign id
|
||||
CASE 214
|
||||
RestoreUndoImage
|
||||
CASE 215
|
||||
|
@ -986,6 +987,279 @@ SUB __UI_KeyPress (id AS LONG)
|
|||
END SELECT
|
||||
END SUB
|
||||
|
||||
SUB DoAlign (AlignMode AS INTEGER)
|
||||
DIM i AS LONG
|
||||
DIM LeftMost AS INTEGER
|
||||
DIM RightMost AS INTEGER
|
||||
DIM TopMost AS INTEGER, BottomMost AS INTEGER, SelectionHeight AS INTEGER
|
||||
DIM TopDifference AS INTEGER, NewTopMost AS INTEGER
|
||||
DIM SelectionWidth AS INTEGER
|
||||
DIM LeftDifference AS INTEGER, NewLeftMost AS INTEGER
|
||||
DIM FindTops AS INTEGER
|
||||
DIM FindLefts AS INTEGER, NextControlToDistribute AS LONG
|
||||
DIM TotalSpace AS INTEGER, BinSize AS INTEGER
|
||||
|
||||
SELECT CASE AlignMode
|
||||
CASE 201 'Lefts
|
||||
IF __UI_TotalSelectedControls > 1 THEN
|
||||
LeftMost = Control(__UI_FormID).Width
|
||||
FOR i = 1 TO UBOUND(Control)
|
||||
IF Control(i).ControlIsSelected THEN
|
||||
IF Control(i).Left < LeftMost THEN LeftMost = Control(i).Left
|
||||
END IF
|
||||
NEXT
|
||||
FOR i = 1 TO UBOUND(Control)
|
||||
IF Control(i).ControlIsSelected THEN
|
||||
__UI_Click 0 'Force the preview to inform it was edited
|
||||
Control(i).Left = LeftMost
|
||||
END IF
|
||||
NEXT
|
||||
END IF
|
||||
CASE 202 'Rights
|
||||
IF __UI_TotalSelectedControls > 1 THEN
|
||||
RightMost = 0
|
||||
FOR i = 1 TO UBOUND(Control)
|
||||
IF Control(i).ControlIsSelected THEN
|
||||
IF Control(i).Left + Control(i).Width - 1 > RightMost THEN RightMost = Control(i).Left + Control(i).Width - 1
|
||||
END IF
|
||||
NEXT
|
||||
FOR i = 1 TO UBOUND(Control)
|
||||
IF Control(i).ControlIsSelected THEN
|
||||
__UI_Click 0 'Force the preview to inform it was edited
|
||||
Control(i).Left = RightMost - (Control(i).Width - 1)
|
||||
END IF
|
||||
NEXT
|
||||
END IF
|
||||
CASE 203 'Tops
|
||||
IF __UI_TotalSelectedControls > 1 THEN
|
||||
TopMost = Control(__UI_FormID).Height
|
||||
FOR i = 1 TO UBOUND(Control)
|
||||
IF Control(i).ControlIsSelected THEN
|
||||
IF Control(i).Top < TopMost THEN TopMost = Control(i).Top
|
||||
END IF
|
||||
NEXT
|
||||
FOR i = 1 TO UBOUND(Control)
|
||||
IF Control(i).ControlIsSelected THEN
|
||||
__UI_Click 0 'Force the preview to inform it was edited
|
||||
Control(i).Top = TopMost
|
||||
END IF
|
||||
NEXT
|
||||
END IF
|
||||
CASE 204 'Bottoms
|
||||
IF __UI_TotalSelectedControls > 1 THEN
|
||||
BottomMost = 0
|
||||
FOR i = 1 TO UBOUND(Control)
|
||||
IF Control(i).ControlIsSelected THEN
|
||||
IF Control(i).Top + Control(i).Height - 1 > BottomMost THEN BottomMost = Control(i).Top + Control(i).Height - 1
|
||||
END IF
|
||||
NEXT
|
||||
FOR i = 1 TO UBOUND(Control)
|
||||
IF Control(i).ControlIsSelected THEN
|
||||
__UI_Click 0 'Force the preview to inform it was edited
|
||||
Control(i).Top = BottomMost - (Control(i).Height - 1)
|
||||
END IF
|
||||
NEXT
|
||||
END IF
|
||||
CASE 205 'Centers vertically
|
||||
IF __UI_TotalSelectedControls > 1 THEN
|
||||
IF Control(__UI_FirstSelectedID).ParentID = 0 THEN
|
||||
TopMost = Control(__UI_FormID).Height
|
||||
ELSE
|
||||
TopMost = Control(Control(__UI_FirstSelectedID).ParentID).Height
|
||||
END IF
|
||||
BottomMost = 0
|
||||
FOR i = 1 TO UBOUND(Control)
|
||||
IF Control(i).ControlIsSelected THEN
|
||||
IF Control(i).Top < TopMost THEN TopMost = Control(i).Top
|
||||
IF Control(i).Top + Control(i).Height - 1 > BottomMost THEN BottomMost = Control(i).Top + Control(i).Height - 1
|
||||
END IF
|
||||
NEXT
|
||||
SelectionHeight = BottomMost - TopMost
|
||||
NewTopMost = TopMost + SelectionHeight / 2
|
||||
FOR i = 1 TO UBOUND(Control)
|
||||
IF Control(i).ControlIsSelected THEN
|
||||
__UI_Click 0 'Force the preview to inform it was edited
|
||||
Control(i).Top = NewTopMost - Control(i).Height / 2
|
||||
END IF
|
||||
NEXT
|
||||
END IF
|
||||
CASE 206 'Centers horizontally
|
||||
IF __UI_TotalSelectedControls > 1 THEN
|
||||
IF Control(__UI_FirstSelectedID).ParentID = 0 THEN
|
||||
LeftMost = Control(__UI_FormID).Width
|
||||
ELSE
|
||||
LeftMost = Control(Control(__UI_FirstSelectedID).ParentID).Width
|
||||
END IF
|
||||
RightMost = 0
|
||||
FOR i = 1 TO UBOUND(Control)
|
||||
IF Control(i).ControlIsSelected THEN
|
||||
IF Control(i).Left < LeftMost THEN LeftMost = Control(i).Left
|
||||
IF Control(i).Left + Control(i).Width - 1 > RightMost THEN RightMost = Control(i).Left + Control(i).Width - 1
|
||||
END IF
|
||||
NEXT
|
||||
SelectionWidth = RightMost - LeftMost
|
||||
NewLeftMost = LeftMost + SelectionWidth / 2
|
||||
FOR i = 1 TO UBOUND(Control)
|
||||
IF Control(i).ControlIsSelected THEN
|
||||
__UI_Click 0 'Force the preview to inform it was edited
|
||||
Control(i).Left = NewLeftMost - Control(i).Width / 2
|
||||
END IF
|
||||
NEXT
|
||||
END IF
|
||||
CASE 207 'Center vertically to form
|
||||
IF __UI_TotalSelectedControls = 1 THEN
|
||||
IF Control(__UI_FirstSelectedID).ParentID = 0 THEN
|
||||
Control(__UI_FirstSelectedID).Top = Control(__UI_FormID).Height / 2 - Control(__UI_FirstSelectedID).Height / 2
|
||||
ELSE
|
||||
Control(__UI_FirstSelectedID).Top = Control(Control(__UI_FirstSelectedID).ParentID).Height / 2 - Control(__UI_FirstSelectedID).Height / 2
|
||||
END IF
|
||||
ELSEIF __UI_TotalSelectedControls > 1 THEN
|
||||
IF Control(__UI_FirstSelectedID).ParentID = 0 THEN
|
||||
TopMost = Control(__UI_FormID).Height
|
||||
ELSE
|
||||
TopMost = Control(Control(__UI_FirstSelectedID).ParentID).Height
|
||||
END IF
|
||||
BottomMost = 0
|
||||
FOR i = 1 TO UBOUND(Control)
|
||||
IF Control(i).ControlIsSelected THEN
|
||||
__UI_Click 0 'Force the preview to inform it was edited
|
||||
IF Control(i).Top < TopMost THEN TopMost = Control(i).Top
|
||||
IF Control(i).Top + Control(i).Height - 1 > BottomMost THEN BottomMost = Control(i).Top + Control(i).Height - 1
|
||||
END IF
|
||||
NEXT
|
||||
SelectionHeight = BottomMost - TopMost
|
||||
IF Control(__UI_FirstSelectedID).ParentID = 0 THEN
|
||||
NewTopMost = Control(__UI_FormID).Height / 2 - SelectionHeight / 2
|
||||
ELSE
|
||||
NewTopMost = Control(Control(__UI_FirstSelectedID).ParentID).Height / 2 - SelectionHeight / 2
|
||||
END IF
|
||||
TopDifference = TopMost - NewTopMost
|
||||
FOR i = 1 TO UBOUND(Control)
|
||||
IF Control(i).ControlIsSelected THEN
|
||||
__UI_Click 0 'Force the preview to inform it was edited
|
||||
Control(i).Top = Control(i).Top - TopDifference
|
||||
END IF
|
||||
NEXT
|
||||
END IF
|
||||
CASE 208 'Center horizontally to form
|
||||
IF __UI_TotalSelectedControls = 1 THEN
|
||||
IF Control(__UI_FirstSelectedID).ParentID = 0 THEN
|
||||
Control(__UI_FirstSelectedID).Left = Control(__UI_FormID).Width / 2 - Control(__UI_FirstSelectedID).Width / 2
|
||||
ELSE
|
||||
Control(__UI_FirstSelectedID).Left = Control(Control(__UI_FirstSelectedID).ParentID).Width / 2 - Control(__UI_FirstSelectedID).Width / 2
|
||||
END IF
|
||||
ELSEIF __UI_TotalSelectedControls > 1 THEN
|
||||
IF Control(__UI_FirstSelectedID).ParentID = 0 THEN
|
||||
LeftMost = Control(__UI_FormID).Width
|
||||
ELSE
|
||||
LeftMost = Control(Control(__UI_FirstSelectedID).ParentID).Width
|
||||
END IF
|
||||
RightMost = 0
|
||||
FOR i = 1 TO UBOUND(Control)
|
||||
IF Control(i).ControlIsSelected THEN
|
||||
IF Control(i).Left < LeftMost THEN LeftMost = Control(i).Left
|
||||
IF Control(i).Left + Control(i).Width - 1 > RightMost THEN RightMost = Control(i).Left + Control(i).Width - 1
|
||||
END IF
|
||||
NEXT
|
||||
SelectionWidth = RightMost - LeftMost
|
||||
IF Control(__UI_FirstSelectedID).ParentID = 0 THEN
|
||||
NewLeftMost = Control(__UI_FormID).Width / 2 - SelectionWidth / 2
|
||||
ELSE
|
||||
NewLeftMost = Control(Control(__UI_FirstSelectedID).ParentID).Width / 2 - SelectionWidth / 2
|
||||
END IF
|
||||
LeftDifference = LeftMost - NewLeftMost
|
||||
FOR i = 1 TO UBOUND(Control)
|
||||
IF Control(i).ControlIsSelected THEN
|
||||
__UI_Click 0 'Force the preview to inform it was edited
|
||||
Control(i).Left = Control(i).Left - LeftDifference
|
||||
END IF
|
||||
NEXT
|
||||
END IF
|
||||
CASE 209 'Distribute vertically
|
||||
'Build a sublist containing the selected controls in the order they
|
||||
'are currently placed vertically:
|
||||
|
||||
REDIM SubList(1 TO __UI_TotalSelectedControls) AS LONG
|
||||
__UI_AutoRefresh = False
|
||||
FOR FindTops = 0 TO Control(__UI_FormID).Height - 1
|
||||
FOR i = 1 TO UBOUND(Control)
|
||||
IF Control(i).ControlIsSelected AND Control(i).Top = FindTops THEN
|
||||
IF NextControlToDistribute > 0 THEN
|
||||
IF SubList(NextControlToDistribute) <> i THEN
|
||||
NextControlToDistribute = NextControlToDistribute + 1
|
||||
SubList(NextControlToDistribute) = i
|
||||
EXIT FOR
|
||||
END IF
|
||||
ELSE
|
||||
NextControlToDistribute = NextControlToDistribute + 1
|
||||
SubList(NextControlToDistribute) = i
|
||||
EXIT FOR
|
||||
END IF
|
||||
END IF
|
||||
NEXT
|
||||
IF NextControlToDistribute = __UI_TotalSelectedControls THEN EXIT FOR
|
||||
NEXT
|
||||
|
||||
TotalSpace = (Control(SubList(__UI_TotalSelectedControls)).Top + Control(SubList(__UI_TotalSelectedControls)).Height) - Control(SubList(1)).Top
|
||||
FOR i = 1 TO __UI_TotalSelectedControls
|
||||
TotalSpace = TotalSpace - Control(SubList(i)).Height
|
||||
NEXT
|
||||
|
||||
BinSize = TotalSpace \ (__UI_TotalSelectedControls - 1)
|
||||
FindTops = Control(SubList(1)).Top - BinSize
|
||||
FOR i = 1 TO __UI_TotalSelectedControls
|
||||
__UI_Click 0 'Force the preview to inform it was edited
|
||||
FindTops = FindTops + BinSize
|
||||
Control(SubList(i)).Top = FindTops
|
||||
FindTops = FindTops + Control(SubList(i)).Height
|
||||
NEXT
|
||||
|
||||
__UI_AutoRefresh = True
|
||||
__UI_ForceRedraw = True
|
||||
CASE 210 'Distribute horizontally
|
||||
'Build a sublist containing the selected controls in the order they
|
||||
'are currently placed horizontally:
|
||||
|
||||
REDIM SubList(1 TO __UI_TotalSelectedControls) AS LONG
|
||||
__UI_AutoRefresh = False
|
||||
FOR FindLefts = 0 TO Control(__UI_FormID).Width - 1
|
||||
FOR i = 1 TO UBOUND(Control)
|
||||
IF Control(i).ControlIsSelected AND Control(i).Left = FindLefts THEN
|
||||
IF NextControlToDistribute > 0 THEN
|
||||
IF SubList(NextControlToDistribute) <> i THEN
|
||||
NextControlToDistribute = NextControlToDistribute + 1
|
||||
SubList(NextControlToDistribute) = i
|
||||
EXIT FOR
|
||||
END IF
|
||||
ELSE
|
||||
NextControlToDistribute = NextControlToDistribute + 1
|
||||
SubList(NextControlToDistribute) = i
|
||||
EXIT FOR
|
||||
END IF
|
||||
END IF
|
||||
NEXT
|
||||
IF NextControlToDistribute = __UI_TotalSelectedControls THEN EXIT FOR
|
||||
NEXT
|
||||
|
||||
TotalSpace = (Control(SubList(__UI_TotalSelectedControls)).Left + Control(SubList(__UI_TotalSelectedControls)).Width) - Control(SubList(1)).Left
|
||||
FOR i = 1 TO __UI_TotalSelectedControls
|
||||
TotalSpace = TotalSpace - Control(SubList(i)).Width
|
||||
NEXT
|
||||
|
||||
BinSize = TotalSpace \ (__UI_TotalSelectedControls - 1)
|
||||
FindLefts = Control(SubList(1)).Left - BinSize
|
||||
FOR i = 1 TO __UI_TotalSelectedControls
|
||||
__UI_Click 0 'Force the preview to inform it was edited
|
||||
FindLefts = FindLefts + BinSize
|
||||
Control(SubList(i)).Left = FindLefts
|
||||
FindLefts = FindLefts + Control(SubList(i)).Width
|
||||
NEXT
|
||||
|
||||
__UI_AutoRefresh = True
|
||||
__UI_ForceRedraw = True
|
||||
END SELECT
|
||||
END SUB
|
||||
|
||||
SUB SelectAllControls
|
||||
DIM i AS LONG
|
||||
IF __UI_TotalSelectedControls = 1 AND Control(__UI_FirstSelectedID).Type = __UI_Type_Frame THEN
|
||||
|
|
Loading…
Reference in a new issue