sync SVN r18236

This commit is contained in:
2026-09-30 20:05:27 +03:00
parent 7010acf850
commit b7dd1ac0a5
4 changed files with 573 additions and 7 deletions

View File

@@ -120,6 +120,18 @@ DEFINE CLASS gripper AS container
ENDPROC
PROCEDURE MouseDown
LPARAMETERS nButton, nShift, nXCoord, nYCoord
*!* 30.09.2026 marius.mutu - clickul pe gripper (punctele din mijlocul benzii) porneste si el tragerea splitterului
this.parent.MouseDown(nButton, nShift, nXCoord, nYCoord)
ENDPROC
PROCEDURE MouseLeave
LPARAMETERS nButton, nShift, nXCoord, nYCoord
*!* 30.09.2026 marius.mutu - iesirea de pe gripper direct in afara benzii readuce culoarea splitterului
this.parent.MouseLeave(nButton, nShift, nXCoord, nYCoord)
ENDPROC
PROCEDURE MouseMove
LPARAMETERS nButton, nShift, nXCoord, nYCoord
@@ -297,24 +309,48 @@ DEFINE CLASS gripperdot AS container
this.SetAll('MousePointer', this.MousePointer, 'Shape')
ENDPROC
PROCEDURE MouseDown
LPARAMETERS nButton, nShift, nXCoord, nYCoord
*!* 30.09.2026 marius.mutu - clickul pe gripper (punctele din mijlocul benzii) porneste si el tragerea splitterului
this.parent.MouseDown(nButton, nShift, nXCoord, nYCoord)
ENDPROC
PROCEDURE MouseMove
LPARAMETERS nButton, nShift, nXCoord, nYCoord
this.parent.MouseMove(nButton, nShift, nXCoord, nYCoord)
ENDPROC
PROCEDURE ShapeDark.MouseDown
LPARAMETERS nButton, nShift, nXCoord, nYCoord
this.parent.MouseDown(nButton, nShift, nXCoord, nYCoord)
ENDPROC
PROCEDURE ShapeDark.MouseMove
LPARAMETERS nButton, nShift, nXCoord, nYCoord
this.parent.MouseMove(nButton, nShift, nXCoord, nYCoord)
ENDPROC
PROCEDURE ShapeLight.MouseDown
LPARAMETERS nButton, nShift, nXCoord, nYCoord
this.parent.MouseDown(nButton, nShift, nXCoord, nYCoord)
ENDPROC
PROCEDURE ShapeLight.MouseMove
LPARAMETERS nButton, nShift, nXCoord, nYCoord
this.parent.MouseMove(nButton, nShift, nXCoord, nYCoord)
ENDPROC
PROCEDURE ShapeMiddle.MouseDown
LPARAMETERS nButton, nShift, nXCoord, nYCoord
this.parent.MouseDown(nButton, nShift, nXCoord, nYCoord)
ENDPROC
PROCEDURE ShapeMiddle.MouseMove
LPARAMETERS nButton, nShift, nXCoord, nYCoord
@@ -481,6 +517,30 @@ DEFINE CLASS sfsplitter AS control
ENDPROC
PROCEDURE MouseDown
LPARAMETERS nButton, nShift, nXCoord, nYCoord
*!* 30.09.2026 marius.mutu - tragerea urmareste cursorul cat timp e apasat butonul: splitterul (control fara fereastra) nu mai primeste MouseMove cand cursorul iese din banda
Local lcPt, lnPozVeche, lnPoz
If m.nButton = 1 And This.Enabled
Declare Integer GetCursorPos In user32 String @
Declare Integer ScreenToClient In user32 Integer, String @
Declare Short GetAsyncKeyState In user32 Integer
Declare Integer GetSystemMetrics In user32 Integer
lnPozVeche = -1
Do While GetAsyncKeyState(Iif(GetSystemMetrics(23) = 0, 1, 2)) < 0
lcPt = Replicate(Chr(0), 8)
GetCursorPos(@lcPt)
ScreenToClient(Thisform.HWnd, @lcPt)
lnPoz = This.GetPosition(Ctobin(Left(m.lcPt, 4), "4RS"), Ctobin(Substr(m.lcPt, 5, 4), "4RS"))
If m.lnPoz # m.lnPozVeche
lnPozVeche = m.lnPoz
This.MoveSplitterToPosition(m.lnPoz)
Endif
DoEvents
Enddo
Endif
ENDPROC
PROCEDURE MouseMove
@@ -693,7 +753,7 @@ DEFINE CLASS sfsplitterh_panou AS sfsplitterh OF "sfsplitter.vcx"
*</DefinedPropArrayMethod>
*<PropValue>
BackColor = 200,215,230
BackColor = 160,185,210
BackStyle = 1
cinicheie =
cinisectiune =
@@ -764,11 +824,11 @@ DEFINE CLASS sfsplitterh_panou AS sfsplitterh OF "sfsplitter.vcx"
LPARAMETERS nButton, nShift, nXCoord, nYCoord
Local loObj
DoDefault(m.nButton, m.nShift, m.nXCoord, m.nYCoord)
* mouse-ul a intrat pe gripper (copil al splitterului): ramane colorat
*!* 30.09.2026 marius.mutu - mouse-ul e inca pe splitter sau pe gripper (si la apelul din gripper.MouseLeave): ramane colorat
loObj = Sys(1270)
Try
Do While Vartype(m.loObj) = 'O'
If Compobj(m.loObj.Parent, This)
If Compobj(m.loObj, This)
Return
Endif
loObj = m.loObj.Parent
@@ -935,7 +995,7 @@ DEFINE CLASS sfsplitterv_panou AS sfsplitterv OF "sfsplitter.vcx"
*</DefinedPropArrayMethod>
*<PropValue>
BackColor = 200,215,230
BackColor = 160,185,210
BackStyle = 1
cinicheie =
cinisectiune =
@@ -1006,11 +1066,11 @@ DEFINE CLASS sfsplitterv_panou AS sfsplitterv OF "sfsplitter.vcx"
LPARAMETERS nButton, nShift, nXCoord, nYCoord
Local loObj
DoDefault(m.nButton, m.nShift, m.nXCoord, m.nYCoord)
* mouse-ul a intrat pe gripper (copil al splitterului): ramane colorat
*!* 30.09.2026 marius.mutu - mouse-ul e inca pe splitter sau pe gripper (si la apelul din gripper.MouseLeave): ramane colorat
loObj = Sys(1270)
Try
Do While Vartype(m.loObj) = 'O'
If Compobj(m.loObj.Parent, This)
If Compobj(m.loObj, This)
Return
Endif
loObj = m.loObj.Parent