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;
26
27 QActionGroup* actionGroup() const noexcept;
28 QToolBar* toolbar() const noexcept;
29
30 QSize sizeHint() const override;
31 void setTab(int index);
32 std::pair<int, QAction*>
33 addTab(QWidget* widg, const score::PanelStatus& v, int index = -1);
34 QAction* addAction(QWidget* widg, const PanelStatus& v);
35 QAction* addAction(QAction* act);
36
38 QAction* actionFor(QWidget* widg) const noexcept;
41 void showTab(QWidget* widg);
43 void removeTab(QWidget* widg);
45 void forgetTab(QWidget* widg);
47 QWidget* currentWidget() const noexcept;
48
49 QBrush brush;
50 void paintEvent(QPaintEvent* ev) override;
51 void actionTriggered(QAction* act, bool b) W_SIGNAL(actionTriggered, act, b)
53 void tabContextMenuRequested(QWidget* tab, QPoint globalPos)
54 E_SIGNAL(SCORE_LIB_BASE_EXPORT, tabContextMenuRequested, tab, globalPos)
55
56private:
57 score::MarginLess<QVBoxLayout> m_layout;
58 QToolBar* m_buttons{};
59 QStackedWidget m_stack;
60 QActionGroup* m_actGrp{};
61 std::vector<std::pair<QWidget*, QAction*>> m_widgetActions;
62};
63}
Definition FixedTabWidget.hpp:22
The MarginLess class.
Definition MarginLess.hpp:14
Base toolkit upon which the software is built.
Definition Application.cpp:117
The PanelStatus struct.
Definition PanelDelegate.hpp:24