1 /* 2 * DQt - D bindings for the Qt Toolkit 3 * 4 * GNU Lesser General Public License Usage 5 * This file may be used under the terms of the GNU Lesser 6 * General Public License version 3 as published by the Free Software 7 * Foundation and appearing in the file LICENSE.LGPL3 included in the 8 * packaging of this file. Please review the following information to 9 * ensure the GNU Lesser General Public License version 3 requirements 10 * will be met: https://www.gnu.org/licenses/lgpl-3.0.html. 11 */ 12 module qt.widgets.abstractscrollarea; 13 extern(C++): 14 15 import qt.config; 16 import qt.core.coreevent; 17 import qt.core.margins; 18 import qt.core.namespace; 19 import qt.core.object; 20 import qt.core.size; 21 import qt.gui.event; 22 import qt.helpers; 23 import qt.widgets.frame; 24 import qt.widgets.scrollbar; 25 import qt.widgets.widget; 26 27 /+ #if QT_CONFIG(scrollarea) +/ 28 29 extern(C++, class) struct QAbstractScrollAreaPrivate; 30 31 /// Binding for C++ class [QAbstractScrollArea](https://doc.qt.io/qt-6/qabstractscrollarea.html). 32 class /+ Q_WIDGETS_EXPORT +/ QAbstractScrollArea : QFrame 33 { 34 mixin(Q_OBJECT); 35 36 /+ Q_PROPERTY(Qt::ScrollBarPolicy verticalScrollBarPolicy READ verticalScrollBarPolicy 37 WRITE setVerticalScrollBarPolicy) 38 Q_PROPERTY(Qt::ScrollBarPolicy horizontalScrollBarPolicy READ horizontalScrollBarPolicy 39 WRITE setHorizontalScrollBarPolicy) 40 Q_PROPERTY(SizeAdjustPolicy sizeAdjustPolicy READ sizeAdjustPolicy WRITE setSizeAdjustPolicy) +/ 41 42 public: 43 /+ explicit +/this(QWidget parent = null); 44 ~this(); 45 46 enum SizeAdjustPolicy { 47 AdjustIgnored, 48 AdjustToContentsOnFirstShow, 49 AdjustToContents 50 } 51 /+ Q_ENUM(SizeAdjustPolicy) +/ 52 53 final /+ Qt:: +/qt.core.namespace.ScrollBarPolicy verticalScrollBarPolicy() const; 54 final void setVerticalScrollBarPolicy(/+ Qt:: +/qt.core.namespace.ScrollBarPolicy); 55 final QScrollBar verticalScrollBar() const; 56 final void setVerticalScrollBar(QScrollBar scrollbar); 57 58 final /+ Qt:: +/qt.core.namespace.ScrollBarPolicy horizontalScrollBarPolicy() const; 59 final void setHorizontalScrollBarPolicy(/+ Qt:: +/qt.core.namespace.ScrollBarPolicy); 60 final QScrollBar horizontalScrollBar() const; 61 final void setHorizontalScrollBar(QScrollBar scrollbar); 62 63 final QWidget cornerWidget() const; 64 final void setCornerWidget(QWidget widget); 65 66 final void addScrollBarWidget(QWidget widget, /+ Qt:: +/qt.core.namespace.Alignment alignment); 67 final QWidgetList scrollBarWidgets(/+ Qt:: +/qt.core.namespace.Alignment alignment); 68 69 final QWidget viewport() const; 70 final void setViewport(QWidget widget); 71 final QSize maximumViewportSize() const; 72 73 override QSize minimumSizeHint() const; 74 75 override QSize sizeHint() const; 76 77 /+ virtual +/ void setupViewport(QWidget viewport); 78 79 final SizeAdjustPolicy sizeAdjustPolicy() const; 80 final void setSizeAdjustPolicy(SizeAdjustPolicy policy); 81 82 protected: 83 this(ref QAbstractScrollAreaPrivate dd, QWidget parent = null); 84 final void setViewportMargins(int left, int top, int right, int bottom); 85 final void setViewportMargins(ref const(QMargins) margins); 86 final QMargins viewportMargins() const; 87 88 override bool eventFilter(QObject , QEvent ); 89 override bool event(QEvent ); 90 /+ virtual +/ bool viewportEvent(QEvent ); 91 92 override void resizeEvent(QResizeEvent ); 93 override void paintEvent(QPaintEvent ); 94 override void mousePressEvent(QMouseEvent ); 95 override void mouseReleaseEvent(QMouseEvent ); 96 override void mouseDoubleClickEvent(QMouseEvent ); 97 override void mouseMoveEvent(QMouseEvent ); 98 /+ #if QT_CONFIG(wheelevent) +/ 99 override void wheelEvent(QWheelEvent ); 100 /+ #endif 101 #ifndef QT_NO_CONTEXTMENU +/ 102 version(QT_NO_CONTEXTMENU){}else 103 { 104 override void contextMenuEvent(QContextMenuEvent ); 105 } 106 /+ #endif 107 #if QT_CONFIG(draganddrop) +/ 108 override void dragEnterEvent(QDragEnterEvent ); 109 override void dragMoveEvent(QDragMoveEvent ); 110 override void dragLeaveEvent(QDragLeaveEvent ); 111 override void dropEvent(QDropEvent ); 112 /+ #endif +/ 113 114 override void keyPressEvent(QKeyEvent ); 115 116 /+ virtual +/ void scrollContentsBy(int dx, int dy); 117 118 /+ virtual +/ QSize viewportSizeHint() const; 119 120 private: 121 /+ Q_DECLARE_PRIVATE(QAbstractScrollArea) +/ 122 /+ Q_DISABLE_COPY(QAbstractScrollArea) +/ 123 /+ Q_PRIVATE_SLOT(d_func(), void _q_hslide(int)) 124 Q_PRIVATE_SLOT(d_func(), void _q_vslide(int)) 125 Q_PRIVATE_SLOT(d_func(), void _q_showOrHideScrollBars()) +/ 126 127 /+ friend class QStyleSheetStyle; +/ 128 /+ friend class QWidgetPrivate; +/ 129 mixin(CREATE_CONVENIENCE_WRAPPERS); 130 } 131 132 /+ #endif +/ // QT_CONFIG(scrollarea) 133