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.tabwidget; 13 extern(C++): 14 15 import qt.config; 16 import qt.core.coreevent; 17 import qt.core.namespace; 18 import qt.core.size; 19 import qt.core.string; 20 import qt.gui.event; 21 import qt.gui.icon; 22 import qt.helpers; 23 import qt.widgets.styleoption; 24 import qt.widgets.tabbar; 25 import qt.widgets.widget; 26 27 /+ QT_REQUIRE_CONFIG(tabwidget); +/ 28 29 30 extern(C++, class) struct QTabWidgetPrivate; 31 32 /// Binding for C++ class [QTabWidget](https://doc.qt.io/qt-6/qtabwidget.html). 33 class /+ Q_WIDGETS_EXPORT +/ QTabWidget : QWidget 34 { 35 mixin(Q_OBJECT); 36 /+ Q_PROPERTY(TabPosition tabPosition READ tabPosition WRITE setTabPosition) 37 Q_PROPERTY(TabShape tabShape READ tabShape WRITE setTabShape) 38 Q_PROPERTY(int currentIndex READ currentIndex WRITE setCurrentIndex NOTIFY currentChanged) 39 Q_PROPERTY(int count READ count) 40 Q_PROPERTY(QSize iconSize READ iconSize WRITE setIconSize) 41 Q_PROPERTY(Qt::TextElideMode elideMode READ elideMode WRITE setElideMode) 42 Q_PROPERTY(bool usesScrollButtons READ usesScrollButtons WRITE setUsesScrollButtons) 43 Q_PROPERTY(bool documentMode READ documentMode WRITE setDocumentMode) 44 Q_PROPERTY(bool tabsClosable READ tabsClosable WRITE setTabsClosable) 45 Q_PROPERTY(bool movable READ isMovable WRITE setMovable) 46 Q_PROPERTY(bool tabBarAutoHide READ tabBarAutoHide WRITE setTabBarAutoHide) +/ 47 48 public: 49 /+ explicit +/this(QWidget parent = null); 50 ~this(); 51 52 final int addTab(QWidget widget, ref const(QString) ); 53 final int addTab(QWidget widget, ref const(QIcon) icon, ref const(QString) label); 54 55 final int insertTab(int index, QWidget widget, ref const(QString) ); 56 final int insertTab(int index, QWidget widget, ref const(QIcon) icon, ref const(QString) label); 57 58 final void removeTab(int index); 59 60 final bool isTabEnabled(int index) const; 61 final void setTabEnabled(int index, bool enabled); 62 63 final bool isTabVisible(int index) const; 64 final void setTabVisible(int index, bool visible); 65 66 final QString tabText(int index) const; 67 final void setTabText(int index, ref const(QString) text); 68 69 final QIcon tabIcon(int index) const; 70 final void setTabIcon(int index, ref const(QIcon) icon); 71 72 /+ #if QT_CONFIG(tooltip) +/ 73 final void setTabToolTip(int index, ref const(QString) tip); 74 final QString tabToolTip(int index) const; 75 /+ #endif 76 77 #if QT_CONFIG(whatsthis) +/ 78 final void setTabWhatsThis(int index, ref const(QString) text); 79 final QString tabWhatsThis(int index) const; 80 /+ #endif +/ 81 82 final int currentIndex() const; 83 final QWidget currentWidget() const; 84 final QWidget widget(int index) const; 85 mixin(changeWindowsMangling(q{mangleClassesTailConst}, q{ 86 final int indexOf(const(QWidget) widget) const; 87 })); 88 final int count() const; 89 90 enum TabPosition { North, South, West, East } 91 /+ Q_ENUM(TabPosition) +/ 92 final TabPosition tabPosition() const; 93 final void setTabPosition(TabPosition position); 94 95 final bool tabsClosable() const; 96 final void setTabsClosable(bool closeable); 97 98 final bool isMovable() const; 99 final void setMovable(bool movable); 100 101 enum TabShape { Rounded, Triangular } 102 /+ Q_ENUM(TabShape) +/ 103 final TabShape tabShape() const; 104 final void setTabShape(TabShape s); 105 106 override QSize sizeHint() const; 107 override QSize minimumSizeHint() const; 108 override int heightForWidth(int width) const; 109 override bool hasHeightForWidth() const; 110 111 final void setCornerWidget(QWidget w, /+ Qt:: +/qt.core.namespace.Corner corner = /+ Qt:: +/qt.core.namespace.Corner.TopRightCorner); 112 final QWidget cornerWidget(/+ Qt:: +/qt.core.namespace.Corner corner = /+ Qt:: +/qt.core.namespace.Corner.TopRightCorner) const; 113 114 final /+ Qt:: +/qt.core.namespace.TextElideMode elideMode() const; 115 final void setElideMode(/+ Qt:: +/qt.core.namespace.TextElideMode mode); 116 117 final QSize iconSize() const; 118 final void setIconSize(ref const(QSize) size); 119 120 final bool usesScrollButtons() const; 121 final void setUsesScrollButtons(bool useButtons); 122 123 final bool documentMode() const; 124 final void setDocumentMode(bool set); 125 126 final bool tabBarAutoHide() const; 127 final void setTabBarAutoHide(bool enabled); 128 129 final void clear(); 130 131 final QTabBar tabBar() const; 132 133 public /+ Q_SLOTS +/: 134 @QSlot final void setCurrentIndex(int index); 135 @QSlot final void setCurrentWidget(QWidget widget); 136 137 /+ Q_SIGNALS +/public: 138 @QSignal final void currentChanged(int index); 139 @QSignal final void tabCloseRequested(int index); 140 @QSignal final void tabBarClicked(int index); 141 @QSignal final void tabBarDoubleClicked(int index); 142 143 protected: 144 /+ virtual +/ void tabInserted(int index); 145 /+ virtual +/ void tabRemoved(int index); 146 147 override void showEvent(QShowEvent ); 148 override void resizeEvent(QResizeEvent ); 149 override void keyPressEvent(QKeyEvent ); 150 override void paintEvent(QPaintEvent ); 151 final void setTabBar(QTabBar ); 152 override void changeEvent(QEvent ); 153 override bool event(QEvent ); 154 /+ virtual +/ void initStyleOption(QStyleOptionTabWidgetFrame* option) const; 155 156 157 private: 158 /+ Q_DECLARE_PRIVATE(QTabWidget) +/ 159 /+ Q_DISABLE_COPY(QTabWidget) +/ 160 /+ Q_PRIVATE_SLOT(d_func(), void _q_showTab(int)) 161 Q_PRIVATE_SLOT(d_func(), void _q_removeTab(int)) 162 Q_PRIVATE_SLOT(d_func(), void _q_tabMoved(int, int)) +/ 163 final void setUpLayout(bool /+ = false +/); 164 mixin(CREATE_CONVENIENCE_WRAPPERS); 165 } 166