X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git;a=blobdiff_plain;f=base%2Fdali-toolkit%2Finternal%2Fcontrols%2Fscroll-bar%2Fscroll-bar-impl.h;h=a572231602764613be9e0387303111ced1d324ed;hp=909e4fed921726e9cbd28e5ecac14b6a8484f2d5;hb=1f49cc894b0c8c769f4b34f3a0e7084ce686b664;hpb=e58fa784d19a558e35f458ecf6d262a2344beb4f diff --git a/base/dali-toolkit/internal/controls/scroll-bar/scroll-bar-impl.h b/base/dali-toolkit/internal/controls/scroll-bar/scroll-bar-impl.h index 909e4fe..a572231 100755 --- a/base/dali-toolkit/internal/controls/scroll-bar/scroll-bar-impl.h +++ b/base/dali-toolkit/internal/controls/scroll-bar/scroll-bar-impl.h @@ -44,6 +44,14 @@ class ScrollBar : public ScrollComponentImpl public: + // Properties + enum + { + SCROLLBAR_PROPERTY_START_INDEX = ControlImpl::CONTROL_PROPERTY_END_INDEX + 1, + SCROLLBAR_PROPERTY_END_INDEX = SCROLLBAR_PROPERTY_START_INDEX + 1000 ///< Reserving 1000 property indices + }; + + // Signals typedef Toolkit::ScrollBar::ScrollPositionNotifiedSignalType ScrollPositionNotifiedSignalType; public: @@ -76,6 +84,11 @@ public: /** * @copydoc Toolkit::ScrollBar::SetIndicatorImage() */ + void SetIndicatorImage( Image image ); + + /** + * @copydoc Toolkit::ScrollBar::SetIndicatorImage() + */ void SetIndicatorImage( Image image, const Vector4& border ); /** @@ -89,6 +102,26 @@ public: void SetPositionNotifications( const std::vector& positions ); /** + * @copydoc Toolkit::ScrollBar::SetIndicatorHeightPolicy() + */ + void SetIndicatorHeightPolicy( Toolkit::ScrollBar::IndicatorHeightPolicy policy ); + + /** + * @copydoc Toolkit::ScrollBar::GetIndicatorHeightPolicy() + */ + Toolkit::ScrollBar::IndicatorHeightPolicy GetIndicatorHeightPolicy(); + + /** + * @copydoc Toolkit::ScrollBar::SetIndicatorFixedHeight() + */ + void SetIndicatorFixedHeight( float height ); + + /** + * @copydoc Toolkit::ScrollBar::GetIndicatorFixedHeight() + */ + float GetIndicatorFixedHeight(); + + /** * @copydoc Toolkit::ScrollBar::Show() */ void Show(); @@ -106,7 +139,25 @@ public: return mScrollPositionNotifiedSignal; } -private: // from ControlImpl + // Properties + + /** + * Called when a property of an object of this type is set. + * @param[in] object The object whose property is set. + * @param[in] index The property index. + * @param[in] value The new property value. + */ + static void SetProperty( BaseObject* object, Property::Index index, const Property::Value& value ); + + /** + * Called to retrieve a property of an object of this type. + * @param[in] object The object whose property is to be retrieved. + * @param[in] index The property index. + * @return The current value of the property. + */ + static Property::Value GetProperty( BaseObject* object, Property::Index index ); + +private: // from Control /** * @copydoc Toolkit::Control::OnInitialize @@ -147,27 +198,39 @@ private: */ bool OnPanGestureProcessTick(); + /** + * Handle SetProperty for scroll indicator height policy. + * @param[in] propertyValue The new property value. + */ + void OnIndicatorHeightPolicyPropertySet(Property::Value propertyValue); + private: - Constrainable mScrollPositionObject; ///< From mScrollConnector + Constrainable mScrollPositionObject; ///< From mScrollConnector + + ImageActor mBackground; ///< Background image of scroll bar. + ImageActor mIndicator; ///< Image of scroll indicator. + Animation mAnimation; ///< Scroll indicator Show/Hide Animation. - ImageActor mBackground; ///< Background image of scroll bar. - ImageActor mIndicator; ///< Image of scroll indicator. - Animation mAnimation; ///< Scroll indicator Show/Hide Animation. + float mScrollStart; ///< Scroll Start position (start of drag) + Vector3 mGestureDisplacement; ///< Gesture Displacement. - float mScrollStart; ///< Scroll Start position (start of drag) - Vector3 mGestureDisplacement; ///< Gesture Displacement. + bool mIsPanning; ///< Whether the scroll bar is being panned. + float mCurrentScrollPosition; ///< The current scroll position updated by the pan gesture - bool mIsPanning; ///< Whether the scroll bar is being panned. - float mCurrentScrollPosition; ///< The current scroll position updated by the pan gesture + Toolkit::ScrollBar::IndicatorHeightPolicy mIndicatorHeightPolicy; ///< The height policy of scroll indicator (variable or fixed) + float mIndicatorFixedHeight; ///< The fixed height of scroll indicator - Timer mTimer; ///< The timer to process the pan gesture after the gesture is started. + Timer mTimer; ///< The timer to process the pan gesture after the gesture is started. - Property::Index mPropertyIndicatorPosition; ///< Indicatore Position ("indicator-position") + Property::Index mPropertyIndicatorPosition; ///< Indicatore Position ("indicator-position") - PropertyNotification mPositionNotification; ///< Stores the property notification used for scroll position changes + PropertyNotification mPositionNotification; ///< Stores the property notification used for scroll position changes ScrollPositionNotifiedSignalType mScrollPositionNotifiedSignal; + + ActiveConstraint mIndicatorSizeConstraint; + ActiveConstraint mIndicatorPositionConstraint; }; } // namespace Internal