diff options
| author | Tomasz Boczkowski <penginsbacon@gmail.com> | 2014-05-31 08:35:07 +0000 |
|---|---|---|
| committer | Tomasz Boczkowski <penginsbacon@gmail.com> | 2014-05-31 08:35:07 +0000 |
| commit | e8f6b534a6db5c64b5d3a1fc9e4f1f691cb04ecc (patch) | |
| tree | fdf8a506c6a86b7c9f7e8f18a0e76426f9db793e /src | |
| parent | ColorSlider coding style (diff) | |
| download | inkscape-e8f6b534a6db5c64b5d3a1fc9e4f1f691cb04ecc.tar.gz inkscape-e8f6b534a6db5c64b5d3a1fc9e4f1f691cb04ecc.zip | |
added dragged, released, grabbed signals to SelectedColor
(bzr r13341.6.33)
Diffstat (limited to 'src')
| -rw-r--r-- | src/ui/selected-color.cpp | 22 | ||||
| -rw-r--r-- | src/ui/selected-color.h | 6 | ||||
| -rw-r--r-- | src/ui/widget/color-entry.cpp | 2 | ||||
| -rw-r--r-- | src/ui/widget/color-entry.h | 1 |
4 files changed, 30 insertions, 1 deletions
diff --git a/src/ui/selected-color.cpp b/src/ui/selected-color.cpp index 296b15796..1be171a6b 100644 --- a/src/ui/selected-color.cpp +++ b/src/ui/selected-color.cpp @@ -25,6 +25,7 @@ SelectedColor::SelectedColor() : _color(0) , _alpha(1.0) , _virgin(true) + , _held(false) { } @@ -79,7 +80,11 @@ void SelectedColor::setColorAlpha(SPColor const &color, gfloat alpha, bool emit) _alpha = alpha; if (emit) { - signal_changed.emit(); + if (_held) { + signal_dragged.emit(); + } else { + signal_changed.emit(); + } } #ifdef DUMP_CHANGE_INFO } else { @@ -94,6 +99,21 @@ void SelectedColor::colorAlpha(SPColor &color, gfloat &alpha) const { alpha = _alpha; } +void SelectedColor::setHeld(bool held) { + bool grabbed = held && !_held; + bool released = !held && _held; + + _held = held; + + if (grabbed) { + signal_grabbed.emit(); + } + + if (released) { + signal_released.emit(); + } +} + } } diff --git a/src/ui/selected-color.h b/src/ui/selected-color.h index 08b84b66c..ec0cc55e3 100644 --- a/src/ui/selected-color.h +++ b/src/ui/selected-color.h @@ -42,6 +42,11 @@ public: void setColorAlpha(SPColor const &color, gfloat alpha, bool emit = false); void colorAlpha(SPColor &color, gfloat &alpha) const; + void setHeld(bool held); + + sigc::signal<void> signal_grabbed; + sigc::signal<void> signal_dragged; + sigc::signal<void> signal_released; sigc::signal<void> signal_changed; private: // By default, disallow copy constructor and assignment operator @@ -54,6 +59,7 @@ private: */ gfloat _alpha; + bool _held; /** * This flag is true if no color is set yet */ diff --git a/src/ui/widget/color-entry.cpp b/src/ui/widget/color-entry.cpp index 223c86fd3..56fd6080e 100644 --- a/src/ui/widget/color-entry.cpp +++ b/src/ui/widget/color-entry.cpp @@ -30,6 +30,7 @@ ColorEntry::ColorEntry(SelectedColor &color) , _updating(false) { _color_changed_connection = color.signal_changed.connect(sigc::mem_fun(this, &ColorEntry::_onColorChanged)); + _color_dragged_connection = color.signal_dragged.connect(sigc::mem_fun(this, &ColorEntry::_onColorChanged)); _onColorChanged(); set_max_length(8); @@ -39,6 +40,7 @@ ColorEntry::ColorEntry(SelectedColor &color) ColorEntry::~ColorEntry() { _color_changed_connection.disconnect(); + _color_dragged_connection.disconnect(); } void ColorEntry::on_changed() { diff --git a/src/ui/widget/color-entry.h b/src/ui/widget/color-entry.h index 742324337..148b5dfe9 100644 --- a/src/ui/widget/color-entry.h +++ b/src/ui/widget/color-entry.h @@ -39,6 +39,7 @@ private: SelectedColor &_color; sigc::connection _color_changed_connection; + sigc::connection _color_dragged_connection; bool _updating; }; |
