82 |
void value_changed(); |
void value_changed(); |
83 |
public: |
public: |
84 |
NumEntryGain(char* labelText, |
NumEntryGain(char* labelText, |
85 |
double lower, double upper, int decimals); |
double lower, double upper, int decimals); |
86 |
void set_dimreg(gig::DimensionRegion* dimreg); |
void set_dimreg(gig::DimensionRegion* dimreg); |
87 |
}; |
}; |
88 |
|
|
89 |
template<typename T> |
template<typename T, typename T2 = gig::DimensionRegion> |
90 |
class NumEntryX : public NumEntry<gig::DimensionRegion> { |
class NumEntryX : public NumEntry<T2> { |
91 |
|
using NumEntry<T2>::spinbutton; |
92 |
|
using NumEntry<T2>::dimreg; |
93 |
private: |
private: |
94 |
T& (*access)(gig::DimensionRegion*); |
T& (*access)(T2*); |
95 |
void value_changed(); |
void value_changed(); |
96 |
public: |
public: |
97 |
NumEntryX(char* labelText, T& (*access)(gig::DimensionRegion*), |
NumEntryX(char* labelText, T& (*access)(T2*), |
98 |
double lower = 0, double upper = 127, int decimals = 0); |
double lower = 0, double upper = 127, int decimals = 0); |
99 |
void set_dimreg(gig::DimensionRegion* dimreg); |
void set_dimreg(T2* dimreg); |
100 |
}; |
}; |
101 |
|
|
102 |
template<typename T> |
template<typename T, typename T2> |
103 |
NumEntryX<T>::NumEntryX(char* labelText, T& (*access)(gig::DimensionRegion*), |
NumEntryX<T, T2>::NumEntryX(char* labelText, T& (*access)(T2*), |
104 |
double lower, double upper, int decimals) : |
double lower, double upper, int decimals) : |
105 |
NumEntry<gig::DimensionRegion>(labelText, lower, upper, decimals), |
NumEntry<T2>(labelText, lower, upper, decimals), |
106 |
access(access) |
access(access) |
107 |
{ |
{ |
108 |
spinbutton.signal_value_changed().connect( |
spinbutton.signal_value_changed().connect( |
109 |
sigc::mem_fun(*this, &NumEntryX::value_changed)); |
sigc::mem_fun(*this, &NumEntryX::value_changed)); |
110 |
} |
} |
111 |
|
|
112 |
template<typename T> |
template<typename T, typename T2> |
113 |
void NumEntryX<T>::value_changed() |
void NumEntryX<T, T2>::value_changed() |
114 |
{ |
{ |
115 |
if (dimreg && update_gui) { |
if (dimreg && update_gui) { |
116 |
access(dimreg) = T(spinbutton.get_value()); |
access(dimreg) = T(spinbutton.get_value()); |
117 |
} |
} |
118 |
} |
} |
119 |
|
|
120 |
template<typename T> |
template<typename T, typename T2> |
121 |
void NumEntryX<T>::set_dimreg(gig::DimensionRegion* dimreg) |
void NumEntryX<T, T2>::set_dimreg(T2* dimreg) |
122 |
{ |
{ |
123 |
this->dimreg = 0; |
this->dimreg = 0; |
124 |
set_value(access(dimreg)); |
set_value(access(dimreg)); |
145 |
public: |
public: |
146 |
NumEntryTemp(char* labelText, T T2::* param, |
NumEntryTemp(char* labelText, T T2::* param, |
147 |
double lower = 0, double upper = 127, int decimals = 0); |
double lower = 0, double upper = 127, int decimals = 0); |
148 |
void set_dimreg(gig::DimensionRegion* dimreg); |
void set_dimreg(T2* dimreg); |
149 |
}; |
}; |
150 |
|
|
151 |
template<typename T, typename T2> |
template<typename T, typename T2> |
155 |
param(param) |
param(param) |
156 |
{ |
{ |
157 |
spinbutton.signal_value_changed().connect( |
spinbutton.signal_value_changed().connect( |
158 |
sigc::mem_fun(*this, &NumEntryTemp<T, T2>::value_changed)); |
sigc::mem_fun(*this, &NumEntryTemp::value_changed)); |
159 |
} |
} |
160 |
|
|
161 |
template<typename T, typename T2> |
template<typename T, typename T2> |
167 |
} |
} |
168 |
|
|
169 |
template<typename T, typename T2> |
template<typename T, typename T2> |
170 |
void NumEntryTemp<T, T2>::set_dimreg(gig::DimensionRegion* dimreg) |
void NumEntryTemp<T, T2>::set_dimreg(T2* dimreg) |
171 |
{ |
{ |
172 |
this->dimreg = 0; |
this->dimreg = 0; |
173 |
set_value(dimreg->*param); |
set_value(dimreg->*param); |
270 |
}; |
}; |
271 |
|
|
272 |
|
|
273 |
|
template<typename T2> |
274 |
class BoolEntry : public LabelWidget { |
class BoolEntry : public LabelWidget { |
275 |
private: |
private: |
276 |
Gtk::CheckButton checkbutton; |
Gtk::CheckButton checkbutton; |
277 |
bool gig::DimensionRegion::* param; |
bool T2::* param; |
278 |
|
T2* dimreg; |
279 |
|
void value_changed(); |
280 |
|
public: |
281 |
|
BoolEntry(char* labelText, bool T2::* param); |
282 |
|
void set_dimreg(T2* dimreg); |
283 |
|
bool get_active() { return checkbutton.get_active(); } |
284 |
|
Glib::SignalProxy0<void> signal_toggled() { |
285 |
|
return checkbutton.signal_toggled(); |
286 |
|
} |
287 |
|
}; |
288 |
|
|
289 |
|
template<typename T2> |
290 |
|
BoolEntry<T2>::BoolEntry(char* labelText, bool T2::* param) : |
291 |
|
LabelWidget(labelText, checkbutton), |
292 |
|
param(param) |
293 |
|
{ |
294 |
|
checkbutton.signal_toggled().connect( |
295 |
|
sigc::mem_fun(*this, &BoolEntry::value_changed)); |
296 |
|
} |
297 |
|
|
298 |
|
template<typename T2> |
299 |
|
void BoolEntry<T2>::value_changed() |
300 |
|
{ |
301 |
|
if (dimreg && update_gui) { |
302 |
|
dimreg->*param = checkbutton.get_active(); |
303 |
|
} |
304 |
|
} |
305 |
|
|
306 |
|
template<typename T2> |
307 |
|
void BoolEntry<T2>::set_dimreg(T2* dimreg) |
308 |
|
{ |
309 |
|
this->dimreg = 0; |
310 |
|
checkbutton.set_active(dimreg->*param); |
311 |
|
this->dimreg = dimreg; |
312 |
|
} |
313 |
|
|
314 |
|
class BoolEntryPlus6 : public LabelWidget { |
315 |
|
private: |
316 |
|
Gtk::CheckButton checkbutton; |
317 |
gig::DimensionRegion* dimreg; |
gig::DimensionRegion* dimreg; |
318 |
void value_changed(); |
void value_changed(); |
319 |
|
NumEntryGain& eGain; |
320 |
public: |
public: |
321 |
BoolEntry(char* labelText, bool gig::DimensionRegion::* param); |
BoolEntryPlus6(char* labelText, NumEntryGain& eGain); |
322 |
void set_dimreg(gig::DimensionRegion* dimreg); |
void set_dimreg(gig::DimensionRegion* dimreg); |
323 |
bool get_active() { return checkbutton.get_active(); } |
bool get_active() { return checkbutton.get_active(); } |
324 |
Glib::SignalProxy0<void> signal_toggled() { |
Glib::SignalProxy0<void> signal_toggled() { |