summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorTomasz Boczkowski <penginsbacon@gmail.com>2014-05-31 08:35:07 +0000
committerTomasz Boczkowski <penginsbacon@gmail.com>2014-05-31 08:35:07 +0000
commite8f6b534a6db5c64b5d3a1fc9e4f1f691cb04ecc (patch)
treefdf8a506c6a86b7c9f7e8f18a0e76426f9db793e /src
parentColorSlider coding style (diff)
downloadinkscape-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.cpp22
-rw-r--r--src/ui/selected-color.h6
-rw-r--r--src/ui/widget/color-entry.cpp2
-rw-r--r--src/ui/widget/color-entry.h1
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;
};