From a755cbc66b1cc1ca75b09d0a2b2390903ebc8e19 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mart=C3=ADn=20Lucas=20Golini?= Date: Sat, 18 May 2013 02:36:10 -0300 Subject: [PATCH] Added configurable deceleration for the touch scroll. --- include/eepp/ui/cuigenericgrid.hpp | 5 ++++- include/eepp/ui/cuilistbox.hpp | 5 ++++- projects/linux/ee.creator.user | 2 +- src/eepp/ui/cuigenericgrid.cpp | 7 ++++--- src/eepp/ui/cuilistbox.cpp | 9 +++++---- 5 files changed, 18 insertions(+), 10 deletions(-) diff --git a/include/eepp/ui/cuigenericgrid.hpp b/include/eepp/ui/cuigenericgrid.hpp index f1c8773d7..b382d37ef 100644 --- a/include/eepp/ui/cuigenericgrid.hpp +++ b/include/eepp/ui/cuigenericgrid.hpp @@ -19,7 +19,8 @@ class EE_API cUIGenericGrid : public cUIComplexControl { HScrollMode( UI_SCROLLBAR_AUTO ), CollumnsCount(1), RowHeight( 24 ), - GridWidth( 0 ) + GridWidth( 0 ), + TouchDragDeceleration( 0.01f ) { } @@ -32,6 +33,7 @@ class EE_API cUIGenericGrid : public cUIComplexControl { Uint32 RowHeight; Uint32 GridWidth; eeRecti PaddingContainer; + eeFloat TouchDragDeceleration; }; cUIGenericGrid( const cUIGenericGrid::CreateParams& Params ); @@ -126,6 +128,7 @@ class EE_API cUIGenericGrid : public cUIComplexControl { eeVector2i mTouchDragPoint; eeFloat mTouchDragAcceleration; + eeFloat mTouchDragDeceleration; bool mCollWidthAssigned; diff --git a/include/eepp/ui/cuilistbox.hpp b/include/eepp/ui/cuilistbox.hpp index 87fa2f22d..27eb13c1b 100644 --- a/include/eepp/ui/cuilistbox.hpp +++ b/include/eepp/ui/cuilistbox.hpp @@ -22,7 +22,8 @@ class EE_API cUIListBox : public cUIComplexControl { Font( NULL ), FontColor( 0, 0, 0, 255 ), FontOverColor( 0, 0, 0, 255 ), - FontSelectedColor( 0, 0, 0, 255 ) + FontSelectedColor( 0, 0, 0, 255 ), + TouchDragDeceleration( 0.01f ) { cUITheme * Theme = cUIThemeManager::instance()->DefaultTheme(); @@ -48,6 +49,7 @@ class EE_API cUIListBox : public cUIComplexControl { eeColorA FontColor; eeColorA FontOverColor; eeColorA FontSelectedColor; + eeFloat TouchDragDeceleration; }; cUIListBox( cUIListBox::CreateParams& Params ); @@ -185,6 +187,7 @@ class EE_API cUIListBox : public cUIComplexControl { eeVector2i mTouchDragPoint; eeFloat mTouchDragAcceleration; + eeFloat mTouchDragDeceleration; std::list mSelected; std::vector mItems; diff --git a/projects/linux/ee.creator.user b/projects/linux/ee.creator.user index 1c7e80d53..7db8f05c6 100644 --- a/projects/linux/ee.creator.user +++ b/projects/linux/ee.creator.user @@ -1,6 +1,6 @@ - + ProjectExplorer.Project.ActiveTarget diff --git a/src/eepp/ui/cuigenericgrid.cpp b/src/eepp/ui/cuigenericgrid.cpp index 9908e5644..f87928a19 100644 --- a/src/eepp/ui/cuigenericgrid.cpp +++ b/src/eepp/ui/cuigenericgrid.cpp @@ -22,6 +22,7 @@ cUIGenericGrid::cUIGenericGrid( const cUIGenericGrid::CreateParams& Params ) : mItemsNotVisible(0), mSelected(-1), mTouchDragAcceleration(0), + mTouchDragDeceleration( Params.TouchDragDeceleration ), mCollWidthAssigned( false ) { mCollumnsWidth.resize( mCollumnsCount, 0 ); @@ -578,11 +579,11 @@ void cUIGenericGrid::Update() { mVScrollBar->Value( mVScrollBar->Value() + ( -diff.y / (eeFloat)( ( mItems.size() - 1 ) * mRowHeight ) ) ); - mTouchDragAcceleration += Elapsed() * diff.y * 0.01; + mTouchDragAcceleration += Elapsed() * diff.y * mTouchDragDeceleration; mTouchDragPoint = Pos; } else { - mTouchDragAcceleration -= Elapsed() * mTouchDragAcceleration * 0.01; + mTouchDragAcceleration -= Elapsed() * mTouchDragAcceleration * 0.01f; } } else { // Mouse Down @@ -604,7 +605,7 @@ void cUIGenericGrid::Update() { if ( mTouchDragAcceleration > 0.01f || mTouchDragAcceleration < -0.01f ) { mVScrollBar->Value( mVScrollBar->Value() + ( -mTouchDragAcceleration / (eeFloat)( ( mItems.size() - 1 ) * mRowHeight ) ) ); - mTouchDragAcceleration -= mTouchDragAcceleration * 0.01 * Elapsed(); + mTouchDragAcceleration -= mTouchDragAcceleration * mTouchDragDeceleration * Elapsed(); } } } diff --git a/src/eepp/ui/cuilistbox.cpp b/src/eepp/ui/cuilistbox.cpp index 223244f41..0e338b872 100644 --- a/src/eepp/ui/cuilistbox.cpp +++ b/src/eepp/ui/cuilistbox.cpp @@ -26,7 +26,8 @@ cUIListBox::cUIListBox( cUIListBox::CreateParams& Params ) : mLastTickMove(0), mVisibleFirst(0), mVisibleLast(0), - mTouchDragAcceleration(0) + mTouchDragAcceleration(0), + mTouchDragDeceleration( Params.TouchDragDeceleration ) { if ( NULL == Params.Font && NULL != cUIThemeManager::instance()->DefaultFont() ) mFont = cUIThemeManager::instance()->DefaultFont(); @@ -968,11 +969,11 @@ void cUIListBox::Update() { mVScrollBar->Value( mVScrollBar->Value() + ( -diff.y / (eeFloat)( ( mItems.size() - 1 ) * mRowHeight ) ) ); - mTouchDragAcceleration += Elapsed() * diff.y * 0.01; + mTouchDragAcceleration += Elapsed() * diff.y * mTouchDragDeceleration; mTouchDragPoint = Pos; } else { - mTouchDragAcceleration -= Elapsed() * mTouchDragAcceleration * 0.01; + mTouchDragAcceleration -= Elapsed() * mTouchDragAcceleration * 0.01f; } } else { // Mouse Down @@ -994,7 +995,7 @@ void cUIListBox::Update() { if ( mTouchDragAcceleration > 0.01f || mTouchDragAcceleration < -0.01f ) { mVScrollBar->Value( mVScrollBar->Value() + ( -mTouchDragAcceleration / (eeFloat)( ( mItems.size() - 1 ) * mRowHeight ) ) ); - mTouchDragAcceleration -= mTouchDragAcceleration * 0.01 * Elapsed(); + mTouchDragAcceleration -= mTouchDragAcceleration * mTouchDragDeceleration * Elapsed(); } } }