summaryrefslogtreecommitdiffstats
path: root/src/widgets
diff options
context:
space:
mode:
authorDenis Declara <declara91@gmail.com>2012-05-05 13:32:42 +0000
committerDenis Declara <declara91@gmail.com>2012-05-05 13:32:42 +0000
commitaeb9c1bde66de096910757abb17dedb94ad74207 (patch)
treec0adf97685b0fa8af1553b14d20601f280492762 /src/widgets
parentFixed some math, so that the objects now line up correctly (diff)
parentAdding checks to prevent null pointer dereferences (diff)
downloadinkscape-aeb9c1bde66de096910757abb17dedb94ad74207.tar.gz
inkscape-aeb9c1bde66de096910757abb17dedb94ad74207.zip
Trunk merge
(bzr r11073.1.29)
Diffstat (limited to 'src/widgets')
-rw-r--r--src/widgets/dash-selector.cpp10
-rw-r--r--src/widgets/dash-selector.h4
-rw-r--r--src/widgets/desktop-widget.cpp29
-rw-r--r--src/widgets/font-selector.cpp2
-rw-r--r--src/widgets/gradient-toolbar.cpp223
-rw-r--r--src/widgets/paint-selector.cpp6
-rw-r--r--src/widgets/ruler.cpp91
-rw-r--r--src/widgets/ruler.h10
-rw-r--r--src/widgets/select-toolbar.cpp5
-rw-r--r--src/widgets/stroke-style.cpp18
-rw-r--r--src/widgets/toolbox.cpp7
11 files changed, 217 insertions, 188 deletions
diff --git a/src/widgets/dash-selector.cpp b/src/widgets/dash-selector.cpp
index 7f36b91f5..901d3b68c 100644
--- a/src/widgets/dash-selector.cpp
+++ b/src/widgets/dash-selector.cpp
@@ -61,9 +61,17 @@ SPDashSelector::SPDashSelector()
this->pack_start(dash_combo, false, false, 0);
+#if WITH_GTKMM_3_0
+ offset = Gtk::Adjustment::create(0.0, 0.0, 10.0, 0.1, 1.0, 0.0);
+#else
offset = new Gtk::Adjustment(0.0, 0.0, 10.0, 0.1, 1.0, 0.0);
+#endif
offset->signal_value_changed().connect(sigc::mem_fun(*this, &SPDashSelector::offset_value_changed));
+#if WITH_GTKMM_3_0
+ Inkscape::UI::Widget::SpinButton *sb = new Inkscape::UI::Widget::SpinButton(offset, 0.1, 2);
+#else
Inkscape::UI::Widget::SpinButton *sb = new Inkscape::UI::Widget::SpinButton(*offset, 0.1, 2);
+#endif
sb->set_tooltip_text(_("Pattern offset"));
sp_dialog_defocus_on_enter_cpp(sb);
sb->show();
@@ -84,7 +92,9 @@ SPDashSelector::SPDashSelector()
SPDashSelector::~SPDashSelector() {
// FIXME: for some reason this doesn't get called; does the call to manage() in
// sp_stroke_style_line_widget_new() not processed correctly?
+#if !WITH_GTKMM_3_0
delete offset;
+#endif
}
void SPDashSelector::prepareImageRenderer( Gtk::TreeModel::const_iterator const &row ) {
diff --git a/src/widgets/dash-selector.h b/src/widgets/dash-selector.h
index 875d8e9d5..0a572f4de 100644
--- a/src/widgets/dash-selector.h
+++ b/src/widgets/dash-selector.h
@@ -77,7 +77,11 @@ private:
Gtk::ComboBox dash_combo;
Gtk::CellRendererPixbuf image_renderer;
+#if WITH_GTKMM_3_0
+ Glib::RefPtr<Gtk::Adjustment> offset;
+#else
Gtk::Adjustment *offset;
+#endif
static gchar const *const _prefs_path;
int preview_width;
diff --git a/src/widgets/desktop-widget.cpp b/src/widgets/desktop-widget.cpp
index 996f116e2..6aecc4ada 100644
--- a/src/widgets/desktop-widget.cpp
+++ b/src/widgets/desktop-widget.cpp
@@ -334,7 +334,7 @@ void SPDesktopWidget::init( SPDesktopWidget *dtw )
/* Main table */
#if GTK_CHECK_VERSION(3,0,0)
dtw->vbox = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0);
- gtk_box_new(GTK_BOX(dtw->vbox), FALSE);
+ gtk_box_set_homogeneous(GTK_BOX(dtw->vbox), FALSE);
#else
dtw->vbox = gtk_vbox_new (FALSE, 0);
#endif
@@ -413,13 +413,17 @@ void SPDesktopWidget::init( SPDesktopWidget *dtw )
/* Horizontal scrollbar */
dtw->hadj = (GtkAdjustment *) gtk_adjustment_new (0.0, -4000.0, 4000.0, 10.0, 100.0, 4.0);
+#if GTK_CHECK_VERSION(3,0,0)
+ dtw->hscrollbar = gtk_scrollbar_new(GTK_ORIENTATION_HORIZONTAL, GTK_ADJUSTMENT (dtw->hadj));
+#else
dtw->hscrollbar = gtk_hscrollbar_new (GTK_ADJUSTMENT (dtw->hadj));
+#endif
gtk_table_attach (GTK_TABLE (canvas_tbl), dtw->hscrollbar, 1, 2, 2, 3, (GtkAttachOptions)(GTK_FILL), (GtkAttachOptions)(GTK_SHRINK), 0, 0);
/* Vertical scrollbar and the sticky zoom button */
#if GTK_CHECK_VERSION(3,0,0)
dtw->vscrollbar_box = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0);
- gtk_box_new(GTK_BOX(dtw->vscrollbar_box), FALSE);
+ gtk_box_set_homogeneous(GTK_BOX(dtw->vscrollbar_box), FALSE);
#else
dtw->vscrollbar_box = gtk_vbox_new (FALSE, 0);
#endif
@@ -432,7 +436,11 @@ void SPDesktopWidget::init( SPDesktopWidget *dtw )
gtk_box_pack_start (GTK_BOX (dtw->vscrollbar_box), dtw->sticky_zoom, FALSE, FALSE, 0);
g_signal_connect (G_OBJECT (dtw->sticky_zoom), "toggled", G_CALLBACK (sp_dtw_sticky_zoom_toggled), dtw);
dtw->vadj = (GtkAdjustment *) gtk_adjustment_new (0.0, -4000.0, 4000.0, 10.0, 100.0, 4.0);
+#if GTK_CHECK_VERSION(3,0,0)
+ dtw->vscrollbar = gtk_scrollbar_new(GTK_ORIENTATION_VERTICAL, GTK_ADJUSTMENT(dtw->vadj));
+#else
dtw->vscrollbar = gtk_vscrollbar_new (GTK_ADJUSTMENT (dtw->vadj));
+#endif
gtk_box_pack_start (GTK_BOX (dtw->vscrollbar_box), dtw->vscrollbar, TRUE, TRUE, 0);
gtk_table_attach (GTK_TABLE (canvas_tbl), dtw->vscrollbar_box, 2, 3, 0, 2, (GtkAttachOptions)(GTK_SHRINK), (GtkAttachOptions)(GTK_FILL), 0, 0);
@@ -517,7 +525,14 @@ void SPDesktopWidget::init( SPDesktopWidget *dtw )
dtw->selected_style = new Inkscape::UI::Widget::SelectedStyle(true);
GtkHBox *ss_ = dtw->selected_style->gobj();
gtk_box_pack_start (GTK_BOX (dtw->statusbar), GTK_WIDGET(ss_), FALSE, FALSE, 0);
- gtk_box_pack_start (GTK_BOX (dtw->statusbar), gtk_vseparator_new(), FALSE, FALSE, 0);
+
+ gtk_box_pack_start(GTK_BOX(dtw->statusbar),
+#if GTK_CHECK_VERSION(3,0,0)
+ gtk_separator_new(GTK_ORIENTATION_VERTICAL),
+#else
+ gtk_vseparator_new(),
+#endif
+ FALSE, FALSE, 0);
// connect scrollbar signals
g_signal_connect (G_OBJECT (dtw->hadj), "value-changed", G_CALLBACK (sp_desktop_widget_adjustment_value_changed), dtw);
@@ -546,7 +561,13 @@ void SPDesktopWidget::init( SPDesktopWidget *dtw )
dtw->coord_status = gtk_table_new (5, 2, FALSE);
gtk_table_set_row_spacings(GTK_TABLE(dtw->coord_status), 0);
gtk_table_set_col_spacings(GTK_TABLE(dtw->coord_status), 2);
- gtk_table_attach(GTK_TABLE(dtw->coord_status), gtk_vseparator_new(), 0,1, 0,2, GTK_FILL, GTK_FILL, 0, 0);
+ gtk_table_attach(GTK_TABLE(dtw->coord_status),
+#if GTK_CHECK_VERSION(3,0,0)
+ gtk_separator_new(GTK_ORIENTATION_VERTICAL),
+#else
+ gtk_vseparator_new(),
+#endif
+ 0,1, 0,2, GTK_FILL, GTK_FILL, 0, 0);
eventbox = gtk_event_box_new ();
gtk_container_add (GTK_CONTAINER (eventbox), dtw->coord_status);
gtk_widget_set_tooltip_text (eventbox, _("Cursor coordinates"));
diff --git a/src/widgets/font-selector.cpp b/src/widgets/font-selector.cpp
index ff361a6b8..affc6bed9 100644
--- a/src/widgets/font-selector.cpp
+++ b/src/widgets/font-selector.cpp
@@ -178,7 +178,7 @@ static void sp_font_selector_init(SPFontSelector *fsel)
#if GTK_CHECK_VERSION(3,0,0)
GtkWidget *vb = gtk_box_new(GTK_ORIENTATION_VERTICAL, 4);
- gtk_box_new(GTK_BOX(vb), FALSE);
+ gtk_box_set_homogeneous(GTK_BOX(vb), FALSE);
#else
GtkWidget *vb = gtk_vbox_new(FALSE, 4);
#endif
diff --git a/src/widgets/gradient-toolbar.cpp b/src/widgets/gradient-toolbar.cpp
index a7b97c21a..92ed82845 100644
--- a/src/widgets/gradient-toolbar.cpp
+++ b/src/widgets/gradient-toolbar.cpp
@@ -62,17 +62,17 @@ using Inkscape::DocumentUndo;
using Inkscape::UI::ToolboxFactory;
void gr_apply_gradient_to_item( SPItem *item, SPGradient *gr, SPGradientType new_type, guint new_fill, bool do_fill, bool do_stroke );
-void gr_apply_gradient (Inkscape::Selection *selection, GrDrag *drag, SPGradient *gr);
+void gr_apply_gradient(Inkscape::Selection *selection, GrDrag *drag, SPGradient *gr);
gboolean gr_vector_list(GtkWidget *combo_box, SPDesktop *desktop, bool selection_empty, SPGradient *gr_selected, bool gr_multi);
-void gr_get_dt_selected_gradient (Inkscape::Selection *selection, SPGradient *&gr_selected);
+void gr_get_dt_selected_gradient(Inkscape::Selection *selection, SPGradient *&gr_selected);
void gr_read_selection( Inkscape::Selection *selection, GrDrag *drag, SPGradient *&gr_selected, bool &gr_multi, SPGradientSpread &spr_selected, bool &spr_multi );
static gboolean update_stop_list( GtkWidget *stop_combo, SPGradient *gradient, SPStop *new_stop, GtkWidget *widget, bool gr_multi);
static void sp_gradient_vector_widget_load_gradient(GtkWidget *widget, SPGradient *gradient);
static void select_stop_in_list( GtkWidget *combo_box, SPGradient *gradient, SPStop *new_stop, GtkWidget *data, gboolean block);
static void select_stop_by_drag( GtkWidget *combo_box, SPGradient *gradient, SPEventContext *ev, GtkWidget *data);
static void select_drag_by_stop( GtkWidget *combo_box, SPGradient *gradient, SPEventContext *ev);
-static SPGradient *gr_get_selected_gradient (GtkWidget *widget);
-static void gr_stop_set_offset (GtkComboBox *widget, GtkWidget *data);
+static SPGradient *gr_get_selected_gradient(GtkWidget *widget);
+static void gr_stop_set_offset(GtkComboBox *widget, GtkWidget *data);
void add_toolbar_widget(GtkWidget *tbl, GtkWidget *widget);
static GtkWidget * gr_ege_select_one_get_combo(GtkWidget *widget, const gchar *name);
void check_renderer(GtkWidget *combo);
@@ -123,7 +123,7 @@ to all objects in selection. If there was no previous gradient on an item, uses
fill/stroke setting from preferences to create new default (linear: left/right; radial: centered)
gradient.
*/
-void gr_apply_gradient (Inkscape::Selection *selection, GrDrag *drag, SPGradient *gr)
+void gr_apply_gradient(Inkscape::Selection *selection, GrDrag *drag, SPGradient *gr)
{
Inkscape::Preferences *prefs = Inkscape::Preferences::get();
SPGradientType new_type = static_cast<SPGradientType>(prefs->getInt("/tools/gradient/newgradient", SP_GRADIENT_TYPE_LINEAR));
@@ -136,14 +136,14 @@ void gr_apply_gradient (Inkscape::Selection *selection, GrDrag *drag, SPGradient
GrDragger *dragger = static_cast<GrDragger*>(drag->selected->data);
for (GSList const* i = dragger->draggables; i != NULL; i = i->next) { // for all draggables of dragger
GrDraggable *draggable = (GrDraggable *) i->data;
- gr_apply_gradient_to_item (draggable->item, gr, new_type, new_fill, draggable->fill_or_stroke, !draggable->fill_or_stroke);
+ gr_apply_gradient_to_item(draggable->item, gr, new_type, new_fill, draggable->fill_or_stroke, !draggable->fill_or_stroke);
}
return;
}
// If no drag or no dragger selected, act on selection
for (GSList const* i = selection->itemList(); i != NULL; i = i->next) {
- gr_apply_gradient_to_item (SP_ITEM(i->data), gr, new_type, new_fill, new_fill, !new_fill);
+ gr_apply_gradient_to_item(SP_ITEM(i->data), gr, new_type, new_fill, new_fill, !new_fill);
}
}
@@ -154,10 +154,10 @@ gboolean gr_vector_list(GtkWidget *combo_box, SPDesktop *desktop, bool selection
return sensitive;
}
- SPDocument *document = sp_desktop_document (desktop);
+ SPDocument *document = sp_desktop_document(desktop);
GtkTreeIter iter;
- GtkListStore *store = (GtkListStore *)gtk_combo_box_get_model (GTK_COMBO_BOX(combo_box));
+ GtkListStore *store = (GtkListStore *)gtk_combo_box_get_model(GTK_COMBO_BOX(combo_box));
blocked = TRUE;
@@ -169,51 +169,49 @@ gboolean gr_vector_list(GtkWidget *combo_box, SPDesktop *desktop, bool selection
for (const GSList *i = gradients; i != NULL; i = i->next) {
SPGradient *grad = SP_GRADIENT(i->data);
if ( grad->hasStops() && !grad->isSolid() ) {
- gl = g_slist_prepend (gl, i->data);
+ gl = g_slist_prepend(gl, i->data);
}
}
- gl = g_slist_reverse (gl);
+ gl = g_slist_reverse(gl);
guint pos = 0;
if (!gl) {
// The document has no gradients
- gtk_list_store_append (store, &iter);
- gtk_list_store_set (store, &iter, 0, _("No gradient"), 1, NULL, 2, NULL, -1);
+ gtk_list_store_append(store, &iter);
+ gtk_list_store_set(store, &iter, 0, _("No gradient"), 1, NULL, 2, NULL, -1);
sensitive = FALSE;
} else if (selection_empty) {
// Document has gradients, but nothing is currently selected.
- gtk_list_store_append (store, &iter);
- gtk_list_store_set (store, &iter, 0, _("Nothing selected"), 1, NULL, 2, NULL, -1);
+ gtk_list_store_append(store, &iter);
+ gtk_list_store_set(store, &iter, 0, _("Nothing selected"), 1, NULL, 2, NULL, -1);
sensitive = FALSE;
} else {
if (gr_selected == NULL) {
-
- gtk_list_store_append (store, &iter);
- gtk_list_store_set (store, &iter, 0, _("No gradient"), 1, NULL, 2, NULL, -1);
+ gtk_list_store_append(store, &iter);
+ gtk_list_store_set(store, &iter, 0, _("No gradient"), 1, NULL, 2, NULL, -1);
sensitive = FALSE;
}
if (gr_multi) {
-
- gtk_list_store_append (store, &iter);
- gtk_list_store_set (store, &iter, 0, _("Multiple gradients"), 1, NULL, 2, NULL, -1);
+ gtk_list_store_append(store, &iter);
+ gtk_list_store_set(store, &iter, 0, _("Multiple gradients"), 1, NULL, 2, NULL, -1);
sensitive = FALSE;
}
guint idx = 0;
while (gl) {
- SPGradient *gradient = SP_GRADIENT (gl->data);
- gl = g_slist_remove (gl, gradient);
+ SPGradient *gradient = SP_GRADIENT(gl->data);
+ gl = g_slist_remove(gl, gradient);
gchar *label = gr_prepare_label(gradient);
- GdkPixbuf *pixb = sp_gradient_to_pixbuf (gradient, 64, 16);
- gtk_list_store_append (store, &iter);
- gtk_list_store_set (store, &iter, 0, label, 1, pixb, 2, gradient, -1);
- g_free (label);
+ GdkPixbuf *pixb = sp_gradient_to_pixbuf(gradient, 64, 16);
+ gtk_list_store_append(store, &iter);
+ gtk_list_store_set(store, &iter, 0, label, 1, pixb, 2, gradient, -1);
+ g_free(label);
if (gradient == gr_selected) {
pos = idx;
@@ -226,10 +224,10 @@ gboolean gr_vector_list(GtkWidget *combo_box, SPDesktop *desktop, bool selection
/* Select the current gradient, or the Multi/Nothing line */
if (gr_multi || gr_selected == NULL) {
- gtk_combo_box_set_active (GTK_COMBO_BOX(combo_box) , 0);
+ gtk_combo_box_set_active(GTK_COMBO_BOX(combo_box) , 0);
}
else {
- gtk_combo_box_set_active (GTK_COMBO_BOX(combo_box) , pos);
+ gtk_combo_box_set_active(GTK_COMBO_BOX(combo_box) , pos);
}
blocked = FALSE;
@@ -240,7 +238,7 @@ gboolean gr_vector_list(GtkWidget *combo_box, SPDesktop *desktop, bool selection
* Get the gradient of the selected desktop item
* This is gradient containing the repeat settings, not the underlying "getVector" href linked gradient.
*/
-void gr_get_dt_selected_gradient (Inkscape::Selection *selection, SPGradient *&gr_selected)
+void gr_get_dt_selected_gradient(Inkscape::Selection *selection, SPGradient *&gr_selected)
{
SPGradient *gradient = 0;
@@ -456,28 +454,28 @@ static GtkWidget * gr_ege_select_one_get_combo(GtkWidget *widget, const gchar *n
return combo_box;
}
-static void gr_tb_selection_modified (Inkscape::Selection *selection, guint /*flags*/, gpointer data)
+static void gr_tb_selection_modified(Inkscape::Selection *selection, guint /*flags*/, gpointer data)
{
- gr_tb_selection_changed (selection, data);
+ gr_tb_selection_changed(selection, data);
}
-static void gr_drag_selection_changed (gpointer /*dragger*/, gpointer data)
+static void gr_drag_selection_changed(gpointer /*dragger*/, gpointer data)
{
- gr_tb_selection_changed (NULL, data);
+ gr_tb_selection_changed(NULL, data);
}
-static void gr_defs_release (SPObject */*defs*/, GtkWidget *widget)
+static void gr_defs_release(SPObject * /*defs*/, GtkWidget *widget)
{
- gr_tb_selection_changed (NULL, (gpointer) widget);
+ gr_tb_selection_changed(NULL, (gpointer) widget);
}
-static void gr_defs_modified (SPObject */*defs*/, guint /*flags*/, GtkWidget *widget)
+static void gr_defs_modified(SPObject * /*defs*/, guint /*flags*/, GtkWidget *widget)
{
- gr_tb_selection_changed (NULL, (gpointer) widget);
+ gr_tb_selection_changed(NULL, (gpointer) widget);
}
-static void gr_disconnect_sigc (GObject */*obj*/, sigc::connection *connection) {
+static void gr_disconnect_sigc(GObject * /*obj*/, sigc::connection *connection) {
connection->disconnect();
delete connection;
}
@@ -489,9 +487,9 @@ static SPStop *get_selected_stop( GtkWidget *vb)
GtkWidget *cb = gr_ege_select_one_get_combo(vb, "gradient_stops_combo_action");
if ( cb ) {
GtkTreeIter iter;
- if (gtk_combo_box_get_active_iter (GTK_COMBO_BOX(cb), &iter)) {
- GtkListStore *store = (GtkListStore *)gtk_combo_box_get_model (GTK_COMBO_BOX(cb));
- gtk_tree_model_get (GTK_TREE_MODEL(store), &iter, 2, &stop, -1);
+ if (gtk_combo_box_get_active_iter(GTK_COMBO_BOX(cb), &iter)) {
+ GtkListStore *store = (GtkListStore *)gtk_combo_box_get_model(GTK_COMBO_BOX(cb));
+ gtk_tree_model_get(GTK_TREE_MODEL(store), &iter, 2, &stop, -1);
}
}
@@ -499,7 +497,7 @@ static SPStop *get_selected_stop( GtkWidget *vb)
}
-static void sp_gradient_vector_gradient_release(SPObject */*object*/, GtkWidget *widget)
+static void sp_gradient_vector_gradient_release(SPObject * /*object*/, GtkWidget *widget)
{
sp_gradient_vector_widget_load_gradient(widget, NULL);
}
@@ -587,8 +585,7 @@ static void sp_gradient_vector_widget_load_gradient(GtkWidget *widget, SPGradien
blocked = FALSE;
}
-static void
-gr_add_stop (GtkWidget */*button*/,GtkWidget *vb)
+static void gr_add_stop(GtkWidget * /*button*/, GtkWidget *vb)
{
SPDesktop *desktop = static_cast<SPDesktop *>(g_object_get_data(G_OBJECT(vb), "desktop"));
if (!desktop) {
@@ -604,13 +601,12 @@ gr_add_stop (GtkWidget */*button*/,GtkWidget *vb)
SPGradientContext *rc = SP_GRADIENT_CONTEXT(ev);
if (rc) {
- sp_gradient_context_add_stops_between_selected_stops (rc);
+ sp_gradient_context_add_stops_between_selected_stops(rc);
}
}
-static void
-gr_remove_stop (GtkWidget */*button*/, GtkWidget *vb)
+static void gr_remove_stop(GtkWidget * /*button*/, GtkWidget *vb)
{
SPDesktop *desktop = static_cast<SPDesktop *>(g_object_get_data(G_OBJECT(vb), "desktop"));
@@ -635,8 +631,7 @@ gr_remove_stop (GtkWidget */*button*/, GtkWidget *vb)
}
-static void
-gr_linked_changed (GtkToggleAction *act, gpointer data)
+static void gr_linked_changed(GtkToggleAction *act, gpointer /*data*/)
{
gboolean active = gtk_toggle_action_get_active( act );
if ( active ) {
@@ -649,12 +644,11 @@ gr_linked_changed (GtkToggleAction *act, gpointer data)
prefs->setBool("/options/forkgradientvectors/value", !active);
}
-static void
-gr_reverse (GtkWidget */*button*/, gpointer data)
+static void gr_reverse(GtkWidget * /*button*/, gpointer data)
{
SPDesktop *desktop = static_cast<SPDesktop *>(data);
- Inkscape::Selection *selection = sp_desktop_selection (desktop);
- SPEventContext *ev = sp_desktop_event_context (desktop);
+ Inkscape::Selection *selection = sp_desktop_selection(desktop);
+ SPEventContext *ev = sp_desktop_event_context(desktop);
if (!ev) {
return;
@@ -667,12 +661,12 @@ gr_reverse (GtkWidget */*button*/, gpointer data)
drag->selected_reverse_vector();
} else { // If no drag or no dragger selected, act on selection (both fill and stroke gradients)
for (GSList const* i = selection->itemList(); i != NULL; i = i->next) {
- sp_item_gradient_reverse_vector (SP_ITEM(i->data), true);
- sp_item_gradient_reverse_vector (SP_ITEM(i->data), false);
+ sp_item_gradient_reverse_vector(SP_ITEM(i->data), true);
+ sp_item_gradient_reverse_vector(SP_ITEM(i->data), false);
}
}
// we did an undoable action
- DocumentUndo::done(sp_desktop_document (desktop), SP_VERB_CONTEXT_GRADIENT,
+ DocumentUndo::done(sp_desktop_document(desktop), SP_VERB_CONTEXT_GRADIENT,
_("Invert gradient"));
}
@@ -718,7 +712,7 @@ static void select_stop_by_drag(GtkWidget *combo_box, SPGradient *gradient, SPEv
if (!drag || !drag->selected) {
blocked = TRUE;
- gtk_combo_box_set_active (GTK_COMBO_BOX(combo_box) , 0);
+ gtk_combo_box_set_active(GTK_COMBO_BOX(combo_box) , 0);
gr_stop_set_offset(GTK_COMBO_BOX(combo_box), data);
blocked = FALSE;
return;
@@ -739,14 +733,14 @@ static void select_stop_by_drag(GtkWidget *combo_box, SPGradient *gradient, SPEv
if (n > 1) {
// Mulitple stops selected
- GtkListStore *store = (GtkListStore *)gtk_combo_box_get_model (GTK_COMBO_BOX(combo_box));
+ GtkListStore *store = (GtkListStore *)gtk_combo_box_get_model(GTK_COMBO_BOX(combo_box));
if (!store) {
return;
}
GtkTreeIter iter;
- gtk_list_store_prepend (store, &iter);
- gtk_list_store_set (store, &iter, 0, _("Multiple stops"), 1, NULL, 2, NULL, -1);
- gtk_combo_box_set_active (GTK_COMBO_BOX(combo_box) , 0);
+ gtk_list_store_prepend(store, &iter);
+ gtk_list_store_set(store, &iter, 0, _("Multiple stops"), 1, NULL, 2, NULL, -1);
+ gtk_combo_box_set_active(GTK_COMBO_BOX(combo_box) , 0);
EgeAdjustmentAction* act = (EgeAdjustmentAction *)g_object_get_data( G_OBJECT(data), "offset_action");
if (act) {
@@ -794,7 +788,7 @@ static void select_stop_in_list( GtkWidget *combo_box, SPGradient *gradient, SPS
if (SP_IS_STOP(ochild)) {
if (ochild == new_stop) {
blocked = block;
- gtk_combo_box_set_active (GTK_COMBO_BOX(combo_box) , i);
+ gtk_combo_box_set_active(GTK_COMBO_BOX(combo_box) , i);
gr_stop_set_offset(GTK_COMBO_BOX(combo_box), data);
blocked = FALSE;
return;
@@ -812,7 +806,7 @@ static gboolean update_stop_list( GtkWidget *stop_combo, SPGradient *gradient, S
return sensitive;
}
- GtkListStore *store = (GtkListStore *)gtk_combo_box_get_model (GTK_COMBO_BOX(stop_combo));
+ GtkListStore *store = (GtkListStore *)gtk_combo_box_get_model(GTK_COMBO_BOX(stop_combo));
if (!store) {
return sensitive;
}
@@ -824,9 +818,9 @@ static gboolean update_stop_list( GtkWidget *stop_combo, SPGradient *gradient, S
GtkTreeIter iter;
if (!SP_IS_GRADIENT(gradient)) {
- gtk_list_store_append (store, &iter);
- gtk_list_store_set (store, &iter, 0, _("No gradient"), 1, NULL, 2, NULL, -1);
- gtk_combo_box_set_active (GTK_COMBO_BOX(stop_combo) , 0);
+ gtk_list_store_append(store, &iter);
+ gtk_list_store_set(store, &iter, 0, _("No gradient"), 1, NULL, 2, NULL, -1);
+ gtk_combo_box_set_active(GTK_COMBO_BOX(stop_combo) , 0);
sensitive = FALSE;
blocked = FALSE;
return sensitive;
@@ -842,8 +836,8 @@ static gboolean update_stop_list( GtkWidget *stop_combo, SPGradient *gradient, S
}
}
if (!sl) {
- gtk_list_store_append (store, &iter);
- gtk_list_store_set (store, &iter, 0, _("No stops in gradient"), 1, NULL, 2, NULL, -1);
+ gtk_list_store_append(store, &iter);
+ gtk_list_store_set(store, &iter, 0, _("No stops in gradient"), 1, NULL, 2, NULL, -1);
sensitive = FALSE;
} else {
@@ -855,8 +849,8 @@ static gboolean update_stop_list( GtkWidget *stop_combo, SPGradient *gradient, S
Inkscape::UI::Widget::ColorPreview *cpv = Gtk::manage(new Inkscape::UI::Widget::ColorPreview(sp_stop_get_rgba32(stop)));
GdkPixbuf *pb = cpv->toPixbuf(32, 16);
- gtk_list_store_append (store, &iter);
- gtk_list_store_set (store, &iter, 0, repr->attribute("id"), 1, pb, 2, stop, -1);
+ gtk_list_store_append(store, &iter);
+ gtk_list_store_set(store, &iter, 0, repr->attribute("id"), 1, pb, 2, stop, -1);
sensitive = FALSE;
}
}
@@ -869,7 +863,7 @@ static gboolean update_stop_list( GtkWidget *stop_combo, SPGradient *gradient, S
}
if (new_stop == NULL) {
- gtk_combo_box_set_active (GTK_COMBO_BOX(stop_combo) , 0);
+ gtk_combo_box_set_active(GTK_COMBO_BOX(stop_combo) , 0);
} else {
select_stop_in_list(stop_combo, gradient, new_stop, widget, TRUE);
}
@@ -879,7 +873,7 @@ static gboolean update_stop_list( GtkWidget *stop_combo, SPGradient *gradient, S
return sensitive;
}
-static SPGradient *gr_get_selected_gradient (GtkWidget *widget)
+static SPGradient *gr_get_selected_gradient(GtkWidget *widget)
{
SPGradient *gr = NULL;
EgeSelectOneAction* act1 = (EgeSelectOneAction *)g_object_get_data( G_OBJECT(widget), "gradient_select_combo_action");
@@ -887,8 +881,8 @@ static SPGradient *gr_get_selected_gradient (GtkWidget *widget)
gint n = ege_select_one_action_get_active(act1);
GtkTreeModel *model = ege_select_one_action_get_model(act1);
GtkTreeIter iter;
- if (gtk_tree_model_iter_nth_child (model ,&iter, NULL, n)) {
- gtk_tree_model_get (model, &iter, 2, &gr, -1);
+ if (gtk_tree_model_iter_nth_child(model, &iter, NULL, n)) {
+ gtk_tree_model_get(model, &iter, 2, &gr, -1);
return gr;
}
}
@@ -896,17 +890,18 @@ static SPGradient *gr_get_selected_gradient (GtkWidget *widget)
return gr;
}
-/*static void
-gr_edit (GtkWidget *button, GtkWidget *widget)
+/*
+static void gr_edit(GtkWidget *button, GtkWidget *widget)
{
SPGradient *gr = gr_get_selected_gradient(widget);
if (gr) {
- GtkWidget *dialog = sp_gradient_vector_editor_new (gr);
- gtk_widget_show (dialog);
+ GtkWidget *dialog = sp_gradient_vector_editor_new(gr);
+ gtk_widget_show(dialog);
}
-}*/
+}
+*/
-static void gr_stop_set_offset (GtkComboBox */*widget*/, GtkWidget *data)
+static void gr_stop_set_offset(GtkComboBox * /*widget*/, GtkWidget *data)
{
SPStop *stop = get_selected_stop(data);
if (!stop) {
@@ -925,19 +920,19 @@ static void gr_stop_set_offset (GtkComboBox */*widget*/, GtkWidget *data)
SPStop *prev = NULL;
prev = stop->getPrevStop();
if (prev != NULL ) {
- gtk_adjustment_set_lower (adj, prev->offset);
+ gtk_adjustment_set_lower(adj, prev->offset);
} else {
isEndStop = true;
- gtk_adjustment_set_lower (adj, 0);
+ gtk_adjustment_set_lower(adj, 0);
}
SPStop *next = NULL;
next = stop->getNextStop();
if (next != NULL ) {
- gtk_adjustment_set_upper (adj, next->offset);
+ gtk_adjustment_set_upper(adj, next->offset);
} else {
isEndStop = true;
- gtk_adjustment_set_upper (adj, 1.0);
+ gtk_adjustment_set_upper(adj, 1.0);
}
blocked = TRUE;
@@ -970,7 +965,7 @@ static void gr_new_fillstroke_changed( EgeSelectOneAction *act, GObject * /*tbl*
/*
* User selected a gradient from the combobox
*/
-void gr_gradient_combo_changed (EgeSelectOneAction *act, gpointer data)
+void gr_gradient_combo_changed(EgeSelectOneAction *act, gpointer data)
{
if (blocked) {
return;
@@ -980,42 +975,42 @@ void gr_gradient_combo_changed (EgeSelectOneAction *act, gpointer data)
gint n = ege_select_one_action_get_active(act);
GtkTreeModel *model = ege_select_one_action_get_model(act);
GtkTreeIter iter;
- if (gtk_tree_model_iter_nth_child (model ,&iter, NULL, n)) {
- gtk_tree_model_get (model, &iter, 2, &gr, -1);
+ if (gtk_tree_model_iter_nth_child(model, &iter, NULL, n)) {
+ gtk_tree_model_get(model, &iter, 2, &gr, -1);
}
if (gr) {
gr = sp_gradient_ensure_vector_normalized(gr);
SPDesktop *desktop = static_cast<SPDesktop *>(data);
- Inkscape::Selection *selection = sp_desktop_selection (desktop);
- SPEventContext *ev = sp_desktop_event_context (desktop);
+ Inkscape::Selection *selection = sp_desktop_selection(desktop);
+ SPEventContext *ev = sp_desktop_event_context(desktop);
- gr_apply_gradient (selection, ev? ev->get_drag() : NULL, gr);
+ gr_apply_gradient(selection, ev? ev->get_drag() : NULL, gr);
- DocumentUndo::done(sp_desktop_document (desktop), SP_VERB_CONTEXT_GRADIENT,
+ DocumentUndo::done(sp_desktop_document(desktop), SP_VERB_CONTEXT_GRADIENT,
_("Assign gradient to object"));
}
}
-void gr_spread_change (EgeSelectOneAction *act, GtkWidget *widget)
+void gr_spread_change(EgeSelectOneAction *act, GtkWidget *widget)
{
if (blocked) {
return;
}
SPDesktop *desktop = static_cast<SPDesktop *>(g_object_get_data(G_OBJECT(widget), "desktop"));
- Inkscape::Selection *selection = sp_desktop_selection (desktop);
+ Inkscape::Selection *selection = sp_desktop_selection(desktop);
SPGradient *gradient = 0;
gr_get_dt_selected_gradient(selection, gradient);
if (gradient) {
- SPGradientSpread spread = (SPGradientSpread) ege_select_one_action_get_active (act);
+ SPGradientSpread spread = (SPGradientSpread) ege_select_one_action_get_active(act);
gradient->setSpread(spread);
gradient->updateRepr();
- DocumentUndo::done(sp_desktop_document (desktop), SP_VERB_CONTEXT_GRADIENT,
+ DocumentUndo::done(sp_desktop_document(desktop), SP_VERB_CONTEXT_GRADIENT,
_("Set gradient repeat"));
}
}
@@ -1024,14 +1019,14 @@ void gr_spread_change (EgeSelectOneAction *act, GtkWidget *widget)
/*
* User selected a stop from the combobox
*/
-static void gr_stop_combo_changed (GtkComboBox * /*widget*/, GtkWidget *data)
+static void gr_stop_combo_changed(GtkComboBox * /*widget*/, GtkWidget *data)
{
if (blocked) {
return;
}
SPDesktop *desktop = static_cast<SPDesktop *>(g_object_get_data(G_OBJECT(data), "desktop"));
- SPEventContext *ev = sp_desktop_event_context (desktop);
+ SPEventContext *ev = sp_desktop_event_context(desktop);
SPGradient *gr = gr_get_selected_gradient(data);
select_drag_by_stop(data, gr, ev);
@@ -1050,7 +1045,7 @@ static void gr_stop_offset_adjustment_changed(GtkAdjustment *adj, GObject *tbl)
SPStop *stop = get_selected_stop(GTK_WIDGET(tbl));
if (stop) {
- stop->offset = gtk_adjustment_get_value (adj);
+ stop->offset = gtk_adjustment_get_value(adj);
sp_repr_set_css_double(stop->getRepr(), "offset", stop->offset);
DocumentUndo::maybeDone(stop->document, "gradient:stop:offset", SP_VERB_CONTEXT_GRADIENT,
@@ -1069,16 +1064,16 @@ void check_renderer(GtkWidget *combo)
gpointer rendered = g_object_get_data( G_OBJECT(combo), "renderers" );
if (!rendered) {
- gtk_cell_layout_clear(GTK_CELL_LAYOUT (combo));
+ gtk_cell_layout_clear(GTK_CELL_LAYOUT(combo));
- GtkCellRenderer *renderer = gtk_cell_renderer_pixbuf_new ();
- gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (combo), renderer, FALSE);
- gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (combo), renderer, "pixbuf", 1, NULL);
+ GtkCellRenderer *renderer = gtk_cell_renderer_pixbuf_new();
+ gtk_cell_layout_pack_start(GTK_CELL_LAYOUT(combo), renderer, FALSE);
+ gtk_cell_layout_set_attributes(GTK_CELL_LAYOUT(combo), renderer, "pixbuf", 1, NULL);
gtk_cell_renderer_set_padding(renderer, 5, 0);
- renderer = gtk_cell_renderer_text_new ();
- gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (combo), renderer, TRUE);
- gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (combo), renderer, "text", 0, NULL);
+ renderer = gtk_cell_renderer_text_new();
+ gtk_cell_layout_pack_start(GTK_CELL_LAYOUT(combo), renderer, TRUE);
+ gtk_cell_layout_set_attributes(GTK_CELL_LAYOUT(combo), renderer, "text", 0, NULL);
g_object_set_data(G_OBJECT(combo), "renderers", renderer);
}
@@ -1155,11 +1150,11 @@ void sp_gradient_toolbox_prep(SPDesktop * desktop, GtkActionGroup* mainActions,
/* Gradient Select list*/
{
- GtkListStore *store = gtk_list_store_new (3, G_TYPE_STRING, GDK_TYPE_PIXBUF, G_TYPE_POINTER);
+ GtkListStore *store = gtk_list_store_new(3, G_TYPE_STRING, GDK_TYPE_PIXBUF, G_TYPE_POINTER);
GtkTreeIter iter;
- gtk_list_store_append (store, &iter);
- gtk_list_store_set (store, &iter, 0, _("No gradient"), 1, NULL, 2, NULL, -1);
+ gtk_list_store_append(store, &iter);
+ gtk_list_store_set(store, &iter, 0, _("No gradient"), 1, NULL, 2, NULL, -1);
EgeSelectOneAction* act1 = ege_select_one_action_new( "GradientSelectGradientAction", _("Select"), ("Choose a gradient"), NULL, GTK_TREE_MODEL(store) );
g_object_set( act1, "short_label", _("Select:"), NULL );
@@ -1202,11 +1197,11 @@ void sp_gradient_toolbox_prep(SPDesktop * desktop, GtkActionGroup* mainActions,
/* Gradient Stop list */
{
- GtkListStore *store = gtk_list_store_new (3, G_TYPE_STRING, GDK_TYPE_PIXBUF, G_TYPE_POINTER);
+ GtkListStore *store = gtk_list_store_new(3, G_TYPE_STRING, GDK_TYPE_PIXBUF, G_TYPE_POINTER);
GtkTreeIter iter;
- gtk_list_store_append (store, &iter);
- gtk_list_store_set (store, &iter, 0, _("No gradient"), 1, NULL, 2, NULL, -1);
+ gtk_list_store_append(store, &iter);
+ gtk_list_store_set(store, &iter, 0, _("No gradient"), 1, NULL, 2, NULL, -1);
EgeSelectOneAction* act1 = ege_select_one_action_new( "GradientEditStopsAction", _("Stops"), _("Select a stop for the current gradient"), NULL, GTK_TREE_MODEL(store) );
g_object_set( act1, "short_label", _("Edit:"), NULL );
@@ -1294,8 +1289,8 @@ void sp_gradient_toolbox_prep(SPDesktop * desktop, GtkActionGroup* mainActions,
gtk_toggle_action_set_active( GTK_TOGGLE_ACTION(itact), !linkedmode );
}
- Inkscape::Selection *selection = sp_desktop_selection (desktop);
- SPDocument *document = sp_desktop_document (desktop);
+ Inkscape::Selection *selection = sp_desktop_selection(desktop);
+ SPDocument *document = sp_desktop_document(desktop);
g_object_set_data(holder, "desktop", desktop);
diff --git a/src/widgets/paint-selector.cpp b/src/widgets/paint-selector.cpp
index 075308321..c1147f9b0 100644
--- a/src/widgets/paint-selector.cpp
+++ b/src/widgets/paint-selector.cpp
@@ -290,7 +290,7 @@ sp_paint_selector_init(SPPaintSelector *psel)
#if GTK_CHECK_VERSION(3,0,0)
psel->frame = gtk_box_new(GTK_ORIENTATION_VERTICAL, 4);
- gtk_box_new(GTK_BOX(psel->frame), FALSE);
+ gtk_box_set_homogeneous(GTK_BOX(psel->frame), FALSE);
#else
psel->frame = gtk_vbox_new(FALSE, 4);
#endif
@@ -664,7 +664,7 @@ static void sp_paint_selector_set_mode_color(SPPaintSelector *psel, SPPaintSelec
/* Create vbox */
#if GTK_CHECK_VERSION(3,0,0)
GtkWidget *vb = gtk_box_new(GTK_ORIENTATION_VERTICAL, 4);
- gtk_box_new(GTK_BOX(vb), FALSE);
+ gtk_box_set_homogeneous(GTK_BOX(vb), FALSE);
#else
GtkWidget *vb = gtk_vbox_new(FALSE, 4);
#endif
@@ -1003,7 +1003,7 @@ static void sp_paint_selector_set_mode_pattern(SPPaintSelector *psel, SPPaintSel
/* Create vbox */
#if GTK_CHECK_VERSION(3,0,0)
tbl = gtk_box_new(GTK_ORIENTATION_VERTICAL, 4);
- gtk_box_new(GTK_BOX(tbl), FALSE);
+ gtk_box_set_homogeneous(GTK_BOX(tbl), FALSE);
#else
tbl = gtk_vbox_new(FALSE, 4);
#endif
diff --git a/src/widgets/ruler.cpp b/src/widgets/ruler.cpp
index b4fbb13c5..845d56e1c 100644
--- a/src/widgets/ruler.cpp
+++ b/src/widgets/ruler.cpp
@@ -83,14 +83,22 @@ static void gtk_deprecated_ruler_real_draw_ticks (GtkDeprecatedRuler *
static void gtk_deprecated_ruler_real_draw_pos (GtkDeprecatedRuler *ruler);
-static const GtkDeprecatedRulerMetric ruler_metrics[] =
-{
- { "Pixel", "Pi", 1.0, { 1, 2, 5, 10, 25, 50, 100, 250, 500, 1000 }, { 1, 5, 10, 50, 100 }},
- { "Inches", "In", 72.0, { 1, 2, 4, 8, 16, 32, 64, 128, 256, 512 }, { 1, 2, 4, 8, 16 }},
- { "Centimeters", "Cn", 28.35, { 1, 2, 5, 10, 25, 50, 100, 250, 500, 1000 }, { 1, 5, 10, 50, 100 }},
-};
#define GTK_DEPRECATED_RULER_GET_PRIVATE(obj) (G_TYPE_INSTANCE_GET_PRIVATE ((obj), GTK_DEPRECATED_TYPE_RULER, GtkDeprecatedRulerPrivate))
+// Note: const casts are due to GtkDeprecatedRuler being const-broken and not scheduled for any more fixes.
+/// Ruler metrics.
+static GtkDeprecatedRulerMetric const sp_ruler_metrics[] = {
+ // NOTE: the order of records in this struct must correspond to the SPMetric enum.
+ {const_cast<gchar*>("NONE"), const_cast<gchar*>(""), 1, { 1, 2, 5, 10, 25, 50, 100, 250, 500, 1000 }, { 1, 5, 10, 50, 100 }},
+ {const_cast<gchar*>("millimeters"), const_cast<gchar*>("mm"), PX_PER_MM, { 1, 2, 5, 10, 25, 50, 100, 250, 500, 1000 }, { 1, 5, 10, 50, 100 }},
+ {const_cast<gchar*>("centimeters"), const_cast<gchar*>("cm"), PX_PER_CM, { 1, 2, 5, 10, 25, 50, 100, 250, 500, 1000 }, { 1, 5, 10, 50, 100 }},
+ {const_cast<gchar*>("inches"), const_cast<gchar*>("in"), PX_PER_IN, { 1, 2, 4, 8, 16, 32, 64, 128, 256, 512 }, { 1, 2, 4, 8, 16 }},
+ {const_cast<gchar*>("feet"), const_cast<gchar*>("ft"), PX_PER_FT, { 1, 2, 5, 10, 25, 50, 100, 250, 500, 1000 }, { 1, 5, 10, 50, 100 }},
+ {const_cast<gchar*>("points"), const_cast<gchar*>("pt"), PX_PER_PT, { 1, 2, 5, 10, 25, 50, 100, 250, 500, 1000 }, { 1, 5, 10, 50, 100 }},
+ {const_cast<gchar*>("picas"), const_cast<gchar*>("pc"), PX_PER_PC, { 1, 2, 5, 10, 25, 50, 100, 250, 500, 1000 }, { 1, 5, 10, 50, 100 }},
+ {const_cast<gchar*>("pixels"), const_cast<gchar*>("px"), PX_PER_PX, { 1, 2, 5, 10, 25, 50, 100, 250, 500, 1000 }, { 1, 5, 10, 50, 100 }},
+ {const_cast<gchar*>("meters"), const_cast<gchar*>("m"), PX_PER_M, { 1, 2, 5, 10, 25, 50, 100, 250, 500, 1000 }, { 1, 5, 10, 50, 100 }},
+};
G_DEFINE_TYPE_WITH_CODE (GtkDeprecatedRuler, gtk_deprecated_ruler, GTK_TYPE_WIDGET,
G_IMPLEMENT_INTERFACE (GTK_TYPE_ORIENTABLE,
@@ -167,14 +175,16 @@ gtk_deprecated_ruler_class_init (GtkDeprecatedRulerClass *klass)
* GtkDeprecatedRuler:metric:
*
* The metric used for the ruler.
+ *
+ * TODO: This should probably use g_param_spec_enum
*/
g_object_class_install_property (gobject_class,
PROP_METRIC,
- g_param_spec_enum ("metric",
+ g_param_spec_uint("metric",
_("Metric"),
_("The metric used for the ruler"),
- GTK_TYPE_METRIC_TYPE,
- GTK_PIXELS,
+ 0, 8,
+ SP_PX,
static_cast<GParamFlags>(GTK_PARAM_READWRITE)));
g_type_class_add_private (gobject_class, sizeof (GtkDeprecatedRulerPrivate));
@@ -196,7 +206,7 @@ gtk_deprecated_ruler_init (GtkDeprecatedRuler *ruler)
ruler->position = 0;
ruler->max_size = 0;
- gtk_deprecated_ruler_set_metric (ruler, GTK_PIXELS);
+ sp_ruler_set_metric(ruler, SP_PX);
}
@@ -310,7 +320,7 @@ gtk_deprecated_ruler_set_property (GObject *object,
ruler->position, g_value_get_double (value));
break;
case PROP_METRIC:
- gtk_deprecated_ruler_set_metric (ruler, static_cast<GtkMetricType>(g_value_get_enum (value)));
+ sp_ruler_set_metric(ruler, static_cast<SPMetric>(g_value_get_enum (value)));
break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
@@ -345,7 +355,7 @@ gtk_deprecated_ruler_get_property (GObject *object,
g_value_set_double (value, ruler->max_size);
break;
case PROP_METRIC:
- g_value_set_enum (value, gtk_deprecated_ruler_get_metric (ruler));
+ g_value_set_enum(value, sp_ruler_get_metric(ruler));
break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
@@ -353,41 +363,28 @@ gtk_deprecated_ruler_get_property (GObject *object,
}
}
-void
-gtk_deprecated_ruler_set_metric (GtkDeprecatedRuler *ruler,
- GtkMetricType metric)
-{
- g_return_if_fail (GTK_DEPRECATED_IS_RULER (ruler));
-
- ruler->metric = (GtkDeprecatedRulerMetric *) &ruler_metrics[metric];
-
- if (gtk_widget_is_drawable (GTK_WIDGET (ruler)))
- gtk_widget_queue_draw (GTK_WIDGET (ruler));
-
- g_object_notify (G_OBJECT (ruler), "metric");
-}
/**
- * gtk_deprecated_ruler_get_metric:
+ * sp_ruler_get_metric:
* @ruler: a #GtkDeprecatedRuler
*
- * Gets the units used for a #GtkDeprecatedRuler. See gtk_deprecated_ruler_set_metric().
+ * Gets the units used for a #GtkDeprecatedRuler. See sp_ruler_set_metric().
*
* Return value: the units currently used for @ruler
**/
-GtkMetricType gtk_deprecated_ruler_get_metric (GtkDeprecatedRuler *ruler)
+SPMetric sp_ruler_get_metric(GtkDeprecatedRuler *ruler)
{
- g_return_val_if_fail(GTK_DEPRECATED_IS_RULER(ruler), static_cast<GtkMetricType>(0));
+ g_return_val_if_fail(GTK_DEPRECATED_IS_RULER(ruler), static_cast<SPMetric>(0));
- for (size_t i = 0; i < G_N_ELEMENTS(ruler_metrics); i++) {
- if (ruler->metric == &ruler_metrics[i]) {
- return static_cast<GtkMetricType>(i);
+ for (size_t i = 0; i < G_N_ELEMENTS(sp_ruler_metrics); i++) {
+ if (ruler->metric == &sp_ruler_metrics[i]) {
+ return static_cast<SPMetric>(i);
}
}
g_assert_not_reached ();
- return static_cast<GtkMetricType>(0);
+ return static_cast<SPMetric>(0);
}
@@ -1317,27 +1314,11 @@ sp_ruler_common_draw_ticks(GtkDeprecatedRuler *ruler)
}
}
-// Note: const casts are due to GtkDeprecatedRuler being const-broken and not scheduled for any more fixes.
-/// Ruler metrics.
-static GtkDeprecatedRulerMetric const sp_ruler_metrics[] = {
- // NOTE: the order of records in this struct must correspond to the SPMetric enum.
- {const_cast<gchar*>("NONE"), const_cast<gchar*>(""), 1, { 1, 2, 5, 10, 25, 50, 100, 250, 500, 1000 }, { 1, 5, 10, 50, 100 }},
- {const_cast<gchar*>("millimeters"), const_cast<gchar*>("mm"), PX_PER_MM, { 1, 2, 5, 10, 25, 50, 100, 250, 500, 1000 }, { 1, 5, 10, 50, 100 }},
- {const_cast<gchar*>("centimeters"), const_cast<gchar*>("cm"), PX_PER_CM, { 1, 2, 5, 10, 25, 50, 100, 250, 500, 1000 }, { 1, 5, 10, 50, 100 }},
- {const_cast<gchar*>("inches"), const_cast<gchar*>("in"), PX_PER_IN, { 1, 2, 4, 8, 16, 32, 64, 128, 256, 512 }, { 1, 2, 4, 8, 16 }},
- {const_cast<gchar*>("feet"), const_cast<gchar*>("ft"), PX_PER_FT, { 1, 2, 5, 10, 25, 50, 100, 250, 500, 1000 }, { 1, 5, 10, 50, 100 }},
- {const_cast<gchar*>("points"), const_cast<gchar*>("pt"), PX_PER_PT, { 1, 2, 5, 10, 25, 50, 100, 250, 500, 1000 }, { 1, 5, 10, 50, 100 }},
- {const_cast<gchar*>("picas"), const_cast<gchar*>("pc"), PX_PER_PC, { 1, 2, 5, 10, 25, 50, 100, 250, 500, 1000 }, { 1, 5, 10, 50, 100 }},
- {const_cast<gchar*>("pixels"), const_cast<gchar*>("px"), PX_PER_PX, { 1, 2, 5, 10, 25, 50, 100, 250, 500, 1000 }, { 1, 5, 10, 50, 100 }},
- {const_cast<gchar*>("meters"), const_cast<gchar*>("m"), PX_PER_M, { 1, 2, 5, 10, 25, 50, 100, 250, 500, 1000 }, { 1, 5, 10, 50, 100 }},
-};
-void
-sp_ruler_set_metric (GtkDeprecatedRuler *ruler,
- SPMetric metric)
+void sp_ruler_set_metric(GtkDeprecatedRuler *ruler, SPMetric metric)
{
- g_return_if_fail (ruler != NULL);
- g_return_if_fail (GTK_DEPRECATED_IS_RULER (ruler));
+ g_return_if_fail(ruler != NULL);
+ g_return_if_fail(GTK_DEPRECATED_IS_RULER (ruler));
g_return_if_fail((unsigned) metric < G_N_ELEMENTS(sp_ruler_metrics));
if (metric == 0)
@@ -1345,6 +1326,8 @@ sp_ruler_set_metric (GtkDeprecatedRuler *ruler,
ruler->metric = const_cast<GtkDeprecatedRulerMetric *>(&sp_ruler_metrics[metric]);
- if (gtk_widget_is_drawable (GTK_WIDGET (ruler)))
- gtk_widget_queue_draw (GTK_WIDGET (ruler));
+ if (gtk_widget_is_drawable(GTK_WIDGET(ruler)))
+ gtk_widget_queue_draw(GTK_WIDGET(ruler));
+
+ g_object_notify(G_OBJECT(ruler), "metric");
}
diff --git a/src/widgets/ruler.h b/src/widgets/ruler.h
index 0e7d32b2a..210a65bed 100644
--- a/src/widgets/ruler.h
+++ b/src/widgets/ruler.h
@@ -81,9 +81,6 @@ struct _GtkDeprecatedRulerMetric
GType gtk_deprecated_ruler_get_type (void) G_GNUC_CONST;
-void gtk_deprecated_ruler_set_metric (GtkDeprecatedRuler *ruler,
- GtkMetricType metric);
-GtkMetricType gtk_deprecated_ruler_get_metric (GtkDeprecatedRuler *ruler);
void gtk_deprecated_ruler_set_range (GtkDeprecatedRuler *ruler,
gdouble lower,
gdouble upper,
@@ -99,11 +96,8 @@ void gtk_deprecated_ruler_draw_ticks (GtkDeprecatedRuler *ruler
void gtk_deprecated_ruler_draw_pos (GtkDeprecatedRuler *ruler);
-
-
-
-
-void sp_ruler_set_metric (GtkDeprecatedRuler * ruler, SPMetric metric);
+void sp_ruler_set_metric (GtkDeprecatedRuler * ruler, SPMetric metric);
+SPMetric sp_ruler_get_metric (GtkDeprecatedRuler *ruler);
#define SP_HRULER(obj) G_TYPE_CHECK_INSTANCE_CAST (obj, sp_hruler_get_type (), SPHRuler)
diff --git a/src/widgets/select-toolbar.cpp b/src/widgets/select-toolbar.cpp
index e23d4f84b..4378bc19d 100644
--- a/src/widgets/select-toolbar.cpp
+++ b/src/widgets/select-toolbar.cpp
@@ -270,7 +270,12 @@ sp_object_layout_any_value_changed(GtkAdjustment *adj, SPWidget *spw)
static GtkWidget* createCustomSlider( GtkAdjustment *adjustment, gdouble climbRate, guint digits )
{
+#if WITH_GTKMM_3_0
+ Glib::RefPtr<Gtk::Adjustment> adj = Glib::wrap(adjustment, true);
+ Inkscape::UI::Widget::SpinButton *inkSpinner = new Inkscape::UI::Widget::SpinButton(adj, climbRate, digits);
+#else
Inkscape::UI::Widget::SpinButton *inkSpinner = new Inkscape::UI::Widget::SpinButton(*Glib::wrap(adjustment, true), climbRate, digits);
+#endif
inkSpinner = Gtk::manage( inkSpinner );
GtkWidget *widget = GTK_WIDGET( inkSpinner->gobj() );
return widget;
diff --git a/src/widgets/stroke-style.cpp b/src/widgets/stroke-style.cpp
index 2e56dd696..90bd62847 100644
--- a/src/widgets/stroke-style.cpp
+++ b/src/widgets/stroke-style.cpp
@@ -18,6 +18,7 @@
#define noSP_SS_VERBOSE
#include "widgets/dash-selector.h"
+#include <gtkmm/radiobutton.h>
#include <gtkmm/table.h>
#include <glibmm/i18n.h>
@@ -295,7 +296,6 @@ Gtk::Container *sp_stroke_style_line_widget_new(void)
GtkWidget *us_old, *spw_old;
Gtk::Container *spw;
Gtk::Table *t;
- Gtk::Adjustment *a;
Inkscape::UI::Widget::SpinButton *sb;
Gtk::RadioButton *tb;
Gtk::HBox *f, *hb;
@@ -327,9 +327,15 @@ Gtk::Container *sp_stroke_style_line_widget_new(void)
// with it, the two remaining calls of stroke_average_width, allowing us to get rid of that
// function in desktop-style.
- a = new Gtk::Adjustment(1.0, 0.0, 1000.0, 0.1, 10.0, 0.0);
+#if WITH_GTKMM_3_0
+ Glib::RefPtr<Gtk::Adjustment> a = Gtk::Adjustment::create(1.0, 0.0, 1000.0, 0.1, 10.0, 0.0);
+ spw->set_data("width", &a);
+ sb = new Inkscape::UI::Widget::SpinButton(a, 0.1, 3);
+#else
+ Gtk::Adjustment *a = new Gtk::Adjustment(1.0, 0.0, 1000.0, 0.1, 10.0, 0.0);
spw->set_data("width", a);
sb = new Inkscape::UI::Widget::SpinButton(*a, 0.1, 3);
+#endif
sb->set_tooltip_text(_("Stroke width"));
sb->show();
spw_label(t, C_("Stroke width", "_Width:"), 0, i, sb);
@@ -403,10 +409,16 @@ Gtk::Container *sp_stroke_style_line_widget_new(void)
hb = spw_hbox(t, 3, 1, i);
+#if WITH_GTKMM_3_0
+ a = Gtk::Adjustment::create(4.0, 0.0, 100.0, 0.1, 10.0, 0.0);
+ spw->set_data("miterlimit", &a);
+ sb = new Inkscape::UI::Widget::SpinButton(a, 0.1, 2);
+#else
a = new Gtk::Adjustment(4.0, 0.0, 100.0, 0.1, 10.0, 0.0);
spw->set_data("miterlimit", a);
-
sb = new Inkscape::UI::Widget::SpinButton(*a, 0.1, 2);
+#endif
+
sb->set_tooltip_text(_("Maximum length of the miter (in units of stroke width)"));
sb->show();
spw_label(t, _("Miter _limit:"), 0, i, sb);
diff --git a/src/widgets/toolbox.cpp b/src/widgets/toolbox.cpp
index 7d73c042b..f29ac581d 100644
--- a/src/widgets/toolbox.cpp
+++ b/src/widgets/toolbox.cpp
@@ -114,7 +114,7 @@
#include <gtk/gtk.h>
#if !GTK_CHECK_VERSION(2,22,0)
-#define GDK_KEY_VoidSymbol 0xffffff
+#include "compat-key-syms.h"
#endif
//#define DEBUG_TEXT
@@ -1119,7 +1119,12 @@ GtkWidget *ToolboxFactory::createSnapToolbox()
static GtkWidget* createCustomSlider( GtkAdjustment *adjustment, gdouble climbRate, guint digits )
{
+#if WITH_GTKMM_3_0
+ Glib::RefPtr<Gtk::Adjustment> adj = Glib::wrap(adjustment, true);
+ Inkscape::UI::Widget::SpinButton *inkSpinner = new Inkscape::UI::Widget::SpinButton(adj, climbRate, digits);
+#else
Inkscape::UI::Widget::SpinButton *inkSpinner = new Inkscape::UI::Widget::SpinButton(*Glib::wrap(adjustment, true), climbRate, digits);
+#endif
inkSpinner = Gtk::manage( inkSpinner );
GtkWidget *widget = GTK_WIDGET( inkSpinner->gobj() );
return widget;