From 09a9f908b331a040662bb87f85c5da8d4ca47fbe Mon Sep 17 00:00:00 2001 From: cxl Date: Thu, 28 Jan 2010 18:58:26 +0000 Subject: [PATCH] CtrlLib: SliderCtrl::Jump git-svn-id: svn://ultimatepp.org/upp/trunk@1971 f0d560ea-af0d-0410-9eb7-867de7ffcac7 --- uppsrc/CtrlLib/SliderCtrl.cpp | 9 ++++++++- uppsrc/CtrlLib/SliderCtrl.h | 2 ++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/uppsrc/CtrlLib/SliderCtrl.cpp b/uppsrc/CtrlLib/SliderCtrl.cpp index 2d9bd7abc..e43edce26 100644 --- a/uppsrc/CtrlLib/SliderCtrl.cpp +++ b/uppsrc/CtrlLib/SliderCtrl.cpp @@ -8,6 +8,7 @@ SliderCtrl::SliderCtrl() , max(100) , step(1) , round_step(true) +, jump(false) { Transparent(); NoWantFocus(); @@ -80,7 +81,13 @@ void SliderCtrl::LeftDown(Point pos, dword keyflags) else if(p >= thumb && p < thumb + HoVe(CtrlImg::hthumb().GetSize().cx, CtrlImg::vthumb().GetSize().cy)) SetCapture(); - else { + else + if(jump) { + value = ClientToSlider(p); + WhenSlideFinish(); + UpdateActionRefresh(); + } + else { if( ( ( p < thumb) && (min == Min() ) ) || ( (p > thumb) && ( min == Max() ) ) ) Dec(); else diff --git a/uppsrc/CtrlLib/SliderCtrl.h b/uppsrc/CtrlLib/SliderCtrl.h index 7aec9d9b0..a8c038b21 100644 --- a/uppsrc/CtrlLib/SliderCtrl.h +++ b/uppsrc/CtrlLib/SliderCtrl.h @@ -2,6 +2,7 @@ class SliderCtrl : public Ctrl { int value; int min, max, step; bool round_step; + bool jump; int SliderToClient(int value) const; int ClientToSlider(int x) const; @@ -41,6 +42,7 @@ public: int GetMax() const { return max; } bool IsVert() const; + void Jump(bool v = true) { jump = v; } SliderCtrl& Step(int _step, bool _r = true) { step = _step; round_step = _r; return *this; } int GetStep() const { return step; }