spin-slider.cpp revision cff0a1487c551f4d21d1d6da1c81335435814675
7a7fa095a483e8b652af9f00e5169f62c84f09b9miklosh/*
7a7fa095a483e8b652af9f00e5169f62c84f09b9miklosh * Author:
7a7fa095a483e8b652af9f00e5169f62c84f09b9miklosh * Nicholas Bishop <nicholasbishop@gmail.com>
7a7fa095a483e8b652af9f00e5169f62c84f09b9miklosh * Felipe C. da S. Sanches <juca@members.fsf.org>
7a7fa095a483e8b652af9f00e5169f62c84f09b9miklosh *
7a7fa095a483e8b652af9f00e5169f62c84f09b9miklosh * Copyright (C) 2007 Author
7a7fa095a483e8b652af9f00e5169f62c84f09b9miklosh *
7a7fa095a483e8b652af9f00e5169f62c84f09b9miklosh * Released under GNU GPL. Read the file 'COPYING' for more information.
7a7fa095a483e8b652af9f00e5169f62c84f09b9miklosh */
7a7fa095a483e8b652af9f00e5169f62c84f09b9miklosh
7a7fa095a483e8b652af9f00e5169f62c84f09b9miklosh#include <glib.h>
7a7fa095a483e8b652af9f00e5169f62c84f09b9miklosh#include <glibmm/i18n.h>
7a7fa095a483e8b652af9f00e5169f62c84f09b9miklosh#include <glibmm/stringutils.h>
7a7fa095a483e8b652af9f00e5169f62c84f09b9miklosh
7a7fa095a483e8b652af9f00e5169f62c84f09b9miklosh#include "spin-slider.h"
7a7fa095a483e8b652af9f00e5169f62c84f09b9miklosh
7a7fa095a483e8b652af9f00e5169f62c84f09b9mikloshnamespace Inkscape {
7a7fa095a483e8b652af9f00e5169f62c84f09b9mikloshnamespace UI {
7a7fa095a483e8b652af9f00e5169f62c84f09b9mikloshnamespace Widget {
7a7fa095a483e8b652af9f00e5169f62c84f09b9miklosh
7a7fa095a483e8b652af9f00e5169f62c84f09b9mikloshSpinSlider::SpinSlider(double value, double lower, double upper, double step_inc,
3711b3e25395437ee0a09dbbb2a76d999c4ef322miklosh double climb_rate, int digits, const SPAttributeEnum a, const char* tip_text)
3711b3e25395437ee0a09dbbb2a76d999c4ef322miklosh : AttrWidget(a, value),
7a7fa095a483e8b652af9f00e5169f62c84f09b9miklosh#if WITH_GTKMM_3_0
7a7fa095a483e8b652af9f00e5169f62c84f09b9miklosh _adjustment(Gtk::Adjustment::create(value, lower, upper, step_inc)),
7a7fa095a483e8b652af9f00e5169f62c84f09b9miklosh#else
7a7fa095a483e8b652af9f00e5169f62c84f09b9miklosh _adjustment(value, lower, upper, step_inc),
7a7fa095a483e8b652af9f00e5169f62c84f09b9miklosh#endif
7a7fa095a483e8b652af9f00e5169f62c84f09b9miklosh _scale(_adjustment), _spin(_adjustment, climb_rate, digits)
7a7fa095a483e8b652af9f00e5169f62c84f09b9miklosh{
7a7fa095a483e8b652af9f00e5169f62c84f09b9miklosh signal_value_changed().connect(signal_attr_changed().make_slot());
7a7fa095a483e8b652af9f00e5169f62c84f09b9miklosh
7a7fa095a483e8b652af9f00e5169f62c84f09b9miklosh pack_start(_scale);
3711b3e25395437ee0a09dbbb2a76d999c4ef322miklosh pack_start(_spin, false, false);
3711b3e25395437ee0a09dbbb2a76d999c4ef322miklosh if (tip_text){
b5b35fce2e3df933e5223ef6645d814eacf51cfamiklosh _scale.set_tooltip_text(tip_text);
3711b3e25395437ee0a09dbbb2a76d999c4ef322miklosh _spin.set_tooltip_text(tip_text);
fba63a357654d8b3e84c60007e40aa698cd45d19miklosh }
3711b3e25395437ee0a09dbbb2a76d999c4ef322miklosh
7a7fa095a483e8b652af9f00e5169f62c84f09b9miklosh _scale.set_draw_value(false);
7a7fa095a483e8b652af9f00e5169f62c84f09b9miklosh
7a7fa095a483e8b652af9f00e5169f62c84f09b9miklosh show_all_children();
3711b3e25395437ee0a09dbbb2a76d999c4ef322miklosh}
3711b3e25395437ee0a09dbbb2a76d999c4ef322miklosh
dc4f69a188c203f2fdc65f22d0d57904a8c52dd7mikloshGlib::ustring SpinSlider::get_as_attribute() const
3711b3e25395437ee0a09dbbb2a76d999c4ef322miklosh{
3711b3e25395437ee0a09dbbb2a76d999c4ef322miklosh#if WITH_GTKMM_3_0
7a7fa095a483e8b652af9f00e5169f62c84f09b9miklosh const double val = _adjustment->get_value();
7a7fa095a483e8b652af9f00e5169f62c84f09b9miklosh#else
7a7fa095a483e8b652af9f00e5169f62c84f09b9miklosh const double val = _adjustment.get_value();
7a7fa095a483e8b652af9f00e5169f62c84f09b9miklosh#endif
7a7fa095a483e8b652af9f00e5169f62c84f09b9miklosh
3711b3e25395437ee0a09dbbb2a76d999c4ef322miklosh if(_spin.get_digits() == 0)
3711b3e25395437ee0a09dbbb2a76d999c4ef322miklosh return Glib::Ascii::dtostr((int)val);
3711b3e25395437ee0a09dbbb2a76d999c4ef322miklosh else
3711b3e25395437ee0a09dbbb2a76d999c4ef322miklosh return Glib::Ascii::dtostr(val);
3711b3e25395437ee0a09dbbb2a76d999c4ef322miklosh}
7a7fa095a483e8b652af9f00e5169f62c84f09b9miklosh
c53f16f52840e8c0f2be9c1cc3af633c0ba1552emikloshvoid SpinSlider::set_from_attribute(SPObject* o)
c53f16f52840e8c0f2be9c1cc3af633c0ba1552emiklosh{
c53f16f52840e8c0f2be9c1cc3af633c0ba1552emiklosh const gchar* val = attribute_value(o);
c53f16f52840e8c0f2be9c1cc3af633c0ba1552emiklosh#if WITH_GTKMM_3_0
c53f16f52840e8c0f2be9c1cc3af633c0ba1552emiklosh if(val)
c53f16f52840e8c0f2be9c1cc3af633c0ba1552emiklosh _adjustment->set_value(Glib::Ascii::strtod(val));
c53f16f52840e8c0f2be9c1cc3af633c0ba1552emiklosh else
c53f16f52840e8c0f2be9c1cc3af633c0ba1552emiklosh _adjustment->set_value(get_default()->as_double());
c53f16f52840e8c0f2be9c1cc3af633c0ba1552emiklosh#else
c53f16f52840e8c0f2be9c1cc3af633c0ba1552emiklosh if(val)
c53f16f52840e8c0f2be9c1cc3af633c0ba1552emiklosh _adjustment.set_value(Glib::Ascii::strtod(val));
c53f16f52840e8c0f2be9c1cc3af633c0ba1552emiklosh else
c53f16f52840e8c0f2be9c1cc3af633c0ba1552emiklosh _adjustment.set_value(get_default()->as_double());
c53f16f52840e8c0f2be9c1cc3af633c0ba1552emiklosh#endif
c53f16f52840e8c0f2be9c1cc3af633c0ba1552emiklosh}
7a7fa095a483e8b652af9f00e5169f62c84f09b9miklosh
7a7fa095a483e8b652af9f00e5169f62c84f09b9mikloshGlib::SignalProxy0<void> SpinSlider::signal_value_changed()
7a7fa095a483e8b652af9f00e5169f62c84f09b9miklosh{
7a7fa095a483e8b652af9f00e5169f62c84f09b9miklosh#if WITH_GTKMM_3_0
7a7fa095a483e8b652af9f00e5169f62c84f09b9miklosh return _adjustment->signal_value_changed();
68664e00e2372534b4df2fdc5f54f836bafece18miklosh#else
1cda9431ef400135f5e1bd899a94b921bdad0eafmiklosh return _adjustment.signal_value_changed();
3711b3e25395437ee0a09dbbb2a76d999c4ef322miklosh#endif
68664e00e2372534b4df2fdc5f54f836bafece18miklosh}
dc4f69a188c203f2fdc65f22d0d57904a8c52dd7miklosh
3711b3e25395437ee0a09dbbb2a76d999c4ef322mikloshdouble SpinSlider::get_value() const
3711b3e25395437ee0a09dbbb2a76d999c4ef322miklosh{
a4d12a5147f3d1d6b568a326e39ef5dca384248dmiklosh#if WITH_GTKMM_3_0
1667116521643e2475184b048e0abb77a2aa9735miklosh return _adjustment->get_value();
cb814cb0df20053ca3ef16ce55da474435daf045miklosh#else
cb814cb0df20053ca3ef16ce55da474435daf045miklosh return _adjustment.get_value();
cb814cb0df20053ca3ef16ce55da474435daf045miklosh#endif
cb814cb0df20053ca3ef16ce55da474435daf045miklosh}
7a7fa095a483e8b652af9f00e5169f62c84f09b9miklosh
7a7fa095a483e8b652af9f00e5169f62c84f09b9mikloshvoid SpinSlider::set_value(const double val)
7a7fa095a483e8b652af9f00e5169f62c84f09b9miklosh{
1cda9431ef400135f5e1bd899a94b921bdad0eafmiklosh#if WITH_GTKMM_3_0
3711b3e25395437ee0a09dbbb2a76d999c4ef322miklosh _adjustment->set_value(val);
68664e00e2372534b4df2fdc5f54f836bafece18miklosh#else
dc4f69a188c203f2fdc65f22d0d57904a8c52dd7miklosh _adjustment.set_value(val);
3711b3e25395437ee0a09dbbb2a76d999c4ef322miklosh#endif
cb814cb0df20053ca3ef16ce55da474435daf045miklosh}
3711b3e25395437ee0a09dbbb2a76d999c4ef322miklosh
1667116521643e2475184b048e0abb77a2aa9735miklosh#if WITH_GTKMM_3_0
7a7fa095a483e8b652af9f00e5169f62c84f09b9mikloshconst Glib::RefPtr<Gtk::Adjustment> SpinSlider::get_adjustment() const
7a7fa095a483e8b652af9f00e5169f62c84f09b9miklosh#else
7a7fa095a483e8b652af9f00e5169f62c84f09b9mikloshconst Gtk::Adjustment& SpinSlider::get_adjustment() const
7a7fa095a483e8b652af9f00e5169f62c84f09b9miklosh#endif
7a7fa095a483e8b652af9f00e5169f62c84f09b9miklosh{
1667116521643e2475184b048e0abb77a2aa9735miklosh return _adjustment;
1667116521643e2475184b048e0abb77a2aa9735miklosh}
1667116521643e2475184b048e0abb77a2aa9735miklosh#if WITH_GTKMM_3_0
1667116521643e2475184b048e0abb77a2aa9735mikloshGlib::RefPtr<Gtk::Adjustment> SpinSlider::get_adjustment()
1667116521643e2475184b048e0abb77a2aa9735miklosh#else
1667116521643e2475184b048e0abb77a2aa9735mikloshGtk::Adjustment& SpinSlider::get_adjustment()
1667116521643e2475184b048e0abb77a2aa9735miklosh#endif
1667116521643e2475184b048e0abb77a2aa9735miklosh{
c53f16f52840e8c0f2be9c1cc3af633c0ba1552emiklosh return _adjustment;
c53f16f52840e8c0f2be9c1cc3af633c0ba1552emiklosh}
c53f16f52840e8c0f2be9c1cc3af633c0ba1552emiklosh
c53f16f52840e8c0f2be9c1cc3af633c0ba1552emiklosh#if WITH_GTKMM_3_0
c53f16f52840e8c0f2be9c1cc3af633c0ba1552emikloshconst Gtk::Scale& SpinSlider::get_scale() const
1667116521643e2475184b048e0abb77a2aa9735miklosh#else
1667116521643e2475184b048e0abb77a2aa9735mikloshconst Gtk::HScale& SpinSlider::get_scale() const
1667116521643e2475184b048e0abb77a2aa9735miklosh#endif
7a7fa095a483e8b652af9f00e5169f62c84f09b9miklosh{
3711b3e25395437ee0a09dbbb2a76d999c4ef322miklosh return _scale;
3711b3e25395437ee0a09dbbb2a76d999c4ef322miklosh}
3711b3e25395437ee0a09dbbb2a76d999c4ef322miklosh
3711b3e25395437ee0a09dbbb2a76d999c4ef322miklosh#if WITH_GTKMM_3_0
7a7fa095a483e8b652af9f00e5169f62c84f09b9mikloshGtk::Scale& SpinSlider::get_scale()
7a7fa095a483e8b652af9f00e5169f62c84f09b9miklosh#else
68664e00e2372534b4df2fdc5f54f836bafece18mikloshGtk::HScale& SpinSlider::get_scale()
68664e00e2372534b4df2fdc5f54f836bafece18miklosh#endif
68664e00e2372534b4df2fdc5f54f836bafece18miklosh{
68664e00e2372534b4df2fdc5f54f836bafece18miklosh return _scale;
68664e00e2372534b4df2fdc5f54f836bafece18miklosh}
68664e00e2372534b4df2fdc5f54f836bafece18miklosh
68664e00e2372534b4df2fdc5f54f836bafece18mikloshconst Inkscape::UI::Widget::SpinButton& SpinSlider::get_spin_button() const
68664e00e2372534b4df2fdc5f54f836bafece18miklosh{
68664e00e2372534b4df2fdc5f54f836bafece18miklosh return _spin;
68664e00e2372534b4df2fdc5f54f836bafece18miklosh}
c53f16f52840e8c0f2be9c1cc3af633c0ba1552emikloshInkscape::UI::Widget::SpinButton& SpinSlider::get_spin_button()
c53f16f52840e8c0f2be9c1cc3af633c0ba1552emiklosh{
c53f16f52840e8c0f2be9c1cc3af633c0ba1552emiklosh return _spin;
c53f16f52840e8c0f2be9c1cc3af633c0ba1552emiklosh}
c53f16f52840e8c0f2be9c1cc3af633c0ba1552emiklosh
c53f16f52840e8c0f2be9c1cc3af633c0ba1552emikloshvoid SpinSlider::remove_scale()
c53f16f52840e8c0f2be9c1cc3af633c0ba1552emiklosh{
7a7fa095a483e8b652af9f00e5169f62c84f09b9miklosh remove(_scale);
c53f16f52840e8c0f2be9c1cc3af633c0ba1552emiklosh}
c53f16f52840e8c0f2be9c1cc3af633c0ba1552emiklosh
c53f16f52840e8c0f2be9c1cc3af633c0ba1552emikloshDualSpinSlider::DualSpinSlider(double value, double lower, double upper, double step_inc,
c53f16f52840e8c0f2be9c1cc3af633c0ba1552emiklosh double climb_rate, int digits, const SPAttributeEnum a, char* tip_text1, char* tip_text2)
7a7fa095a483e8b652af9f00e5169f62c84f09b9miklosh : AttrWidget(a),
7a7fa095a483e8b652af9f00e5169f62c84f09b9miklosh _s1(value, lower, upper, step_inc, climb_rate, digits, SP_ATTR_INVALID, tip_text1),
7a7fa095a483e8b652af9f00e5169f62c84f09b9miklosh _s2(value, lower, upper, step_inc, climb_rate, digits, SP_ATTR_INVALID, tip_text2),
7a7fa095a483e8b652af9f00e5169f62c84f09b9miklosh //TRANSLATORS: "Link" means to _link_ two sliders together
c53f16f52840e8c0f2be9c1cc3af633c0ba1552emiklosh _link(C_("Sliders", "Link"))
7a7fa095a483e8b652af9f00e5169f62c84f09b9miklosh{
7a7fa095a483e8b652af9f00e5169f62c84f09b9miklosh signal_value_changed().connect(signal_attr_changed().make_slot());
c53f16f52840e8c0f2be9c1cc3af633c0ba1552emiklosh
7a7fa095a483e8b652af9f00e5169f62c84f09b9miklosh#if WITH_GTKMM_3_0
7a7fa095a483e8b652af9f00e5169f62c84f09b9miklosh _s1.get_adjustment()->signal_value_changed().connect(_signal_value_changed.make_slot());
1667116521643e2475184b048e0abb77a2aa9735miklosh _s2.get_adjustment()->signal_value_changed().connect(_signal_value_changed.make_slot());
1667116521643e2475184b048e0abb77a2aa9735miklosh _s1.get_adjustment()->signal_value_changed().connect(sigc::mem_fun(*this, &DualSpinSlider::update_linked));
1667116521643e2475184b048e0abb77a2aa9735miklosh#else
3711b3e25395437ee0a09dbbb2a76d999c4ef322miklosh _s1.get_adjustment().signal_value_changed().connect(_signal_value_changed.make_slot());
1667116521643e2475184b048e0abb77a2aa9735miklosh _s2.get_adjustment().signal_value_changed().connect(_signal_value_changed.make_slot());
1667116521643e2475184b048e0abb77a2aa9735miklosh _s1.get_adjustment().signal_value_changed().connect(sigc::mem_fun(*this, &DualSpinSlider::update_linked));
1667116521643e2475184b048e0abb77a2aa9735miklosh#endif
1667116521643e2475184b048e0abb77a2aa9735miklosh _link.signal_toggled().connect(sigc::mem_fun(*this, &DualSpinSlider::link_toggled));
1667116521643e2475184b048e0abb77a2aa9735miklosh
1667116521643e2475184b048e0abb77a2aa9735miklosh Gtk::VBox* vb = Gtk::manage(new Gtk::VBox);
1667116521643e2475184b048e0abb77a2aa9735miklosh vb->add(_s1);
1667116521643e2475184b048e0abb77a2aa9735miklosh vb->add(_s2);
1667116521643e2475184b048e0abb77a2aa9735miklosh pack_start(*vb);
1667116521643e2475184b048e0abb77a2aa9735miklosh pack_start(_link, false, false);
1667116521643e2475184b048e0abb77a2aa9735miklosh _link.set_active(true);
1667116521643e2475184b048e0abb77a2aa9735miklosh
1667116521643e2475184b048e0abb77a2aa9735miklosh show_all();
1667116521643e2475184b048e0abb77a2aa9735miklosh}
1667116521643e2475184b048e0abb77a2aa9735miklosh
1667116521643e2475184b048e0abb77a2aa9735mikloshGlib::ustring DualSpinSlider::get_as_attribute() const
1667116521643e2475184b048e0abb77a2aa9735miklosh{
1667116521643e2475184b048e0abb77a2aa9735miklosh if(_link.get_active())
1667116521643e2475184b048e0abb77a2aa9735miklosh return _s1.get_as_attribute();
1667116521643e2475184b048e0abb77a2aa9735miklosh else
7a7fa095a483e8b652af9f00e5169f62c84f09b9miklosh return _s1.get_as_attribute() + " " + _s2.get_as_attribute();
c53f16f52840e8c0f2be9c1cc3af633c0ba1552emiklosh}
68664e00e2372534b4df2fdc5f54f836bafece18miklosh
1cda9431ef400135f5e1bd899a94b921bdad0eafmikloshvoid DualSpinSlider::set_from_attribute(SPObject* o)
68664e00e2372534b4df2fdc5f54f836bafece18miklosh{
68664e00e2372534b4df2fdc5f54f836bafece18miklosh const gchar* val = attribute_value(o);
68664e00e2372534b4df2fdc5f54f836bafece18miklosh if(val) {
68664e00e2372534b4df2fdc5f54f836bafece18miklosh // Split val into parts
68664e00e2372534b4df2fdc5f54f836bafece18miklosh gchar** toks = g_strsplit(val, " ", 2);
68664e00e2372534b4df2fdc5f54f836bafece18miklosh
68664e00e2372534b4df2fdc5f54f836bafece18miklosh if(toks) {
68664e00e2372534b4df2fdc5f54f836bafece18miklosh double v1 = 0.0, v2 = 0.0;
68664e00e2372534b4df2fdc5f54f836bafece18miklosh if(toks[0])
7a7fa095a483e8b652af9f00e5169f62c84f09b9miklosh v1 = v2 = Glib::Ascii::strtod(toks[0]);
3711b3e25395437ee0a09dbbb2a76d999c4ef322miklosh if(toks[1])
7a7fa095a483e8b652af9f00e5169f62c84f09b9miklosh v2 = Glib::Ascii::strtod(toks[1]);
7a7fa095a483e8b652af9f00e5169f62c84f09b9miklosh
7a7fa095a483e8b652af9f00e5169f62c84f09b9miklosh _link.set_active(toks[1] == 0);
3711b3e25395437ee0a09dbbb2a76d999c4ef322miklosh
1667116521643e2475184b048e0abb77a2aa9735miklosh#if WITH_GTKMM_3_0
c53f16f52840e8c0f2be9c1cc3af633c0ba1552emiklosh _s1.get_adjustment()->set_value(v1);
7a7fa095a483e8b652af9f00e5169f62c84f09b9miklosh _s2.get_adjustment()->set_value(v2);
7a7fa095a483e8b652af9f00e5169f62c84f09b9miklosh#else
3711b3e25395437ee0a09dbbb2a76d999c4ef322miklosh _s1.get_adjustment().set_value(v1);
7a7fa095a483e8b652af9f00e5169f62c84f09b9miklosh _s2.get_adjustment().set_value(v2);
7a7fa095a483e8b652af9f00e5169f62c84f09b9miklosh#endif
7a7fa095a483e8b652af9f00e5169f62c84f09b9miklosh
3711b3e25395437ee0a09dbbb2a76d999c4ef322miklosh g_strfreev(toks);
7a7fa095a483e8b652af9f00e5169f62c84f09b9miklosh }
7a7fa095a483e8b652af9f00e5169f62c84f09b9miklosh }
7a7fa095a483e8b652af9f00e5169f62c84f09b9miklosh}
7a7fa095a483e8b652af9f00e5169f62c84f09b9miklosh
7a7fa095a483e8b652af9f00e5169f62c84f09b9mikloshsigc::signal<void>& DualSpinSlider::signal_value_changed()
fba63a357654d8b3e84c60007e40aa698cd45d19miklosh{
b5b35fce2e3df933e5223ef6645d814eacf51cfamiklosh return _signal_value_changed;
b5b35fce2e3df933e5223ef6645d814eacf51cfamiklosh}
b5b35fce2e3df933e5223ef6645d814eacf51cfamiklosh
3711b3e25395437ee0a09dbbb2a76d999c4ef322mikloshconst SpinSlider& DualSpinSlider::get_spinslider1() const
7a7fa095a483e8b652af9f00e5169f62c84f09b9miklosh{
7a7fa095a483e8b652af9f00e5169f62c84f09b9miklosh return _s1;
7a7fa095a483e8b652af9f00e5169f62c84f09b9miklosh}
d27f5758e12c3107ee69e66702043931e0756f6bmiklosh
d27f5758e12c3107ee69e66702043931e0756f6bmikloshSpinSlider& DualSpinSlider::get_spinslider1()
d27f5758e12c3107ee69e66702043931e0756f6bmiklosh{
7a7fa095a483e8b652af9f00e5169f62c84f09b9miklosh return _s1;
7a7fa095a483e8b652af9f00e5169f62c84f09b9miklosh}
7a7fa095a483e8b652af9f00e5169f62c84f09b9miklosh
3711b3e25395437ee0a09dbbb2a76d999c4ef322mikloshconst SpinSlider& DualSpinSlider::get_spinslider2() const
b5b35fce2e3df933e5223ef6645d814eacf51cfamiklosh{
7a7fa095a483e8b652af9f00e5169f62c84f09b9miklosh return _s2;
3711b3e25395437ee0a09dbbb2a76d999c4ef322miklosh}
3711b3e25395437ee0a09dbbb2a76d999c4ef322miklosh
3711b3e25395437ee0a09dbbb2a76d999c4ef322mikloshSpinSlider& DualSpinSlider::get_spinslider2()
7a7fa095a483e8b652af9f00e5169f62c84f09b9miklosh{
7a7fa095a483e8b652af9f00e5169f62c84f09b9miklosh return _s2;
3711b3e25395437ee0a09dbbb2a76d999c4ef322miklosh}
3711b3e25395437ee0a09dbbb2a76d999c4ef322miklosh
3711b3e25395437ee0a09dbbb2a76d999c4ef322mikloshvoid DualSpinSlider::remove_scale()
7a7fa095a483e8b652af9f00e5169f62c84f09b9miklosh{
7a7fa095a483e8b652af9f00e5169f62c84f09b9miklosh _s1.remove_scale();
7a7fa095a483e8b652af9f00e5169f62c84f09b9miklosh _s2.remove_scale();
7a7fa095a483e8b652af9f00e5169f62c84f09b9miklosh}
3711b3e25395437ee0a09dbbb2a76d999c4ef322miklosh
7a7fa095a483e8b652af9f00e5169f62c84f09b9mikloshvoid DualSpinSlider::link_toggled()
7a7fa095a483e8b652af9f00e5169f62c84f09b9miklosh{
7a7fa095a483e8b652af9f00e5169f62c84f09b9miklosh _s2.set_sensitive(!_link.get_active());
7a7fa095a483e8b652af9f00e5169f62c84f09b9miklosh update_linked();
7a7fa095a483e8b652af9f00e5169f62c84f09b9miklosh}
7a7fa095a483e8b652af9f00e5169f62c84f09b9miklosh
7a7fa095a483e8b652af9f00e5169f62c84f09b9mikloshvoid DualSpinSlider::update_linked()
7a7fa095a483e8b652af9f00e5169f62c84f09b9miklosh{
7a7fa095a483e8b652af9f00e5169f62c84f09b9miklosh if(_link.get_active())
7a7fa095a483e8b652af9f00e5169f62c84f09b9miklosh _s2.set_value(_s1.get_value());
7a7fa095a483e8b652af9f00e5169f62c84f09b9miklosh}
7a7fa095a483e8b652af9f00e5169f62c84f09b9miklosh
7a7fa095a483e8b652af9f00e5169f62c84f09b9miklosh} // namespace Widget
7a7fa095a483e8b652af9f00e5169f62c84f09b9miklosh} // namespace UI
7a7fa095a483e8b652af9f00e5169f62c84f09b9miklosh} // namespace Inkscape
7a7fa095a483e8b652af9f00e5169f62c84f09b9miklosh
7a7fa095a483e8b652af9f00e5169f62c84f09b9miklosh/*
7a7fa095a483e8b652af9f00e5169f62c84f09b9miklosh Local Variables:
7a7fa095a483e8b652af9f00e5169f62c84f09b9miklosh mode:c++
7a7fa095a483e8b652af9f00e5169f62c84f09b9miklosh c-file-style:"stroustrup"
7a7fa095a483e8b652af9f00e5169f62c84f09b9miklosh c-file-offsets:((innamespace . 0)(inline-open . 0))
7a7fa095a483e8b652af9f00e5169f62c84f09b9miklosh indent-tabs-mode:nil
7a7fa095a483e8b652af9f00e5169f62c84f09b9miklosh fill-column:99
7a7fa095a483e8b652af9f00e5169f62c84f09b9miklosh End:
7a7fa095a483e8b652af9f00e5169f62c84f09b9miklosh*/
7a7fa095a483e8b652af9f00e5169f62c84f09b9miklosh// vim: filetype=c++:expandtab:shiftwidth=4:tabstop=8:softtabstop=4 :
7a7fa095a483e8b652af9f00e5169f62c84f09b9miklosh