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