|
|
@@ -17,12 +17,13 @@ type |
|
|
|
TutlMouseButtons = set of TMouseButton; |
|
|
|
TutlWinControlEvent = class(TutlEvent) |
|
|
|
private |
|
|
|
fSender: TControl; |
|
|
|
function GetControl: TControl; |
|
|
|
|
|
|
|
public |
|
|
|
property Sender: TControl read fSender; |
|
|
|
property Control: TControl read GetControl; |
|
|
|
constructor Create( |
|
|
|
const aEventType: TutlEventType; |
|
|
|
const aSender: TControl); |
|
|
|
const aSender: TControl; |
|
|
|
const aEventType: TutlEventType); |
|
|
|
end; |
|
|
|
|
|
|
|
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// |
|
|
@@ -38,8 +39,8 @@ type |
|
|
|
property ScreenPos: TPoint read fScreenPos; |
|
|
|
|
|
|
|
constructor Create( |
|
|
|
const aEventType: TutlEventType; |
|
|
|
const aSender: TControl; |
|
|
|
const aEventType: TutlEventType; |
|
|
|
const aButtons: TutlMouseButtons; |
|
|
|
const aClientPos: TPoint); |
|
|
|
end; |
|
|
@@ -73,8 +74,8 @@ type |
|
|
|
property KeyCode: Word read fKeyCode; |
|
|
|
|
|
|
|
constructor Create( |
|
|
|
const aEventType: TutlEventType; |
|
|
|
const aSender: TControl; |
|
|
|
const aEventType: TutlEventType; |
|
|
|
const aCharCode: WideChar; |
|
|
|
const aKeyCode: Word); |
|
|
|
end; |
|
|
@@ -92,8 +93,8 @@ type |
|
|
|
property ClientHeight: Cardinal read fClientHeight; |
|
|
|
|
|
|
|
constructor Create( |
|
|
|
const aEventType: TutlEventType; |
|
|
|
const aSender: TControl; |
|
|
|
const aEventType: TutlEventType; |
|
|
|
const aScreenRect: TRect; |
|
|
|
const aClientWidth: Cardinal; |
|
|
|
const aClientHeight: Cardinal); |
|
|
@@ -208,7 +209,7 @@ type |
|
|
|
property Mouse: TMouseState read fMouse; |
|
|
|
property Window: TWindowState read fWindow; |
|
|
|
|
|
|
|
procedure DispatchEvent(const aEvent: IutlEvent); override; |
|
|
|
procedure DispatchEvent(aEvent: IutlEvent); override; |
|
|
|
procedure AttachEvents(const aControl: TWinControl; const aTypes: TutlEventTypes); |
|
|
|
end; |
|
|
|
|
|
|
@@ -240,25 +241,32 @@ type |
|
|
|
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// |
|
|
|
//TutlWinControlEvent//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// |
|
|
|
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// |
|
|
|
constructor TutlWinControlEvent.Create(const aEventType: TutlEventType; const aSender: TControl); |
|
|
|
function TutlWinControlEvent.GetControl: TControl; |
|
|
|
begin |
|
|
|
result := (Sender as TControl); |
|
|
|
end; |
|
|
|
|
|
|
|
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// |
|
|
|
constructor TutlWinControlEvent.Create( |
|
|
|
const aSender: TControl; |
|
|
|
const aEventType: TutlEventType); |
|
|
|
begin |
|
|
|
inherited Create(aEventType); |
|
|
|
fSender := aSender; |
|
|
|
inherited Create(aSender, aEventType); |
|
|
|
end; |
|
|
|
|
|
|
|
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// |
|
|
|
//TutlMouseEvent///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// |
|
|
|
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// |
|
|
|
constructor TutlMouseEvent.Create( |
|
|
|
const aEventType: TutlEventType; |
|
|
|
const aSender: TControl; |
|
|
|
const aEventType: TutlEventType; |
|
|
|
const aButtons: TutlMouseButtons; |
|
|
|
const aClientPos: TPoint); |
|
|
|
begin |
|
|
|
inherited Create(aEventType, aSender); |
|
|
|
inherited Create(aSender, aEventType); |
|
|
|
fButtons := aButtons; |
|
|
|
fClientPos := aClientPos; |
|
|
|
fScreenPos := fSender.ClientToScreen(fClientPos); |
|
|
|
fScreenPos := Control.ClientToScreen(fClientPos); |
|
|
|
end; |
|
|
|
|
|
|
|
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// |
|
|
@@ -270,23 +278,23 @@ constructor TutlMouseWheelEvent.Create( |
|
|
|
const aClientPos: TPoint); |
|
|
|
begin |
|
|
|
if (aWheelDelta < 0) |
|
|
|
then inherited Create(TutlWinControlEventManager.EVENT_MOUSE_WHEEL_DOWN, aSender) |
|
|
|
else inherited Create(TutlWinControlEventManager.EVENT_MOUSE_WHEEL_UP, aSender); |
|
|
|
then inherited Create(aSender, TutlWinControlEventManager.EVENT_MOUSE_WHEEL_DOWN) |
|
|
|
else inherited Create(aSender, TutlWinControlEventManager.EVENT_MOUSE_WHEEL_UP); |
|
|
|
fWheelDelta := aWheelDelta; |
|
|
|
fClientPos := aClientPos; |
|
|
|
fScreenPos := fSender.ClientToScreen(fClientPos); |
|
|
|
fScreenPos := Control.ClientToScreen(fClientPos); |
|
|
|
end; |
|
|
|
|
|
|
|
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// |
|
|
|
//TutlKeyEvent/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// |
|
|
|
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// |
|
|
|
constructor TutlKeyEvent.Create( |
|
|
|
const aEventType: TutlEventType; |
|
|
|
const aSender: TControl; |
|
|
|
const aEventType: TutlEventType; |
|
|
|
const aCharCode: WideChar; |
|
|
|
const aKeyCode: Word); |
|
|
|
begin |
|
|
|
inherited Create(aEventType, aSender); |
|
|
|
inherited Create(aSender, aEventType); |
|
|
|
fCharCode := aCharCode; |
|
|
|
fKeyCode := aKeyCode; |
|
|
|
end; |
|
|
@@ -295,13 +303,13 @@ end; |
|
|
|
//TutlWindowEvent//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// |
|
|
|
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// |
|
|
|
constructor TutlWindowEvent.Create( |
|
|
|
const aEventType: TutlEventType; |
|
|
|
const aSender: TControl; |
|
|
|
const aEventType: TutlEventType; |
|
|
|
const aScreenRect: TRect; |
|
|
|
const aClientWidth: Cardinal; |
|
|
|
const aClientHeight: Cardinal); |
|
|
|
begin |
|
|
|
inherited Create(aEventType, aSender); |
|
|
|
inherited Create(aSender, aEventType); |
|
|
|
fScreenRect := aScreenRect; |
|
|
|
fClientWidth := aClientWidth; |
|
|
|
fClientHeight := aClientHeight; |
|
|
@@ -472,8 +480,8 @@ function TutlWinControlEventManager.CreateMouseEvent(aSender: TObject; aType: Tu |
|
|
|
aButtons: TutlMouseButtons; aClientPos: TPoint): TutlMouseEvent; |
|
|
|
begin |
|
|
|
result := TutlMouseEvent.Create( |
|
|
|
aType, |
|
|
|
(aSender as TControl), |
|
|
|
aType, |
|
|
|
aButtons, |
|
|
|
aClientPos); |
|
|
|
end; |
|
|
@@ -494,8 +502,8 @@ begin |
|
|
|
if (aType = EVENT_KEY_DOWN) and fKeyboard.KeyState[aKey and $FF] then |
|
|
|
aType := EVENT_KEY_REPEAT; |
|
|
|
result := TutlKeyEvent.Create( |
|
|
|
aType, |
|
|
|
(aSender as TControl), |
|
|
|
aType, |
|
|
|
VKCodeToCharCode(aKey, fKeyboard.Modifiers), |
|
|
|
aKey); |
|
|
|
end; |
|
|
@@ -510,15 +518,15 @@ begin |
|
|
|
p1 := ClientToScreen(Point(Width, Height)); |
|
|
|
end; |
|
|
|
result := TutlWindowEvent.Create( |
|
|
|
aType, |
|
|
|
(aSender as TControl), |
|
|
|
aType, |
|
|
|
Rect(p0.x, p0.y, p1.x, p1.y), |
|
|
|
(aSender as TWinControl).ClientWidth, |
|
|
|
(aSender as TWinControl).ClientHeight); |
|
|
|
end; |
|
|
|
|
|
|
|
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// |
|
|
|
procedure TutlWinControlEventManager.DispatchEvent(const aEvent: IutlEvent); |
|
|
|
procedure TutlWinControlEventManager.DispatchEvent(aEvent: IutlEvent); |
|
|
|
begin |
|
|
|
RecordEvent(aEvent); |
|
|
|
inherited DispatchEvent(aEvent); |
|
|
|