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.dockwidget; 13 extern(C++): 14 15 import qt.config; 16 import qt.core.coreevent; 17 import qt.core.flags; 18 import qt.core.namespace; 19 import qt.core.string; 20 import qt.gui.event; 21 import qt.helpers; 22 import qt.widgets.styleoption; 23 import qt.widgets.widget; 24 version(QT_NO_ACTION){}else 25 import qt.gui.action; 26 27 /+ QT_REQUIRE_CONFIG(dockwidget); +/ 28 29 30 extern(C++, class) struct QDockAreaLayout; 31 extern(C++, class) struct QDockWidgetPrivate; 32 33 /// Binding for C++ class [QDockWidget](https://doc.qt.io/qt-6/qdockwidget.html). 34 class /+ Q_WIDGETS_EXPORT +/ QDockWidget : QWidget 35 { 36 mixin(Q_OBJECT); 37 38 /+ Q_PROPERTY(bool floating READ isFloating WRITE setFloating) 39 Q_PROPERTY(DockWidgetFeatures features READ features WRITE setFeatures NOTIFY featuresChanged) 40 Q_PROPERTY(Qt::DockWidgetAreas allowedAreas READ allowedAreas 41 WRITE setAllowedAreas NOTIFY allowedAreasChanged) 42 Q_PROPERTY(QString windowTitle READ windowTitle WRITE setWindowTitle DESIGNABLE true) +/ 43 44 public: 45 /+ explicit +/this(ref const(QString) title, QWidget parent = null, 46 /+ Qt:: +/qt.core.namespace.WindowFlags flags = /+ Qt:: +/qt.core.namespace.WindowFlags()); 47 /+ explicit +/this(QWidget parent = null, /+ Qt:: +/qt.core.namespace.WindowFlags flags = /+ Qt:: +/qt.core.namespace.WindowFlags()); 48 ~this(); 49 50 final QWidget widget() const; 51 final void setWidget(QWidget widget); 52 53 enum DockWidgetFeature { 54 DockWidgetClosable = 0x01, 55 DockWidgetMovable = 0x02, 56 DockWidgetFloatable = 0x04, 57 DockWidgetVerticalTitleBar = 0x08, 58 59 DockWidgetFeatureMask = 0x0f, 60 NoDockWidgetFeatures = 0x00, 61 62 Reserved = 0xff 63 } 64 /+ Q_DECLARE_FLAGS(DockWidgetFeatures, DockWidgetFeature) +/ 65 alias DockWidgetFeatures = QFlags!(DockWidgetFeature); /+ Q_FLAG(DockWidgetFeatures) +/ 66 67 final void setFeatures(DockWidgetFeatures features); 68 final DockWidgetFeatures features() const; 69 70 final void setFloating(bool floating); 71 pragma(inline, true) final bool isFloating() const { return isWindow(); } 72 73 final void setAllowedAreas(/+ Qt:: +/qt.core.namespace.DockWidgetAreas areas); 74 final /+ Qt:: +/qt.core.namespace.DockWidgetAreas allowedAreas() const; 75 76 final void setTitleBarWidget(QWidget widget); 77 final QWidget titleBarWidget() const; 78 79 pragma(inline, true) final bool isAreaAllowed(/+ Qt:: +/qt.core.namespace.DockWidgetArea area) const 80 { return (allowedAreas() & area) == qt.core.namespace.DockWidgetAreas(area); } 81 82 version(QT_NO_ACTION){}else 83 { 84 final QAction toggleViewAction() const; 85 } 86 87 /+ Q_SIGNALS +/public: 88 @QSignal final void featuresChanged(DockWidgetFeatures features); 89 @QSignal final void topLevelChanged(bool topLevel); 90 @QSignal final void allowedAreasChanged(/+ Qt:: +/qt.core.namespace.DockWidgetAreas allowedAreas); 91 @QSignal final void visibilityChanged(bool visible); 92 @QSignal final void dockLocationChanged(/+ Qt:: +/qt.core.namespace.DockWidgetArea area); 93 94 protected: 95 override void changeEvent(QEvent event); 96 override void closeEvent(QCloseEvent event); 97 override void paintEvent(QPaintEvent event); 98 override bool event(QEvent event); 99 /+ virtual +/ void initStyleOption(QStyleOptionDockWidget* option) const; 100 101 private: 102 /+ Q_DECLARE_PRIVATE(QDockWidget) +/ 103 /+ Q_DISABLE_COPY(QDockWidget) +/ 104 /+ Q_PRIVATE_SLOT(d_func(), void _q_toggleView(bool)) 105 Q_PRIVATE_SLOT(d_func(), void _q_toggleTopLevel()) +/ 106 /+ friend class QDockAreaLayout; +/ 107 /+ friend class QDockWidgetItem; +/ 108 /+ friend class QMainWindowLayout; +/ 109 /+ friend class QDockWidgetLayout; +/ 110 /+ friend class QDockAreaLayoutInfo; +/ 111 mixin(CREATE_CONVENIENCE_WRAPPERS); 112 } 113 /+pragma(inline, true) QFlags!(QDockWidget.DockWidgetFeatures.enum_type) operator |(QDockWidget.DockWidgetFeatures.enum_type f1, QDockWidget.DockWidgetFeatures.enum_type f2)/+noexcept+/{return QFlags!(QDockWidget.DockWidgetFeatures.enum_type)(f1)|f2;}+/ 114 /+pragma(inline, true) QFlags!(QDockWidget.DockWidgetFeatures.enum_type) operator |(QDockWidget.DockWidgetFeatures.enum_type f1, QFlags!(QDockWidget.DockWidgetFeatures.enum_type) f2)/+noexcept+/{return f2|f1;}+/ 115 /+pragma(inline, true) QFlags!(QDockWidget.DockWidgetFeatures.enum_type) operator &(QDockWidget.DockWidgetFeatures.enum_type f1, QDockWidget.DockWidgetFeatures.enum_type f2)/+noexcept+/{return QFlags!(QDockWidget.DockWidgetFeatures.enum_type)(f1)&f2;}+/ 116 /+pragma(inline, true) QFlags!(QDockWidget.DockWidgetFeatures.enum_type) operator &(QDockWidget.DockWidgetFeatures.enum_type f1, QFlags!(QDockWidget.DockWidgetFeatures.enum_type) f2)/+noexcept+/{return f2&f1;}+/ 117 /+pragma(inline, true) void operator +(QDockWidget.DockWidgetFeatures.enum_type f1, QDockWidget.DockWidgetFeatures.enum_type f2)/+noexcept+/;+/ 118 /+pragma(inline, true) void operator +(QDockWidget.DockWidgetFeatures.enum_type f1, QFlags!(QDockWidget.DockWidgetFeatures.enum_type) f2)/+noexcept+/;+/ 119 /+pragma(inline, true) void operator +(int f1, QFlags!(QDockWidget.DockWidgetFeatures.enum_type) f2)/+noexcept+/;+/ 120 /+pragma(inline, true) void operator -(QDockWidget.DockWidgetFeatures.enum_type f1, QDockWidget.DockWidgetFeatures.enum_type f2)/+noexcept+/;+/ 121 /+pragma(inline, true) void operator -(QDockWidget.DockWidgetFeatures.enum_type f1, QFlags!(QDockWidget.DockWidgetFeatures.enum_type) f2)/+noexcept+/;+/ 122 /+pragma(inline, true) void operator -(int f1, QFlags!(QDockWidget.DockWidgetFeatures.enum_type) f2)/+noexcept+/;+/ 123 /+pragma(inline, true) QIncompatibleFlag operator |(QDockWidget.DockWidgetFeatures.enum_type f1, int f2)/+noexcept+/{return QIncompatibleFlag(int(f1)|f2);}+/ 124 /+pragma(inline, true) void operator +(int f1, QDockWidget.DockWidgetFeatures.enum_type f2)/+noexcept+/;+/ 125 /+pragma(inline, true) void operator +(QDockWidget.DockWidgetFeatures.enum_type f1, int f2)/+noexcept+/;+/ 126 /+pragma(inline, true) void operator -(int f1, QDockWidget.DockWidgetFeatures.enum_type f2)/+noexcept+/;+/ 127 /+pragma(inline, true) void operator -(QDockWidget.DockWidgetFeatures.enum_type f1, int f2)/+noexcept+/;+/ 128 129 /+ Q_DECLARE_OPERATORS_FOR_FLAGS(QDockWidget::DockWidgetFeatures) +/