Added support for minScrollTime parameter for menus. It defaults to scrollAcceleration for backwards compatibility.

This commit is contained in:
Pieter Hulshoff 2019-05-25 17:54:23 +02:00
parent 251760151e
commit cf3d51768f
4 changed files with 21 additions and 4 deletions

View File

@ -60,6 +60,7 @@ ScrollingList::ScrollingList( Configuration &c,
, selectedOffsetIndex_( 0 )
, scrollAcceleration_( 0 )
, startScrollTime_( 0.500 )
, minScrollTime_( 0.500 )
, scrollPeriod_( 0 )
, config_( c )
, scaleX_( scaleX )
@ -82,6 +83,7 @@ ScrollingList::ScrollingList( const ScrollingList &copy )
, selectedOffsetIndex_( copy.selectedOffsetIndex_ )
, scrollAcceleration_( copy.scrollAcceleration_ )
, startScrollTime_( copy.startScrollTime_ )
, minScrollTime_( copy.minScrollTime_ )
, scrollPeriod_( copy.startScrollTime_ )
, config_( copy.config_ )
, scaleX_( copy.scaleX_ )
@ -141,6 +143,12 @@ void ScrollingList::setStartScrollTime( float value )
}
void ScrollingList::setMinScrollTime( float value )
{
minScrollTime_ = value;
}
void ScrollingList::deallocateSpritePoints( )
{
for ( unsigned int i = 0; i < components_.size( ); ++i )
@ -586,7 +594,7 @@ void ScrollingList::update( float dt )
// Check if scrollPeriod_ has been properly initialised already or if something went wrong
// while updating the scrollPeriod_
if ( scrollPeriod_ < scrollAcceleration_ )
if ( scrollPeriod_ < minScrollTime_ )
{
scrollPeriod_ = startScrollTime_;
}
@ -856,9 +864,9 @@ void ScrollingList::resetScrollPeriod( )
void ScrollingList::updateScrollPeriod( )
{
scrollPeriod_ -= scrollAcceleration_;
if ( scrollPeriod_ < scrollAcceleration_ )
if ( scrollPeriod_ < minScrollTime_ )
{
scrollPeriod_ = scrollAcceleration_;
scrollPeriod_ = minScrollTime_;
}
}

View File

@ -90,6 +90,7 @@ public:
void draw( unsigned int layer );
void setScrollAcceleration( float value );
void setStartScrollTime( float value );
void setMinScrollTime( float value );
bool horizontalScroll;
void deallocateSpritePoints( );
void allocateSpritePoints( );
@ -114,6 +115,7 @@ private:
float scrollAcceleration_;
float startScrollTime_;
float minScrollTime_;
float scrollPeriod_;
Configuration &config_;

View File

@ -964,6 +964,7 @@ ScrollingList * PageBuilder::buildMenu(xml_node<> *menuXml, Page &page)
xml_attribute<> *menuTypeXml = menuXml->first_attribute("type");
xml_attribute<> *scrollTimeXml = menuXml->first_attribute("scrollTime");
xml_attribute<> *scrollAccelerationXml = menuXml->first_attribute("scrollAcceleration");
xml_attribute<> *minScrollTimeXml = menuXml->first_attribute("minScrollTime");
xml_attribute<> *scrollOrientationXml = menuXml->first_attribute("orientation");
if(menuTypeXml)
@ -1015,6 +1016,12 @@ ScrollingList * PageBuilder::buildMenu(xml_node<> *menuXml, Page &page)
if(scrollAccelerationXml)
{
menu->setScrollAcceleration(Utils::convertFloat(scrollAccelerationXml->value()));
menu->setMinScrollTime(Utils::convertFloat(scrollAccelerationXml->value()));
}
if(minScrollTimeXml)
{
menu->setMinScrollTime(Utils::convertFloat(minScrollTimeXml->value()));
}
if(scrollOrientationXml)

View File

@ -21,7 +21,7 @@
std::string retrofe_version_major = "0";
std::string retrofe_version_minor = "8";
std::string retrofe_version_build = "34";
std::string retrofe_version_build = "35";
std::string Version::getString( )