1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
|
//=============================================================================
// MusE
// Linux Music Editor
// $Id:$
//
// Copyright (C) 2002-2006 by Werner Schweer and others
//
// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License version 2.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program; if not, write to the Free Software
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
//=============================================================================
#ifndef __PLUGINGUI_H__
#define __PLUGINGUI_H__
namespace Awl {
class FloatEntry;
};
using Awl::FloatEntry;
class Plugin;
class PluginI;
//---------------------------------------------------------
// GuiParam
//---------------------------------------------------------
struct GuiParam {
enum {
GUI_SLIDER, GUI_SWITCH
};
int type;
FloatEntry* label;
QWidget* actuator; // Slider or Toggle Button (SWITCH)
};
//---------------------------------------------------------
// GuiWidget
//---------------------------------------------------------
struct GuiWidget {
enum {
SLIDER, FLOAT_ENTRY, CHECKBOX, COMBOBOX
} type;
QWidget* widget;
int parameter;
};
//---------------------------------------------------------
// PluginGui
//---------------------------------------------------------
class PluginGui : public QMainWindow {
Q_OBJECT
PluginI* plugin; // plugin instance
std::vector<GuiWidget> gw;
QAction* onOff;
void connectPrebuiltGui(QWidget* wContainer);
private slots:
void load();
void save();
void bypassToggled(bool);
void setController(double, int);
void autoChanged();
public:
PluginGui(PluginI*);
~PluginGui();
void setOn(bool);
void updateValue(int, double);
void updateValues();
public slots:
void controllerChanged(int id);
};
//---------------------------------------------------------
// PluginDialog
//---------------------------------------------------------
enum { SEL_SM, SEL_S, SEL_M, SEL_ALL };
class PluginDialog : public QDialog {
QTreeWidget* pList;
QRadioButton* allPlug;
QRadioButton* onlyM;
QRadioButton* onlyS;
QRadioButton* onlySM;
Q_OBJECT
public:
PluginDialog(QWidget* parent=0);
static Plugin* getPlugin(QWidget* parent);
Plugin* value();
void accept();
public slots:
void fillPlugs(QAbstractButton*);
void fillPlugs(int i);
void fillPlugs(const QString& sortValue);
private:
QComboBox *sortBox;
static int selectedPlugType;
static QStringList sortItems;
};
#endif
|