37 |
#include <set> |
#include <set> |
38 |
|
|
39 |
#include "paramedit.h" |
#include "paramedit.h" |
40 |
|
#include "global.h" |
41 |
|
|
42 |
class VelocityCurve : public Gtk::DrawingArea { |
class VelocityCurve : public Gtk::DrawingArea { |
43 |
public: |
public: |
99 |
sigc::signal<void> instrument_changed; |
sigc::signal<void> instrument_changed; |
100 |
sigc::signal<void, gig::Sample*> select_sample_signal; |
sigc::signal<void, gig::Sample*> select_sample_signal; |
101 |
|
|
102 |
|
/** |
103 |
|
* Ensures that the 2 signals DimRegionEdit::dimreg_to_be_changed_signal and |
104 |
|
* DimRegionEdit::dimreg_changed_signal are always triggered correctly as a |
105 |
|
* pair. It behaves similar to a "mutex lock guard" design pattern. |
106 |
|
*/ |
107 |
|
class DimRegionChangeGuard : public SignalGuard<gig::DimensionRegion*> { |
108 |
|
public: |
109 |
|
DimRegionChangeGuard(DimRegionEdit* edit, gig::DimensionRegion* pDimReg) : |
110 |
|
SignalGuard<gig::DimensionRegion*>(edit->dimreg_to_be_changed_signal, edit->dimreg_changed_signal, pDimReg) |
111 |
|
{ |
112 |
|
} |
113 |
|
}; |
114 |
|
|
115 |
gig::DimensionRegion* dimregion; |
gig::DimensionRegion* dimregion; |
116 |
|
|
117 |
#ifdef OLD_TOOLTIPS |
#ifdef OLD_TOOLTIPS |
304 |
for (std::set<gig::DimensionRegion*>::iterator i = dimregs.begin() ; |
for (std::set<gig::DimensionRegion*>::iterator i = dimregs.begin() ; |
305 |
i != dimregs.end() ; ++i) |
i != dimregs.end() ; ++i) |
306 |
{ |
{ |
307 |
dimreg_changed_signal(*i); |
DimRegionChangeGuard(this, *i); |
308 |
setter(this, *i, value); |
setter(this, *i, value); |
309 |
} |
} |
310 |
} |
} |