Loading...
Searching...
No Matches
FixedTabWidget.hpp
1#pragma once
2#include <score/plugins/panel/PanelDelegate.hpp>
3#include <score/widgets/MarginLess.hpp>
4
5#include <core/view/WidgetArgTypes.hpp>
6
7#include <QMenuView/qmenuview.h>
8#include <QStackedWidget>
9#include <QVBoxLayout>
10#include <QWidget>
11
12#include <utility>
13#include <vector>
14#include <verdigris>
15
16class QToolBar;
17class QActionGroup;
18namespace score
19{
20
21class SCORE_LIB_BASE_EXPORT FixedTabWidget : public QWidget
22{
23 W_OBJECT(FixedTabWidget)
24public:
25 FixedTabWidget() noexcept;
27
28 QActionGroup* actionGroup() const noexcept;
29 QToolBar* toolbar() const noexcept;
30
31 QSize sizeHint() const override;
32 void setTab(int index);
33 std::pair<int, QAction*>
34 addTab(QWidget* widg, const score::PanelStatus& v, int index = -1);
35 QAction* addAction(QWidget* widg, const PanelStatus& v);
36 QAction* addAction(QAction* act);
37
39 QAction* actionFor(QWidget* widg) const noexcept;
42 void showTab(QWidget* widg);
44 void removeTab(QWidget* widg);
46 void forgetTab(QWidget* widg);
48 QWidget* currentWidget() const noexcept;
49
50 QBrush brush;
51 void paintEvent(QPaintEvent* ev) override;
52 void actionTriggered(QAction* act, bool b) W_SIGNAL(actionTriggered, act, b)
54 void tabContextMenuRequested(QWidget* tab, QPoint globalPos)
55 E_SIGNAL(SCORE_LIB_BASE_EXPORT, tabContextMenuRequested, tab, globalPos)
56
57private:
58 score::MarginLess<QVBoxLayout> m_layout;
59 QToolBar* m_buttons{};
60 QStackedWidget m_stack;
61 QActionGroup* m_actGrp{};
62 std::vector<std::pair<QWidget*, QAction*>> m_widgetActions;
63};
64}
Definition FixedTabWidget.hpp:22
The MarginLess class.
Definition MarginLess.hpp:14
Base toolkit upon which the software is built.
Definition Application.cpp:108
The PanelStatus struct.
Definition PanelDelegate.hpp:24