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.splitter; 13 extern(C++): 14 15 import qt.config; 16 import qt.core.bytearray; 17 import qt.core.coreevent; 18 import qt.core.list; 19 import qt.core.namespace; 20 import qt.core.size; 21 import qt.gui.event; 22 import qt.helpers; 23 import qt.widgets.frame; 24 import qt.widgets.widget; 25 26 /+ QT_REQUIRE_CONFIG(splitter); +/ 27 28 29 extern(C++, class) struct QSplitterPrivate; 30 /+ class QTextStream; +/ 31 32 33 /// Binding for C++ class [QSplitter](https://doc.qt.io/qt-6/qsplitter.html). 34 class /+ Q_WIDGETS_EXPORT +/ QSplitter : QFrame 35 { 36 mixin(Q_OBJECT); 37 38 /+ Q_PROPERTY(Qt::Orientation orientation READ orientation WRITE setOrientation) 39 Q_PROPERTY(bool opaqueResize READ opaqueResize WRITE setOpaqueResize) 40 Q_PROPERTY(int handleWidth READ handleWidth WRITE setHandleWidth) 41 Q_PROPERTY(bool childrenCollapsible READ childrenCollapsible WRITE setChildrenCollapsible) +/ 42 43 public: 44 /+ explicit +/this(QWidget parent = null); 45 /+ explicit +/this(/+ Qt:: +/qt.core.namespace.Orientation, QWidget parent = null); 46 ~this(); 47 48 final void addWidget(QWidget widget); 49 final void insertWidget(int index, QWidget widget); 50 final QWidget replaceWidget(int index, QWidget widget); 51 52 final void setOrientation(/+ Qt:: +/qt.core.namespace.Orientation); 53 final /+ Qt:: +/qt.core.namespace.Orientation orientation() const; 54 55 final void setChildrenCollapsible(bool); 56 final bool childrenCollapsible() const; 57 58 final void setCollapsible(int index, bool); 59 final bool isCollapsible(int index) const; 60 final void setOpaqueResize(bool opaque = true); 61 final bool opaqueResize() const; 62 final void refresh(); 63 64 override QSize sizeHint() const; 65 override QSize minimumSizeHint() const; 66 67 final QList!(int) sizes() const; 68 final void setSizes(ref const(QList!(int)) list); 69 70 final QByteArray saveState() const; 71 final bool restoreState(ref const(QByteArray) state); 72 73 final int handleWidth() const; 74 final void setHandleWidth(int); 75 76 final int indexOf(QWidget w) const; 77 final QWidget widget(int index) const; 78 final int count() const; 79 80 final void getRange(int index, int* , int* ) const; 81 final QSplitterHandle handle(int index) const; 82 83 final void setStretchFactor(int index, int stretch); 84 85 /+ Q_SIGNALS +/public: 86 @QSignal final void splitterMoved(int pos, int index); 87 88 protected: 89 /+ virtual +/ QSplitterHandle createHandle(); 90 91 override void childEvent(QChildEvent ); 92 93 override bool event(QEvent ); 94 override void resizeEvent(QResizeEvent ); 95 96 override void changeEvent(QEvent ); 97 final void moveSplitter(int pos, int index); 98 final void setRubberBand(int position); 99 final int closestLegalPosition(int, int); 100 101 102 private: 103 /+ Q_DISABLE_COPY(QSplitter) +/ 104 /+ Q_DECLARE_PRIVATE(QSplitter) +/ 105 private: 106 /+ friend class QSplitterHandle; +/ 107 mixin(CREATE_CONVENIENCE_WRAPPERS); 108 } 109 110 111 extern(C++, class) struct QSplitterHandlePrivate; 112 /// Binding for C++ class [QSplitterHandle](https://doc.qt.io/qt-6/qsplitterhandle.html). 113 class /+ Q_WIDGETS_EXPORT +/ QSplitterHandle : QWidget 114 { 115 mixin(Q_OBJECT); 116 public: 117 /+ explicit +/this(/+ Qt:: +/qt.core.namespace.Orientation o, QSplitter parent); 118 ~this(); 119 120 final void setOrientation(/+ Qt:: +/qt.core.namespace.Orientation o); 121 final /+ Qt:: +/qt.core.namespace.Orientation orientation() const; 122 final bool opaqueResize() const; 123 final QSplitter splitter() const; 124 125 override QSize sizeHint() const; 126 127 protected: 128 override void paintEvent(QPaintEvent ); 129 override void mouseMoveEvent(QMouseEvent ); 130 override void mousePressEvent(QMouseEvent ); 131 override void mouseReleaseEvent(QMouseEvent ); 132 override void resizeEvent(QResizeEvent ); 133 override bool event(QEvent ); 134 135 final void moveSplitter(int p); 136 final int closestLegalPosition(int p); 137 138 private: 139 /+ Q_DISABLE_COPY(QSplitterHandle) +/ 140 /+ Q_DECLARE_PRIVATE(QSplitterHandle) +/ 141 mixin(CREATE_CONVENIENCE_WRAPPERS); 142 } 143