Loading...
Searching...
No Matches
GraphicsBoxLayout.hpp
1#pragma once
2
3#include <score/graphics/GraphicsLayout.hpp>
4
5#include <QFont>
6
7#include <functional>
8
9namespace score
10{
11
15SCORE_LIB_BASE_EXPORT void setLayoutStretch(QGraphicsItem& item);
16
17class SCORE_LIB_BASE_EXPORT GraphicsHBoxLayout : public GraphicsLayout
18{
19public:
20 using GraphicsLayout::GraphicsLayout;
22
23 void layout() override;
24 void centerContent() override;
25};
26class SCORE_LIB_BASE_EXPORT GraphicsVBoxLayout : public GraphicsLayout
27{
28public:
29 using GraphicsLayout::GraphicsLayout;
31 void layout() override;
32 void centerContent() override;
33};
34
36class SCORE_LIB_BASE_EXPORT GraphicsSelectableRow : public GraphicsHBoxLayout
37{
38public:
39 explicit GraphicsSelectableRow(QGraphicsItem* parent);
41
42 std::function<void()> onActivated;
43 void activate();
44 void setSelected(bool selected);
45
46 void paint(QPainter* painter, const QStyleOptionGraphicsItem* option, QWidget* widget)
47 override;
48
49protected:
50 bool sceneEventFilter(QGraphicsItem* watched, QEvent* event) override;
51 void hoverEnterEvent(QGraphicsSceneHoverEvent* event) override;
52 void hoverLeaveEvent(QGraphicsSceneHoverEvent* event) override;
53
54private:
55 bool m_selected{};
56 bool m_hovered{};
57};
58
60class SCORE_LIB_BASE_EXPORT GraphicsSectionLayout : public GraphicsVBoxLayout
61{
62public:
63 using GraphicsVBoxLayout::GraphicsVBoxLayout;
65
66 void setTitle(const QString& title);
67
68 void layout() override;
69 void paint(QPainter* painter, const QStyleOptionGraphicsItem* option, QWidget* widget)
70 override;
71
72private:
73 qreal titleHeight() const;
75 void updateTitleFont();
76 void setTitleFont(const QFont& base);
77 QString m_title;
78 QFont m_titleFontBase;
79 QFont m_titleFont;
80 qreal m_titleAscent{};
81};
82}
Definition GraphicsBoxLayout.hpp:18
Definition GraphicsLayout.hpp:8
Titled vbox padded on all sides. Sizes itself, independent of parent margins.
Definition GraphicsBoxLayout.hpp:61
Table row selected by a press on its background or controls.
Definition GraphicsBoxLayout.hpp:37
Definition GraphicsBoxLayout.hpp:27
Base toolkit upon which the software is built.
Definition Application.cpp:83
void setLayoutStretch(QGraphicsItem &item)
Definition GraphicsBoxLayout.cpp:24