From 1c9e7ee09d40b8e06b80d0a09eca17d1b0fb8357 Mon Sep 17 00:00:00 2001 From: Martin Owens Date: Sat, 12 Mar 2016 18:50:04 -0500 Subject: Add a units box to line height and wire in the style units, plus some cleanup (bzr r14701) --- src/widgets/select-toolbar.cpp | 159 +++++++++++++++++++---------------------- 1 file changed, 75 insertions(+), 84 deletions(-) (limited to 'src/widgets/select-toolbar.cpp') diff --git a/src/widgets/select-toolbar.cpp b/src/widgets/select-toolbar.cpp index e49c4c00a..3cd6c0e28 100644 --- a/src/widgets/select-toolbar.cpp +++ b/src/widgets/select-toolbar.cpp @@ -136,13 +136,13 @@ sp_selection_layout_widget_change_selection(SPWidget *spw, Inkscape::Selection * } static void -sp_object_layout_any_value_changed(GtkAdjustment *adj, SPWidget *spw) +sp_object_layout_any_value_changed(GtkAdjustment *adj, GObject *tbl) { - if (g_object_get_data(G_OBJECT(spw), "update")) { + if (g_object_get_data(tbl, "update")) { return; } - UnitTracker *tracker = reinterpret_cast(g_object_get_data(G_OBJECT(spw), "tracker")); + UnitTracker *tracker = reinterpret_cast(g_object_get_data(tbl, "tracker")); if ( !tracker || tracker->isUpdating() ) { /* * When only units are being changed, don't treat changes @@ -150,7 +150,7 @@ sp_object_layout_any_value_changed(GtkAdjustment *adj, SPWidget *spw) */ return; } - g_object_set_data(G_OBJECT(spw), "update", GINT_TO_POINTER(TRUE)); + g_object_set_data(tbl, "update", GINT_TO_POINTER(TRUE)); SPDesktop *desktop = SP_ACTIVE_DESKTOP; Inkscape::Selection *selection = desktop->getSelection(); @@ -168,7 +168,7 @@ sp_object_layout_any_value_changed(GtkAdjustment *adj, SPWidget *spw) Geom::OptRect bbox_user = selection->bounds(bbox_type); if ( !bbox_user ) { - g_object_set_data(G_OBJECT(spw), "update", GINT_TO_POINTER(FALSE)); + g_object_set_data(tbl, "update", GINT_TO_POINTER(FALSE)); return; } @@ -181,10 +181,10 @@ sp_object_layout_any_value_changed(GtkAdjustment *adj, SPWidget *spw) Unit const *unit = tracker->getActiveUnit(); g_return_if_fail(unit != NULL); - GtkAdjustment* a_x = GTK_ADJUSTMENT( g_object_get_data( G_OBJECT(spw), "X" ) ); - GtkAdjustment* a_y = GTK_ADJUSTMENT( g_object_get_data( G_OBJECT(spw), "Y" ) ); - GtkAdjustment* a_w = GTK_ADJUSTMENT( g_object_get_data( G_OBJECT(spw), "width" ) ); - GtkAdjustment* a_h = GTK_ADJUSTMENT( g_object_get_data( G_OBJECT(spw), "height" ) ); + GtkAdjustment* a_x = GTK_ADJUSTMENT( g_object_get_data( tbl, "X" ) ); + GtkAdjustment* a_y = GTK_ADJUSTMENT( g_object_get_data( tbl, "Y" ) ); + GtkAdjustment* a_w = GTK_ADJUSTMENT( g_object_get_data( tbl, "width" ) ); + GtkAdjustment* a_h = GTK_ADJUSTMENT( g_object_get_data( tbl, "height" ) ); if (unit->type == Inkscape::Util::UNIT_TYPE_LINEAR) { x0 = Quantity::convert(gtk_adjustment_get_value(a_x), unit, "px"); @@ -205,7 +205,7 @@ sp_object_layout_any_value_changed(GtkAdjustment *adj, SPWidget *spw) } // Keep proportions if lock is on - GtkToggleAction *lock = GTK_TOGGLE_ACTION( g_object_get_data(G_OBJECT(spw), "lock") ); + GtkToggleAction *lock = GTK_TOGGLE_ACTION( g_object_get_data(tbl, "lock") ); if ( gtk_toggle_action_get_active(lock) ) { if (adj == a_h) { x1 = x0 + yrel * bbox_user->dimensions()[Geom::X]; @@ -265,68 +265,7 @@ sp_object_layout_any_value_changed(GtkAdjustment *adj, SPWidget *spw) desktop->getCanvas()->endForcedFullRedraws(); } - g_object_set_data(G_OBJECT(spw), "update", GINT_TO_POINTER(FALSE)); -} - -static GtkWidget* createCustomSlider( GtkAdjustment *adjustment, gdouble climbRate, guint digits, Inkscape::UI::Widget::UnitTracker *unit_tracker ) -{ -#if WITH_GTKMM_3_0 - Glib::RefPtr 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->addUnitTracker(unit_tracker); - inkSpinner = Gtk::manage( inkSpinner ); - GtkWidget *widget = GTK_WIDGET( inkSpinner->gobj() ); - return widget; -} - -// TODO create_adjustment_action appears to be a rogue tile copy from toolbox.cpp. Resolve it to be unified: - -static EgeAdjustmentAction * create_adjustment_action( gchar const *name, - gchar const *label, - gchar const *shortLabel, - gchar const *data, - gdouble lower, - GtkWidget* focusTarget, - UnitTracker* tracker, - GtkWidget* spw, - gchar const *tooltip, - gboolean altx ) -{ - static bool init = false; - if ( !init ) { - init = true; - ege_adjustment_action_set_compact_tool_factory( createCustomSlider ); - } - - GtkAdjustment* adj = GTK_ADJUSTMENT( gtk_adjustment_new( 0.0, lower, 1e6, SPIN_STEP, SPIN_PAGE_STEP, 0 ) ); - if (tracker) { - tracker->addAdjustment(adj); - } - if ( spw ) { - g_object_set_data( G_OBJECT(spw), data, adj ); - } - - EgeAdjustmentAction* act = ege_adjustment_action_new( adj, name, Q_(label), tooltip, 0, SPIN_STEP, 3, tracker ); - if ( shortLabel ) { - g_object_set( act, "short_label", Q_(shortLabel), NULL ); - } - - g_signal_connect( G_OBJECT(adj), "value_changed", G_CALLBACK(sp_object_layout_any_value_changed), spw ); - if ( focusTarget ) { - ege_adjustment_action_set_focuswidget( act, focusTarget ); - } - - if ( altx ) { // this spinbutton will be activated by alt-x - g_object_set( G_OBJECT(act), "self-id", "altx", NULL ); - } - - // Using a cast just to make sure we pass in the right kind of function pointer - g_object_set( G_OBJECT(act), "tool-post", static_cast(sp_set_font_size_smaller), NULL ); - - return act; + g_object_set_data(tbl, "update", GINT_TO_POINTER(FALSE)); } // toggle button callbacks and updaters @@ -497,21 +436,60 @@ void sp_select_toolbox_prep(SPDesktop *desktop, GtkActionGroup* mainActions, GOb // four spinbuttons - eact = create_adjustment_action( "XAction", C_("Select toolbar", "X position"), C_("Select toolbar", "X:"), "X", - -1e6, GTK_WIDGET(desktop->canvas), tracker, spw, - _("Horizontal coordinate of selection"), TRUE ); + eact = create_adjustment_action( + /* name= */ "XAction", + /* label= */ C_("Select toolbar", "X position"), + /* shortLabel= */ C_("Select toolbar", "X:"), + /* tooltip= */ C_("Select toolbar", "Horizontal coordinate of selection"), + /* path= */ "/tools/select/X", + /* def(default) */ 0.0, + /* focusTarget= */ GTK_WIDGET(desktop->canvas), + /* dataKludge= */ G_OBJECT(spw), + /* altx, altx_mark */ TRUE, "altx", + /* lower, uppper, step, page */ -1e6, 1e6, SPIN_STEP, SPIN_PAGE_STEP, + /* descrLabels, descrValues, descrCount */ 0, 0, 0, + /* callback= */ sp_object_layout_any_value_changed, + /* unit_tracker= */ tracker, + /* climb, digits, factor */ SPIN_STEP, 3, 1); + gtk_action_group_add_action( selectionActions, GTK_ACTION(eact) ); contextActions->push_back( GTK_ACTION(eact) ); - eact = create_adjustment_action( "YAction", C_("Select toolbar", "Y position"), C_("Select toolbar", "Y:"), "Y", - -1e6, GTK_WIDGET(desktop->canvas), tracker, spw, - _("Vertical coordinate of selection"), FALSE ); + eact = create_adjustment_action( + /* name= */ "YAction", + /* label= */ C_("Select toolbar", "Y position"), + /* shortLabel= */ C_("Select toolbar", "Y:"), + /* tooltip= */ C_("Select toolbar", "Vertical coordinate of selection"), + /* path= */ "/tools/select/Y", + /* def(default) */ 0.0, + /* focusTarget= */ GTK_WIDGET(desktop->canvas), + /* dataKludge= */ G_OBJECT(spw), + /* altx, altx_mark */ TRUE, "altx", + /* lower, uppper, step, page */ -1e6, 1e6, SPIN_STEP, SPIN_PAGE_STEP, + /* descrLabels, descrValues, descrCount */ 0, 0, 0, + /* callback= */ sp_object_layout_any_value_changed, + /* unit_tracker= */ tracker, + /* climb, digits, factor */ SPIN_STEP, 3, 1); + gtk_action_group_add_action( selectionActions, GTK_ACTION(eact) ); contextActions->push_back( GTK_ACTION(eact) ); - eact = create_adjustment_action( "WidthAction", C_("Select toolbar", "Width"), C_("Select toolbar", "W:"), "width", - 0.0, GTK_WIDGET(desktop->canvas), tracker, spw, - _("Width of selection"), FALSE ); + eact = create_adjustment_action( + /* name= */ "WidthAction", + /* label= */ C_("Select toolbar", "Width"), + /* shortLabel= */ C_("Select toolbar", "W:"), + /* tooltip= */ C_("Select toolbar", "Width of selection"), + /* path= */ "/tools/select/width", + /* def(default) */ 0.0, + /* focusTarget= */ GTK_WIDGET(desktop->canvas), + /* dataKludge= */ G_OBJECT(spw), + /* altx, altx_mark */ TRUE, "altx", + /* lower, uppper, step, page */ 0.0, 1e6, SPIN_STEP, SPIN_PAGE_STEP, + /* descrLabels, descrValues, descrCount */ 0, 0, 0, + /* callback= */ sp_object_layout_any_value_changed, + /* unit_tracker= */ tracker, + /* climb, digits, factor */ SPIN_STEP, 3, 1); + gtk_action_group_add_action( selectionActions, GTK_ACTION(eact) ); contextActions->push_back( GTK_ACTION(eact) ); @@ -528,9 +506,22 @@ void sp_select_toolbox_prep(SPDesktop *desktop, GtkActionGroup* mainActions, GOb gtk_action_group_add_action( mainActions, GTK_ACTION(itact) ); } - eact = create_adjustment_action( "HeightAction", C_("Select toolbar", "Height"), C_("Select toolbar", "H:"), "height", - 0.0, GTK_WIDGET(desktop->canvas), tracker, spw, - _("Height of selection"), FALSE ); + eact = create_adjustment_action( + /* name= */ "HeightAction", + /* label= */ C_("Select toolbar", "Height"), + /* shortLabel= */ C_("Select toolbar", "H:"), + /* tooltip= */ C_("Select toolbar", "Height of selection"), + /* path= */ "/tools/select/height", + /* def(default) */ 0.0, + /* focusTarget= */ GTK_WIDGET(desktop->canvas), + /* dataKludge= */ G_OBJECT(spw), + /* altx, altx_mark */ TRUE, "altx", + /* lower, uppper, step, page */ 0.0, 1e6, SPIN_STEP, SPIN_PAGE_STEP, + /* descrLabels, descrValues, descrCount */ 0, 0, 0, + /* callback= */ sp_object_layout_any_value_changed, + /* unit_tracker= */ tracker, + /* climb, digits, factor */ SPIN_STEP, 3, 1); + gtk_action_group_add_action( selectionActions, GTK_ACTION(eact) ); contextActions->push_back( GTK_ACTION(eact) ); -- cgit v1.2.3 From a714c688d60a3a62114591984f57f26cd41dbed9 Mon Sep 17 00:00:00 2001 From: Tavmjong Bah Date: Fri, 18 Mar 2016 11:23:29 +0100 Subject: Reverting 14701. (bzr r14716.1.2) --- src/widgets/select-toolbar.cpp | 159 ++++++++++++++++++++++------------------- 1 file changed, 84 insertions(+), 75 deletions(-) (limited to 'src/widgets/select-toolbar.cpp') diff --git a/src/widgets/select-toolbar.cpp b/src/widgets/select-toolbar.cpp index 3cd6c0e28..e49c4c00a 100644 --- a/src/widgets/select-toolbar.cpp +++ b/src/widgets/select-toolbar.cpp @@ -136,13 +136,13 @@ sp_selection_layout_widget_change_selection(SPWidget *spw, Inkscape::Selection * } static void -sp_object_layout_any_value_changed(GtkAdjustment *adj, GObject *tbl) +sp_object_layout_any_value_changed(GtkAdjustment *adj, SPWidget *spw) { - if (g_object_get_data(tbl, "update")) { + if (g_object_get_data(G_OBJECT(spw), "update")) { return; } - UnitTracker *tracker = reinterpret_cast(g_object_get_data(tbl, "tracker")); + UnitTracker *tracker = reinterpret_cast(g_object_get_data(G_OBJECT(spw), "tracker")); if ( !tracker || tracker->isUpdating() ) { /* * When only units are being changed, don't treat changes @@ -150,7 +150,7 @@ sp_object_layout_any_value_changed(GtkAdjustment *adj, GObject *tbl) */ return; } - g_object_set_data(tbl, "update", GINT_TO_POINTER(TRUE)); + g_object_set_data(G_OBJECT(spw), "update", GINT_TO_POINTER(TRUE)); SPDesktop *desktop = SP_ACTIVE_DESKTOP; Inkscape::Selection *selection = desktop->getSelection(); @@ -168,7 +168,7 @@ sp_object_layout_any_value_changed(GtkAdjustment *adj, GObject *tbl) Geom::OptRect bbox_user = selection->bounds(bbox_type); if ( !bbox_user ) { - g_object_set_data(tbl, "update", GINT_TO_POINTER(FALSE)); + g_object_set_data(G_OBJECT(spw), "update", GINT_TO_POINTER(FALSE)); return; } @@ -181,10 +181,10 @@ sp_object_layout_any_value_changed(GtkAdjustment *adj, GObject *tbl) Unit const *unit = tracker->getActiveUnit(); g_return_if_fail(unit != NULL); - GtkAdjustment* a_x = GTK_ADJUSTMENT( g_object_get_data( tbl, "X" ) ); - GtkAdjustment* a_y = GTK_ADJUSTMENT( g_object_get_data( tbl, "Y" ) ); - GtkAdjustment* a_w = GTK_ADJUSTMENT( g_object_get_data( tbl, "width" ) ); - GtkAdjustment* a_h = GTK_ADJUSTMENT( g_object_get_data( tbl, "height" ) ); + GtkAdjustment* a_x = GTK_ADJUSTMENT( g_object_get_data( G_OBJECT(spw), "X" ) ); + GtkAdjustment* a_y = GTK_ADJUSTMENT( g_object_get_data( G_OBJECT(spw), "Y" ) ); + GtkAdjustment* a_w = GTK_ADJUSTMENT( g_object_get_data( G_OBJECT(spw), "width" ) ); + GtkAdjustment* a_h = GTK_ADJUSTMENT( g_object_get_data( G_OBJECT(spw), "height" ) ); if (unit->type == Inkscape::Util::UNIT_TYPE_LINEAR) { x0 = Quantity::convert(gtk_adjustment_get_value(a_x), unit, "px"); @@ -205,7 +205,7 @@ sp_object_layout_any_value_changed(GtkAdjustment *adj, GObject *tbl) } // Keep proportions if lock is on - GtkToggleAction *lock = GTK_TOGGLE_ACTION( g_object_get_data(tbl, "lock") ); + GtkToggleAction *lock = GTK_TOGGLE_ACTION( g_object_get_data(G_OBJECT(spw), "lock") ); if ( gtk_toggle_action_get_active(lock) ) { if (adj == a_h) { x1 = x0 + yrel * bbox_user->dimensions()[Geom::X]; @@ -265,7 +265,68 @@ sp_object_layout_any_value_changed(GtkAdjustment *adj, GObject *tbl) desktop->getCanvas()->endForcedFullRedraws(); } - g_object_set_data(tbl, "update", GINT_TO_POINTER(FALSE)); + g_object_set_data(G_OBJECT(spw), "update", GINT_TO_POINTER(FALSE)); +} + +static GtkWidget* createCustomSlider( GtkAdjustment *adjustment, gdouble climbRate, guint digits, Inkscape::UI::Widget::UnitTracker *unit_tracker ) +{ +#if WITH_GTKMM_3_0 + Glib::RefPtr 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->addUnitTracker(unit_tracker); + inkSpinner = Gtk::manage( inkSpinner ); + GtkWidget *widget = GTK_WIDGET( inkSpinner->gobj() ); + return widget; +} + +// TODO create_adjustment_action appears to be a rogue tile copy from toolbox.cpp. Resolve it to be unified: + +static EgeAdjustmentAction * create_adjustment_action( gchar const *name, + gchar const *label, + gchar const *shortLabel, + gchar const *data, + gdouble lower, + GtkWidget* focusTarget, + UnitTracker* tracker, + GtkWidget* spw, + gchar const *tooltip, + gboolean altx ) +{ + static bool init = false; + if ( !init ) { + init = true; + ege_adjustment_action_set_compact_tool_factory( createCustomSlider ); + } + + GtkAdjustment* adj = GTK_ADJUSTMENT( gtk_adjustment_new( 0.0, lower, 1e6, SPIN_STEP, SPIN_PAGE_STEP, 0 ) ); + if (tracker) { + tracker->addAdjustment(adj); + } + if ( spw ) { + g_object_set_data( G_OBJECT(spw), data, adj ); + } + + EgeAdjustmentAction* act = ege_adjustment_action_new( adj, name, Q_(label), tooltip, 0, SPIN_STEP, 3, tracker ); + if ( shortLabel ) { + g_object_set( act, "short_label", Q_(shortLabel), NULL ); + } + + g_signal_connect( G_OBJECT(adj), "value_changed", G_CALLBACK(sp_object_layout_any_value_changed), spw ); + if ( focusTarget ) { + ege_adjustment_action_set_focuswidget( act, focusTarget ); + } + + if ( altx ) { // this spinbutton will be activated by alt-x + g_object_set( G_OBJECT(act), "self-id", "altx", NULL ); + } + + // Using a cast just to make sure we pass in the right kind of function pointer + g_object_set( G_OBJECT(act), "tool-post", static_cast(sp_set_font_size_smaller), NULL ); + + return act; } // toggle button callbacks and updaters @@ -436,60 +497,21 @@ void sp_select_toolbox_prep(SPDesktop *desktop, GtkActionGroup* mainActions, GOb // four spinbuttons - eact = create_adjustment_action( - /* name= */ "XAction", - /* label= */ C_("Select toolbar", "X position"), - /* shortLabel= */ C_("Select toolbar", "X:"), - /* tooltip= */ C_("Select toolbar", "Horizontal coordinate of selection"), - /* path= */ "/tools/select/X", - /* def(default) */ 0.0, - /* focusTarget= */ GTK_WIDGET(desktop->canvas), - /* dataKludge= */ G_OBJECT(spw), - /* altx, altx_mark */ TRUE, "altx", - /* lower, uppper, step, page */ -1e6, 1e6, SPIN_STEP, SPIN_PAGE_STEP, - /* descrLabels, descrValues, descrCount */ 0, 0, 0, - /* callback= */ sp_object_layout_any_value_changed, - /* unit_tracker= */ tracker, - /* climb, digits, factor */ SPIN_STEP, 3, 1); - + eact = create_adjustment_action( "XAction", C_("Select toolbar", "X position"), C_("Select toolbar", "X:"), "X", + -1e6, GTK_WIDGET(desktop->canvas), tracker, spw, + _("Horizontal coordinate of selection"), TRUE ); gtk_action_group_add_action( selectionActions, GTK_ACTION(eact) ); contextActions->push_back( GTK_ACTION(eact) ); - eact = create_adjustment_action( - /* name= */ "YAction", - /* label= */ C_("Select toolbar", "Y position"), - /* shortLabel= */ C_("Select toolbar", "Y:"), - /* tooltip= */ C_("Select toolbar", "Vertical coordinate of selection"), - /* path= */ "/tools/select/Y", - /* def(default) */ 0.0, - /* focusTarget= */ GTK_WIDGET(desktop->canvas), - /* dataKludge= */ G_OBJECT(spw), - /* altx, altx_mark */ TRUE, "altx", - /* lower, uppper, step, page */ -1e6, 1e6, SPIN_STEP, SPIN_PAGE_STEP, - /* descrLabels, descrValues, descrCount */ 0, 0, 0, - /* callback= */ sp_object_layout_any_value_changed, - /* unit_tracker= */ tracker, - /* climb, digits, factor */ SPIN_STEP, 3, 1); - + eact = create_adjustment_action( "YAction", C_("Select toolbar", "Y position"), C_("Select toolbar", "Y:"), "Y", + -1e6, GTK_WIDGET(desktop->canvas), tracker, spw, + _("Vertical coordinate of selection"), FALSE ); gtk_action_group_add_action( selectionActions, GTK_ACTION(eact) ); contextActions->push_back( GTK_ACTION(eact) ); - eact = create_adjustment_action( - /* name= */ "WidthAction", - /* label= */ C_("Select toolbar", "Width"), - /* shortLabel= */ C_("Select toolbar", "W:"), - /* tooltip= */ C_("Select toolbar", "Width of selection"), - /* path= */ "/tools/select/width", - /* def(default) */ 0.0, - /* focusTarget= */ GTK_WIDGET(desktop->canvas), - /* dataKludge= */ G_OBJECT(spw), - /* altx, altx_mark */ TRUE, "altx", - /* lower, uppper, step, page */ 0.0, 1e6, SPIN_STEP, SPIN_PAGE_STEP, - /* descrLabels, descrValues, descrCount */ 0, 0, 0, - /* callback= */ sp_object_layout_any_value_changed, - /* unit_tracker= */ tracker, - /* climb, digits, factor */ SPIN_STEP, 3, 1); - + eact = create_adjustment_action( "WidthAction", C_("Select toolbar", "Width"), C_("Select toolbar", "W:"), "width", + 0.0, GTK_WIDGET(desktop->canvas), tracker, spw, + _("Width of selection"), FALSE ); gtk_action_group_add_action( selectionActions, GTK_ACTION(eact) ); contextActions->push_back( GTK_ACTION(eact) ); @@ -506,22 +528,9 @@ void sp_select_toolbox_prep(SPDesktop *desktop, GtkActionGroup* mainActions, GOb gtk_action_group_add_action( mainActions, GTK_ACTION(itact) ); } - eact = create_adjustment_action( - /* name= */ "HeightAction", - /* label= */ C_("Select toolbar", "Height"), - /* shortLabel= */ C_("Select toolbar", "H:"), - /* tooltip= */ C_("Select toolbar", "Height of selection"), - /* path= */ "/tools/select/height", - /* def(default) */ 0.0, - /* focusTarget= */ GTK_WIDGET(desktop->canvas), - /* dataKludge= */ G_OBJECT(spw), - /* altx, altx_mark */ TRUE, "altx", - /* lower, uppper, step, page */ 0.0, 1e6, SPIN_STEP, SPIN_PAGE_STEP, - /* descrLabels, descrValues, descrCount */ 0, 0, 0, - /* callback= */ sp_object_layout_any_value_changed, - /* unit_tracker= */ tracker, - /* climb, digits, factor */ SPIN_STEP, 3, 1); - + eact = create_adjustment_action( "HeightAction", C_("Select toolbar", "Height"), C_("Select toolbar", "H:"), "height", + 0.0, GTK_WIDGET(desktop->canvas), tracker, spw, + _("Height of selection"), FALSE ); gtk_action_group_add_action( selectionActions, GTK_ACTION(eact) ); contextActions->push_back( GTK_ACTION(eact) ); -- cgit v1.2.3 From 35acdcff45adf06faf74f4f09a9b428aebd1c591 Mon Sep 17 00:00:00 2001 From: Martin Owens <> Date: Tue, 22 Mar 2016 19:56:20 +0100 Subject: Code cleanup. Removal of rogue copy of "create_adjustment_action". (bzr r14736) --- src/widgets/select-toolbar.cpp | 160 ++++++++++++++++++++--------------------- 1 file changed, 76 insertions(+), 84 deletions(-) (limited to 'src/widgets/select-toolbar.cpp') diff --git a/src/widgets/select-toolbar.cpp b/src/widgets/select-toolbar.cpp index e49c4c00a..9851b0606 100644 --- a/src/widgets/select-toolbar.cpp +++ b/src/widgets/select-toolbar.cpp @@ -136,13 +136,13 @@ sp_selection_layout_widget_change_selection(SPWidget *spw, Inkscape::Selection * } static void -sp_object_layout_any_value_changed(GtkAdjustment *adj, SPWidget *spw) +sp_object_layout_any_value_changed(GtkAdjustment *adj, GObject *tbl) { - if (g_object_get_data(G_OBJECT(spw), "update")) { + if (g_object_get_data(tbl, "update")) { return; } - UnitTracker *tracker = reinterpret_cast(g_object_get_data(G_OBJECT(spw), "tracker")); + UnitTracker *tracker = reinterpret_cast(g_object_get_data(tbl, "tracker")); if ( !tracker || tracker->isUpdating() ) { /* * When only units are being changed, don't treat changes @@ -150,7 +150,7 @@ sp_object_layout_any_value_changed(GtkAdjustment *adj, SPWidget *spw) */ return; } - g_object_set_data(G_OBJECT(spw), "update", GINT_TO_POINTER(TRUE)); + g_object_set_data(tbl, "update", GINT_TO_POINTER(TRUE)); SPDesktop *desktop = SP_ACTIVE_DESKTOP; Inkscape::Selection *selection = desktop->getSelection(); @@ -168,7 +168,7 @@ sp_object_layout_any_value_changed(GtkAdjustment *adj, SPWidget *spw) Geom::OptRect bbox_user = selection->bounds(bbox_type); if ( !bbox_user ) { - g_object_set_data(G_OBJECT(spw), "update", GINT_TO_POINTER(FALSE)); + g_object_set_data(tbl, "update", GINT_TO_POINTER(FALSE)); return; } @@ -181,10 +181,10 @@ sp_object_layout_any_value_changed(GtkAdjustment *adj, SPWidget *spw) Unit const *unit = tracker->getActiveUnit(); g_return_if_fail(unit != NULL); - GtkAdjustment* a_x = GTK_ADJUSTMENT( g_object_get_data( G_OBJECT(spw), "X" ) ); - GtkAdjustment* a_y = GTK_ADJUSTMENT( g_object_get_data( G_OBJECT(spw), "Y" ) ); - GtkAdjustment* a_w = GTK_ADJUSTMENT( g_object_get_data( G_OBJECT(spw), "width" ) ); - GtkAdjustment* a_h = GTK_ADJUSTMENT( g_object_get_data( G_OBJECT(spw), "height" ) ); + GtkAdjustment* a_x = GTK_ADJUSTMENT( g_object_get_data( tbl, "X" ) ); + GtkAdjustment* a_y = GTK_ADJUSTMENT( g_object_get_data( tbl, "Y" ) ); + GtkAdjustment* a_w = GTK_ADJUSTMENT( g_object_get_data( tbl, "width" ) ); + GtkAdjustment* a_h = GTK_ADJUSTMENT( g_object_get_data( tbl, "height" ) ); if (unit->type == Inkscape::Util::UNIT_TYPE_LINEAR) { x0 = Quantity::convert(gtk_adjustment_get_value(a_x), unit, "px"); @@ -205,7 +205,7 @@ sp_object_layout_any_value_changed(GtkAdjustment *adj, SPWidget *spw) } // Keep proportions if lock is on - GtkToggleAction *lock = GTK_TOGGLE_ACTION( g_object_get_data(G_OBJECT(spw), "lock") ); + GtkToggleAction *lock = GTK_TOGGLE_ACTION( g_object_get_data(tbl, "lock") ); if ( gtk_toggle_action_get_active(lock) ) { if (adj == a_h) { x1 = x0 + yrel * bbox_user->dimensions()[Geom::X]; @@ -265,68 +265,7 @@ sp_object_layout_any_value_changed(GtkAdjustment *adj, SPWidget *spw) desktop->getCanvas()->endForcedFullRedraws(); } - g_object_set_data(G_OBJECT(spw), "update", GINT_TO_POINTER(FALSE)); -} - -static GtkWidget* createCustomSlider( GtkAdjustment *adjustment, gdouble climbRate, guint digits, Inkscape::UI::Widget::UnitTracker *unit_tracker ) -{ -#if WITH_GTKMM_3_0 - Glib::RefPtr 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->addUnitTracker(unit_tracker); - inkSpinner = Gtk::manage( inkSpinner ); - GtkWidget *widget = GTK_WIDGET( inkSpinner->gobj() ); - return widget; -} - -// TODO create_adjustment_action appears to be a rogue tile copy from toolbox.cpp. Resolve it to be unified: - -static EgeAdjustmentAction * create_adjustment_action( gchar const *name, - gchar const *label, - gchar const *shortLabel, - gchar const *data, - gdouble lower, - GtkWidget* focusTarget, - UnitTracker* tracker, - GtkWidget* spw, - gchar const *tooltip, - gboolean altx ) -{ - static bool init = false; - if ( !init ) { - init = true; - ege_adjustment_action_set_compact_tool_factory( createCustomSlider ); - } - - GtkAdjustment* adj = GTK_ADJUSTMENT( gtk_adjustment_new( 0.0, lower, 1e6, SPIN_STEP, SPIN_PAGE_STEP, 0 ) ); - if (tracker) { - tracker->addAdjustment(adj); - } - if ( spw ) { - g_object_set_data( G_OBJECT(spw), data, adj ); - } - - EgeAdjustmentAction* act = ege_adjustment_action_new( adj, name, Q_(label), tooltip, 0, SPIN_STEP, 3, tracker ); - if ( shortLabel ) { - g_object_set( act, "short_label", Q_(shortLabel), NULL ); - } - - g_signal_connect( G_OBJECT(adj), "value_changed", G_CALLBACK(sp_object_layout_any_value_changed), spw ); - if ( focusTarget ) { - ege_adjustment_action_set_focuswidget( act, focusTarget ); - } - - if ( altx ) { // this spinbutton will be activated by alt-x - g_object_set( G_OBJECT(act), "self-id", "altx", NULL ); - } - - // Using a cast just to make sure we pass in the right kind of function pointer - g_object_set( G_OBJECT(act), "tool-post", static_cast(sp_set_font_size_smaller), NULL ); - - return act; + g_object_set_data(tbl, "update", GINT_TO_POINTER(FALSE)); } // toggle button callbacks and updaters @@ -497,21 +436,60 @@ void sp_select_toolbox_prep(SPDesktop *desktop, GtkActionGroup* mainActions, GOb // four spinbuttons - eact = create_adjustment_action( "XAction", C_("Select toolbar", "X position"), C_("Select toolbar", "X:"), "X", - -1e6, GTK_WIDGET(desktop->canvas), tracker, spw, - _("Horizontal coordinate of selection"), TRUE ); + eact = create_adjustment_action( + "XAction", /* name */ + C_("Select toolbar", "X position"), /* label */ + C_("Select toolbar", "X:"), /* shortLabel */ + C_("Select toolbar", "Horizontal coordinate of selection"), /* tooltip */ + "/tools/select/X", /* path */ + 0.0, /* def(default) */ + GTK_WIDGET(desktop->canvas), /* focusTarget */ + G_OBJECT(spw), /* dataKludge */ + TRUE, "altx", /* altx, altx_mark */ + -1e6, 1e6, SPIN_STEP, SPIN_PAGE_STEP, /* lower, uppper, step, page */ + 0, 0, 0, /* descrLabels, descrValues, descrCount */ + sp_object_layout_any_value_changed, /* callback */ + tracker, /* unit_tracker */ + SPIN_STEP, 3, 1); /* climb, digits, factor */ + gtk_action_group_add_action( selectionActions, GTK_ACTION(eact) ); contextActions->push_back( GTK_ACTION(eact) ); - eact = create_adjustment_action( "YAction", C_("Select toolbar", "Y position"), C_("Select toolbar", "Y:"), "Y", - -1e6, GTK_WIDGET(desktop->canvas), tracker, spw, - _("Vertical coordinate of selection"), FALSE ); + eact = create_adjustment_action( + "YAction", /* name */ + C_("Select toolbar", "Y position"), /* label */ + C_("Select toolbar", "Y:"), /* shortLabel */ + C_("Select toolbar", "Vertical coordinate of selection"), /* tooltip */ + "/tools/select/Y", /* path */ + 0.0, /* def(default) */ + GTK_WIDGET(desktop->canvas), /* focusTarget */ + G_OBJECT(spw), /* dataKludge */ + TRUE, "altx", /* altx, altx_mark */ + -1e6, 1e6, SPIN_STEP, SPIN_PAGE_STEP, /* lower, uppper, step, page */ + 0, 0, 0, /* descrLabels, descrValues, descrCount */ + sp_object_layout_any_value_changed, /* callback */ + tracker, /* unit_tracker */ + SPIN_STEP, 3, 1); /* climb, digits, factor */ + gtk_action_group_add_action( selectionActions, GTK_ACTION(eact) ); contextActions->push_back( GTK_ACTION(eact) ); - eact = create_adjustment_action( "WidthAction", C_("Select toolbar", "Width"), C_("Select toolbar", "W:"), "width", - 0.0, GTK_WIDGET(desktop->canvas), tracker, spw, - _("Width of selection"), FALSE ); + eact = create_adjustment_action( + "WidthAction", /* name */ + C_("Select toolbar", "Width"), /* label */ + C_("Select toolbar", "W:"), /* shortLabel */ + C_("Select toolbar", "Width of selection"), /* tooltip */ + "/tools/select/width", /* path */ + 0.0, /* def(default) */ + GTK_WIDGET(desktop->canvas), /* focusTarget */ + G_OBJECT(spw), /* dataKludge */ + TRUE, "altx", /* altx, altx_mark */ + 0.0, 1e6, SPIN_STEP, SPIN_PAGE_STEP, /* lower, uppper, step, page */ + 0, 0, 0, /* descrLabels, descrValues, descrCount */ + sp_object_layout_any_value_changed, /* callback */ + tracker, /* unit_tracker */ + SPIN_STEP, 3, 1); /* climb, digits, factor */ + gtk_action_group_add_action( selectionActions, GTK_ACTION(eact) ); contextActions->push_back( GTK_ACTION(eact) ); @@ -528,9 +506,23 @@ void sp_select_toolbox_prep(SPDesktop *desktop, GtkActionGroup* mainActions, GOb gtk_action_group_add_action( mainActions, GTK_ACTION(itact) ); } - eact = create_adjustment_action( "HeightAction", C_("Select toolbar", "Height"), C_("Select toolbar", "H:"), "height", - 0.0, GTK_WIDGET(desktop->canvas), tracker, spw, - _("Height of selection"), FALSE ); + eact = create_adjustment_action( + "HeightAction", /* name */ + C_("Select toolbar", "Height"), /* label */ + C_("Select toolbar", "H:"), /* shortLabel */ + C_("Select toolbar", "Height of selection"), /* tooltip */ + "/tools/select/height", /* path */ + 0.0, /* def(default) */ + GTK_WIDGET(desktop->canvas), /* focusTarget */ + G_OBJECT(spw), /* dataKludge */ + TRUE, "altx", /* altx, altx_mark */ + 0.0, 1e6, SPIN_STEP, SPIN_PAGE_STEP, /* lower, uppper, step, page */ + 0, 0, 0, /* descrLabels, descrValues, descrCount */ + sp_object_layout_any_value_changed, /* callback */ + tracker, /* unit_tracker */ + SPIN_STEP, 3, 1); /* climb, digits, factor */ + + gtk_action_group_add_action( selectionActions, GTK_ACTION(eact) ); contextActions->push_back( GTK_ACTION(eact) ); -- cgit v1.2.3