80 |
void value_changed(); |
void value_changed(); |
81 |
int32_t* ptr; |
int32_t* ptr; |
82 |
double coeff; |
double coeff; |
83 |
|
protected: |
84 |
|
sigc::signal<void> sig_to_be_changed; |
85 |
|
sigc::signal<void, int32_t> sig_val_changed; |
86 |
public: |
public: |
87 |
NumEntryGain(const char* labelText, |
NumEntryGain(const char* labelText, |
88 |
double lower, double upper, int decimals, double coeff); |
double lower, double upper, int decimals, double coeff); |
89 |
void set_ptr(int32_t* ptr); |
void set_ptr(int32_t* ptr); |
90 |
|
sigc::signal<void>& signal_to_be_changed() { |
91 |
|
return sig_to_be_changed; |
92 |
|
} |
93 |
|
sigc::signal<void, int32_t>& signal_value_changed() { |
94 |
|
return sig_val_changed; |
95 |
|
} |
96 |
}; |
}; |
97 |
|
|
98 |
template<typename T> |
template<typename T> |
100 |
private: |
private: |
101 |
T* ptr; |
T* ptr; |
102 |
void value_changed(); |
void value_changed(); |
103 |
|
protected: |
104 |
|
sigc::signal<void> sig_to_be_changed; |
105 |
|
sigc::signal<void, T> sig_val_changed; |
106 |
public: |
public: |
107 |
NumEntryTemp(const char* labelText, |
NumEntryTemp(const char* labelText, |
108 |
double lower = 0, double upper = 127, int decimals = 0); |
double lower = 0, double upper = 127, int decimals = 0); |
109 |
void set_ptr(T* ptr); |
void set_ptr(T* ptr); |
110 |
|
sigc::signal<void>& signal_to_be_changed() { |
111 |
|
return sig_to_be_changed; |
112 |
|
} |
113 |
|
sigc::signal<void, T>& signal_value_changed() { |
114 |
|
return sig_val_changed; |
115 |
|
} |
116 |
}; |
}; |
117 |
|
|
118 |
template<typename T> |
template<typename T> |
127 |
template<typename T> |
template<typename T> |
128 |
void NumEntryTemp<T>::value_changed() |
void NumEntryTemp<T>::value_changed() |
129 |
{ |
{ |
130 |
|
const double f = pow(10, spinbutton.get_digits()); |
131 |
|
int new_value = round_to_int(spinbutton.get_value() * f); |
132 |
|
const T val = T(new_value / f); |
133 |
if (ptr) { |
if (ptr) { |
|
const double f = pow(10, spinbutton.get_digits()); |
|
|
int new_value = round_to_int(spinbutton.get_value() * f); |
|
134 |
if (new_value != round_to_int(*ptr * f)) { |
if (new_value != round_to_int(*ptr * f)) { |
135 |
*ptr = T(new_value / f); |
sig_to_be_changed.emit(); |
136 |
sig_changed(); |
*ptr = val; |
137 |
|
sig_val_changed.emit(val); |
138 |
|
sig_changed.emit(); |
139 |
} |
} |
140 |
|
} else { |
141 |
|
sig_to_be_changed.emit(); |
142 |
|
sig_val_changed.emit(val); |
143 |
|
sig_changed.emit(); |
144 |
} |
} |
145 |
} |
} |
146 |
|
|
181 |
T* ptr; |
T* ptr; |
182 |
void value_changed(); |
void value_changed(); |
183 |
const T* values; |
const T* values; |
184 |
|
protected: |
185 |
|
sigc::signal<void> sig_to_be_changed; |
186 |
|
sigc::signal<void, T> sig_val_changed; |
187 |
public: |
public: |
188 |
ChoiceEntry(const char* labelText); |
ChoiceEntry(const char* labelText); |
189 |
void set_choices(const char** texts, const T* values); |
void set_choices(const char** texts, const T* values); |
190 |
void set_ptr(T* ptr); |
void set_ptr(T* ptr); |
191 |
int get_active_row_number() { return combobox.get_active_row_number(); } |
int get_active_row_number() { return combobox.get_active_row_number(); } |
192 |
|
sigc::signal<void>& signal_to_be_changed() { |
193 |
|
return sig_to_be_changed; |
194 |
|
} |
195 |
|
sigc::signal<void, T>& signal_value_changed() { |
196 |
|
return sig_val_changed; |
197 |
|
} |
198 |
Glib::SignalProxy0<void> signal_changed() { |
Glib::SignalProxy0<void> signal_changed() { |
199 |
return combobox.signal_changed(); |
return combobox.signal_changed(); |
200 |
} |
} |
225 |
template<typename T> |
template<typename T> |
226 |
void ChoiceEntry<T>::value_changed() |
void ChoiceEntry<T>::value_changed() |
227 |
{ |
{ |
228 |
if (ptr) { |
int rowno = combobox.get_active_row_number(); |
229 |
int rowno = combobox.get_active_row_number(); |
if (rowno == -1) return; |
230 |
if (rowno != -1) { |
const T val = values[rowno]; |
231 |
*ptr = values[rowno]; |
sig_to_be_changed.emit(); |
232 |
sig_changed(); |
if (ptr) *ptr = val; |
233 |
} |
sig_val_changed.emit(val); |
234 |
} |
sig_changed.emit(); |
235 |
} |
} |
236 |
|
|
237 |
template<typename T> |
template<typename T> |