43 |
|
|
44 |
class MainWindow; |
class MainWindow; |
45 |
|
|
46 |
|
class Table : public Gtk::Table |
47 |
|
{ |
48 |
|
public: |
49 |
|
Table(int x, int y); |
50 |
|
void add(BoolEntry& boolentry); |
51 |
|
void add(BoolEntryPlus6& boolentry); |
52 |
|
void add(LabelWidget& labelwidget); |
53 |
|
private: |
54 |
|
int rowno; |
55 |
|
}; |
56 |
|
|
57 |
class PropDialog : public Gtk::Window { |
class PropDialog : public Gtk::Window { |
58 |
public: |
public: |
59 |
PropDialog(); |
PropDialog(); |
60 |
void set_info(DLS::Info* info); |
void set_info(DLS::Info* info); |
61 |
|
sigc::signal<void>& signal_info_changed(); |
62 |
protected: |
protected: |
63 |
Gtk::Table table; |
sigc::signal<void> info_changed; |
64 |
Gtk::Label label[16]; |
StringEntry eName; |
65 |
Gtk::Entry entry[16]; |
StringEntry eCreationDate; |
66 |
|
StringEntryMultiLine eComments; |
67 |
|
StringEntry eProduct; |
68 |
|
StringEntry eCopyright; |
69 |
|
StringEntry eArtists; |
70 |
|
StringEntry eGenre; |
71 |
|
StringEntry eKeywords; |
72 |
|
StringEntry eEngineer; |
73 |
|
StringEntry eTechnician; |
74 |
|
StringEntry eSoftware; |
75 |
|
StringEntry eMedium; |
76 |
|
StringEntry eSource; |
77 |
|
StringEntry eSourceForm; |
78 |
|
StringEntry eCommissioned; |
79 |
|
StringEntry eSubject; |
80 |
|
Gtk::VBox vbox; |
81 |
|
Gtk::HButtonBox buttonBox; |
82 |
|
Gtk::Button quitButton; |
83 |
|
Table table; |
84 |
|
int update_model; |
85 |
|
DLS::Info* info; |
86 |
|
|
87 |
|
template<typename T> |
88 |
|
void set_member(T value, T DLS::Info::* member) { |
89 |
|
if (update_model == 0) { |
90 |
|
info->*member = value; |
91 |
|
info_changed(); |
92 |
|
} |
93 |
|
} |
94 |
|
|
95 |
|
template<typename C, typename T> |
96 |
|
void connect(C& widget, T DLS::Info::* member) { |
97 |
|
widget.signal_value_changed().connect( |
98 |
|
sigc::compose( |
99 |
|
sigc::bind(sigc::mem_fun(*this, &PropDialog::set_member<T>), member), |
100 |
|
sigc::mem_fun(widget, &C::get_value))); |
101 |
|
} |
102 |
}; |
}; |
103 |
|
|
104 |
class InstrumentProps : public Gtk::Window { |
class InstrumentProps : public Gtk::Window { |
150 |
Gtk::VBox vbox; |
Gtk::VBox vbox; |
151 |
Gtk::HButtonBox buttonBox; |
Gtk::HButtonBox buttonBox; |
152 |
Gtk::Button quitButton; |
Gtk::Button quitButton; |
153 |
Gtk::Table table; |
Table table; |
154 |
StringEntry eName; |
StringEntry eName; |
155 |
BoolEntry eIsDrum; |
BoolEntry eIsDrum; |
156 |
NumEntryTemp<uint16_t> eMIDIBank; |
NumEntryTemp<uint16_t> eMIDIBank; |
163 |
BoolEntry ePianoReleaseMode; |
BoolEntry ePianoReleaseMode; |
164 |
NoteEntry eDimensionKeyRangeLow; |
NoteEntry eDimensionKeyRangeLow; |
165 |
NoteEntry eDimensionKeyRangeHigh; |
NoteEntry eDimensionKeyRangeHigh; |
|
int rowno; |
|
|
void add_prop(BoolEntry& prop); |
|
|
void add_prop(BoolEntryPlus6& prop); |
|
|
void add_prop(LabelWidget& prop); |
|
166 |
sigc::signal<void> instrument_changed; |
sigc::signal<void> instrument_changed; |
167 |
}; |
}; |
168 |
|
|