27#include <QAbstractButton>
28#include <QEasingCurve>
29#include <QStyleOption>
32class QPropertyAnimation;
42 Q_PROPERTY(
int currentIndex READ currentIndex WRITE setCurrentIndex NOTIFY currentChanged)
43 Q_PROPERTY(
int count READ count)
62 int addTab(
const QString &text);
63 int addTab(
const QIcon &icon,
const QString &text);
65 int insertTab(
int index,
const QString &text);
66 int insertTab(
int index,
const QIcon &icon,
const QString &text,
bool pinned =
false);
68 void removeTab(
int index);
69 void moveTab(
int from,
int to);
71 bool isTabEnabled(
int index)
const;
72 void setTabEnabled(
int index,
bool enabled);
74 QColor tabTextColor(
int index)
const;
75 void setTabTextColor(
int index,
const QColor &color);
77 QRect tabRect(
int index)
const;
78 QRect draggedTabRect()
const;
79 QPixmap tabPixmap(
int index)
const;
82 int tabAt(
const QPoint &pos)
const;
86 bool emptyArea(
const QPoint &pos)
const;
88 int mainTabBarCurrentIndex()
const;
89 int currentIndex()
const;
92 void setDrawBase(
bool drawTheBase);
93 bool drawBase()
const;
95 Qt::TextElideMode elideMode()
const;
96 void setElideMode(Qt::TextElideMode elide);
98 QString tabText(
int index)
const;
99 void setTabText(
int index,
const QString &text);
101 void setTabToolTip(
int index,
const QString &tip);
102 QString tabToolTip(
int index)
const;
104 bool tabsClosable()
const;
105 void setTabsClosable(
bool closable);
107 void setTabButton(
int index, QTabBar::ButtonPosition position, QWidget* widget);
108 QWidget* tabButton(
int index, QTabBar::ButtonPosition position)
const;
110 QTabBar::SelectionBehavior selectionBehaviorOnRemove()
const;
111 void setSelectionBehaviorOnRemove(QTabBar::SelectionBehavior behavior);
113 bool expanding()
const;
114 void setExpanding(
bool enabled);
116 bool isMovable()
const;
117 void setMovable(
bool movable);
119 bool documentMode()
const;
120 void setDocumentMode(
bool set);
122 int pinnedTabsCount()
const;
123 int normalTabsCount()
const;
124 bool isPinned(
int index)
const;
126 void setFocusPolicy(Qt::FocusPolicy policy);
127 void setObjectName(
const QString &name);
128 void setMouseTracking(
bool enable);
130 void insertCloseButton(
int index);
131 void setCloseButtonsToolTip(
const QString &tip);
133 QTabBar::ButtonPosition iconButtonPosition()
const;
134 QTabBar::ButtonPosition closeButtonPosition()
const;
136 QSize iconButtonSize()
const;
137 QSize closeButtonSize()
const;
139 bool validIndex(
int index)
const;
140 void setCurrentNextEnabledIndex(
int offset);
142 bool usesScrollButtons()
const;
143 void setUsesScrollButtons(
bool useButtons);
145 void showDropIndicator(
int index, DropIndicatorPosition position);
146 void clearDropIndicator();
148 bool isDragInProgress()
const;
149 bool isScrollInProgress()
const;
150 bool isMainBarOverflowed()
const;
153 int cornerWidth(Qt::Corner corner)
const;
155 void addCornerWidget(QWidget* widget, Qt::Corner corner);
158 static int slideAnimationDuration();
162 void ensureVisible(
int index = -1,
int xmargin = -1);
163 void setCurrentIndex(
int index);
173 void setMinimumWidths();
174 void slotCurrentChanged(
int index);
175 void slotTabCloseRequested(
int index);
176 void slotTabMoved(
int from,
int to);
177 void closeTabFromButton();
178 void updateTabBars();
179 void emitOverFlowChanged();
182 int mainTabBarWidth()
const;
183 int pinTabBarWidth()
const;
185 bool event(QEvent *event)
override;
186 void wheelEvent(QWheelEvent* event)
override;
187 bool eventFilter(QObject* obj, QEvent* ev)
override;
188 void paintEvent(QPaintEvent* ev)
override;
190 virtual int comboTabBarPixelMetric(
SizeType sizeType)
const;
191 virtual QSize tabSizeHint(
int index,
bool fast =
false)
const;
192 virtual void tabInserted(
int index);
193 virtual void tabRemoved(
int index);
199 int toLocalIndex(
int globalIndex)
const;
200 QRect mapFromLocalTabRect(
const QRect &rect, QWidget *tabBar)
const;
201 void updatePinnedTabBarVisibility();
203 QHBoxLayout* m_mainLayout;
204 QHBoxLayout* m_leftLayout;
205 QHBoxLayout* m_rightLayout;
206 QWidget* m_leftContainer;
207 QWidget* m_rightContainer;
215 QString m_closeButtonsToolTip;
216 bool m_mainBarOverFlowed;
217 bool m_lastAppliedOverflow;
218 bool m_usesScrollButtons;
219 bool m_blockCurrentChangedSignal;
230 Q_PROPERTY(
int tabPadding READ tabPadding WRITE setTabPadding)
231 Q_PROPERTY(QColor baseColor READ baseColor WRITE setBaseColor)
236 int tabPadding()
const;
237 void setTabPadding(
int padding);
239 QColor baseColor()
const;
240 void setBaseColor(
const QColor &color);
242 void setTabButton(
int index, QTabBar::ButtonPosition position, QWidget* widget);
244 QSize tabSizeHint(
int index)
const override;
245 QSize baseClassTabSizeHint(
int index)
const;
247 QRect draggedTabRect()
const;
248 QPixmap tabPixmap(
int index)
const;
250 bool isActiveTabBar();
251 void setActiveTabBar(
bool activate);
253 void removeTab(
int index);
255 void setScrollArea(QScrollArea* scrollArea);
256 void useFastTabSizeHint(
bool enabled);
259 void clearDropIndicator();
261 bool isDisplayedOnViewPort(
int globalLeft,
int globalRight);
262 bool isDragInProgress()
const;
264 static void initStyleBaseOption(QStyleOptionTabBarBase* optTabBase, QTabBar* tabbar, QSize size);
267 void setCurrentIndex(
int index);
270 bool event(QEvent* ev)
override;
271 void paintEvent(QPaintEvent* event)
override;
272 void mousePressEvent(QMouseEvent* event)
override;
273 void mouseMoveEvent(QMouseEvent *event)
override;
274 void mouseReleaseEvent(QMouseEvent* event)
override;
276 int dragOffset(QStyleOptionTab *option,
int tabIndex)
const;
277 void initStyleOption(QStyleOptionTab* option,
int tabIndex)
const;
280 QScrollArea* m_scrollArea;
282 int m_tabPadding = -1;
285 bool m_dragInProgress;
286 QPoint m_dragStartPosition;
289 bool m_isPinnedTabBar;
290 bool m_useFastTabSizeHint;
291 int m_dropIndicatorIndex = -1;
302 bool isScrolling()
const;
304 void animateToValue(
int to, QEasingCurve::Type type = QEasingCurve::OutQuad);
307 QPropertyAnimation* m_animation;
318 QScrollArea* scrollArea();
321 void scrollByWheel(QWheelEvent* event);
323 int scrollButtonsWidth()
const;
324 bool usesScrollButtons()
const;
325 void setUsesScrollButtons(
bool useButtons);
327 bool isOverflowed()
const;
328 int tabAt(
const QPoint &pos)
const;
331 void ensureVisible(
int index = -1,
int xmargin = 132);
332 void scrollToLeft(
int n = 5, QEasingCurve::Type type = QEasingCurve::OutQuad);
333 void scrollToRight(
int n = 5, QEasingCurve::Type type = QEasingCurve::OutQuad);
334 void scrollToLeftEdge();
335 void scrollToRightEdge();
339 void overFlowChanged(
bool overflowed);
341 void updateScrollButtonsState();
344 void mouseMoveEvent(QMouseEvent* event)
override;
345 void resizeEvent(QResizeEvent* event)
override;
348 QScrollArea* m_scrollArea;
352 bool m_usesScrollButtons;
353 int m_totalVerticalDeltas;
void tabCloseRequested(int index)
void scrollBarValueChanged(int value)
void currentChanged(int index)
void overFlowChanged(bool overFlow)
void tabMoved(int from, int to)
int value(const QColor &c)