Loading...
Searching...
No Matches
WidgetPresentation.hpp
1#pragma once
2#include <QFont>
3#include <QGraphicsItem>
4#include <QString>
5#include <QStyleOptionGraphicsItem>
6
7#include <score_lib_base_export.h>
8
9namespace score
10{
12enum class ControlSize
13{
14 Normal,
15 Small,
16 Large
17};
18
20inline constexpr int ValueOnHoverDataKey = 0x5C0E;
21
23inline bool showsValue(
24 const QGraphicsItem& item, bool grabbed,
25 const QStyleOptionGraphicsItem* option) noexcept
26{
27 if(grabbed || !item.acceptHoverEvents() || !item.data(ValueOnHoverDataKey).toBool())
28 return true;
29 return option && (option->state & QStyle::State_MouseOver);
30}
31
37{
38 const QFont* font{};
39 QString text;
40};
41SCORE_LIB_BASE_EXPORT FittedText
42fitValueText(const QFont& font, const QString& text, qreal width);
43
45inline constexpr int ValueAlignmentDataKey = 0x5C0F;
46
49SCORE_LIB_BASE_EXPORT void setValueAlignment(QGraphicsItem& control, Qt::Alignment align);
50
52SCORE_LIB_BASE_EXPORT void setValueOnHover(QGraphicsItem& control, bool onHover);
53
55SCORE_LIB_BASE_EXPORT void setControlSize(QGraphicsItem& control, ControlSize size);
56}
Base toolkit upon which the software is built.
Definition Application.cpp:83
bool showsValue(const QGraphicsItem &item, bool grabbed, const QStyleOptionGraphicsItem *option) noexcept
Whether to draw the value text. Called on every paint, must stay cheap.
Definition WidgetPresentation.hpp:23
constexpr int ValueAlignmentDataKey
data() key: where a knob draws its value under it, as a Qt::Alignment
Definition WidgetPresentation.hpp:45
void setValueAlignment(QGraphicsItem &control, Qt::Alignment align)
Definition WidgetPresentation.cpp:86
void setControlSize(QGraphicsItem &control, ControlSize size)
No-op for widgets other than knobs and sliders.
Definition WidgetPresentation.cpp:94
void setValueOnHover(QGraphicsItem &control, bool onHover)
No-op for widgets other than knobs and sliders.
Definition WidgetPresentation.cpp:76
constexpr int ValueOnHoverDataKey
data() key: show the value only while hovered or dragged
Definition WidgetPresentation.hpp:20
ControlSize
Control widget size, relative to its default.
Definition WidgetPresentation.hpp:13
Definition WidgetPresentation.hpp:37