summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorTomasz Boczkowski <penginsbacon@gmail.com>2015-04-26 10:17:43 +0000
committerTomasz Boczkowski <penginsbacon@gmail.com>2015-04-26 10:17:43 +0000
commit82b3868737f8689f61347ab8f0bfef37156f70d4 (patch)
treed92049c30a32ca89be4166029f4af3d212121cfc /src
parentmerged SPColorWheelSelector c++-sification from svgpaints branch (diff)
parentSPColorScales c++-sification - using SelectedColor (diff)
downloadinkscape-82b3868737f8689f61347ab8f0bfef37156f70d4.tar.gz
inkscape-82b3868737f8689f61347ab8f0bfef37156f70d4.zip
merged SPColorScales c++-sification from svgpaints branch
(bzr r14059.1.8)
Diffstat (limited to 'src')
-rw-r--r--src/ui/CMakeLists.txt8
-rw-r--r--src/ui/widget/Makefile_insert2
-rw-r--r--src/ui/widget/color-scales.cpp (renamed from src/widgets/sp-color-scales.cpp)228
-rw-r--r--src/ui/widget/color-scales.h (renamed from src/widgets/sp-color-scales.h)69
-rw-r--r--src/ui/widget/color-slider.cpp2
-rw-r--r--src/ui/widget/color-wheel-selector.cpp2
-rw-r--r--src/widgets/CMakeLists.txt4
-rw-r--r--src/widgets/Makefile_insert2
-rw-r--r--src/widgets/sp-color-icc-selector.cpp5
-rw-r--r--src/widgets/sp-color-notebook.cpp8
-rw-r--r--src/widgets/sp-color-notebook.h1
-rw-r--r--src/widgets/sp-color-selector.cpp2
12 files changed, 124 insertions, 209 deletions
diff --git a/src/ui/CMakeLists.txt b/src/ui/CMakeLists.txt
index 7ff0758e7..41b9ab8cb 100644
--- a/src/ui/CMakeLists.txt
+++ b/src/ui/CMakeLists.txt
@@ -6,6 +6,7 @@ set(ui_SRC
interface.cpp
object-edit.cpp
previewholder.cpp
+ selected-color.cpp
shape-editor.cpp
tool-factory.cpp
tools-switch.cpp
@@ -115,9 +116,12 @@ set(ui_SRC
widget/anchor-selector.cpp
widget/button.cpp
widget/clipmaskicon.cpp
+ widget/color-entry.cpp
widget/color-picker.cpp
widget/color-preview.cpp
+ widget/color-scales.cpp
widget/color-slider.cpp
+ widget/color-wheel-selector.cpp
widget/dock-item.cpp
widget/dock.cpp
widget/entity-entry.cpp
@@ -175,6 +179,7 @@ set(ui_SRC
previewable.h
previewfillable.h
previewholder.h
+ selected-color.h
shape-editor.h
tool-factory.h
tools-switch.h
@@ -288,9 +293,12 @@ set(ui_SRC
widget/anchor-selector.h
widget/attr-widget.h
widget/button.h
+ widget/color-entry.h
widget/color-picker.h
widget/color-preview.h
+ widget/color-scales.h
widget/color-slider.h
+ widget/color-wheel-selector.h
widget/combo-enums.h
widget/dock-item.h
widget/dock.h
diff --git a/src/ui/widget/Makefile_insert b/src/ui/widget/Makefile_insert
index cead320b6..cb70111de 100644
--- a/src/ui/widget/Makefile_insert
+++ b/src/ui/widget/Makefile_insert
@@ -16,6 +16,8 @@ ink_common_sources += \
ui/widget/color-preview.h \
ui/widget/color-slider.cpp \
ui/widget/color-slider.h \
+ ui/widget/color-scales.cpp \
+ ui/widget/color-scales.h \
ui/widget/combo-enums.h \
ui/widget/dock.h \
ui/widget/dock.cpp \
diff --git a/src/widgets/sp-color-scales.cpp b/src/ui/widget/color-scales.cpp
index 451e58b8d..9177185ce 100644
--- a/src/widgets/sp-color-scales.cpp
+++ b/src/ui/widget/color-scales.cpp
@@ -10,16 +10,14 @@
#include <glibmm/threads.h>
#endif
-#include "sp-color-scales.h"
-
#include <math.h>
#include <gtk/gtk.h>
#include <glibmm/i18n.h>
#include <gtkmm/adjustment.h>
-#include "sp-color-scales.h"
#include "svg/svg-icc-color.h"
#include "ui/dialog-events.h"
+#include "ui/widget/color-scales.h"
#include "ui/widget/color-slider.h"
#define CSC_CHANNEL_R (1 << 0)
@@ -37,23 +35,18 @@
#define CSC_CHANNELS_ALL 0
-
-G_BEGIN_DECLS
-
-static void sp_color_scales_dispose(GObject *object);
-
-static void sp_color_scales_show_all (GtkWidget *widget);
-static void sp_color_scales_hide(GtkWidget *widget);
-
-static const gchar *sp_color_scales_hue_map (void);
-
-G_END_DECLS
-
#define XPAD 4
#define YPAD 1
#define noDUMP_CHANGE_INFO 1
+namespace Inkscape {
+namespace UI {
+namespace Widget {
+
+
+static const gchar * sp_color_scales_hue_map ();
+
const gchar* ColorScales::SUBMODE_NAMES[] = {
N_("None"),
N_("RGB"),
@@ -61,29 +54,14 @@ const gchar* ColorScales::SUBMODE_NAMES[] = {
N_("CMYK")
};
-
-G_DEFINE_TYPE(SPColorScales, sp_color_scales, SP_TYPE_COLOR_SELECTOR);
-
-static void
-sp_color_scales_class_init (SPColorScalesClass *klass)
-{
- static const gchar* nameset[] = {N_("RGB"), N_("HSL"), N_("CMYK"), 0};
- GObjectClass *object_class = G_OBJECT_CLASS(klass);
- GtkWidgetClass *widget_class = GTK_WIDGET_CLASS(klass);
- SPColorSelectorClass *selector_class = SP_COLOR_SELECTOR_CLASS (klass);
-
- selector_class->name = nameset;
- selector_class->submode_count = 3;
-
- object_class->dispose = sp_color_scales_dispose;
-
- widget_class->show_all = sp_color_scales_show_all;
- widget_class->hide = sp_color_scales_hide;
-}
-
-ColorScales::ColorScales( SPColorSelector* csel )
- : ColorSelector( csel ),
- _mode( SP_COLOR_SCALES_MODE_NONE ),
+ColorScales::ColorScales(SelectedColor &color, SPColorScalesMode mode)
+#if GTK_CHECK_VERSION(3,0,0)
+ : Gtk::Grid()
+#else
+ : Gtk::Table(5, 3, false)
+#endif
+ , _color(color)
+ ,
_rangeLimit( 255.0 ),
_updating( FALSE ),
_dragging( FALSE )
@@ -94,6 +72,12 @@ ColorScales::ColorScales( SPColorSelector* csel )
_s[i] = 0;
_b[i] = 0;
}
+
+ _initUI(mode);
+
+ _color.signal_changed.connect(sigc::mem_fun(this, &ColorScales::_onColorChanged));
+ _color.signal_dragged.connect(sigc::mem_fun(this, &ColorScales::_onColorChanged));
+
}
ColorScales::~ColorScales()
@@ -106,30 +90,14 @@ ColorScales::~ColorScales()
}
}
-void sp_color_scales_init (SPColorScales *cs)
-{
- SP_COLOR_SELECTOR(cs)->base = new ColorScales( SP_COLOR_SELECTOR(cs) );
-
- if ( SP_COLOR_SELECTOR(cs)->base )
- {
- SP_COLOR_SELECTOR(cs)->base->init();
- }
-}
-
-void ColorScales::init()
+void ColorScales::_initUI(SPColorScalesMode mode)
{
gint i;
_updating = FALSE;
_dragging = FALSE;
-#if GTK_CHECK_VERSION(3,0,0)
- GtkWidget *t = gtk_grid_new();
-#else
- GtkWidget *t = gtk_table_new (5, 3, FALSE);
-#endif
- gtk_widget_show (t);
- gtk_box_pack_start (GTK_BOX (_csel), t, TRUE, TRUE, 4);
+ GtkWidget *t = GTK_WIDGET(gobj());
/* Create components */
for (i = 0; i < static_cast< gint > (G_N_ELEMENTS(_a)) ; i++) {
@@ -202,42 +170,23 @@ void ColorScales::init()
g_object_set_data (G_OBJECT (_a[i]), "channel", GINT_TO_POINTER (i));
/* Signals */
g_signal_connect (G_OBJECT (_a[i]), "value_changed",
- G_CALLBACK (_adjustmentAnyChanged), _csel);
+ G_CALLBACK (_adjustmentAnyChanged), this);
_s[i]->signal_grabbed.connect(sigc::mem_fun(this, &ColorScales::_sliderAnyGrabbed));
_s[i]->signal_released.connect(sigc::mem_fun(this, &ColorScales::_sliderAnyReleased));
_s[i]->signal_value_changed.connect(sigc::mem_fun(this, &ColorScales::_sliderAnyChanged));
}
/* Initial mode is none, so it works */
- setMode(SP_COLOR_SCALES_MODE_RGB);
-}
-
-static void sp_color_scales_dispose(GObject *object)
-{
- if (G_OBJECT_CLASS(sp_color_scales_parent_class)->dispose)
- G_OBJECT_CLASS(sp_color_scales_parent_class)->dispose(object);
-}
-
-static void
-sp_color_scales_show_all (GtkWidget *widget)
-{
- gtk_widget_show (widget);
-}
-
-static void sp_color_scales_hide(GtkWidget *widget)
-{
- gtk_widget_hide(widget);
-}
-
-GtkWidget *sp_color_scales_new()
-{
- SPColorScales *csel = SP_COLOR_SCALES(g_object_new (SP_TYPE_COLOR_SCALES, NULL));
-
- return GTK_WIDGET (csel);
+ setMode(mode);
}
void ColorScales::_recalcColor( gboolean changing )
{
+ if (_updating) {
+ return;
+ }
+ _updating = true;
+
if ( changing )
{
SPColor color;
@@ -266,15 +215,14 @@ void ColorScales::_recalcColor( gboolean changing )
break;
}
- /* Preserve ICC */
- color.icc = _color.icc ? new SVGICCColor(*_color.icc) : 0;
-
- _updateInternals( color, alpha, _dragging );
+ _color.preserveICC();
+ _color.setColorAlpha(color, alpha, true);
}
else
{
- _updateInternals( _color, _alpha, _dragging );
+ // _updateInternals( _color, _alpha, _dragging );
}
+ _updating = false;
}
/* Helpers for setting color value */
@@ -300,29 +248,34 @@ void ColorScales::_setRangeLimit( gdouble upper )
}
}
-void ColorScales::_colorChanged()
+void ColorScales::_onColorChanged()
{
+ if (_updating || !get_visible()) {
+ return;
+ }
#ifdef DUMP_CHANGE_INFO
- g_message("ColorScales::_colorChanged( this=%p, %f, %f, %f, %f)", this, _color.v.c[0], _color.v.c[1], _color.v.c[2], _alpha );
+ g_message("ColorScales::_onColorChanged( this=%p, %f, %f, %f, %f)", this, _color.color().v.c[0], _color.color().v.c[1], _color.color().v.c[2], _color.alpha() );
#endif
gfloat tmp[3];
gfloat c[5] = {0.0, 0.0, 0.0, 0.0};
+ SPColor color = _color.color();
+
switch (_mode) {
case SP_COLOR_SCALES_MODE_RGB:
- sp_color_get_rgb_floatv( &_color, c );
- c[3] = _alpha;
+ sp_color_get_rgb_floatv( &color, c );
+ c[3] = _color.alpha();
c[4] = 0.0;
break;
case SP_COLOR_SCALES_MODE_HSV:
- sp_color_get_rgb_floatv( &_color, tmp );
+ sp_color_get_rgb_floatv( &color, tmp );
sp_color_rgb_to_hsl_floatv (c, tmp[0], tmp[1], tmp[2]);
- c[3] = _alpha;
+ c[3] = _color.alpha();
c[4] = 0.0;
break;
case SP_COLOR_SCALES_MODE_CMYK:
- sp_color_get_cmyk_floatv( &_color, c );
- c[4] = _alpha;
+ sp_color_get_cmyk_floatv( &color, c );
+ c[4] = _color.alpha();
break;
default:
g_warning ("file %s: line %d: Illegal color selector mode %d", __FILE__, __LINE__, _mode);
@@ -521,48 +474,7 @@ SPColorScalesMode ColorScales::getMode() const
return _mode;
}
-void ColorScales::setSubmode( guint submode )
-{
- g_return_if_fail (_csel != NULL);
- g_return_if_fail (SP_IS_COLOR_SCALES (_csel));
- g_return_if_fail (submode < 3);
-
- switch ( submode )
- {
- default:
- case 0:
- setMode(SP_COLOR_SCALES_MODE_RGB);
- break;
- case 1:
- setMode(SP_COLOR_SCALES_MODE_HSV);
- break;
- case 2:
- setMode(SP_COLOR_SCALES_MODE_CMYK);
- break;
- }
-}
-
-guint ColorScales::getSubmode() const
-{
- guint submode = 0;
-
- switch ( _mode )
- {
- case SP_COLOR_SCALES_MODE_HSV:
- submode = 1;
- break;
- case SP_COLOR_SCALES_MODE_CMYK:
- submode = 2;
- break;
- case SP_COLOR_SCALES_MODE_RGB:
- default:
- submode = 0;
- }
-
- return submode;
-}
-
-void ColorScales::_adjustmentAnyChanged( GtkAdjustment *adjustment, SPColorScales *cs )
+void ColorScales::_adjustmentAnyChanged( GtkAdjustment *adjustment, ColorScales *cs )
{
gint channel = GPOINTER_TO_INT (g_object_get_data(G_OBJECT (adjustment), "channel"));
@@ -571,39 +483,46 @@ void ColorScales::_adjustmentAnyChanged( GtkAdjustment *adjustment, SPColorScale
void ColorScales::_sliderAnyGrabbed()
{
+ if (_updating) {
+ return;
+ }
+ _updating = true;
if (!_dragging) {
_dragging = TRUE;
- _grabbed();
+ _color.setHeld(true);
_recalcColor( FALSE );
}
+ _updating = false;
}
void ColorScales::_sliderAnyReleased()
{
+ if (_updating) {
+ return;
+ }
+ _updating = true;
if (_dragging) {
_dragging = FALSE;
- _released();
+ _color.setHeld(false);
_recalcColor( FALSE );
}
+ _updating = false;
}
void ColorScales::_sliderAnyChanged()
{
+ if (_updating) {
+ return;
+ }
_recalcColor( TRUE );
}
-void ColorScales::_adjustmentChanged( SPColorScales *cs, guint channel )
+void ColorScales::_adjustmentChanged( ColorScales *scales, guint channel )
{
- ColorScales* scales = static_cast<ColorScales*>(SP_COLOR_SELECTOR(cs)->base);
if (scales->_updating) return;
- scales->_updating = TRUE;
-
scales->_updateSliders( (1 << channel) );
-
scales->_recalcColor (TRUE);
-
- scales->_updating = FALSE;
}
void ColorScales::_updateSliders( guint channels )
@@ -761,19 +680,14 @@ ColorScalesFactory::~ColorScalesFactory() {
}
Gtk::Widget *ColorScalesFactory::createWidget(Inkscape::UI::SelectedColor &color) const {
- GtkWidget *w = sp_color_selector_new(SP_TYPE_COLOR_SCALES);
- SPColorSelector* csel;
-
- csel = SP_COLOR_SELECTOR (w);
- if ( _submode > 0 )
- {
- csel->base->setSubmode( _submode - 1 );
- }
-
- Gtk::Widget *wrapped = Gtk::manage(Glib::wrap(w));
- return wrapped;
+ Gtk::Widget *w = Gtk::manage(new ColorScales(color, _submode));
+ return w;
}
Glib::ustring ColorScalesFactory::modeName() const {
return gettext(ColorScales::SUBMODE_NAMES[_submode]);
}
+
+}
+}
+}
diff --git a/src/widgets/sp-color-scales.h b/src/ui/widget/color-scales.h
index 58660824a..0f0c4f90e 100644
--- a/src/widgets/sp-color-scales.h
+++ b/src/ui/widget/color-scales.h
@@ -1,14 +1,24 @@
#ifndef SEEN_SP_COLOR_SCALES_H
#define SEEN_SP_COLOR_SCALES_H
-#include <glib.h>
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
-#include <widgets/sp-color-selector.h>
+#if GLIBMM_DISABLE_DEPRECATED && HAVE_GLIBMM_THREADS_H
+#include <glibmm/threads.h>
+#endif
-#include "ui/selected-color.h"
+#include <color.h>
+#include <glib.h>
+#include <gtk/gtk.h>
+#if GTK_CHECK_VERSION(3,0,0)
+#include <gtkmm/grid.h>
+#else
+#include <gtkmm/table.h>
+#endif
-struct SPColorScales;
-struct SPColorScalesClass;
+#include "ui/selected-color.h"
namespace Inkscape {
namespace UI {
@@ -16,9 +26,6 @@ namespace Widget {
class ColorSlider;
-}
-}
-}
typedef enum {
SP_COLOR_SCALES_MODE_NONE = 0,
@@ -29,7 +36,12 @@ typedef enum {
-class ColorScales: public ColorSelector
+class ColorScales
+#if GTK_CHECK_VERSION(3,0,0)
+ : public Gtk::Grid
+#else
+ : public Gtk::Table
+#endif
{
public:
static const gchar* SUBMODE_NAMES[];
@@ -37,26 +49,22 @@ public:
static gfloat getScaled( const GtkAdjustment *a );
static void setScaled( GtkAdjustment *a, gfloat v);
- ColorScales(SPColorSelector *csel);
+ ColorScales(SelectedColor &color, SPColorScalesMode mode);
virtual ~ColorScales();
- virtual void init();
-
- virtual void setSubmode(guint submode);
- virtual guint getSubmode() const;
+ virtual void _initUI(SPColorScalesMode mode);
void setMode(SPColorScalesMode mode);
SPColorScalesMode getMode() const;
-
protected:
- virtual void _colorChanged();
+ void _onColorChanged();
- static void _adjustmentAnyChanged(GtkAdjustment *adjustment, SPColorScales *cs);
+ static void _adjustmentAnyChanged(GtkAdjustment *adjustment, ColorScales *cs);
void _sliderAnyGrabbed();
void _sliderAnyReleased();
void _sliderAnyChanged();
- static void _adjustmentChanged(SPColorScales *cs, guint channel);
+ static void _adjustmentChanged(ColorScales *cs, guint channel);
void _getRgbaFloatv(gfloat *rgba);
void _getCmykaFloatv(gfloat *cmyka);
@@ -66,6 +74,7 @@ protected:
void _setRangeLimit( gdouble upper );
+ SelectedColor &_color;
SPColorScalesMode _mode;
gdouble _rangeLimit;
gboolean _updating : 1;
@@ -82,26 +91,6 @@ private:
};
-
-#define SP_TYPE_COLOR_SCALES (sp_color_scales_get_type())
-#define SP_COLOR_SCALES(o) (G_TYPE_CHECK_INSTANCE_CAST((o), SP_TYPE_COLOR_SCALES, SPColorScales))
-#define SP_COLOR_SCALES_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), SP_TYPE_COLOR_SCALES, SPColorScalesClass))
-#define SP_IS_COLOR_SCALES(o) (G_TYPE_CHECK_INSTANCE_TYPE((o), SP_TYPE_COLOR_SCALES))
-#define SP_IS_COLOR_SCALES_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE((k), SP_TYPE_COLOR_SCALES))
-
-struct SPColorScales {
- SPColorSelector parent;
-};
-
-struct SPColorScalesClass {
- SPColorSelectorClass parent_class;
-};
-
-GType sp_color_scales_get_type();
-
-GtkWidget *sp_color_scales_new();
-
-
class ColorScalesFactory: public Inkscape::UI::ColorSelectorFactory {
public:
ColorScalesFactory(SPColorScalesMode submode);
@@ -114,9 +103,11 @@ private:
SPColorScalesMode _submode;
};
+}
+}
+}
#endif /* !SEEN_SP_COLOR_SCALES_H */
-
/*
Local Variables:
mode:c++
diff --git a/src/ui/widget/color-slider.cpp b/src/ui/widget/color-slider.cpp
index 711942e28..ad9662c6c 100644
--- a/src/ui/widget/color-slider.cpp
+++ b/src/ui/widget/color-slider.cpp
@@ -28,7 +28,7 @@
#include <gtkmm/style.h>
#endif
-#include "widgets/sp-color-scales.h"
+#include "ui/widget/color-scales.h"
#include "preferences.h"
static const gint SLIDER_WIDTH = 96;
diff --git a/src/ui/widget/color-wheel-selector.cpp b/src/ui/widget/color-wheel-selector.cpp
index 80fa8c7f8..968b834a8 100644
--- a/src/ui/widget/color-wheel-selector.cpp
+++ b/src/ui/widget/color-wheel-selector.cpp
@@ -10,10 +10,10 @@
#include <gtkmm/adjustment.h>
#include <gtkmm/label.h>
#include <gtkmm/spinbutton.h>
-#include "widgets/sp-color-scales.h"
#include "svg/svg-icc-color.h"
#include "ui/dialog-events.h"
#include "ui/selected-color.h"
+#include "ui/widget/color-scales.h"
#include "ui/widget/color-slider.h"
#include "ui/widget/gimpcolorwheel.h"
diff --git a/src/widgets/CMakeLists.txt b/src/widgets/CMakeLists.txt
index 21c42b79f..91bbccb99 100644
--- a/src/widgets/CMakeLists.txt
+++ b/src/widgets/CMakeLists.txt
@@ -43,9 +43,7 @@ set(widgets_SRC
sp-attribute-widget.cpp
sp-color-icc-selector.cpp
sp-color-notebook.cpp
- sp-color-scales.cpp
sp-color-selector.cpp
- sp-color-wheel-selector.cpp
sp-widget.cpp
sp-xmlview-attr-list.cpp
sp-xmlview-content.cpp
@@ -104,9 +102,7 @@ set(widgets_SRC
sp-attribute-widget.h
sp-color-icc-selector.h
sp-color-notebook.h
- sp-color-scales.h
sp-color-selector.h
- sp-color-wheel-selector.h
sp-widget.h
sp-xmlview-attr-list.h
sp-xmlview-content.h
diff --git a/src/widgets/Makefile_insert b/src/widgets/Makefile_insert
index c1f5d331b..cefef8b04 100644
--- a/src/widgets/Makefile_insert
+++ b/src/widgets/Makefile_insert
@@ -80,8 +80,6 @@ ink_common_sources += \
widgets/sp-color-icc-selector.h \
widgets/sp-color-notebook.cpp \
widgets/sp-color-notebook.h \
- widgets/sp-color-scales.cpp \
- widgets/sp-color-scales.h \
widgets/sp-color-selector.cpp \
widgets/sp-color-selector.h \
widgets/spinbutton-events.cpp \
diff --git a/src/widgets/sp-color-icc-selector.cpp b/src/widgets/sp-color-icc-selector.cpp
index 41d4705e1..28e36939e 100644
--- a/src/widgets/sp-color-icc-selector.cpp
+++ b/src/widgets/sp-color-icc-selector.cpp
@@ -17,7 +17,7 @@
#include "ui/dialog-events.h"
#include "sp-color-icc-selector.h"
-#include "sp-color-scales.h"
+#include "ui/widget/color-scales.h"
#include "ui/widget/color-slider.h"
#include "svg/svg-icc-color.h"
#include "colorspace.h"
@@ -38,6 +38,9 @@
#endif // defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2)
+using namespace Inkscape::UI::Widget;
+
+
#ifdef DEBUG_LCMS
extern guint update_in_progress;
#define DEBUG_MESSAGE(key, ...) \
diff --git a/src/widgets/sp-color-notebook.cpp b/src/widgets/sp-color-notebook.cpp
index 0662a54ce..3555844ec 100644
--- a/src/widgets/sp-color-notebook.cpp
+++ b/src/widgets/sp-color-notebook.cpp
@@ -34,7 +34,6 @@
#include "../preferences.h"
#include "sp-color-notebook.h"
#include "spw-utilities.h"
-#include "sp-color-scales.h"
#include "sp-color-icc-selector.h"
#include "svg/svg-icc-color.h"
#include "../inkscape.h"
@@ -45,6 +44,7 @@
#include "ui/tools-switch.h"
#include "ui/tools/tool-base.h"
#include "ui/widget/color-entry.h"
+#include "ui/widget/color-scales.h"
#include "ui/widget/color-wheel-selector.h"
using Inkscape::CMSSystem;
@@ -448,7 +448,9 @@ ColorNotebook::Page::Page(Inkscape::UI::ColorSelectorFactory *selector_factory,
void ColorNotebook::_colorChanged()
{
+ _updating = true;
_selected_color.setColorAlpha(_color, _alpha, true);
+ _updating = false;
SPColorSelector* cselPage = getCurrentSelector();
if ( cselPage )
@@ -606,13 +608,13 @@ void ColorNotebook::_onSelectedColorDragged() {
}
bool oldState = _dragging;
- _dragging = TRUE;
+ _dragging = true;
SPColor color;
gfloat alpha = 1.0;
_updating = true;
_selected_color.colorAlpha(color, alpha);
- _updateInternals(color, alpha, _dragging);
+ _updateInternals(color, alpha, true);
_updating = false;
_dragging = oldState;
diff --git a/src/widgets/sp-color-notebook.h b/src/widgets/sp-color-notebook.h
index 6fdb104a2..d25aba708 100644
--- a/src/widgets/sp-color-notebook.h
+++ b/src/widgets/sp-color-notebook.h
@@ -23,6 +23,7 @@
#include <boost/ptr_container/ptr_vector.hpp>
#include <gtk/gtk.h>
#include <glib.h>
+#include <gtkmm/table.h>
#include "../color.h"
#include "sp-color-selector.h"
diff --git a/src/widgets/sp-color-selector.cpp b/src/widgets/sp-color-selector.cpp
index e443ca4ab..dad0a18b0 100644
--- a/src/widgets/sp-color-selector.cpp
+++ b/src/widgets/sp-color-selector.cpp
@@ -294,7 +294,7 @@ void ColorSelector::_updateInternals( const SPColor& color, gfloat alpha, gboole
(_held ? "CHANGED" : "DRAGGED" ),
color.toRGBA32( alpha ), (color.icc?color.icc->colorProfile.c_str():"<null>"), FOO_NAME(_csel));
#endif
- g_signal_emit(G_OBJECT(_csel), csel_signals[_held ? CHANGED : DRAGGED], 0);
+ g_signal_emit(G_OBJECT(_csel), csel_signals[_held ? DRAGGED : CHANGED], 0);
}
}