Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-09-19 09:34:26

0001 // Copyright (C) 2016 The Qt Company Ltd.
0002 // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
0003 // Qt-Security score:significant reason:default
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,                    // qreal [s]
0053         DragStartDistance,                       // qreal [m]
0054         DragVelocitySmoothingFactor,             // qreal [0..1/s]  (complex calculation involving time) v = v_new* DASF + v_old * (1-DASF)
0055         AxisLockThreshold,                       // qreal [0..1] atan(|min(dx,dy)|/|max(dx,dy)|)
0056 
0057         ScrollingCurve,                          // QEasingCurve
0058         DecelerationFactor,                      // slope of the curve
0059 
0060         MinimumVelocity,                         // qreal [m/s]
0061         MaximumVelocity,                         // qreal [m/s]
0062         MaximumClickThroughVelocity,             // qreal [m/s]
0063 
0064         AcceleratingFlickMaximumTime,            // qreal [s]
0065         AcceleratingFlickSpeedupFactor,          // qreal [1..]
0066 
0067         SnapPositionRatio,                       // qreal [0..1]
0068         SnapTime,                                // qreal [s]
0069 
0070         OvershootDragResistanceFactor,           // qreal [0..1]
0071         OvershootDragDistanceFactor,             // qreal [0..1]
0072         OvershootScrollDistanceFactor,           // qreal [0..1]
0073         OvershootScrollTime,                     // qreal [s]
0074 
0075         HorizontalOvershootPolicy,               // enum OvershootPolicy
0076         VerticalOvershootPolicy,                 // enum OvershootPolicy
0077         FrameRate,                               // enum FrameRates
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 // QSCROLLERPROPERTIES_H