From e9e99d6bf5005b5e6a97a3d1bcc87d82f59d7895 Mon Sep 17 00:00:00 2001 From: Vadim Lopatin Date: Mon, 18 Jan 2016 11:09:25 +0300 Subject: [PATCH] move Mouse Wheel handler from tree to base class -- scroll widget --- src/dlangui/widgets/scroll.d | 18 ++++++++++++++++++ src/dlangui/widgets/tree.d | 20 ++------------------ 2 files changed, 20 insertions(+), 18 deletions(-) diff --git a/src/dlangui/widgets/scroll.d b/src/dlangui/widgets/scroll.d index 86f5af37..be3dbede 100644 --- a/src/dlangui/widgets/scroll.d +++ b/src/dlangui/widgets/scroll.d @@ -134,6 +134,24 @@ class ScrollWidgetBase : WidgetGroup, OnScrollHandler { return true; } + /// process mouse event; return true if event is processed by widget. + override bool onMouseEvent(MouseEvent event) { + if (event.action == MouseAction.Wheel) { + if (event.flags == MouseFlag.Shift) { + if (_hscrollbar) { + _hscrollbar.sendScrollEvent(event.wheelDelta > 0 ? ScrollAction.LineUp : ScrollAction.LineDown); + return true; + } + } else if (event.flags == 0) { + if (_vscrollbar) { + _vscrollbar.sendScrollEvent(event.wheelDelta > 0 ? ScrollAction.LineUp : ScrollAction.LineDown); + return true; + } + } + } + return super.onMouseEvent(event); + } + /// handle scroll event override bool onScrollEvent(AbstractSlider source, ScrollEvent event) { if (source.orientation == Orientation.Horizontal) { diff --git a/src/dlangui/widgets/tree.d b/src/dlangui/widgets/tree.d index 707aedba..950f92e4 100644 --- a/src/dlangui/widgets/tree.d +++ b/src/dlangui/widgets/tree.d @@ -667,8 +667,8 @@ class TreeWidgetBase : ScrollWidget, OnTreeContentChangeListener, OnTreeStateCh protected bool _needUpdateWidgetStates; protected bool _noCollapseForSingleTopLevelItem; - @property bool noCollapseForSingleTopLevelItem() { - return _noCollapseForSingleTopLevelItem; + @property bool noCollapseForSingleTopLevelItem() { + return _noCollapseForSingleTopLevelItem; } @property TreeWidgetBase noCollapseForSingleTopLevelItem(bool flg) { _noCollapseForSingleTopLevelItem = flg; @@ -857,22 +857,6 @@ class TreeWidgetBase : ScrollWidget, OnTreeContentChangeListener, OnTreeStateCh selectItem(item, makeVisible); } - /// process mouse event; return true if event is processed by widget. - override bool onMouseEvent(MouseEvent event) { - if (event.action == MouseAction.Wheel) { - if (event.flags == MouseFlag.Control) { - if (_hscrollbar) - _hscrollbar.sendScrollEvent(event.wheelDelta > 0 ? ScrollAction.LineUp : ScrollAction.LineDown); - return true; - } else if (event.flags == 0) { - if (_vscrollbar) - _vscrollbar.sendScrollEvent(event.wheelDelta > 0 ? ScrollAction.LineUp : ScrollAction.LineDown); - return true; - } - } - return super.onMouseEvent(event); - } - override protected bool handleAction(const Action a) { Log.d("tree.handleAction ", a.id); switch (a.id) with(TreeActions)