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.tabbar; 13 extern(C++): 14 15 import qt.config; 16 import qt.core.coreevent; 17 import qt.core.namespace; 18 import qt.core.point; 19 import qt.core.rect; 20 import qt.core.size; 21 import qt.core.string; 22 import qt.core.variant; 23 import qt.gui.color; 24 import qt.gui.event; 25 import qt.gui.icon; 26 import qt.helpers; 27 import qt.widgets.styleoption; 28 import qt.widgets.widget; 29 30 /+ QT_REQUIRE_CONFIG(tabbar); +/ 31 32 33 extern(C++, class) struct QTabBarPrivate; 34 35 /// Binding for C++ class [QTabBar](https://doc.qt.io/qt-6/qtabbar.html). 36 class /+ Q_WIDGETS_EXPORT +/ QTabBar: QWidget 37 { 38 mixin(Q_OBJECT); 39 40 /+ Q_PROPERTY(Shape shape READ shape WRITE setShape) 41 Q_PROPERTY(int currentIndex READ currentIndex WRITE setCurrentIndex NOTIFY currentChanged) 42 Q_PROPERTY(int count READ count) 43 Q_PROPERTY(bool drawBase READ drawBase WRITE setDrawBase) 44 Q_PROPERTY(QSize iconSize READ iconSize WRITE setIconSize) 45 Q_PROPERTY(Qt::TextElideMode elideMode READ elideMode WRITE setElideMode) 46 Q_PROPERTY(bool usesScrollButtons READ usesScrollButtons WRITE setUsesScrollButtons) 47 Q_PROPERTY(bool tabsClosable READ tabsClosable WRITE setTabsClosable) 48 Q_PROPERTY(SelectionBehavior selectionBehaviorOnRemove READ selectionBehaviorOnRemove 49 WRITE setSelectionBehaviorOnRemove) 50 Q_PROPERTY(bool expanding READ expanding WRITE setExpanding) 51 Q_PROPERTY(bool movable READ isMovable WRITE setMovable) 52 Q_PROPERTY(bool documentMode READ documentMode WRITE setDocumentMode) 53 Q_PROPERTY(bool autoHide READ autoHide WRITE setAutoHide) 54 Q_PROPERTY(bool changeCurrentOnDrag READ changeCurrentOnDrag WRITE setChangeCurrentOnDrag) +/ 55 56 public: 57 /+ explicit +/this(QWidget parent = null); 58 ~this(); 59 60 enum Shape { RoundedNorth, RoundedSouth, RoundedWest, RoundedEast, 61 TriangularNorth, TriangularSouth, TriangularWest, TriangularEast 62 } 63 /+ Q_ENUM(Shape) +/ 64 65 enum ButtonPosition { 66 LeftSide, 67 RightSide 68 } 69 70 enum SelectionBehavior { 71 SelectLeftTab, 72 SelectRightTab, 73 SelectPreviousTab 74 } 75 76 final Shape shape() const; 77 final void setShape(Shape shape); 78 79 final int addTab(ref const(QString) text); 80 final int addTab(ref const(QIcon) icon, ref const(QString) text); 81 82 final int insertTab(int index, ref const(QString) text); 83 final int insertTab(int index, ref const(QIcon) icon, ref const(QString) text); 84 85 final void removeTab(int index); 86 final void moveTab(int from, int to); 87 88 final bool isTabEnabled(int index) const; 89 final void setTabEnabled(int index, bool enabled); 90 91 final bool isTabVisible(int index) const; 92 final void setTabVisible(int index, bool visible); 93 94 final QString tabText(int index) const; 95 final void setTabText(int index, ref const(QString) text); 96 97 final QColor tabTextColor(int index) const; 98 final void setTabTextColor(int index, ref const(QColor) color); 99 100 final QIcon tabIcon(int index) const; 101 final void setTabIcon(int index, ref const(QIcon) icon); 102 103 final /+ Qt:: +/qt.core.namespace.TextElideMode elideMode() const; 104 final void setElideMode(/+ Qt:: +/qt.core.namespace.TextElideMode mode); 105 106 /+ #if QT_CONFIG(tooltip) +/ 107 final void setTabToolTip(int index, ref const(QString) tip); 108 final QString tabToolTip(int index) const; 109 /+ #endif 110 111 #if QT_CONFIG(whatsthis) +/ 112 final void setTabWhatsThis(int index, ref const(QString) text); 113 final QString tabWhatsThis(int index) const; 114 /+ #endif +/ 115 116 final void setTabData(int index, ref const(QVariant) data); 117 final QVariant tabData(int index) const; 118 119 final QRect tabRect(int index) const; 120 final int tabAt(ref const(QPoint) pos) const; 121 122 final int currentIndex() const; 123 final int count() const; 124 125 override QSize sizeHint() const; 126 override QSize minimumSizeHint() const; 127 128 final void setDrawBase(bool drawTheBase); 129 final bool drawBase() const; 130 131 final QSize iconSize() const; 132 final void setIconSize(ref const(QSize) size); 133 134 final bool usesScrollButtons() const; 135 final void setUsesScrollButtons(bool useButtons); 136 137 final bool tabsClosable() const; 138 final void setTabsClosable(bool closable); 139 140 final void setTabButton(int index, ButtonPosition position, QWidget widget); 141 final QWidget tabButton(int index, ButtonPosition position) const; 142 143 final SelectionBehavior selectionBehaviorOnRemove() const; 144 final void setSelectionBehaviorOnRemove(SelectionBehavior behavior); 145 146 final bool expanding() const; 147 final void setExpanding(bool enabled); 148 149 final bool isMovable() const; 150 final void setMovable(bool movable); 151 152 final bool documentMode() const; 153 final void setDocumentMode(bool set); 154 155 final bool autoHide() const; 156 final void setAutoHide(bool hide); 157 158 final bool changeCurrentOnDrag() const; 159 final void setChangeCurrentOnDrag(bool change); 160 161 version(QT_NO_ACCESSIBILITY){}else 162 { 163 final QString accessibleTabName(int index) const; 164 final void setAccessibleTabName(int index, ref const(QString) name); 165 } 166 167 public /+ Q_SLOTS +/: 168 @QSlot final void setCurrentIndex(int index); 169 170 /+ Q_SIGNALS +/public: 171 @QSignal final void currentChanged(int index); 172 @QSignal final void tabCloseRequested(int index); 173 @QSignal final void tabMoved(int from, int to); 174 @QSignal final void tabBarClicked(int index); 175 @QSignal final void tabBarDoubleClicked(int index); 176 177 protected: 178 /+ virtual +/ QSize tabSizeHint(int index) const; 179 /+ virtual +/ QSize minimumTabSizeHint(int index) const; 180 /+ virtual +/ void tabInserted(int index); 181 /+ virtual +/ void tabRemoved(int index); 182 /+ virtual +/ void tabLayoutChange(); 183 184 override bool event(QEvent ); 185 override void resizeEvent(QResizeEvent ); 186 override void showEvent(QShowEvent ); 187 override void hideEvent(QHideEvent ); 188 override void paintEvent(QPaintEvent ); 189 override void mousePressEvent(QMouseEvent ); 190 override void mouseMoveEvent(QMouseEvent ); 191 override void mouseReleaseEvent(QMouseEvent ); 192 override void mouseDoubleClickEvent(QMouseEvent ); 193 /+ #if QT_CONFIG(wheelevent) +/ 194 override void wheelEvent(QWheelEvent event); 195 /+ #endif +/ 196 override void keyPressEvent(QKeyEvent ); 197 override void changeEvent(QEvent ); 198 override void timerEvent(QTimerEvent event); 199 /+ virtual +/ void initStyleOption(QStyleOptionTab* option, int tabIndex) const; 200 201 version(QT_NO_ACCESSIBILITY){}else 202 { 203 /+ friend class QAccessibleTabBar; +/ 204 } 205 private: 206 /+ Q_DISABLE_COPY(QTabBar) +/ 207 /+ Q_DECLARE_PRIVATE(QTabBar) +/ 208 /+ Q_PRIVATE_SLOT(d_func(), void _q_scrollTabs()) 209 Q_PRIVATE_SLOT(d_func(), void _q_closeTab()) +/ 210 mixin(CREATE_CONVENIENCE_WRAPPERS); 211 } 212