summaryrefslogtreecommitdiffstats
path: root/src/widgets/toolbox.cpp
diff options
context:
space:
mode:
authorKrzysztof Kosi??ski <tweenk.pl@gmail.com>2011-07-06 01:59:32 +0000
committerKrzysztof KosiƄski <tweenk.pl@gmail.com>2011-07-06 01:59:32 +0000
commite65a02ed32b78534739aba24929ece7c44dd967f (patch)
tree13cf022f18f6b5bae46aad4bc339e512f069a514 /src/widgets/toolbox.cpp
parentPull 2Geom revision 2013 (extra constructors for Rect). (diff)
parentText edit dialog: Apply button should grab default only after adding to window (diff)
downloadinkscape-e65a02ed32b78534739aba24929ece7c44dd967f.tar.gz
inkscape-e65a02ed32b78534739aba24929ece7c44dd967f.zip
Merge from trunk
(bzr r10347.1.5)
Diffstat (limited to 'src/widgets/toolbox.cpp')
-rw-r--r--src/widgets/toolbox.cpp91
1 files changed, 61 insertions, 30 deletions
diff --git a/src/widgets/toolbox.cpp b/src/widgets/toolbox.cpp
index d0ff38592..3c1196e96 100644
--- a/src/widgets/toolbox.cpp
+++ b/src/widgets/toolbox.cpp
@@ -2176,6 +2176,10 @@ static void toggle_snap_callback(GtkToggleAction *act, gpointer data) //data poi
v = nv->snap_manager.snapprefs.getSnapIntersectionCS();
sp_repr_set_boolean(repr, "inkscape:snap-intersection-paths", !v);
break;
+ case SP_ATTR_INKSCAPE_SNAP_OTHERS:
+ v = nv->snap_manager.snapprefs.getSnapModeOthers();
+ sp_repr_set_boolean(repr, "inkscape:snap-others", !v);
+ break;
case SP_ATTR_INKSCAPE_SNAP_CENTER:
v = nv->snap_manager.snapprefs.getIncludeItemCenter();
sp_repr_set_boolean(repr, "inkscape:snap-center", !v);
@@ -2204,6 +2208,10 @@ static void toggle_snap_callback(GtkToggleAction *act, gpointer data) //data poi
v = nv->snap_manager.snapprefs.getSnapObjectMidpoints();
sp_repr_set_boolean(repr, "inkscape:snap-object-midpoints", !v);
break;
+ case SP_ATTR_INKSCAPE_SNAP_TEXT_BASELINE:
+ v = nv->snap_manager.snapprefs.getSnapTextBaseline();
+ sp_repr_set_boolean(repr, "inkscape:snap-text-baseline", !v);
+ break;
case SP_ATTR_INKSCAPE_SNAP_BBOX_EDGE_MIDPOINTS:
v = nv->snap_manager.snapprefs.getSnapBBoxEdgeMidpoints();
sp_repr_set_boolean(repr, "inkscape:snap-bbox-edge-midpoints", !v);
@@ -2244,8 +2252,11 @@ void setup_snap_toolbox(GtkWidget *toolbox, SPDesktop *desktop)
" <toolitem action='ToggleSnapToItemNode' />"
" <toolitem action='ToggleSnapToSmoothNodes' />"
" <toolitem action='ToggleSnapToFromLineMidpoints' />"
+ " <separator />"
+ " <toolitem action='ToggleSnapFromOthers' />"
" <toolitem action='ToggleSnapToFromObjectCenters' />"
" <toolitem action='ToggleSnapToFromRotationCenter' />"
+ " <toolitem action='ToggleSnapToFromTextBaseline' />"
" <separator />"
" <toolitem action='ToggleSnapToPageBorder' />"
" <toolitem action='ToggleSnapToGrids' />"
@@ -2370,6 +2381,14 @@ void setup_snap_toolbox(GtkWidget *toolbox, SPDesktop *desktop)
}
{
+ InkToggleAction* act = ink_toggle_action_new("ToggleSnapFromOthers",
+ _("Others"), _("Snap other points (centers, guide origins, gradient handles, etc.)"), INKSCAPE_ICON_SNAP_OTHERS, secondarySize, SP_ATTR_INKSCAPE_SNAP_OTHERS);
+
+ gtk_action_group_add_action( mainActions->gobj(), GTK_ACTION( act ) );
+ g_signal_connect_after( G_OBJECT(act), "toggled", G_CALLBACK(toggle_snap_callback), toolbox );
+ }
+
+ {
InkToggleAction* act = ink_toggle_action_new("ToggleSnapToFromObjectCenters",
_("Object Centers"), _("Snap from and to centers of objects"),
INKSCAPE_ICON_SNAP_NODES_CENTER, secondarySize, SP_ATTR_INKSCAPE_SNAP_OBJECT_MIDPOINTS);
@@ -2388,6 +2407,16 @@ void setup_snap_toolbox(GtkWidget *toolbox, SPDesktop *desktop)
}
{
+ InkToggleAction* act = ink_toggle_action_new("ToggleSnapToFromTextBaseline",
+ _("Text baseline"), _("Snap from and to text anchors and baselines"),
+ INKSCAPE_ICON_SNAP_TEXT_BASELINE, secondarySize, SP_ATTR_INKSCAPE_SNAP_TEXT_BASELINE);
+
+ gtk_action_group_add_action( mainActions->gobj(), GTK_ACTION( act ) );
+ g_signal_connect_after( G_OBJECT(act), "toggled", G_CALLBACK(toggle_snap_callback), toolbox );
+ }
+
+
+ {
InkToggleAction* act = ink_toggle_action_new("ToggleSnapToPageBorder",
_("Page border"), _("Snap to the page border"), INKSCAPE_ICON_SNAP_PAGE,
secondarySize, SP_ATTR_INKSCAPE_SNAP_PAGE);
@@ -2476,8 +2505,10 @@ void ToolboxFactory::updateSnapToolbox(SPDesktop *desktop, SPEventContext * /*ev
Glib::RefPtr<Gtk::Action> act7 = mainActions->get_action("ToggleSnapToItemNode");
Glib::RefPtr<Gtk::Action> act8 = mainActions->get_action("ToggleSnapToSmoothNodes");
Glib::RefPtr<Gtk::Action> act9 = mainActions->get_action("ToggleSnapToFromLineMidpoints");
- Glib::RefPtr<Gtk::Action> act10 = mainActions->get_action("ToggleSnapToFromObjectCenters");
+ Glib::RefPtr<Gtk::Action> act10 = mainActions->get_action("ToggleSnapFromOthers");
+ Glib::RefPtr<Gtk::Action> act10b = mainActions->get_action("ToggleSnapToFromObjectCenters");
Glib::RefPtr<Gtk::Action> act11 = mainActions->get_action("ToggleSnapToFromRotationCenter");
+ Glib::RefPtr<Gtk::Action> act11b = mainActions->get_action("ToggleSnapToFromTextBaseline");
Glib::RefPtr<Gtk::Action> act12 = mainActions->get_action("ToggleSnapToPageBorder");
//Glib::RefPtr<Gtk::Action> act13 = mainActions->get_action("ToggleSnapToGridGuideIntersections");
Glib::RefPtr<Gtk::Action> act14 = mainActions->get_action("ToggleSnapToGrids");
@@ -2524,10 +2555,16 @@ void ToolboxFactory::updateSnapToolbox(SPDesktop *desktop, SPEventContext * /*ev
gtk_action_set_sensitive(GTK_ACTION(act8->gobj()), c1 && c3);
gtk_toggle_action_set_active(GTK_TOGGLE_ACTION(act9->gobj()), nv->snap_manager.snapprefs.getSnapLineMidpoints());
gtk_action_set_sensitive(GTK_ACTION(act9->gobj()), c1 && c3);
- gtk_toggle_action_set_active(GTK_TOGGLE_ACTION(act10->gobj()), nv->snap_manager.snapprefs.getSnapObjectMidpoints());
- gtk_action_set_sensitive(GTK_ACTION(act10->gobj()), c1 && c3);
+
+ bool const c5 = nv->snap_manager.snapprefs.getSnapModeOthers();
+ gtk_toggle_action_set_active(GTK_TOGGLE_ACTION(act10->gobj()), c5);
+ gtk_action_set_sensitive(GTK_ACTION(act10->gobj()), c1);
+ gtk_toggle_action_set_active(GTK_TOGGLE_ACTION(act10b->gobj()), nv->snap_manager.snapprefs.getSnapObjectMidpoints());
+ gtk_action_set_sensitive(GTK_ACTION(act10b->gobj()), c1 && c5);
gtk_toggle_action_set_active(GTK_TOGGLE_ACTION(act11->gobj()), nv->snap_manager.snapprefs.getIncludeItemCenter());
- gtk_action_set_sensitive(GTK_ACTION(act11->gobj()), c1 && c3);
+ gtk_action_set_sensitive(GTK_ACTION(act11->gobj()), c1 && c5);
+ gtk_toggle_action_set_active(GTK_TOGGLE_ACTION(act11b->gobj()), nv->snap_manager.snapprefs.getSnapTextBaseline());
+ gtk_action_set_sensitive(GTK_ACTION(act11->gobj()), c1 && c5);
gtk_toggle_action_set_active(GTK_TOGGLE_ACTION(act12->gobj()), nv->snap_manager.snapprefs.getSnapToPageBorder());
gtk_action_set_sensitive(GTK_ACTION(act12->gobj()), c1);
@@ -2560,8 +2597,8 @@ void ToolboxFactory::showAuxToolbox(GtkWidget *toolbox_toplevel)
static GtkWidget *sp_empty_toolbox_new(SPDesktop *desktop)
{
GtkWidget *tbl = gtk_toolbar_new();
- gtk_object_set_data(GTK_OBJECT(tbl), "dtw", desktop->canvas);
- gtk_object_set_data(GTK_OBJECT(tbl), "desktop", desktop);
+ g_object_set_data(G_OBJECT(tbl), "dtw", desktop->canvas);
+ g_object_set_data(G_OBJECT(tbl), "desktop", desktop);
gtk_widget_show_all(tbl);
sp_set_font_size_smaller (tbl);
@@ -2808,10 +2845,10 @@ static void star_tb_event_attr_changed(Inkscape::XML::Node *repr, gchar const *n
bool isFlatSided = prefs->getBool("/tools/shapes/star/isflatsided", true);
if (!strcmp(name, "inkscape:randomized")) {
- adj = GTK_ADJUSTMENT( gtk_object_get_data(GTK_OBJECT(tbl), "randomized") );
+ adj = GTK_ADJUSTMENT( g_object_get_data(G_OBJECT(tbl), "randomized") );
gtk_adjustment_set_value(adj, sp_repr_get_double_attribute(repr, "inkscape:randomized", 0.0));
} else if (!strcmp(name, "inkscape:rounded")) {
- adj = GTK_ADJUSTMENT( gtk_object_get_data(GTK_OBJECT(tbl), "rounded") );
+ adj = GTK_ADJUSTMENT( g_object_get_data(G_OBJECT(tbl), "rounded") );
gtk_adjustment_set_value(adj, sp_repr_get_double_attribute(repr, "inkscape:rounded", 0.0));
} else if (!strcmp(name, "inkscape:flatsided")) {
GtkAction* prop_action = GTK_ACTION( g_object_get_data(G_OBJECT(tbl), "prop_action") );
@@ -2825,7 +2862,7 @@ static void star_tb_event_attr_changed(Inkscape::XML::Node *repr, gchar const *n
gtk_action_set_sensitive( prop_action, FALSE );
}
} else if ((!strcmp(name, "sodipodi:r1") || !strcmp(name, "sodipodi:r2")) && (!isFlatSided) ) {
- adj = (GtkAdjustment*)gtk_object_get_data(GTK_OBJECT(tbl), "proportion");
+ adj = (GtkAdjustment*)g_object_get_data(G_OBJECT(tbl), "proportion");
gdouble r1 = sp_repr_get_double_attribute(repr, "sodipodi:r1", 1.0);
gdouble r2 = sp_repr_get_double_attribute(repr, "sodipodi:r2", 1.0);
if (r2 < r1) {
@@ -2834,7 +2871,7 @@ static void star_tb_event_attr_changed(Inkscape::XML::Node *repr, gchar const *n
gtk_adjustment_set_value(adj, r1/r2);
}
} else if (!strcmp(name, "sodipodi:sides")) {
- adj = (GtkAdjustment*)gtk_object_get_data(GTK_OBJECT(tbl), "magnitude");
+ adj = (GtkAdjustment*)g_object_get_data(G_OBJECT(tbl), "magnitude");
gtk_adjustment_set_value(adj, sp_repr_get_int_attribute(repr, "sodipodi:sides", 0));
}
@@ -2948,7 +2985,7 @@ void sp_toolbox_add_label(GtkWidget *tbl, gchar const *title, bool wide)
} else {
gtk_box_pack_start(GTK_BOX(tbl), boxl, FALSE, FALSE, 0);
}
- gtk_object_set_data(GTK_OBJECT(tbl), "mode_label", l);
+ g_object_set_data(G_OBJECT(tbl), "mode_label", l);
}
@@ -3480,21 +3517,21 @@ static void box3d_resync_toolbar(Inkscape::XML::Node *persp_repr, GObject *data)
return;
}
{
- adj = GTK_ADJUSTMENT(gtk_object_get_data(GTK_OBJECT(tbl), "box3d_angle_x"));
+ adj = GTK_ADJUSTMENT(g_object_get_data(G_OBJECT(tbl), "box3d_angle_x"));
act = GTK_ACTION(g_object_get_data(G_OBJECT(tbl), "box3d_angle_x_action"));
tact = &INK_TOGGLE_ACTION(g_object_get_data(G_OBJECT(tbl), "box3d_vp_x_state_action"))->action;
box3d_set_button_and_adjustment(persp, Proj::X, adj, act, tact);
}
{
- adj = GTK_ADJUSTMENT(gtk_object_get_data(GTK_OBJECT(tbl), "box3d_angle_y"));
+ adj = GTK_ADJUSTMENT(g_object_get_data(G_OBJECT(tbl), "box3d_angle_y"));
act = GTK_ACTION(g_object_get_data(G_OBJECT(tbl), "box3d_angle_y_action"));
tact = &INK_TOGGLE_ACTION(g_object_get_data(G_OBJECT(tbl), "box3d_vp_y_state_action"))->action;
box3d_set_button_and_adjustment(persp, Proj::Y, adj, act, tact);
}
{
- adj = GTK_ADJUSTMENT(gtk_object_get_data(GTK_OBJECT(tbl), "box3d_angle_z"));
+ adj = GTK_ADJUSTMENT(g_object_get_data(G_OBJECT(tbl), "box3d_angle_z"));
act = GTK_ACTION(g_object_get_data(G_OBJECT(tbl), "box3d_angle_z_action"));
tact = &INK_TOGGLE_ACTION(g_object_get_data(G_OBJECT(tbl), "box3d_vp_z_state_action"))->action;
@@ -3861,15 +3898,15 @@ static void sp_spl_tb_defaults(GtkWidget * /*widget*/, GtkObject *obj)
gdouble exp = 1.0;
gdouble t0 = 0.0;
- adj = (GtkAdjustment*)gtk_object_get_data(obj, "revolution");
+ adj = (GtkAdjustment*)g_object_get_data(G_OBJECT(obj), "revolution");
gtk_adjustment_set_value(adj, rev);
gtk_adjustment_value_changed(adj);
- adj = (GtkAdjustment*)gtk_object_get_data(obj, "expansion");
+ adj = (GtkAdjustment*)g_object_get_data(G_OBJECT(obj), "expansion");
gtk_adjustment_set_value(adj, exp);
gtk_adjustment_value_changed(adj);
- adj = (GtkAdjustment*)gtk_object_get_data(obj, "t0");
+ adj = (GtkAdjustment*)g_object_get_data(G_OBJECT(obj), "t0");
gtk_adjustment_set_value(adj, t0);
gtk_adjustment_value_changed(adj);
@@ -3895,13 +3932,13 @@ static void spiral_tb_event_attr_changed(Inkscape::XML::Node *repr,
g_object_set_data(G_OBJECT(tbl), "freeze", GINT_TO_POINTER(TRUE));
GtkAdjustment *adj;
- adj = (GtkAdjustment*)gtk_object_get_data(GTK_OBJECT(tbl), "revolution");
+ adj = (GtkAdjustment*)g_object_get_data(G_OBJECT(tbl), "revolution");
gtk_adjustment_set_value(adj, (sp_repr_get_double_attribute(repr, "sodipodi:revolution", 3.0)));
- adj = (GtkAdjustment*)gtk_object_get_data(GTK_OBJECT(tbl), "expansion");
+ adj = (GtkAdjustment*)g_object_get_data(G_OBJECT(tbl), "expansion");
gtk_adjustment_set_value(adj, (sp_repr_get_double_attribute(repr, "sodipodi:expansion", 1.0)));
- adj = (GtkAdjustment*)gtk_object_get_data(GTK_OBJECT(tbl), "t0");
+ adj = (GtkAdjustment*)g_object_get_data(G_OBJECT(tbl), "t0");
gtk_adjustment_set_value(adj, (sp_repr_get_double_attribute(repr, "sodipodi:t0", 0.0)));
g_object_set_data(G_OBJECT(tbl), "freeze", GINT_TO_POINTER(FALSE));
@@ -4186,7 +4223,7 @@ static void sp_pencil_tb_defaults(GtkWidget * /*widget*/, GtkObject *obj)
// fixme: make settable
gdouble tolerance = 4;
- adj = (GtkAdjustment*)gtk_object_get_data(obj, "tolerance");
+ adj = (GtkAdjustment*)g_object_get_data(G_OBJECT(obj), "tolerance");
gtk_adjustment_set_value(adj, tolerance);
gtk_adjustment_value_changed(adj);
@@ -4633,12 +4670,6 @@ static void sp_spray_standard_deviation_value_changed( GtkAdjustment *adj, GObje
prefs->setDouble( "/tools/spray/standard_deviation", adj->value );
}
-static void sp_spray_pressure_state_changed( GtkToggleAction *act, gpointer /*data*/ )
-{
- Inkscape::Preferences *prefs = Inkscape::Preferences::get();
- prefs->setBool("/tools/spray/usepressure", gtk_toggle_action_get_active(act));
-}
-
static void sp_spray_mode_changed( EgeSelectOneAction *act, GObject * /*tbl*/ )
{
int mode = ege_select_one_action_get_active( act );
@@ -8021,7 +8052,7 @@ static void sp_connector_orthogonal_toggled( GtkToggleAction* act, GObject *tbl
if (cc_item_is_connector(item)) {
item->setAttribute( "inkscape:connector-type",
- value, false);
+ value, NULL);
item->avoidRef->handleSettingChange();
modmade = true;
}
@@ -8070,7 +8101,7 @@ static void connector_curvature_changed(GtkAdjustment *adj, GObject* tbl)
if (cc_item_is_connector(item)) {
item->setAttribute( "inkscape:connector-curvature",
- value, false);
+ value, NULL);
item->avoidRef->handleSettingChange();
modmade = true;
}
@@ -8186,7 +8217,7 @@ static void connector_tb_event_attr_changed(Inkscape::XML::Node *repr,
if ( !g_object_get_data(G_OBJECT(tbl), "freeze")
&& (strcmp(name, "inkscape:connector-spacing") == 0) ) {
- GtkAdjustment *adj = static_cast<GtkAdjustment*>(gtk_object_get_data(GTK_OBJECT(tbl), "spacing"));
+ GtkAdjustment *adj = static_cast<GtkAdjustment*>(g_object_get_data(G_OBJECT(tbl), "spacing"));
gdouble spacing = defaultConnSpacing;
sp_repr_get_double(repr, "inkscape:connector-spacing", &spacing);