mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-12-07 08:57:24 +01:00
LCL: implemented MouseWheel handler for treeview (fixes issue #13002)
scroll whole lines when scrolling vertically as indicated in comment. git-svn-id: trunk@18346 -
This commit is contained in:
parent
d8953c73cb
commit
8b26a74894
@ -2312,11 +2312,13 @@ type
|
||||
procedure Delete(Node: TTreeNode); dynamic;
|
||||
procedure DestroyWnd; override;
|
||||
procedure DoEndDrag(Target: TObject; X, Y: Integer); override;
|
||||
procedure DragOver(Source: TObject; X,Y: Integer; State: TDragState;
|
||||
var Accept: Boolean); override;
|
||||
function DoMouseWheel(Shift: TShiftState; WheelDelta: Integer;
|
||||
MousePos: TPoint): Boolean; override;
|
||||
procedure DoPaint; virtual;
|
||||
procedure DoPaintNode(Node: TTreeNode); virtual;
|
||||
procedure DoStartDrag(var DragObject: TDragObject); override;
|
||||
procedure DragOver(Source: TObject; X,Y: Integer; State: TDragState;
|
||||
var Accept: Boolean); override;
|
||||
procedure EndEditing;
|
||||
procedure EnsureNodeIsVisible(ANode: TTreeNode);
|
||||
procedure Expand(Node: TTreeNode); dynamic;
|
||||
|
||||
@ -3965,6 +3965,18 @@ begin
|
||||
FLastDropTarget := nil;
|
||||
end;
|
||||
|
||||
function TCustomTreeView.DoMouseWheel(Shift: TShiftState; WheelDelta: Integer;
|
||||
MousePos: TPoint): Boolean;
|
||||
begin
|
||||
Result:=inherited DoMouseWheel(Shift, WheelDelta, MousePos);
|
||||
if not Result then
|
||||
begin
|
||||
ScrolledTop := ScrolledTop -
|
||||
(WheelDelta * Mouse.WheelScrollLines * DefaultItemHeight) div 120;
|
||||
Result := true;
|
||||
end;
|
||||
end;
|
||||
|
||||
function TCustomTreeView.DoDragMsg(ADragMessage: TDragMessage; APosition: TPoint; ADragObject: TDragObject; ATarget: TControl; ADocking: Boolean):LRESULT;
|
||||
begin
|
||||
Result:=inherited;
|
||||
@ -4767,8 +4779,8 @@ begin
|
||||
SB_TOP: ScrolledTop := 0;
|
||||
SB_BOTTOM: ScrolledTop := GetMaxScrollTop;
|
||||
// Scrolls one line up / down
|
||||
SB_LINEDOWN: ScrolledTop := ScrolledTop + FDefItemHeight div 2;
|
||||
SB_LINEUP: ScrolledTop := ScrolledTop - FDefItemHeight div 2;
|
||||
SB_LINEDOWN: ScrolledTop := ScrolledTop + FDefItemHeight;
|
||||
SB_LINEUP: ScrolledTop := ScrolledTop - FDefItemHeight;
|
||||
// Scrolls one page of lines up / down
|
||||
SB_PAGEDOWN: ScrolledTop := ScrolledTop + (ClientHeight-ScrollBarWidth)
|
||||
- FDefItemHeight;
|
||||
|
||||
Loading…
Reference in New Issue
Block a user