/****************************************************************************** * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ #ifndef QSK_SWIPE_VIEW_H #define QSK_SWIPE_VIEW_H #include "QskStackBox.h" class QSK_EXPORT QskSwipeView : public QskStackBox { Q_OBJECT Q_PROPERTY( int duration READ duration WRITE setDuration RESET resetDuration NOTIFY durationChanged ) Q_PROPERTY( int swipeDistance READ swipeDistance WRITE setSwipeDistance RESET resetSwipeDistance NOTIFY swipeDistanceChanged ) Q_PROPERTY( Qt::Orientation orientation READ orientation WRITE setOrientation NOTIFY orientationChanged ) using Inherited = QskStackBox; public: QSK_SUBCONTROLS( Panel ) QskSwipeView( QQuickItem* parent = nullptr ); ~QskSwipeView() override; void setOrientation( Qt::Orientation ); Qt::Orientation orientation() const; // Duration is the time ( in ms ) used for changing between pages int duration() const; void setDuration( int ); void resetDuration(); /* Even if called "swipe view" we use a pan - no swipe - gesture. ( = pages are moved before the gesture has been confirmed ) The swipe distance is the minimum distance in pixels of the pan gesture */ int swipeDistance() const; void setSwipeDistance( int ); void resetSwipeDistance(); QskAspect::Subcontrol effectiveSubcontrol( QskAspect::Subcontrol ) const; Q_SIGNALS: void orientationChanged( Qt::Orientation ); void durationChanged( int ); void swipeDistanceChanged( int ); protected: void gestureEvent( QskGestureEvent* ) override; private: void setAnimator( QskStackBoxAnimator* ) = delete; class PrivateData; std::unique_ptr< PrivateData > m_data; }; #endif