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

Centralizes the detection of control type in the preview component.

Sending .ControlIsSelected was adding too many undesired UndoPointers.
This commit is contained in:
FellippeHeitor 2018-08-22 00:59:16 -03:00
parent 634c8eaab4
commit cc86ebda32
2 changed files with 39 additions and 30 deletions

View file

@ -858,7 +858,7 @@ SUB __UI_BeforeUpdateDisplay
DIM thisData$, thisCommand$ DIM thisData$, thisCommand$
STATIC OriginalImageWidth AS INTEGER, OriginalImageHeight AS INTEGER STATIC OriginalImageWidth AS INTEGER, OriginalImageHeight AS INTEGER
STATIC PrevFirstSelected AS LONG, PreviewHasMenuActive AS INTEGER STATIC PrevFirstSelected AS LONG, PreviewHasMenuActive AS INTEGER
STATIC CheckUpdateDone AS _BYTE STATIC CheckUpdateDone AS _BYTE, ThisControlTurnsInto AS INTEGER
STATIC LastChange AS SINGLE STATIC LastChange AS SINGLE
IF TIMER - BlinkStatusBar < 1 THEN IF TIMER - BlinkStatusBar < 1 THEN
@ -1091,6 +1091,8 @@ SUB __UI_BeforeUpdateDisplay
OriginalImageWidth = CVI(thisData$) OriginalImageWidth = CVI(thisData$)
CASE "ORIGINALIMAGEHEIGHT" CASE "ORIGINALIMAGEHEIGHT"
OriginalImageHeight = CVI(thisData$) OriginalImageHeight = CVI(thisData$)
CASE "TURNSINTO"
ThisControlTurnsInto = CVI(thisData$)
CASE "SELECTIONRECTANGLE" CASE "SELECTIONRECTANGLE"
PreviewSelectionRectangle = CVI(thisData$) PreviewSelectionRectangle = CVI(thisData$)
LoseFocus LoseFocus
@ -1128,6 +1130,14 @@ SUB __UI_BeforeUpdateDisplay
END IF END IF
END IF END IF
IF ThisControlTurnsInto > 0 THEN
Control(EditMenuConvertType).Disabled = False
SetCaption EditMenuConvertType, "Co&nvert to " + RTRIM$(__UI_Type(ThisControlTurnsInto).Name)
ELSE
Control(EditMenuConvertType).Disabled = True
SetCaption EditMenuConvertType, "Co&nvert type"
END IF
DO WHILE LEN(Signal$) DO WHILE LEN(Signal$)
'signals -1 and -3 deprecated for now 'signals -1 and -3 deprecated for now
b$ = LEFT$(Signal$, 2) b$ = LEFT$(Signal$, 2)
@ -1226,8 +1236,6 @@ SUB __UI_BeforeUpdateDisplay
Control(InsertMenuMenuItem).Disabled = True Control(InsertMenuMenuItem).Disabled = True
END IF END IF
Control(EditMenuConvertType).Disabled = True
SetCaption EditMenuConvertType, "Co&nvert type"
Control(EditMenuSetDefaultButton).Disabled = True Control(EditMenuSetDefaultButton).Disabled = True
Control(EditMenuSetDefaultButton).Value = False Control(EditMenuSetDefaultButton).Value = False
Control(EditMenuAllowMinMax).Disabled = True Control(EditMenuAllowMinMax).Disabled = True
@ -1310,13 +1318,7 @@ SUB __UI_BeforeUpdateDisplay
IF INSTR(PreviewControls(FirstSelected).Name, "NumericTextBox") = 0 THEN Caption(ControlProperties) = "Control properties (Type = NumericTextBox):" IF INSTR(PreviewControls(FirstSelected).Name, "NumericTextBox") = 0 THEN Caption(ControlProperties) = "Control properties (Type = NumericTextBox):"
END IF END IF
END IF END IF
IF __UI_Type(PreviewControls(FirstSelected).Type).TurnsInto THEN
Control(EditMenuConvertType).Disabled = False
SetCaption EditMenuConvertType, "Co&nvert to " + RTRIM$(__UI_Type(__UI_Type(PreviewControls(FirstSelected).Type).TurnsInto).Name)
END IF
END IF END IF
ELSEIF TotalSelected = 2 THEN ELSEIF TotalSelected = 2 THEN
Caption(ControlProperties) = "Control properties: (multiple selection)" Caption(ControlProperties) = "Control properties: (multiple selection)"
@ -1334,8 +1336,6 @@ SUB __UI_BeforeUpdateDisplay
Control(AlignMenuAlignCentersH).Disabled = False Control(AlignMenuAlignCentersH).Disabled = False
Control(AlignMenuDistributeV).Disabled = True Control(AlignMenuDistributeV).Disabled = True
Control(AlignMenuDistributeH).Disabled = True Control(AlignMenuDistributeH).Disabled = True
GOTO EnableConvertMenuItem
ELSE ELSE
SetCaption ControlProperties, "Control properties: (multiple selection)" SetCaption ControlProperties, "Control properties: (multiple selection)"
@ -1353,25 +1353,6 @@ SUB __UI_BeforeUpdateDisplay
Control(AlignMenuAlignCentersH).Disabled = False Control(AlignMenuAlignCentersH).Disabled = False
Control(AlignMenuDistributeV).Disabled = False Control(AlignMenuDistributeV).Disabled = False
Control(AlignMenuDistributeH).Disabled = False Control(AlignMenuDistributeH).Disabled = False
EnableConvertMenuItem:
IF __UI_Type(PreviewControls(FirstSelected).Type).TurnsInto THEN
DIM SearchType AS INTEGER, EnableConvertMenuItemCheck AS _BYTE
SearchType = PreviewControls(FirstSelected).Type
EnableConvertMenuItemCheck = True
FOR i = 1 TO UBOUND(PreviewControls)
IF PreviewControls(i).ControlIsSelected THEN
IF PreviewControls(i).Type <> SearchType THEN
EnableConvertMenuItemCheck = False
EXIT FOR
END IF
END IF
NEXT
IF EnableConvertMenuItemCheck THEN
Control(EditMenuConvertType).Disabled = False
SetCaption EditMenuConvertType, "Co&nvert to " + RTRIM$(__UI_Type(__UI_Type(PreviewControls(FirstSelected).Type).TurnsInto).Name)
END IF
END IF
END IF END IF
IF FirstSelected = 0 THEN FirstSelected = PreviewFormID IF FirstSelected = 0 THEN FirstSelected = PreviewFormID

View file

@ -333,6 +333,7 @@ SUB __UI_BeforeUpdateDisplay
END IF END IF
STATIC prevImgWidthSent AS INTEGER, prevImgHeightSent AS INTEGER STATIC prevImgWidthSent AS INTEGER, prevImgHeightSent AS INTEGER
STATIC prevTurnsInto AS INTEGER
IF __UI_FirstSelectedID > 0 THEN IF __UI_FirstSelectedID > 0 THEN
IF Control(__UI_FirstSelectedID).Type = __UI_Type_PictureBox AND LEN(Text(__UI_FirstSelectedID)) > 0 THEN IF Control(__UI_FirstSelectedID).Type = __UI_Type_PictureBox AND LEN(Text(__UI_FirstSelectedID)) > 0 THEN
IF prevImgWidthSent <> _WIDTH(Control(__UI_FirstSelectedID).HelperCanvas) OR _ IF prevImgWidthSent <> _WIDTH(Control(__UI_FirstSelectedID).HelperCanvas) OR _
@ -355,6 +356,33 @@ SUB __UI_BeforeUpdateDisplay
SendData b$, "ORIGINALIMAGEHEIGHT" SendData b$, "ORIGINALIMAGEHEIGHT"
END IF END IF
END IF END IF
IF __UI_TotalSelectedControls = 1 THEN
IF prevTurnsInto <> __UI_Type(Control(__UI_FirstSelectedID).Type).TurnsInto THEN
prevTurnsInto = __UI_Type(Control(__UI_FirstSelectedID).Type).TurnsInto
b$ = MKI$(prevTurnsInto)
SendData b$, "TURNSINTO"
END IF
ELSEIF __UI_TotalSelectedControls > 1 THEN
DIM SearchType AS INTEGER, AllControlsTurnInto AS _BYTE
SearchType = Control(__UI_FirstSelectedID).Type
AllControlsTurnInto = True
FOR i = 1 TO UBOUND(Control)
IF Control(i).ControlIsSelected THEN
IF Control(i).Type <> SearchType THEN
AllControlsTurnInto = False
EXIT FOR
END IF
END IF
NEXT
SearchType = __UI_Type(SearchType).TurnsInto
IF NOT AllControlsTurnInto THEN SearchType = 0
IF prevTurnsInto <> SearchType THEN
prevTurnsInto = SearchType
b$ = MKI$(prevTurnsInto)
SendData b$, "TURNSINTO"
END IF
END IF
END IF END IF
DO WHILE LEN(Signal$) DO WHILE LEN(Signal$)