diff options
Diffstat (limited to 'src/corelib/gfx_widget.pas')
-rw-r--r-- | src/corelib/gfx_widget.pas | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/src/corelib/gfx_widget.pas b/src/corelib/gfx_widget.pas index 3934616f..c2b60c06 100644 --- a/src/corelib/gfx_widget.pas +++ b/src/corelib/gfx_widget.pas @@ -18,6 +18,7 @@ type TfpgWidget = class(TfpgWindow) private FAlignRect: TfpgRect; + FOnDoubleClick: TMouseButtonEvent; FOnMouseDown: TMouseButtonEvent; FOnMouseEnter: TNotifyEvent; FOnMouseExit: TNotifyEvent; @@ -84,6 +85,7 @@ type property OnMouseMove: TMouseMoveEvent read FOnMouseMove write FOnMouseMove; property OnMouseDown: TMouseButtonEvent read FOnMouseDown write FOnMouseDown; property OnMouseUp: TMouseButtonEvent read FOnMouseUp write FOnMouseUp; + property OnDoubleClick: TMouseButtonEvent read FOnDoubleClick write FOnDoubleClick; //property OnKeyPress: TKeyPressEvent read FOnKeyPress write FOnKeyPress; public constructor Create(AOwner: TComponent); override; @@ -338,7 +340,12 @@ procedure TfpgWidget.MsgDoubleClick(var msg: TfpgMessageRec); begin // If we don't generate a mouse down, we get a rapid click // delay under Windows. - HandleLMouseDown(msg.Params.mouse.x, msg.Params.mouse.y, msg.Params.mouse.shiftstate); +// HandleLMouseDown(msg.Params.mouse.x, msg.Params.mouse.y, msg.Params.mouse.shiftstate); + HandleDoubleClick(msg.Params.mouse.x, msg.Params.mouse.y, + msg.Params.mouse.Buttons, msg.Params.mouse.shiftstate); + if Assigned(FOnDoubleClick) then + FOnDoubleClick(self, mbLeft, msg.Params.mouse.shiftstate, + Point(msg.Params.mouse.x, msg.Params.mouse.y)); end; procedure TfpgWidget.MsgMouseEnter(var msg: TfpgMessageRec); |