/[svn]/gigedit/trunk/src/gigedit/paramedit.h
ViewVC logotype

Diff of /gigedit/trunk/src/gigedit/paramedit.h

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1358 by schoenebeck, Mon Sep 10 19:56:26 2007 UTC revision 1359 by schoenebeck, Sun Sep 30 18:30:52 2007 UTC
# Line 80  private: Line 80  private:
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>
# Line 91  class NumEntryTemp : public NumEntry { Line 100  class NumEntryTemp : public NumEntry {
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>
# Line 109  NumEntryTemp<T>::NumEntryTemp(const char Line 127  NumEntryTemp<T>::NumEntryTemp(const char
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    
# Line 156  private: Line 181  private:
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      }      }
# Line 191  void ChoiceEntry<T>::set_choices(const c Line 225  void ChoiceEntry<T>::set_choices(const c
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>

Legend:
Removed from v.1358  
changed lines
  Added in v.1359

  ViewVC Help
Powered by ViewVC