X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git;a=blobdiff_plain;f=dali-toolkit%2Finternal%2Fcontrols%2Fscrollable%2Fscroll-view%2Fscroll-view-impl.h;h=ec7b893f52d91b4af4dbbfa74d17bd50bccef28b;hp=bbd87bc7ad7d05cc2ef53438ea0a05003830407e;hb=ca99959003c0445d5afb437e2be26361dff51623;hpb=4b9580f45559ab748c5eb33cbe4a771de88770cf diff --git a/dali-toolkit/internal/controls/scrollable/scroll-view/scroll-view-impl.h b/dali-toolkit/internal/controls/scrollable/scroll-view/scroll-view-impl.h index bbd87bc..ec7b893 100644 --- a/dali-toolkit/internal/controls/scrollable/scroll-view/scroll-view-impl.h +++ b/dali-toolkit/internal/controls/scrollable/scroll-view/scroll-view-impl.h @@ -1,8 +1,8 @@ -#ifndef __DALI_TOOLKIT_INTERNAL_SCROLL_VIEW_H__ -#define __DALI_TOOLKIT_INTERNAL_SCROLL_VIEW_H__ +#ifndef DALI_TOOLKIT_INTERNAL_SCROLL_VIEW_H +#define DALI_TOOLKIT_INTERNAL_SCROLL_VIEW_H /* - * Copyright (c) 2015 Samsung Electronics Co., Ltd. + * Copyright (c) 2020 Samsung Electronics Co., Ltd. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -22,9 +22,11 @@ #include #include #include +#include // INTERNAL INCLUDES #include +#include #include #include #include @@ -191,6 +193,13 @@ public: void SetRulerY(RulerPtr ruler); /** + * Retrieve the touch sensitivity. + * + * @return whether the touch sensitivity is true or false. + */ + bool GetScrollSensitive(); + + /** * @copydoc Toolkit::ScrollView::SetScrollSensitive */ void SetScrollSensitive(bool sensitive); @@ -206,11 +215,25 @@ public: void SetSnapOvershootAlphaFunction(AlphaFunction alpha); /** + * Retrieve the duartion of Snap Overshoot animation + * + * @return the duration. + */ + float GetSnapOvershootDuration(); + + /** * @copydoc Toolkit::ScrollView::SetSnapOvershootDuration */ void SetSnapOvershootDuration(float duration); /** + * Retrieve whether Actor Auto-Snap mode is enabled or not. + * + * @return Actor Auto-Snap mode Enabled flag. + */ + bool GetActorAutoSnap(); + + /** * @copydoc Toolkit::ScrollView::SetActorAutoSnap */ void SetActorAutoSnap(bool enable); @@ -343,21 +366,16 @@ public: Vector2 GetCurrentScrollPosition() const; /** - * @copydoc Toolkit::Scrollable::GetDomainSize - */ - Vector2 GetDomainSize() const; - - /** * @copydoc ScrollTo(const Vector2&) */ void TransformTo(const Vector2& position, - DirectionBias horizontalBias = DirectionBiasNone, DirectionBias verticalBias = DirectionBiasNone); + DirectionBias horizontalBias = DIRECTION_BIAS_NONE, DirectionBias verticalBias = DIRECTION_BIAS_NONE); /** * @copydoc ScrollTo(const Vector2&, float, AlhpaFunction, DirectionBias, DirectionBias) */ void TransformTo(const Vector2& position, float duration, AlphaFunction alpha, - DirectionBias horizontalBias = DirectionBiasNone, DirectionBias verticalBias = DirectionBiasNone); + DirectionBias horizontalBias = DIRECTION_BIAS_NONE, DirectionBias verticalBias = DIRECTION_BIAS_NONE); /** * @copydoc Toolkit::ScrollView::ScrollTo(const Vector2 &position) @@ -394,7 +412,7 @@ public: /** * @copydoc Toolkit::ScrollView::ScrollTo(unsigned int page, float duration, DirectionBias bias) */ - void ScrollTo(unsigned int page, float duration, DirectionBias bias = DirectionBiasNone); + void ScrollTo(unsigned int page, float duration, DirectionBias bias = DIRECTION_BIAS_NONE); /** * @copydoc Toolkit::ScrollView::ScrollTo(Actor& actor) @@ -464,8 +482,8 @@ public: */ bool AnimateTo(const Vector2& position, const Vector2& positionDuration, AlphaFunction alpha, bool findShortcuts = true, - DirectionBias horizontalBias = DirectionBiasNone, DirectionBias verticalBias = DirectionBiasNone, - SnapType snapType = Snap); + DirectionBias horizontalBias = DIRECTION_BIAS_NONE, DirectionBias verticalBias = DIRECTION_BIAS_NONE, + SnapType snapType = SNAP); /** * @copydoc Toolkit::Scrollable::AddOverlay() @@ -478,10 +496,33 @@ public: void RemoveOverlay(Actor actor); /** + * @copydoc Toolkit::Internal::Scrollable::SetOvershootSize + */ + void SetOvershootSize( const Vector2& size ); + + /** * @copydoc Toolkit::Internal::Scrollable::SetOvershootEffectColor */ void SetOvershootEffectColor( const Vector4& color ); + //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 ); + public: //Signals /** @@ -500,7 +541,7 @@ public: //Signals */ static bool DoConnectSignal( BaseObject* object, ConnectionTrackerInterface* tracker, const std::string& signalName, FunctorDelegate* functor ); -private: // private overriden functions from CustomActorImpl and Controls +private: // private overridden functions from CustomActorImpl and Controls /** * @copydoc Dali::CustomActorImpl::OnSizeAnimation(Animation&, const Vector3&) @@ -525,21 +566,12 @@ private: // private overriden functions from CustomActorImpl and Controls virtual void OnChildRemove(Actor& child); /** - * From CustomActorImpl; called after a touch-signal is received by the owning actor. - * - * We don't listen to these events as content within the contain may consume events. - * - * @param[in] event The touch event. - * @return True if the event should be consumed. - */ - virtual bool OnTouchEvent(const TouchEvent& event); - - /** - * From CustomActorImpl; called after a wheel-event is received by the owning actor. + * Called after a wheelEvent is received by the owning actor. + * @param[in] actor Actor associated with the event. * @param[in] event The wheel event. * @return True if the event should be consumed. */ - virtual bool OnWheelEvent(const WheelEvent& event); + bool OnWheelEvent(Actor actor, const WheelEvent& event); /** * @copydoc Toolkit::Control::OnInitialize() @@ -547,14 +579,14 @@ private: // private overriden functions from CustomActorImpl and Controls virtual void OnInitialize(); /** - * @copydoc CustomActorImpl::OnStageConnection() + * @copydoc CustomActorImpl::OnSceneConnection() */ - virtual void OnStageConnection( int depth ); + virtual void OnSceneConnection( int depth ); /** - * @copydoc CustomActorImpl::OnStageDisconnection() + * @copydoc CustomActorImpl::OnSceneDisconnection() */ - virtual void OnStageDisconnection(); + virtual void OnSceneDisconnection(); /** * @copydoc Toolkit::Control::OnAccessibilityPan() @@ -569,6 +601,17 @@ private: // private overriden functions from CustomActorImpl and Controls private: /** + * Called after a touchSignal is received by the owning actor. + * + * We don't consume these events as content within the container may consume events. + * + * @param[in] actor The touched actor. + * @param[in] touch The touch information. + * @return True if the event should be consumed. + */ + bool OnTouch( Actor actor, const TouchEvent& touch ); + + /** * Start a timer which calls OnTouchDownTimeout() */ void StartTouchDownTimer(); @@ -653,8 +696,8 @@ private: /** * This is called internally whenever the Scroll Rulers are - * modified. This will update the properties: 'scroll-position-min' - * and 'scroll-position-max' to reflect the changes. + * modified. This will update the properties: 'scrollPositionMin' + * and 'scrollPositionMax' to reflect the changes. */ void UpdatePropertyDomain(); @@ -682,7 +725,7 @@ private: * * @param[in] gesture The gesture event. */ - void OnGestureEx(Gesture::State state); + void OnGestureEx(GestureState state); /** * Performs snapping while taking into account Velocity of gesture @@ -817,6 +860,13 @@ private: */ void OnScrollUpdateNotification(Dali::PropertyNotification& source); + /** + * Set up default rulers using a property map + * @param[in] scrollModeMap A map defining the characteristics of X and Y scrolling + * using either FixedRuler or DefaultRuler. + */ + void SetScrollMode( const Property::Map& scrollModeMap ); + private: // Undefined @@ -855,7 +905,7 @@ private: Vector2 mLastVelocity; ///< Record the last velocity from PanGesture (Finish event doesn't have correct velocity) LockAxis mLockAxis; - Timer mTouchDownTimer; ///< Used to interrupt snap-animation. This cannot be done in OnTouchEvent without breaking fast flick behavior. + Timer mTouchDownTimer; ///< Used to interrupt snap-animation. This cannot be done in OnTouch without breaking fast flick behavior. float mScrollUpdateDistance; ///< Distance for scrolling to travel for the scroll update notifications Dali::PropertyNotification mScrollXUpdateNotification; ///< scroll x position update notification @@ -897,11 +947,11 @@ private: Constraint mScrollMainInternalPrePositionMaxConstraint; ScrollOvershootIndicatorPtr mOvershootIndicator; + WeakHandle mScrollBar; Toolkit::ScrollView::SnapStartedSignalType mSnapStartedSignal; - bool mInAccessibilityPan : 1; ///< With AccessibilityPan its easier to move between snap positions - bool mInitialized:1; + bool mInAccessibilityPan:1; ///< With AccessibilityPan its easier to move between snap positions bool mScrolling:1; ///< Flag indicating whether the scroll view is being scrolled (by user or animation) bool mScrollInterrupted:1; ///< Flag set for when a down event interrupts a scroll bool mPanning:1; ///< Whether scroll view is currently panning or not @@ -915,6 +965,7 @@ private: bool mDefaultMaxOvershoot:1; ///< Whether to use default max overshoot or application defined one bool mCanScrollHorizontal:1; ///< Local value of our property to check against bool mCanScrollVertical:1; ///< Local value of our property to check against + bool mTransientScrollBar:1; ///< True if scroll-bar should be automatically show/hidden during/after panning }; } // namespace Internal @@ -943,4 +994,4 @@ inline const Toolkit::Internal::ScrollView& GetImpl(const Toolkit::ScrollView& s } // namespace Dali -#endif // __DALI_TOOLKIT_INTERNAL_SCROLL_VIEW_H__ +#endif // DALI_TOOLKIT_INTERNAL_SCROLL_VIEW_H