summaryrefslogtreecommitdiffstats
path: root/src/ui/widget
diff options
context:
space:
mode:
Diffstat (limited to 'src/ui/widget')
-rw-r--r--src/ui/widget/object-composite-settings.cpp17
-rw-r--r--src/ui/widget/object-composite-settings.h4
-rw-r--r--src/ui/widget/point.cpp4
-rw-r--r--src/ui/widget/point.h4
-rw-r--r--src/ui/widget/random.cpp4
-rw-r--r--src/ui/widget/random.h4
-rw-r--r--src/ui/widget/scalar.cpp8
-rw-r--r--src/ui/widget/scalar.h4
-rw-r--r--src/ui/widget/selected-style.cpp13
-rw-r--r--src/ui/widget/selected-style.h4
-rw-r--r--src/ui/widget/spin-slider.cpp50
-rw-r--r--src/ui/widget/spin-slider.h9
-rw-r--r--src/ui/widget/spinbutton.h4
-rw-r--r--src/ui/widget/tolerance-slider.cpp4
-rw-r--r--src/ui/widget/zoom-status.cpp12
-rw-r--r--src/ui/widget/zoom-status.h8
16 files changed, 152 insertions, 1 deletions
diff --git a/src/ui/widget/object-composite-settings.cpp b/src/ui/widget/object-composite-settings.cpp
index fd9d71d6a..eb4790990 100644
--- a/src/ui/widget/object-composite-settings.cpp
+++ b/src/ui/widget/object-composite-settings.cpp
@@ -63,7 +63,11 @@ ObjectCompositeSettings::ObjectCompositeSettings(unsigned int verb_code, char co
_opacity_tag(Glib::ustring(history_prefix) + ":opacity"),
_opacity_vbox(false, 0),
_opacity_label(_("Opacity:")),
+#if WITH_GTKMM_3_0
+ _opacity_adjustment(Gtk::Adjustment::create(100.0, 0.0, 100.0, 1.0, 1.0, 0.0)),
+#else
_opacity_adjustment(100.0, 0.0, 100.0, 1.0, 1.0, 0.0),
+#endif
_opacity_hscale(_opacity_adjustment),
_opacity_spin_button(_opacity_adjustment, 0.01, 1),
_fe_cb(flags),
@@ -93,8 +97,13 @@ ObjectCompositeSettings::ObjectCompositeSettings(unsigned int verb_code, char co
_opacity_hbox.pack_start(_opacity_hscale, true, true, 0);
_opacity_hbox.pack_start(_opacity_spin_button, false, false, 0);
_opacity_hscale.set_draw_value(false);
+#if WITH_GTKMM_3_0
+ _opacity_adjustment->signal_value_changed().connect(sigc::mem_fun(*this, &ObjectCompositeSettings::_opacityValueChanged));
+ _opacity_label.set_mnemonic_widget(_opacity_hscale);
+#else
_opacity_adjustment.signal_value_changed().connect(sigc::mem_fun(*this, &ObjectCompositeSettings::_opacityValueChanged));
_opacity_label.set_mnemonic_widget(_opacity_hscale);
+#endif
/* SizeGroup keeps the blur and opacity labels aligned in Fill & Stroke dlg */
GtkSizeGroup *labels = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL);
@@ -216,7 +225,11 @@ ObjectCompositeSettings::_opacityValueChanged()
SPCSSAttr *css = sp_repr_css_attr_new ();
Inkscape::CSSOStringStream os;
+#if WITH_GTKMM_3_0
+ os << CLAMP (_opacity_adjustment->get_value() / 100, 0.0, 1.0);
+#else
os << CLAMP (_opacity_adjustment.get_value() / 100, 0.0, 1.0);
+#endif
sp_repr_css_set_property (css, "opacity", os.str().c_str());
_subject->setCSS(css);
@@ -259,7 +272,11 @@ ObjectCompositeSettings::_subjectChanged() {
case QUERY_STYLE_MULTIPLE_AVERAGED: // TODO: treat this slightly differently
case QUERY_STYLE_MULTIPLE_SAME:
_opacity_hbox.set_sensitive(true);
+#if WITH_GTKMM_3_0
+ _opacity_adjustment->set_value(100 * SP_SCALE24_TO_FLOAT(query->opacity.value));
+#else
_opacity_adjustment.set_value(100 * SP_SCALE24_TO_FLOAT(query->opacity.value));
+#endif
break;
}
diff --git a/src/ui/widget/object-composite-settings.h b/src/ui/widget/object-composite-settings.h
index d05839a03..9f9b336eb 100644
--- a/src/ui/widget/object-composite-settings.h
+++ b/src/ui/widget/object-composite-settings.h
@@ -47,7 +47,11 @@ private:
Gtk::VBox _opacity_vbox;
Gtk::HBox _opacity_hbox;
Gtk::Label _opacity_label;
+#if WITH_GTKMM_3_0
+ Glib::RefPtr<Gtk::Adjustment> _opacity_adjustment;
+#else
Gtk::Adjustment _opacity_adjustment;
+#endif
Gtk::HScale _opacity_hscale;
Inkscape::UI::Widget::SpinButton _opacity_spin_button;
diff --git a/src/ui/widget/point.cpp b/src/ui/widget/point.cpp
index 385b60122..6aa6196bb 100644
--- a/src/ui/widget/point.cpp
+++ b/src/ui/widget/point.cpp
@@ -53,7 +53,11 @@ Point::Point(Glib::ustring const &label, Glib::ustring const &tooltip,
}
Point::Point(Glib::ustring const &label, Glib::ustring const &tooltip,
+#if WITH_GTKMM_3_0
+ Glib::RefPtr<Gtk::Adjustment> &adjust,
+#else
Gtk::Adjustment &adjust,
+#endif
unsigned digits,
Glib::ustring const &suffix,
Glib::ustring const &icon,
diff --git a/src/ui/widget/point.h b/src/ui/widget/point.h
index 1d91549d6..15f1a80fb 100644
--- a/src/ui/widget/point.h
+++ b/src/ui/widget/point.h
@@ -82,7 +82,11 @@ public:
*/
Point( Glib::ustring const &label,
Glib::ustring const &tooltip,
+#if WITH_GTKMM_3_0
+ Glib::RefPtr<Gtk::Adjustment> &adjust,
+#else
Gtk::Adjustment &adjust,
+#endif
unsigned digits = 0,
Glib::ustring const &suffix = "",
Glib::ustring const &icon = "",
diff --git a/src/ui/widget/random.cpp b/src/ui/widget/random.cpp
index e8c84a780..0a646b6fb 100644
--- a/src/ui/widget/random.cpp
+++ b/src/ui/widget/random.cpp
@@ -47,7 +47,11 @@ Random::Random(Glib::ustring const &label, Glib::ustring const &tooltip,
}
Random::Random(Glib::ustring const &label, Glib::ustring const &tooltip,
+#if WITH_GTKMM_3_0
+ Glib::RefPtr<Gtk::Adjustment> &adjust,
+#else
Gtk::Adjustment &adjust,
+#endif
unsigned digits,
Glib::ustring const &suffix,
Glib::ustring const &icon,
diff --git a/src/ui/widget/random.h b/src/ui/widget/random.h
index cb8c223dc..dc2b457c2 100644
--- a/src/ui/widget/random.h
+++ b/src/ui/widget/random.h
@@ -75,7 +75,11 @@ public:
*/
Random(Glib::ustring const &label,
Glib::ustring const &tooltip,
+#if WITH_GTKMM_3_0
+ Glib::RefPtr<Gtk::Adjustment> &adjust,
+#else
Gtk::Adjustment &adjust,
+#endif
unsigned digits = 0,
Glib::ustring const &suffix = "",
Glib::ustring const &icon = "",
diff --git a/src/ui/widget/scalar.cpp b/src/ui/widget/scalar.cpp
index cc051599c..9bbcc80f9 100644
--- a/src/ui/widget/scalar.cpp
+++ b/src/ui/widget/scalar.cpp
@@ -43,7 +43,11 @@ Scalar::Scalar(Glib::ustring const &label, Glib::ustring const &tooltip,
}
Scalar::Scalar(Glib::ustring const &label, Glib::ustring const &tooltip,
+#if WITH_GTKMM_3_0
+ Glib::RefPtr<Gtk::Adjustment> &adjust,
+#else
Gtk::Adjustment &adjust,
+#endif
unsigned digits,
Glib::ustring const &suffix,
Glib::ustring const &icon,
@@ -137,7 +141,11 @@ void Scalar::update()
void Scalar::addSlider()
{
+#if WITH_GTKMM_3_0
+ Gtk::HScale *scale = new Gtk::HScale(static_cast<SpinButton*>(_widget)->get_adjustment());
+#else
Gtk::HScale *scale = new Gtk::HScale( * static_cast<SpinButton*>(_widget)->get_adjustment() );
+#endif
scale->set_draw_value(false);
add (*manage (scale));
}
diff --git a/src/ui/widget/scalar.h b/src/ui/widget/scalar.h
index 19ccb7ae0..86d7aee28 100644
--- a/src/ui/widget/scalar.h
+++ b/src/ui/widget/scalar.h
@@ -73,7 +73,11 @@ public:
*/
Scalar(Glib::ustring const &label,
Glib::ustring const &tooltip,
+#if WITH_GTKMM_3_0
+ Glib::RefPtr<Gtk::Adjustment> &adjust,
+#else
Gtk::Adjustment &adjust,
+#endif
unsigned digits = 0,
Glib::ustring const &suffix = "",
Glib::ustring const &icon = "",
diff --git a/src/ui/widget/selected-style.cpp b/src/ui/widget/selected-style.cpp
index d26005317..a60e3cc31 100644
--- a/src/ui/widget/selected-style.cpp
+++ b/src/ui/widget/selected-style.cpp
@@ -14,6 +14,7 @@
#endif
#include "selected-style.h"
+#include <gtkmm/separatormenuitem.h>
#include "widgets/spw-utilities.h"
#include "ui/widget/color-preview.h"
@@ -129,7 +130,11 @@ SelectedStyle::SelectedStyle(bool /*layout*/)
_stroke_flag_place (),
_opacity_place (),
+#if WITH_GTKMM_3_0
+ _opacity_adjustment(Gtk::Adjustment::create(100, 0.0, 100, 1.0, 10.0)),
+#else
_opacity_adjustment (100, 0.0, 100, 1.0, 10.0),
+#endif
_opacity_sb (0.02, 0),
_stroke (),
@@ -1041,7 +1046,11 @@ SelectedStyle::update()
if (_opacity_blocked) break;
_opacity_blocked = true;
_opacity_sb.set_sensitive(true);
+#if WITH_GTKMM_3_0
+ _opacity_adjustment->set_value(SP_SCALE24_TO_FLOAT(query->opacity.value) * 100);
+#else
_opacity_adjustment.set_value(SP_SCALE24_TO_FLOAT(query->opacity.value) * 100);
+#endif
_opacity_blocked = false;
break;
}
@@ -1141,7 +1150,11 @@ void SelectedStyle::on_opacity_changed () {
_opacity_blocked = true;
SPCSSAttr *css = sp_repr_css_attr_new ();
Inkscape::CSSOStringStream os;
+#if WITH_GTKMM_3_0
+ os << CLAMP ((_opacity_adjustment->get_value() / 100), 0.0, 1.0);
+#else
os << CLAMP ((_opacity_adjustment.get_value() / 100), 0.0, 1.0);
+#endif
sp_repr_css_set_property (css, "opacity", os.str().c_str());
// FIXME: workaround for GTK breakage: display interruptibility sometimes results in GTK
// sending multiple value-changed events. As if when Inkscape interrupts redraw for main loop
diff --git a/src/ui/widget/selected-style.h b/src/ui/widget/selected-style.h
index 76a6a1595..542983b53 100644
--- a/src/ui/widget/selected-style.h
+++ b/src/ui/widget/selected-style.h
@@ -136,7 +136,11 @@ protected:
Gtk::EventBox _stroke_flag_place;
Gtk::EventBox _opacity_place;
+#if WITH_GTKMM_3_0
+ Glib::RefPtr<Gtk::Adjustment> _opacity_adjustment;
+#else
Gtk::Adjustment _opacity_adjustment;
+#endif
Inkscape::UI::Widget::SpinButton _opacity_sb;
Gtk::Label _na[2];
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);
}
diff --git a/src/ui/widget/spin-slider.h b/src/ui/widget/spin-slider.h
index 5078c1092..f4a62107b 100644
--- a/src/ui/widget/spin-slider.h
+++ b/src/ui/widget/spin-slider.h
@@ -38,8 +38,13 @@ public:
double get_value() const;
void set_value(const double);
+#if WITH_GTKMM_3_0
+ const Glib::RefPtr<Gtk::Adjustment> get_adjustment() const;
+ Glib::RefPtr<Gtk::Adjustment> get_adjustment();
+#else
const Gtk::Adjustment& get_adjustment() const;
Gtk::Adjustment& get_adjustment();
+#endif
const Gtk::HScale& get_scale() const;
Gtk::HScale& get_scale();
@@ -50,7 +55,11 @@ public:
// Change the SpinSlider into a SpinButton with AttrWidget support)
void remove_scale();
private:
+#if WITH_GTKMM_3_0
+ Glib::RefPtr<Gtk::Adjustment> _adjustment;
+#else
Gtk::Adjustment _adjustment;
+#endif
Gtk::HScale _scale;
Inkscape::UI::Widget::SpinButton _spin;
};
diff --git a/src/ui/widget/spinbutton.h b/src/ui/widget/spinbutton.h
index b7764d979..57c48369e 100644
--- a/src/ui/widget/spinbutton.h
+++ b/src/ui/widget/spinbutton.h
@@ -33,7 +33,11 @@ public:
{
connect_signals();
};
+#if GTK_CHECK_VERSION(3,0,0)
+ explicit SpinButton(Glib::RefPtr<Gtk::Adjustment>& adjustment, double climb_rate = 0.0, guint digits = 0)
+#else
explicit SpinButton(Gtk::Adjustment& adjustment, double climb_rate = 0.0, guint digits = 0)
+#endif
: Gtk::SpinButton(adjustment, climb_rate, digits),
_unit_menu(NULL)
{
diff --git a/src/ui/widget/tolerance-slider.cpp b/src/ui/widget/tolerance-slider.cpp
index be710f5e5..16558f0ee 100644
--- a/src/ui/widget/tolerance-slider.cpp
+++ b/src/ui/widget/tolerance-slider.cpp
@@ -113,7 +113,11 @@ void ToleranceSlider::init (const Glib::ustring& label1, const Glib::ustring& la
void ToleranceSlider::setValue (double val)
{
+#if WITH_GTKMM_3_0
+ Glib::RefPtr<Gtk::Adjustment> adj = _hscale->get_adjustment();
+#else
Gtk::Adjustment *adj = _hscale->get_adjustment();
+#endif
adj->set_lower (1.0);
adj->set_upper (51.0);
diff --git a/src/ui/widget/zoom-status.cpp b/src/ui/widget/zoom-status.cpp
index 579449744..aea1beb17 100644
--- a/src/ui/widget/zoom-status.cpp
+++ b/src/ui/widget/zoom-status.cpp
@@ -23,7 +23,11 @@ namespace UI {
namespace Widget {
ZoomStatus::ZoomStatus()
+#if WITH_GTKMM_3_0
+ : _adj(Gtk::Adjustment::create(0.0, -1.0, 1.0, 0.1, 0.1))
+#else
: _adj(0.0, -1.0, 1.0, 0.1, 0.1)
+#endif
{
_dt = 0;
_upd_f = false;
@@ -43,11 +47,19 @@ ZoomStatus::init(SPDesktop *dt)
{
_dt = dt;
property_digits() = 4;
+#if WITH_GTKMM_3_0
+ _adj->set_value(0.0);
+ _adj->set_lower(log(SP_DESKTOP_ZOOM_MIN)/log(2.0));
+ _adj->set_upper(log(SP_DESKTOP_ZOOM_MAX)/log(2.0));
+ _adj->set_step_increment(0.1);
+ _adj->set_page_increment(0.1);
+#else
_adj.set_value(0.0);
_adj.set_lower(log(SP_DESKTOP_ZOOM_MIN)/log(2.0));
_adj.set_upper(log(SP_DESKTOP_ZOOM_MAX)/log(2.0));
_adj.set_step_increment(0.1);
_adj.set_page_increment(0.1);
+#endif
set_adjustment(_adj);
}
diff --git a/src/ui/widget/zoom-status.h b/src/ui/widget/zoom-status.h
index b9373589f..8f710300a 100644
--- a/src/ui/widget/zoom-status.h
+++ b/src/ui/widget/zoom-status.h
@@ -9,6 +9,10 @@
* Released under GNU GPL, read the file 'COPYING' for more information
*/
+#if HAVE_CONFIG_H
+#include "config.h"
+#endif
+
#include <gtkmm/adjustment.h>
#include "ui/widget/spinbutton.h"
@@ -32,7 +36,11 @@ public:
void update();
protected:
+#if WITH_GTKMM_3_0
+ Glib::RefPtr<Gtk::Adjustment> _adj;
+#else
Gtk::Adjustment _adj;
+#endif
SPDesktop *_dt;
bool _upd_f;