diff options
| author | Alex Valavanis <valavanisalex@gmail.com> | 2012-04-30 22:04:12 +0000 |
|---|---|---|
| committer | Alex Valavanis <valavanisalex@gmail.com> | 2012-04-30 22:04:12 +0000 |
| commit | bc19e10ccfe4010990d2a86cbae992f7825e2562 (patch) | |
| tree | c34501ae52633d8b9451734a951196ed1675e471 /src/ui/widget/spin-slider.cpp | |
| parent | emf import. use EMR_EXTSELECTCLIPRGN to cancel clipping (Bug 990083) (diff) | |
| download | inkscape-bc19e10ccfe4010990d2a86cbae992f7825e2562.tar.gz inkscape-bc19e10ccfe4010990d2a86cbae992f7825e2562.zip | |
gtkmm-3.0 changes for Gtk::Adjustment
(bzr r11308)
Diffstat (limited to 'src/ui/widget/spin-slider.cpp')
| -rw-r--r-- | src/ui/widget/spin-slider.cpp | 50 |
1 files changed, 49 insertions, 1 deletions
diff --git a/src/ui/widget/spin-slider.cpp b/src/ui/widget/spin-slider.cpp index 3e85f845e..97ae18e20 100644 --- a/src/ui/widget/spin-slider.cpp +++ b/src/ui/widget/spin-slider.cpp @@ -10,6 +10,7 @@ #include <glib.h> #include <glibmm/i18n.h> +#include <glibmm/stringutils.h> #include "spin-slider.h" @@ -19,7 +20,12 @@ namespace Widget { SpinSlider::SpinSlider(double value, double lower, double upper, double step_inc, double climb_rate, int digits, const SPAttributeEnum a, const char* tip_text) - : AttrWidget(a, value), _adjustment(value, lower, upper, step_inc), + : AttrWidget(a, value), +#if WITH_GTKMM_3_0 + _adjustment(Gtk::Adjustment::create(value, lower, upper, step_inc)), +#else + _adjustment(value, lower, upper, step_inc), +#endif _scale(_adjustment), _spin(_adjustment, climb_rate, digits) { signal_value_changed().connect(signal_attr_changed().make_slot()); @@ -38,7 +44,11 @@ SpinSlider::SpinSlider(double value, double lower, double upper, double step_inc Glib::ustring SpinSlider::get_as_attribute() const { +#if WITH_GTKMM_3_0 + const double val = _adjustment->get_value(); +#else const double val = _adjustment.get_value(); +#endif if(_spin.get_digits() == 0) return Glib::Ascii::dtostr((int)val); @@ -49,32 +59,59 @@ Glib::ustring SpinSlider::get_as_attribute() const void SpinSlider::set_from_attribute(SPObject* o) { const gchar* val = attribute_value(o); +#if WITH_GTKMM_3_0 + if(val) + _adjustment->set_value(Glib::Ascii::strtod(val)); + else + _adjustment->set_value(get_default()->as_double()); +#else if(val) _adjustment.set_value(Glib::Ascii::strtod(val)); else _adjustment.set_value(get_default()->as_double()); +#endif } Glib::SignalProxy0<void> SpinSlider::signal_value_changed() { +#if WITH_GTKMM_3_0 + return _adjustment->signal_value_changed(); +#else return _adjustment.signal_value_changed(); +#endif } double SpinSlider::get_value() const { +#if WITH_GTKMM_3_0 + return _adjustment->get_value(); +#else return _adjustment.get_value(); +#endif } void SpinSlider::set_value(const double val) { +#if WITH_GTKMM_3_0 + _adjustment->set_value(val); +#else _adjustment.set_value(val); +#endif } +#if WITH_GTKMM_3_0 +const Glib::RefPtr<Gtk::Adjustment> SpinSlider::get_adjustment() const +#else const Gtk::Adjustment& SpinSlider::get_adjustment() const +#endif { return _adjustment; } +#if WITH_GTKMM_3_0 +Glib::RefPtr<Gtk::Adjustment> SpinSlider::get_adjustment() +#else Gtk::Adjustment& SpinSlider::get_adjustment() +#endif { return _adjustment; } @@ -112,9 +149,15 @@ DualSpinSlider::DualSpinSlider(double value, double lower, double upper, double { signal_value_changed().connect(signal_attr_changed().make_slot()); +#if WITH_GTKMM_3_0 + _s1.get_adjustment()->signal_value_changed().connect(_signal_value_changed.make_slot()); + _s2.get_adjustment()->signal_value_changed().connect(_signal_value_changed.make_slot()); + _s1.get_adjustment()->signal_value_changed().connect(sigc::mem_fun(*this, &DualSpinSlider::update_linked)); +#else _s1.get_adjustment().signal_value_changed().connect(_signal_value_changed.make_slot()); _s2.get_adjustment().signal_value_changed().connect(_signal_value_changed.make_slot()); _s1.get_adjustment().signal_value_changed().connect(sigc::mem_fun(*this, &DualSpinSlider::update_linked)); +#endif _link.signal_toggled().connect(sigc::mem_fun(*this, &DualSpinSlider::link_toggled)); Gtk::VBox* vb = Gtk::manage(new Gtk::VBox); @@ -151,8 +194,13 @@ void DualSpinSlider::set_from_attribute(SPObject* o) _link.set_active(toks[1] == 0); +#if WITH_GTKMM_3_0 + _s1.get_adjustment()->set_value(v1); + _s2.get_adjustment()->set_value(v2); +#else _s1.get_adjustment().set_value(v1); _s2.get_adjustment().set_value(v2); +#endif g_strfreev(toks); } |
