diff options
| author | Denis Declara <declara91@gmail.com> | 2012-05-05 13:32:42 +0000 |
|---|---|---|
| committer | Denis Declara <declara91@gmail.com> | 2012-05-05 13:32:42 +0000 |
| commit | aeb9c1bde66de096910757abb17dedb94ad74207 (patch) | |
| tree | c0adf97685b0fa8af1553b14d20601f280492762 /src/widgets | |
| parent | Fixed some math, so that the objects now line up correctly (diff) | |
| parent | Adding checks to prevent null pointer dereferences (diff) | |
| download | inkscape-aeb9c1bde66de096910757abb17dedb94ad74207.tar.gz inkscape-aeb9c1bde66de096910757abb17dedb94ad74207.zip | |
Trunk merge
(bzr r11073.1.29)
Diffstat (limited to 'src/widgets')
| -rw-r--r-- | src/widgets/dash-selector.cpp | 10 | ||||
| -rw-r--r-- | src/widgets/dash-selector.h | 4 | ||||
| -rw-r--r-- | src/widgets/desktop-widget.cpp | 29 | ||||
| -rw-r--r-- | src/widgets/font-selector.cpp | 2 | ||||
| -rw-r--r-- | src/widgets/gradient-toolbar.cpp | 223 | ||||
| -rw-r--r-- | src/widgets/paint-selector.cpp | 6 | ||||
| -rw-r--r-- | src/widgets/ruler.cpp | 91 | ||||
| -rw-r--r-- | src/widgets/ruler.h | 10 | ||||
| -rw-r--r-- | src/widgets/select-toolbar.cpp | 5 | ||||
| -rw-r--r-- | src/widgets/stroke-style.cpp | 18 | ||||
| -rw-r--r-- | src/widgets/toolbox.cpp | 7 |
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; |
