diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/live_effects/lpe-powerstroke.cpp | 3 | ||||
| -rw-r--r-- | src/live_effects/parameter/parameter.cpp | 6 | ||||
| -rw-r--r-- | src/live_effects/parameter/parameter.h | 3 | ||||
| -rw-r--r-- | src/ui/widget/scalar.cpp | 11 | ||||
| -rw-r--r-- | src/ui/widget/scalar.h | 5 |
5 files changed, 25 insertions, 3 deletions
diff --git a/src/live_effects/lpe-powerstroke.cpp b/src/live_effects/lpe-powerstroke.cpp index fc6026d31..25cb72b42 100644 --- a/src/live_effects/lpe-powerstroke.cpp +++ b/src/live_effects/lpe-powerstroke.cpp @@ -77,6 +77,9 @@ LPEPowerStroke::LPEPowerStroke(LivePathEffectObject *lpeobject) : /// @todo offset_points are initialized with empty path, is that bug-save? + interpolator_beta.addSlider(true); + interpolator_beta.param_set_range(0.,1.); + registerParameter( dynamic_cast<Parameter *>(&offset_points) ); registerParameter( dynamic_cast<Parameter *>(&sort_points) ); registerParameter( dynamic_cast<Parameter *>(&interpolator_type) ); diff --git a/src/live_effects/parameter/parameter.cpp b/src/live_effects/parameter/parameter.cpp index 5454a5408..cc8982860 100644 --- a/src/live_effects/parameter/parameter.cpp +++ b/src/live_effects/parameter/parameter.cpp @@ -58,7 +58,8 @@ ScalarParam::ScalarParam( const Glib::ustring& label, const Glib::ustring& tip, defvalue(default_value), digits(2), inc_step(0.1), - inc_page(1) + inc_page(1), + add_slider(false) { } @@ -134,6 +135,9 @@ ScalarParam::param_newWidget(Gtk::Tooltips * /*tooltips*/) rsu->setIncrements(inc_step, inc_page); rsu->setRange(min, max); rsu->setProgrammatically = false; + if (add_slider) { + rsu->addSlider(); + } rsu->set_undo_parameters(SP_VERB_DIALOG_LIVE_PATH_EFFECT, _("Change scalar parameter")); diff --git a/src/live_effects/parameter/parameter.h b/src/live_effects/parameter/parameter.h index cee10bc70..fe93e8dca 100644 --- a/src/live_effects/parameter/parameter.h +++ b/src/live_effects/parameter/parameter.h @@ -109,6 +109,8 @@ public: void param_set_digits(unsigned digits); void param_set_increments(double step, double page); + void addSlider(bool add_slider_widget) { add_slider = add_slider_widget; }; + virtual Gtk::Widget * param_newWidget(Gtk::Tooltips * tooltips); inline operator gdouble() @@ -123,6 +125,7 @@ protected: unsigned digits; double inc_step; double inc_page; + bool add_slider; private: ScalarParam(const ScalarParam&); diff --git a/src/ui/widget/scalar.cpp b/src/ui/widget/scalar.cpp index 220498561..cc051599c 100644 --- a/src/ui/widget/scalar.cpp +++ b/src/ui/widget/scalar.cpp @@ -3,8 +3,9 @@ * Carl Hetherington <inkscape@carlh.net> * Derek P. Moore <derekm@hackunix.org> * Bryce Harrington <bryce@bryceharrington.org> + * Johan Engelen <j.b.c.engelen@alumnus.utwente.nl> * - * Copyright (C) 2004 Carl Hetherington + * Copyright (C) 2004-2011 authors * * Released under GNU GPL. Read the file 'COPYING' for more information. */ @@ -16,6 +17,7 @@ #include "scalar.h" #include "spinbutton.h" +#include <gtkmm/scale.h> namespace Inkscape { namespace UI { @@ -133,7 +135,12 @@ void Scalar::update() static_cast<SpinButton*>(_widget)->update(); } - +void Scalar::addSlider() +{ + Gtk::HScale *scale = new Gtk::HScale( * static_cast<SpinButton*>(_widget)->get_adjustment() ); + scale->set_draw_value(false); + add (*manage (scale)); +} Glib::SignalProxy0<void> Scalar::signal_value_changed() { diff --git a/src/ui/widget/scalar.h b/src/ui/widget/scalar.h index c73bcc62a..19ccb7ae0 100644 --- a/src/ui/widget/scalar.h +++ b/src/ui/widget/scalar.h @@ -143,6 +143,11 @@ public: void update(); /** + * Adds a slider (HScale) to the left of the spinbox. + */ + void addSlider(); + + /** * Signal raised when the spin button's value changes. */ Glib::SignalProxy0<void> signal_value_changed(); |
