XX CMake Package
Loading...
Searching...
No Matches
XXTabStackWidget.h
Go to the documentation of this file.
1#ifndef XXTabStackWidgetH
2#define XXTabStackWidgetH
3
5#include <QWidget>
6
7#include <QStackedWidget>
8#include <QTabBar>
9#include <QToolButton>
10
11namespace XX
12{
13 namespace TabStack
14 {
18
19 class XXWIDGETS_DECLSPEC Widget : public QWidget
20 {
21 Q_OBJECT
22
23 public:
24 Widget(QWidget* parent);
25
26 public:
27 void clearTabs();
28 void addTab(QWidget* widget, const QString& label, int depth = 0);
29 void setCornerWidget(QWidget* widget, bool right = true);
30
31 QStringList getAllTabLabels() const;
32
33 int depthCount() const;
34 void setActiveDepth(int depth);
35 QStringList getTabOrder(int depth) const;
36 void setTabOrder(int depth, const QStringList& labels);
37
38 private:
39 struct TabInfo
40 {
41 QWidget* widget = nullptr;
42 const QString label;
43
44 using List = QList<TabInfo*>;
45 };
46
47 struct TabBarInfo
48 {
49 TabInfo::List tabOrder;
50 QWidget* activeWidget = nullptr;
51 };
52 using DepthOrder = QList<TabBarInfo>;
53
54 private:
55 void tabSelected(int index);
56
57 private:
58 QTabBar* tabBar;
59 QStackedWidget* stack;
60 TabInfo::List infoList;
61 DepthOrder depthOrder;
62 int depthIndex;
63 };
64 } // namespace TabStack
65} // namespace XX
66
67#endif // NOT XXTabStackWidgetH
#define XXWIDGETS_DECLSPEC
Definition XXWidgetsExportDef.h:11
QStringList getTabOrder(int depth) const
void setTabOrder(int depth, const QStringList &labels)
Widget(QWidget *parent)
void setActiveDepth(int depth)
int depthCount() const
void setCornerWidget(QWidget *widget, bool right=true)
void addTab(QWidget *widget, const QString &label, int depth=0)
QStringList getAllTabLabels() const
Definition XXTabStackModel.h:10
Definition XXPopulatedAbstract.h:11