File indexing completed on 2026-09-19 09:34:26
0001
0002
0003
0004
0005 #ifndef QSCROLLERPROPERTIES_H
0006 #define QSCROLLERPROPERTIES_H
0007
0008 #include <QtWidgets/qtwidgetsglobal.h>
0009 #include <QtCore/QScopedPointer>
0010 #include <QtCore/QMetaType>
0011 #include <QtCore/QVariant>
0012
0013 QT_REQUIRE_CONFIG(scroller);
0014
0015 QT_BEGIN_NAMESPACE
0016
0017
0018 class QScroller;
0019 class QScrollerPrivate;
0020 class QScrollerPropertiesPrivate;
0021
0022 class Q_WIDGETS_EXPORT QScrollerProperties
0023 {
0024 public:
0025 QScrollerProperties();
0026 QScrollerProperties(const QScrollerProperties &sp);
0027 QScrollerProperties &operator=(const QScrollerProperties &sp);
0028 virtual ~QScrollerProperties();
0029
0030 bool operator==(const QScrollerProperties &sp) const;
0031 bool operator!=(const QScrollerProperties &sp) const;
0032
0033 static void setDefaultScrollerProperties(const QScrollerProperties &sp);
0034 static void unsetDefaultScrollerProperties();
0035
0036 enum OvershootPolicy
0037 {
0038 OvershootWhenScrollable,
0039 OvershootAlwaysOff,
0040 OvershootAlwaysOn
0041 };
0042
0043 enum FrameRates {
0044 Standard,
0045 Fps60,
0046 Fps30,
0047 Fps20
0048 };
0049
0050 enum ScrollMetric
0051 {
0052 MousePressEventDelay,
0053 DragStartDistance,
0054 DragVelocitySmoothingFactor,
0055 AxisLockThreshold,
0056
0057 ScrollingCurve,
0058 DecelerationFactor,
0059
0060 MinimumVelocity,
0061 MaximumVelocity,
0062 MaximumClickThroughVelocity,
0063
0064 AcceleratingFlickMaximumTime,
0065 AcceleratingFlickSpeedupFactor,
0066
0067 SnapPositionRatio,
0068 SnapTime,
0069
0070 OvershootDragResistanceFactor,
0071 OvershootDragDistanceFactor,
0072 OvershootScrollDistanceFactor,
0073 OvershootScrollTime,
0074
0075 HorizontalOvershootPolicy,
0076 VerticalOvershootPolicy,
0077 FrameRate,
0078
0079 ScrollMetricCount
0080 };
0081
0082 QVariant scrollMetric(ScrollMetric metric) const;
0083 void setScrollMetric(ScrollMetric metric, const QVariant &value);
0084
0085 protected:
0086 QScopedPointer<QScrollerPropertiesPrivate> d;
0087
0088 private:
0089 QScrollerProperties(QScrollerPropertiesPrivate &dd);
0090
0091 friend class QScrollerPropertiesPrivate;
0092 friend class QScroller;
0093 friend class QScrollerPrivate;
0094 };
0095
0096 QT_END_NAMESPACE
0097
0098 QT_DECL_METATYPE_EXTERN_TAGGED(QScrollerProperties::OvershootPolicy,
0099 QScrollerProperties__OvershootPolicy, Q_WIDGETS_EXPORT)
0100 QT_DECL_METATYPE_EXTERN_TAGGED(QScrollerProperties::FrameRates,
0101 QScrollerProperties__FrameRates, Q_WIDGETS_EXPORT)
0102
0103 #endif