diff options
| author | Tomasz Boczkowski <penginsbacon@gmail.com> | 2014-05-23 09:59:24 +0000 |
|---|---|---|
| committer | Tomasz Boczkowski <penginsbacon@gmail.com> | 2014-05-23 09:59:24 +0000 |
| commit | fe272ea3f531111c3ab361ca31ded84b1e7106df (patch) | |
| tree | bedafc3cfa9c193bcd2ff59046c33a5630facbee /src | |
| parent | moved widgets/sp-color-slider to ui/widget/color-slider (diff) | |
| download | inkscape-fe272ea3f531111c3ab361ca31ded84b1e7106df.tar.gz inkscape-fe272ea3f531111c3ab361ca31ded84b1e7106df.zip | |
SPColorWheelSelector uses refactored ColorSlider class
(bzr r13341.6.3)
Diffstat (limited to 'src')
| -rw-r--r-- | src/widgets/sp-color-wheel-selector.cpp | 92 | ||||
| -rw-r--r-- | src/widgets/sp-color-wheel-selector.h | 21 |
2 files changed, 56 insertions, 57 deletions
diff --git a/src/widgets/sp-color-wheel-selector.cpp b/src/widgets/sp-color-wheel-selector.cpp index de2d030d4..0ef669aca 100644 --- a/src/widgets/sp-color-wheel-selector.cpp +++ b/src/widgets/sp-color-wheel-selector.cpp @@ -7,6 +7,7 @@ #include <math.h> #include <gtk/gtk.h> #include <glibmm/i18n.h> +#include <gtkmm/adjustment.h> #include "../dialogs/dialog-events.h" #include "sp-color-scales.h" #include "sp-color-icc-selector.h" @@ -160,28 +161,26 @@ void ColorWheelSelector::init() _adj = GTK_ADJUSTMENT(gtk_adjustment_new(0.0, 0.0, 255.0, 1.0, 10.0, 10.0)); /* Slider */ - _slider = sp_color_slider_new (_adj); - gtk_widget_set_tooltip_text (_slider, _("Alpha (opacity)")); - gtk_widget_show (_slider); + _slider = Gtk::manage(new Inkscape::UI::Widget::ColorSlider(Glib::wrap(_adj))); + _slider->set_tooltip_text(_("Alpha (opacity)")); + _slider->show(); #if GTK_CHECK_VERSION(3,0,0) - gtk_widget_set_margin_left(_slider, XPAD); - gtk_widget_set_margin_right(_slider, XPAD); - gtk_widget_set_margin_top(_slider, YPAD); - gtk_widget_set_margin_bottom(_slider, YPAD); - gtk_widget_set_hexpand(_slider, TRUE); - gtk_widget_set_halign(_slider, GTK_ALIGN_FILL); - gtk_widget_set_valign(_slider, GTK_ALIGN_FILL); - gtk_grid_attach(GTK_GRID(t), _slider, 1, row, 1, 1); + _slider->set_margin_left(XPAD); + _slider->set_margin_right(XPAD); + _slider->set_margin_top(YPAD); + _slider->set_margin_bottom(YPAD); + _slider->set_hexpand(true); + _slider->set_halign(Gtk::ALIGN_FILL); + _slider->set_valign(Gtk::ALIGN_FILL); + gtk_grid_attach(GTK_GRID(t), _slider->gobj(), 1, row, 1, 1); #else - gtk_table_attach(GTK_TABLE (t), _slider, 1, 2, row, row + 1, (GtkAttachOptions)(GTK_EXPAND | GTK_FILL), GTK_FILL, XPAD, YPAD); + gtk_table_attach(GTK_TABLE (t), _slider->gobj(), 1, 2, row, row + 1, (GtkAttachOptions)(GTK_EXPAND | GTK_FILL), GTK_FILL, XPAD, YPAD); #endif - sp_color_slider_set_colors (SP_COLOR_SLIDER (_slider), - SP_RGBA32_F_COMPOSE (1.0, 1.0, 1.0, 0.0), - SP_RGBA32_F_COMPOSE (1.0, 1.0, 1.0, 0.5), - SP_RGBA32_F_COMPOSE (1.0, 1.0, 1.0, 1.0)); - + _slider->set_colors(SP_RGBA32_F_COMPOSE (1.0, 1.0, 1.0, 0.0), + SP_RGBA32_F_COMPOSE (1.0, 1.0, 1.0, 0.5), + SP_RGBA32_F_COMPOSE (1.0, 1.0, 1.0, 1.0)); /* Spinbutton */ _sbtn = gtk_spin_button_new (GTK_ADJUSTMENT (_adj), 1.0, 0); @@ -206,12 +205,9 @@ void ColorWheelSelector::init() g_signal_connect (G_OBJECT (_adj), "value_changed", G_CALLBACK (_adjustmentChanged), _csel); - g_signal_connect (G_OBJECT (_slider), "grabbed", - G_CALLBACK (_sliderGrabbed), _csel); - g_signal_connect (G_OBJECT (_slider), "released", - G_CALLBACK (_sliderReleased), _csel); - g_signal_connect (G_OBJECT (_slider), "changed", - G_CALLBACK (_sliderChanged), _csel); + _slider->signal_grabbed.connect(sigc::mem_fun(*this, &ColorWheelSelector::_sliderGrabbed)); + _slider->signal_released.connect(sigc::mem_fun(*this, &ColorWheelSelector::_sliderReleased)); + _slider->signal_value_changed.connect(sigc::mem_fun(*this, &ColorWheelSelector::_sliderChanged)); g_signal_connect( G_OBJECT(_wheel), "changed", G_CALLBACK (_wheelChanged), _csel ); @@ -243,9 +239,8 @@ GtkWidget *sp_color_wheel_selector_new() /* Helpers for setting color value */ -static void preserve_icc(SPColor *color, SPColorWheelSelector *cs){ - ColorSelector* selector = static_cast<ColorSelector*>(SP_COLOR_SELECTOR(cs)->base); - color->icc = selector->getColor().icc ? new SVGICCColor(*selector->getColor().icc) : 0; +void ColorWheelSelector::_preserve_icc(SPColor *color) const { + color->icc = getColor().icc ? new SVGICCColor(*getColor().icc) : 0; } void ColorWheelSelector::_colorChanged() @@ -264,7 +259,7 @@ void ColorWheelSelector::_colorChanged() guint32 mid = _color.toRGBA32( 0x7f ); guint32 end = _color.toRGBA32( 0xff ); - sp_color_slider_set_colors(SP_COLOR_SLIDER(_slider), start, mid, end); + _slider->set_colors(start, mid, end); ColorScales::setScaled(_adj, _alpha); @@ -287,45 +282,38 @@ void ColorWheelSelector::_adjustmentChanged( GtkAdjustment *adjustment, SPColorW wheelSelector->_updating = TRUE; - preserve_icc(&wheelSelector->_color, cs); + wheelSelector->_preserve_icc(&wheelSelector->_color); wheelSelector->_updateInternals( wheelSelector->_color, ColorScales::getScaled( wheelSelector->_adj ), wheelSelector->_dragging ); wheelSelector->_updating = FALSE; } -void ColorWheelSelector::_sliderGrabbed( SPColorSlider *slider, SPColorWheelSelector *cs ) +void ColorWheelSelector::_sliderGrabbed() { - (void)slider; - ColorWheelSelector* wheelSelector = static_cast<ColorWheelSelector*>(SP_COLOR_SELECTOR(cs)->base); - if (!wheelSelector->_dragging) { - wheelSelector->_dragging = TRUE; - wheelSelector->_grabbed(); + if (!_dragging) { + _dragging = TRUE; + _grabbed(); - preserve_icc(&wheelSelector->_color, cs); - wheelSelector->_updateInternals( wheelSelector->_color, ColorScales::getScaled( wheelSelector->_adj ), wheelSelector->_dragging ); + _preserve_icc(&_color); + _updateInternals( _color, ColorScales::getScaled( _adj ), _dragging ); } } -void ColorWheelSelector::_sliderReleased( SPColorSlider *slider, SPColorWheelSelector *cs ) +void ColorWheelSelector::_sliderReleased() { - (void)slider; - ColorWheelSelector* wheelSelector = static_cast<ColorWheelSelector*>(SP_COLOR_SELECTOR(cs)->base); - if (wheelSelector->_dragging) { - wheelSelector->_dragging = FALSE; - wheelSelector->_released(); + if (_dragging) { + _dragging = FALSE; + _released(); - preserve_icc(&wheelSelector->_color, cs); - wheelSelector->_updateInternals( wheelSelector->_color, ColorScales::getScaled( wheelSelector->_adj ), wheelSelector->_dragging ); + _preserve_icc(&_color); + _updateInternals( _color, ColorScales::getScaled( _adj ), _dragging ); } } -void ColorWheelSelector::_sliderChanged( SPColorSlider *slider, SPColorWheelSelector *cs ) +void ColorWheelSelector::_sliderChanged() { - (void)slider; - ColorWheelSelector* wheelSelector = static_cast<ColorWheelSelector*>(SP_COLOR_SELECTOR(cs)->base); - - preserve_icc(&wheelSelector->_color, cs); - wheelSelector->_updateInternals( wheelSelector->_color, ColorScales::getScaled( wheelSelector->_adj ), wheelSelector->_dragging ); + _preserve_icc(&_color); + _updateInternals( _color, ColorScales::getScaled( _adj ), _dragging ); } void ColorWheelSelector::_wheelChanged( GimpColorWheel *wheel, SPColorWheelSelector *cs ) @@ -346,9 +334,9 @@ void ColorWheelSelector::_wheelChanged( GimpColorWheel *wheel, SPColorWheelSelec guint32 mid = color.toRGBA32( 0x7f ); guint32 end = color.toRGBA32( 0xff ); - sp_color_slider_set_colors (SP_COLOR_SLIDER(wheelSelector->_slider), start, mid, end); + wheelSelector->_slider->set_colors(start, mid, end); - preserve_icc(&color, cs); + wheelSelector->_preserve_icc(&color); wheelSelector->_updateInternals( color, wheelSelector->_alpha, gimp_color_wheel_is_adjusting(wheel) ); } diff --git a/src/widgets/sp-color-wheel-selector.h b/src/widgets/sp-color-wheel-selector.h index b7b86438c..bb6078906 100644 --- a/src/widgets/sp-color-wheel-selector.h +++ b/src/widgets/sp-color-wheel-selector.h @@ -17,7 +17,16 @@ typedef struct _GimpColorWheel GimpColorWheel; struct SPColorWheelSelector; struct SPColorWheelSelectorClass; -struct SPColorSlider; + +namespace Inkscape { +namespace UI { +namespace Widget { + +class ColorSlider; + +} +} +} class ColorWheelSelector: public ColorSelector { @@ -32,9 +41,9 @@ protected: static void _adjustmentChanged ( GtkAdjustment *adjustment, SPColorWheelSelector *cs ); - static void _sliderGrabbed( SPColorSlider *slider, SPColorWheelSelector *cs ); - static void _sliderReleased( SPColorSlider *slider, SPColorWheelSelector *cs ); - static void _sliderChanged( SPColorSlider *slider, SPColorWheelSelector *cs ); + void _sliderGrabbed(); + void _sliderReleased(); + void _sliderChanged(); static void _wheelChanged( GimpColorWheel *wheel, SPColorWheelSelector *cs ); static void _fooChanged( GtkWidget foo, SPColorWheelSelector *cs ); @@ -45,7 +54,7 @@ protected: gboolean _dragging : 1; GtkAdjustment* _adj; // Channel adjustment GtkWidget* _wheel; - GtkWidget* _slider; + Inkscape::UI::Widget::ColorSlider* _slider; GtkWidget* _sbtn; // Spinbutton GtkWidget* _label; // Label @@ -53,6 +62,8 @@ private: // By default, disallow copy constructor and assignment operator ColorWheelSelector( const ColorWheelSelector& obj ); ColorWheelSelector& operator=( const ColorWheelSelector& obj ); + + void _preserve_icc(SPColor *color) const; }; |
