#include <dali-toolkit/public-api/controls/control-impl.h>
#include <dali-toolkit/public-api/controls/scrollable/scroll-view/scroll-view-effect.h>
#include <dali-toolkit/public-api/controls/scrollable/scroll-view/scroll-view.h>
+#include <dali-toolkit/internal/controls/scrollable/scroll-view/scroll-view-impl-constraints.h>
namespace Dali
{
*/
void WrapPosition(Vector2& position) const;
- /**
- * Updates the main internal scroll constraints with new ruler and domain
- * values
- */
- void UpdateMainInternalConstraint();
-
- /**
- * Enables/disables the overshoot constraints
- *
- * @param[in] enabled whether to enable or disable the overshoot constraints
- */
- void SetOvershootConstraintsEnabled(bool enabled);
-
- /**
- * Sets internal constraints for this ScrollView.
- * Many of these internal constraints are based on properties within
- * ScrollView.
- */
- void SetInternalConstraints();
-
protected:
struct AccessibleImpl : public Scrollable::AccessibleImpl
{
ScrollView& operator=(const ScrollView& rhs);
private:
+ ScrollViewConstraints mConstraints;
+
unsigned long mTouchDownTime; ///< The touch down time
int mGestureStackDepth; ///< How many gestures are currently occuring.
Vector2 mWheelScrollDistanceStep; ///< The step of scroll distance in actor coordinates in X and Y axes for each wheel event received.
- //ScrollInternalConstraintsPtr mScrollInternalConstraints;
- Constraint mScrollMainInternalPrePositionConstraint;
- Constraint mScrollMainInternalPositionConstraint;
- Constraint mScrollMainInternalOvershootXConstraint;
- Constraint mScrollMainInternalOvershootYConstraint;
- Constraint mScrollMainInternalDeltaConstraint;
- Constraint mScrollMainInternalFinalConstraint;
- Constraint mScrollMainInternalRelativeConstraint;
- Constraint mScrollMainInternalDomainConstraint;
- Constraint mScrollMainInternalPrePositionMaxConstraint;
-
ScrollOvershootIndicatorPtr mOvershootIndicator;
WeakHandle<Toolkit::ScrollBar> mScrollBar;
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
+
+ friend ScrollViewConstraints;
};
+/**
+ * Returns whether to lock scrolling to a particular axis
+ *
+ * @param[in] panDelta Distance panned since gesture started
+ * @param[in] currentLockAxis The current lock axis value
+ * @param[in] lockGradient How quickly to lock to a particular axis
+ *
+ * @return The new axis lock state
+ */
+ScrollView::LockAxis GetLockAxis(const Vector2& panDelta, ScrollView::LockAxis currentLockAxis, float lockGradient);
+
} // namespace Internal
// Helpers for public-api forwarding methods