Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-06-16 08:32:42

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 QABSTRACTSCROLLAREA_H
0006 #define QABSTRACTSCROLLAREA_H
0007 
0008 #include <QtWidgets/qtwidgetsglobal.h>
0009 #include <QtWidgets/qframe.h>
0010 
0011 QT_BEGIN_NAMESPACE
0012 
0013 
0014 #if QT_CONFIG(scrollarea)
0015 
0016 class QMargins;
0017 class QScrollBar;
0018 class QAbstractScrollAreaPrivate;
0019 
0020 class Q_WIDGETS_EXPORT QAbstractScrollArea : public QFrame
0021 {
0022     Q_OBJECT
0023 
0024     Q_PROPERTY(Qt::ScrollBarPolicy verticalScrollBarPolicy READ verticalScrollBarPolicy
0025                WRITE setVerticalScrollBarPolicy)
0026     Q_PROPERTY(Qt::ScrollBarPolicy horizontalScrollBarPolicy READ horizontalScrollBarPolicy
0027                WRITE setHorizontalScrollBarPolicy)
0028     Q_PROPERTY(SizeAdjustPolicy sizeAdjustPolicy READ sizeAdjustPolicy WRITE setSizeAdjustPolicy)
0029 
0030 public:
0031     explicit QAbstractScrollArea(QWidget *parent = nullptr);
0032     ~QAbstractScrollArea();
0033 
0034     enum SizeAdjustPolicy {
0035         AdjustIgnored,
0036         AdjustToContentsOnFirstShow,
0037         AdjustToContents
0038     };
0039     Q_ENUM(SizeAdjustPolicy)
0040 
0041     Qt::ScrollBarPolicy verticalScrollBarPolicy() const;
0042     void setVerticalScrollBarPolicy(Qt::ScrollBarPolicy);
0043     QScrollBar *verticalScrollBar() const;
0044     void setVerticalScrollBar(QScrollBar *scrollbar);
0045 
0046     Qt::ScrollBarPolicy horizontalScrollBarPolicy() const;
0047     void setHorizontalScrollBarPolicy(Qt::ScrollBarPolicy);
0048     QScrollBar *horizontalScrollBar() const;
0049     void setHorizontalScrollBar(QScrollBar *scrollbar);
0050 
0051     QWidget *cornerWidget() const;
0052     void setCornerWidget(QWidget *widget);
0053 
0054     void addScrollBarWidget(QWidget *widget, Qt::Alignment alignment);
0055     QWidgetList scrollBarWidgets(Qt::Alignment alignment);
0056 
0057     QWidget *viewport() const;
0058     void setViewport(QWidget *widget);
0059     QSize maximumViewportSize() const;
0060 
0061     QSize minimumSizeHint() const override;
0062 
0063     QSize sizeHint() const override;
0064 
0065     virtual void setupViewport(QWidget *viewport);
0066 
0067     SizeAdjustPolicy sizeAdjustPolicy() const;
0068     void setSizeAdjustPolicy(SizeAdjustPolicy policy);
0069 
0070 protected:
0071     QAbstractScrollArea(QAbstractScrollAreaPrivate &dd, QWidget *parent = nullptr);
0072     void setViewportMargins(int left, int top, int right, int bottom);
0073     void setViewportMargins(const QMargins &margins);
0074     QMargins viewportMargins() const;
0075 
0076     bool eventFilter(QObject *, QEvent *) override;
0077     bool event(QEvent *) override;
0078     virtual bool viewportEvent(QEvent *);
0079 
0080     void resizeEvent(QResizeEvent *) override;
0081     void paintEvent(QPaintEvent *) override;
0082     void mousePressEvent(QMouseEvent *) override;
0083     void mouseReleaseEvent(QMouseEvent *) override;
0084     void mouseDoubleClickEvent(QMouseEvent *) override;
0085     void mouseMoveEvent(QMouseEvent *) override;
0086 #if QT_CONFIG(wheelevent)
0087     void wheelEvent(QWheelEvent *) override;
0088 #endif
0089 #ifndef QT_NO_CONTEXTMENU
0090     void contextMenuEvent(QContextMenuEvent *) override;
0091 #endif
0092 #if QT_CONFIG(draganddrop)
0093     void dragEnterEvent(QDragEnterEvent *) override;
0094     void dragMoveEvent(QDragMoveEvent *) override;
0095     void dragLeaveEvent(QDragLeaveEvent *) override;
0096     void dropEvent(QDropEvent *) override;
0097 #endif
0098 
0099     void keyPressEvent(QKeyEvent *) override;
0100 
0101     virtual void scrollContentsBy(int dx, int dy);
0102 
0103     virtual QSize viewportSizeHint() const;
0104 
0105 private:
0106     Q_DECLARE_PRIVATE(QAbstractScrollArea)
0107     Q_DISABLE_COPY(QAbstractScrollArea)
0108     Q_PRIVATE_SLOT(d_func(), void _q_hslide(int))
0109     Q_PRIVATE_SLOT(d_func(), void _q_vslide(int))
0110     Q_PRIVATE_SLOT(d_func(), void _q_showOrHideScrollBars())
0111 
0112     friend class QStyleSheetStyle;
0113     friend class QWidgetPrivate;
0114 };
0115 
0116 #endif // QT_CONFIG(scrollarea)
0117 
0118 QT_END_NAMESPACE
0119 
0120 #endif // QABSTRACTSCROLLAREA_H