LMMS
Loading...
Searching...
No Matches
Controls.h
Go to the documentation of this file.
1/*
2 * Controls.h - labeled control widgets
3 *
4 * Copyright (c) 2019-2019 Johannes Lorenz <j.git$$$lorenz-ho.me, $$$=@>
5 *
6 * This file is part of LMMS - https://lmms.io
7 *
8 * This program is free software; you can redistribute it and/or
9 * modify it under the terms of the GNU General Public
10 * License as published by the Free Software Foundation; either
11 * version 2 of the License, or (at your option) any later version.
12 *
13 * This program is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16 * General Public License for more details.
17 *
18 * You should have received a copy of the GNU General Public
19 * License along with this program (see COPYING); if not, write to the
20 * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
21 * Boston, MA 02110-1301 USA.
22 *
23 */
24
25#ifndef LMMS_GUI_CONTROLS_H
26#define LMMS_GUI_CONTROLS_H
27
28// headers only required for covariance
29#include "AutomatableModel.h"
30#include "ComboBoxModel.h"
31
32
33class QString;
34class QWidget;
35class QLabel;
36
37namespace lmms
38{
39
40namespace gui
41{
42
44class Knob;
45class ComboBox;
46class LedCheckBox;
47
56{
57public:
58 virtual QWidget* topWidget() = 0;
59 virtual void setText(const QString& text) = 0;
60
61 virtual void setModel(AutomatableModel* model) = 0;
62 virtual AutomatableModel* model() = 0;
64
65 virtual ~Control() = default;
66};
67
68
69class KnobControl : public Control
70{
72
73public:
74 void setText(const QString& text) override;
75 QWidget* topWidget() override;
76
77 void setModel(AutomatableModel* model) override;
78 FloatModel* model() override;
80
81 KnobControl(const QString& text, QWidget* parent = nullptr);
82 ~KnobControl() override = default;
83};
84
85
86class ComboControl : public Control
87{
88 QWidget* m_widget;
90 QLabel* m_label;
91
92public:
93 void setText(const QString& text) override;
94 QWidget* topWidget() override { return m_widget; }
95
96 void setModel(AutomatableModel* model) override;
97 ComboBoxModel* model() override;
99
100 ComboControl(QWidget* parent = nullptr);
101 ~ComboControl() override = default;
102};
103
104
105class LcdControl : public Control
106{
108
109public:
110 void setText(const QString& text) override;
111 QWidget* topWidget() override;
112
113 void setModel(AutomatableModel* model) override;
114 IntModel* model() override;
116
117 LcdControl(int numDigits, QWidget* parent = nullptr);
118 ~LcdControl() override = default;
119};
120
121
122class CheckControl : public Control
123{
124 QWidget* m_widget;
126 QLabel* m_label;
127
128public:
129 void setText(const QString& text) override;
130 QWidget* topWidget() override;
131
132 void setModel(AutomatableModel* model) override;
133 BoolModel* model() override;
135
136 CheckControl(QWidget* parent = nullptr);
137 ~CheckControl() override = default;
138};
139
140
141} // namespace gui
142
143} // namespace lmms
144
145#endif // LMMS_GUI_CONTROLS_H
Definition AutomatableModel.h:77
Definition AutomatableModel.h:497
Definition ComboBoxModel.h:39
Definition AutomatableModel.h:463
Definition AutomatableModel.h:481
Definition AutomatableModelView.h:39
BoolModel * model() override
Definition Controls.cpp:95
QWidget * m_widget
Definition Controls.h:124
void setModel(AutomatableModel *model) override
Definition Controls.cpp:90
LedCheckBox * m_checkBox
Definition Controls.h:125
QLabel * m_label
Definition Controls.h:126
AutomatableModelView * modelView() override
Definition Controls.cpp:97
CheckControl(QWidget *parent=nullptr)
Definition Controls.cpp:99
~CheckControl() override=default
QWidget * topWidget() override
Definition Controls.cpp:88
void setText(const QString &text) override
Definition Controls.cpp:86
Definition ComboBox.h:38
QWidget * m_widget
Definition Controls.h:88
void setModel(AutomatableModel *model) override
Definition Controls.cpp:63
AutomatableModelView * modelView() override
Definition Controls.cpp:70
ComboControl(QWidget *parent=nullptr)
Definition Controls.cpp:72
ComboBox * m_combo
Definition Controls.h:89
QLabel * m_label
Definition Controls.h:90
ComboBoxModel * model() override
Definition Controls.cpp:68
void setText(const QString &text) override
Definition Controls.cpp:61
~ComboControl() override=default
QWidget * topWidget() override
Definition Controls.h:94
Definition Controls.h:56
virtual QWidget * topWidget()=0
virtual void setModel(AutomatableModel *model)=0
virtual void setText(const QString &text)=0
virtual AutomatableModel * model()=0
virtual ~Control()=default
virtual AutomatableModelView * modelView()=0
AutomatableModelView * modelView() override
Definition Controls.cpp:55
KnobControl(const QString &text, QWidget *parent=nullptr)
Definition Controls.cpp:57
void setText(const QString &text) override
Definition Controls.cpp:41
FloatModel * model() override
Definition Controls.cpp:53
void setModel(AutomatableModel *model) override
Definition Controls.cpp:48
QWidget * topWidget() override
Definition Controls.cpp:46
Knob * m_knob
Definition Controls.h:71
~KnobControl() override=default
Definition Knob.h:47
~LcdControl() override=default
AutomatableModelView * modelView() override
Definition Controls.cpp:123
class LcdSpinBox * m_lcd
Definition Controls.h:107
void setModel(AutomatableModel *model) override
Definition Controls.cpp:116
void setText(const QString &text) override
Definition Controls.cpp:112
IntModel * model() override
Definition Controls.cpp:121
QWidget * topWidget() override
Definition Controls.cpp:114
LcdControl(int numDigits, QWidget *parent=nullptr)
Definition Controls.cpp:125
Definition LcdSpinBox.h:35
Definition LedCheckBox.h:37
static uintptr_t parent
Definition pugl.h:1644
Definition AudioPortAudio.cpp:223
Definition AudioAlsa.cpp:35
const char * text
Definition swell-functions.h:167