index f1c5993edb5fd2522140051bde78a0651eb38937..1cab38d98151d11efa90839cc84a8ebcc2d51217 100644 (file)
-/**
- * \brief Object Transformation dialog
- *
- * Authors:
+/** @file
+ * \brief Transform dialog - implementation
+ */
+/* Authors:
* Bryce W. Harrington <bryce@bryceharrington.org>
* buliabyak@gmail.com
*
* Copyright (C) 2004, 2005 Authors
- *
* Released under GNU GPL. Read the file 'COPYING' for more information.
*/
#endif
#include <gtkmm/stock.h>
+#include <gtkmm/dialog.h>
#include "document.h"
#include "desktop-handles.h"
#include "transformation.h"
+#include "align-and-distribute.h"
#include "libnr/nr-matrix-ops.h"
#include "inkscape.h"
#include "selection.h"
#include "selection-chemistry.h"
#include "verbs.h"
-#include "prefs-utils.h"
+#include "preferences.h"
#include "sp-item-transform.h"
#include "macros.h"
#include "sp-item.h"
+#include "util/glib-list-iterators.h"
namespace Inkscape {
namespace UI {
namespace Dialog {
-void on_selection_changed(Inkscape::Application *inkscape, Inkscape::Selection *selection, Transformation *daad)
+void on_selection_changed(Inkscape::Application */*inkscape*/, Inkscape::Selection *selection, Transformation *daad)
{
int page = daad->getCurrentPage();
daad->updateSelection((Inkscape::UI::Dialog::Transformation::PageType)page, selection);
}
-void on_selection_modified ( Inkscape::Application *inkscape,
- Inkscape::Selection *selection,
- guint flags,
- Transformation *daad )
+void on_selection_modified( Inkscape::Application */*inkscape*/,
+ Inkscape::Selection *selection,
+ guint /*flags*/,
+ Transformation *daad )
{
int page = daad->getCurrentPage();
daad->updateSelection((Inkscape::UI::Dialog::Transformation::PageType)page, selection);
* we use the ScalarUnit class for this.
*
*/
-Transformation::Transformation(Behavior::BehaviorFactory behavior_factory)
- : Dialog (behavior_factory, "dialogs.transformation", SP_VERB_DIALOG_TRANSFORM),
+Transformation::Transformation()
+ : UI::Widget::Panel ("", "/dialogs/transformation", SP_VERB_DIALOG_TRANSFORM),
_page_move (4, 2),
_page_scale (4, 2),
_page_rotate (4, 2),
_page_skew (4, 2),
_page_transform (3, 3),
- _scalar_move_horizontal (_("_Horizontal"), _("Horizontal displacement (relative) or position (absolute)"), UNIT_TYPE_LINEAR,
- "", "arrows_hor", &_units_move),
- _scalar_move_vertical (_("_Vertical"), _("Vertical displacement (relative) or position (absolute)"), UNIT_TYPE_LINEAR,
- "", "arrows_ver", &_units_move),
- _scalar_scale_horizontal(_("_Width"), _("Horizontal size (absolute or percentage of current)"), UNIT_TYPE_DIMENSIONLESS,
- "", "transform_scale_hor", &_units_scale),
- _scalar_scale_vertical (_("_Height"), _("Vertical size (absolute or percentage of current)"), UNIT_TYPE_DIMENSIONLESS,
- "", "transform_scale_ver", &_units_scale),
- _scalar_rotate (_("A_ngle"), _("Rotation angle (positive = counterclockwise)"), UNIT_TYPE_RADIAL,
- "", "transform_rotate", &_units_rotate),
- _scalar_skew_horizontal (_("_Horizontal"), _("Horizontal skew angle (positive = counterclockwise), or absolute displacement, or percentage displacement"), UNIT_TYPE_LINEAR,
- "", "transform_scew_hor", &_units_skew),
- _scalar_skew_vertical (_("_Vertical"), _("Vertical skew angle (positive = counterclockwise), or absolute displacement, or percentage displacement"), UNIT_TYPE_LINEAR,
- "", "transform_scew_ver", &_units_skew),
+ _scalar_move_horizontal (_("_Horizontal"), _("Horizontal displacement (relative) or position (absolute)"), UNIT_TYPE_LINEAR,
+ "", "transform-move-horizontal", &_units_move),
+ _scalar_move_vertical (_("_Vertical"), _("Vertical displacement (relative) or position (absolute)"), UNIT_TYPE_LINEAR,
+ "", "transform-move-vertical", &_units_move),
+ _scalar_scale_horizontal(_("_Width"), _("Horizontal size (absolute or percentage of current)"), UNIT_TYPE_DIMENSIONLESS,
+ "", "transform-scale-horizontal", &_units_scale),
+ _scalar_scale_vertical (_("_Height"), _("Vertical size (absolute or percentage of current)"), UNIT_TYPE_DIMENSIONLESS,
+ "", "transform-scale-vertical", &_units_scale),
+ _scalar_rotate (_("A_ngle"), _("Rotation angle (positive = counterclockwise)"), UNIT_TYPE_RADIAL,
+ "", "transform-rotate", &_units_rotate),
+ _scalar_skew_horizontal (_("_Horizontal"), _("Horizontal skew angle (positive = counterclockwise), or absolute displacement, or percentage displacement"), UNIT_TYPE_LINEAR,
+ "", "transform-skew-horizontal", &_units_skew),
+ _scalar_skew_vertical (_("_Vertical"), _("Vertical skew angle (positive = counterclockwise), or absolute displacement, or percentage displacement"), UNIT_TYPE_LINEAR,
+ "", "transform-skew-vertical", &_units_skew),
_scalar_transform_a ("_A", _("Transformation matrix element A")),
_scalar_transform_b ("_B", _("Transformation matrix element B")),
_check_replace_matrix (_("Edit c_urrent matrix"), _("Edit the current transform= matrix; otherwise, post-multiply transform= by this matrix"))
{
- // Top level vbox
- Gtk::VBox *vbox = get_vbox();
- vbox->set_spacing(0);
+ Gtk::Box *contents = _getContents();
+
+ contents->set_spacing(0);
// Notebook for individual transformations
- vbox->pack_start(_notebook, true, true);
+ contents->pack_start(_notebook, true, true);
_notebook.append_page(_page_move, _("_Move"), true);
layoutPageMove();
_notebook.signal_switch_page().connect(sigc::mem_fun(*this, &Transformation::onSwitchPage));
// Apply separately
- vbox->pack_start(_check_apply_separately, true, true);
- _check_apply_separately.set_active(prefs_get_int_attribute_limited ("dialogs.transformation", "applyseparately", 0, 0, 1));
+ contents->pack_start(_check_apply_separately, true, true);
+ Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+ _check_apply_separately.set_active(prefs->getBool("/dialogs/transformation/applyseparately"));
_check_apply_separately.signal_toggled().connect(sigc::mem_fun(*this, &Transformation::onApplySeparatelyToggled));
// make sure all spinbuttons activate Apply on pressing Enter
updateSelection(PAGE_MOVE, _getSelection());
- resetButton = add_button(Gtk::Stock::CLEAR, 0);
+ resetButton = addResponseButton(Gtk::Stock::CLEAR, 0);
if (resetButton) {
- tooltips.set_tip((*resetButton), _("Reset the values on the current tab to defaults"));
+ _tooltips.set_tip((*resetButton), _("Reset the values on the current tab to defaults"));
resetButton->set_sensitive(true);
resetButton->signal_clicked().connect(sigc::mem_fun(*this, &Transformation::onClear));
}
- applyButton = add_button(Gtk::Stock::APPLY, Gtk::RESPONSE_APPLY);
+ applyButton = addResponseButton(Gtk::Stock::APPLY, Gtk::RESPONSE_APPLY);
if (applyButton) {
- tooltips.set_tip((*applyButton), _("Apply transformation to selection"));
+ _tooltips.set_tip((*applyButton), _("Apply transformation to selection"));
applyButton->set_sensitive(false);
- set_default (*applyButton); // activable by Enter in spinbuttons
}
// Connect to the global selection changed & modified signals
}
-
/*########################################################################
# U T I L I T Y
########################################################################*/
@@ -439,26 +440,27 @@ Transformation::updateSelection(PageType page, Inkscape::Selection *selection)
}
}
- set_response_sensitive(Gtk::RESPONSE_APPLY,
- selection && !selection->isEmpty());
+ setResponseSensitive(Gtk::RESPONSE_APPLY,
+ selection && !selection->isEmpty());
}
void
-Transformation::onSwitchPage(GtkNotebookPage *page,
+Transformation::onSwitchPage(GtkNotebookPage */*page*/,
guint pagenum)
{
- updateSelection((PageType)pagenum, sp_desktop_selection(SP_ACTIVE_DESKTOP));
+ updateSelection((PageType)pagenum, sp_desktop_selection(getDesktop()));
}
+
void
Transformation::updatePageMove(Inkscape::Selection *selection)
{
if (selection && !selection->isEmpty()) {
if (!_check_move_relative.get_active()) {
- NR::Maybe<NR::Rect> bbox = selection->bounds();
+ Geom::OptRect bbox = selection->bounds();
if (bbox) {
- double x = bbox->min()[NR::X];
- double y = bbox->min()[NR::Y];
+ double x = bbox->min()[Geom::X];
+ double y = bbox->min()[Geom::Y];
_scalar_move_horizontal.setValue(x, "px");
_scalar_move_vertical.setValue(y, "px");
Transformation::updatePageScale(Inkscape::Selection *selection)
{
if (selection && !selection->isEmpty()) {
- NR::Maybe<NR::Rect> bbox = selection->bounds();
+ Geom::OptRect bbox = selection->bounds();
if (bbox) {
- double w = bbox->extent(NR::X);
- double h = bbox->extent(NR::Y);
+ double w = bbox->dimensions()[Geom::X];
+ double h = bbox->dimensions()[Geom::Y];
_scalar_scale_horizontal.setHundredPercent(w);
_scalar_scale_vertical.setHundredPercent(h);
onScaleXValueChanged(); // to update x/y proportionality if switch is on
Transformation::updatePageSkew(Inkscape::Selection *selection)
{
if (selection && !selection->isEmpty()) {
- _page_skew.set_sensitive(true);
+ Geom::OptRect bbox = selection->bounds();
+ if (bbox) {
+ double w = bbox->dimensions()[Geom::X];
+ double h = bbox->dimensions()[Geom::Y];
+ _scalar_skew_vertical.setHundredPercent(w);
+ _scalar_skew_horizontal.setHundredPercent(h);
+ _page_skew.set_sensitive(true);
+ } else {
+ _page_skew.set_sensitive(false);
+ }
} else {
_page_skew.set_sensitive(false);
}
{
if (selection && !selection->isEmpty()) {
if (_check_replace_matrix.get_active()) {
- NR::Matrix current (SP_ITEM(selection->itemList()->data)->transform); // take from the first item in selection
+ Geom::Matrix current (SP_ITEM(selection->itemList()->data)->transform); // take from the first item in selection
- NR::Matrix new_displayed = current;
+ Geom::Matrix new_displayed = current;
_scalar_transform_a.setValue(new_displayed[0]);
_scalar_transform_b.setValue(new_displayed[1]);
}
//Let's play with never turning this off
- //set_response_sensitive(Gtk::RESPONSE_APPLY, false);
+ //setResponseSensitive(Gtk::RESPONSE_APPLY, false);
}
void
double x = _scalar_move_horizontal.getValue("px");
double y = _scalar_move_vertical.getValue("px");
- if (_check_move_relative.get_active()) {
- sp_selection_move_relative(selection, x, y);
+ Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+ if (!prefs->getBool("/dialogs/transformation/applyseparately")) {
+ // move selection as a whole
+ if (_check_move_relative.get_active()) {
+ sp_selection_move_relative(selection, x, y);
+ } else {
+ Geom::OptRect bbox = selection->bounds();
+ if (bbox) {
+ sp_selection_move_relative(selection,
+ x - bbox->min()[Geom::X], y - bbox->min()[Geom::Y]);
+ }
+ }
} else {
- NR::Maybe<NR::Rect> bbox = selection->bounds();
- if (bbox) {
- sp_selection_move_relative(selection,
- x - bbox->min()[NR::X], y - bbox->min()[NR::Y]);
+
+ if (_check_move_relative.get_active()) {
+ // shift each object relatively to the previous one
+ using Inkscape::Util::GSListConstIterator;
+ std::list<SPItem *> selected;
+ selected.insert<GSListConstIterator<SPItem *> >(selected.end(), selection->itemList(), NULL);
+ if (selected.empty()) return;
+
+ if (fabs(x) > 1e-6) {
+ std::vector< BBoxSort > sorted;
+ for (std::list<SPItem *>::iterator it(selected.begin());
+ it != selected.end();
+ ++it)
+ {
+ Geom::OptRect bbox = sp_item_bbox_desktop(*it);
+ if (bbox) {
+ sorted.push_back(BBoxSort(*it, *bbox, Geom::X, x > 0? 1. : 0., x > 0? 0. : 1.));
+ }
+ }
+ //sort bbox by anchors
+ std::sort(sorted.begin(), sorted.end());
+
+ double move = x;
+ for ( std::vector<BBoxSort> ::iterator it (sorted.begin());
+ it < sorted.end();
+ it ++ )
+ {
+ sp_item_move_rel(it->item, Geom::Translate(move, 0));
+ // move each next object by x relative to previous
+ move += x;
+ }
+ }
+ if (fabs(y) > 1e-6) {
+ std::vector< BBoxSort > sorted;
+ for (std::list<SPItem *>::iterator it(selected.begin());
+ it != selected.end();
+ ++it)
+ {
+ Geom::OptRect bbox = sp_item_bbox_desktop(*it);
+ if (bbox) {
+ sorted.push_back(BBoxSort(*it, *bbox, Geom::Y, y > 0? 1. : 0., y > 0? 0. : 1.));
+ }
+ }
+ //sort bbox by anchors
+ std::sort(sorted.begin(), sorted.end());
+
+ double move = y;
+ for ( std::vector<BBoxSort> ::iterator it (sorted.begin());
+ it < sorted.end();
+ it ++ )
+ {
+ sp_item_move_rel(it->item, Geom::Translate(0, move));
+ // move each next object by x relative to previous
+ move += y;
+ }
+ }
+ } else {
+ Geom::OptRect bbox = selection->bounds();
+ if (bbox) {
+ sp_selection_move_relative(selection,
+ x - bbox->min()[Geom::X], y - bbox->min()[Geom::Y]);
+ }
}
}
- sp_document_done ( sp_desktop_document (selection->desktop()) , SP_VERB_DIALOG_TRANSFORM,
+ sp_document_done ( sp_desktop_document (selection->desktop()) , SP_VERB_DIALOG_TRANSFORM,
_("Move"));
}
double scaleX = _scalar_scale_horizontal.getValue("px");
double scaleY = _scalar_scale_vertical.getValue("px");
- if (prefs_get_int_attribute_limited ("dialogs.transformation", "applyseparately", 0, 0, 1) == 1) {
+ Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+ if (prefs->getBool("/dialogs/transformation/applyseparately")) {
for (GSList const *l = selection->itemList(); l != NULL; l = l->next) {
SPItem *item = SP_ITEM(l->data);
- NR::scale scale (0,0);
- // the values are increments!
+ Geom::Scale scale (0,0);
+ // the values are increments!
if (_units_scale.isAbsolute()) {
- NR::Maybe<NR::Rect> bbox(sp_item_bbox_desktop(item));
+ Geom::OptRect bbox(sp_item_bbox_desktop(item));
if (bbox) {
double new_width = scaleX;
- if (new_width < 1e-6) new_width = 1e-6; // not 0, as this would result in a nasty no-bbox object
+ if (fabs(new_width) < 1e-6) new_width = 1e-6; // not 0, as this would result in a nasty no-bbox object
double new_height = scaleY;
- if (new_height < 1e-6) new_height = 1e-6;
- scale = NR::scale(new_width / bbox->extent(NR::X), new_height / bbox->extent(NR::Y));
+ if (fabs(new_height) < 1e-6) new_height = 1e-6;
+ scale = Geom::Scale(new_width / bbox->dimensions()[Geom::X], new_height / bbox->dimensions()[Geom::Y]);
}
} else {
double new_width = scaleX;
- if (new_width < 1e-6) new_width = 1e-6;
+ if (fabs(new_width) < 1e-6) new_width = 1e-6;
double new_height = scaleY;
- if (new_height < 1e-6) new_height = 1e-6;
- scale = NR::scale(new_width / 100.0, new_height / 100.0);
+ if (fabs(new_height) < 1e-6) new_height = 1e-6;
+ scale = Geom::Scale(new_width / 100.0, new_height / 100.0);
}
sp_item_scale_rel (item, scale);
}
} else {
- NR::Maybe<NR::Rect> bbox(selection->bounds());
+ Geom::OptRect bbox(selection->bounds());
if (bbox) {
- NR::Point center(bbox->midpoint()); // use rotation center?
- NR::scale scale (0,0);
+ Geom::Point center(bbox->midpoint()); // use rotation center?
+ Geom::Scale scale (0,0);
// the values are increments!
if (_units_scale.isAbsolute()) {
double new_width = scaleX;
- if (new_width < 1e-6) new_width = 1e-6;
+ if (fabs(new_width) < 1e-6) new_width = 1e-6;
double new_height = scaleY;
- if (new_height < 1e-6) new_height = 1e-6;
- scale = NR::scale(new_width / bbox->extent(NR::X), new_height / bbox->extent(NR::Y));
+ if (fabs(new_height) < 1e-6) new_height = 1e-6;
+ scale = Geom::Scale(new_width / bbox->dimensions()[Geom::X], new_height / bbox->dimensions()[Geom::Y]);
} else {
double new_width = scaleX;
- if (new_width < 1e-6) new_width = 1e-6;
+ if (fabs(new_width) < 1e-6) new_width = 1e-6;
double new_height = scaleY;
- if (new_height < 1e-6) new_height = 1e-6;
- scale = NR::scale(new_width / 100.0, new_height / 100.0);
+ if (fabs(new_height) < 1e-6) new_height = 1e-6;
+ scale = Geom::Scale(new_width / 100.0, new_height / 100.0);
}
sp_selection_scale_relative(selection, center, scale);
}
}
- sp_document_done(sp_desktop_document(selection->desktop()), SP_VERB_DIALOG_TRANSFORM,
+ sp_document_done(sp_desktop_document(selection->desktop()), SP_VERB_DIALOG_TRANSFORM,
_("Scale"));
}
{
double angle = _scalar_rotate.getValue("deg");
- if (prefs_get_int_attribute_limited ("dialogs.transformation", "applyseparately", 0, 0, 1) == 1) {
+ Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+ if (prefs->getBool("/dialogs/transformation/applyseparately")) {
for (GSList const *l = selection->itemList(); l != NULL; l = l->next) {
SPItem *item = SP_ITEM(l->data);
- sp_item_rotate_rel(item, NR::rotate (angle*M_PI/180.0));
+ sp_item_rotate_rel(item, Geom::Rotate (angle*M_PI/180.0));
}
} else {
- NR::Maybe<NR::Point> center = selection->center();
+ boost::optional<Geom::Point> center = selection->center();
if (center) {
sp_selection_rotate_relative(selection, *center, angle);
}
}
- sp_document_done(sp_desktop_document(selection->desktop()), SP_VERB_DIALOG_TRANSFORM,
+ sp_document_done(sp_desktop_document(selection->desktop()), SP_VERB_DIALOG_TRANSFORM,
_("Rotate"));
}
void
Transformation::applyPageSkew(Inkscape::Selection *selection)
{
- if (prefs_get_int_attribute_limited ("dialogs.transformation", "applyseparately", 0, 0, 1) == 1) {
+ Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+ if (prefs->getBool("/dialogs/transformation/applyseparately")) {
for (GSList const *l = selection->itemList(); l != NULL; l = l->next) {
SPItem *item = SP_ITEM(l->data);
} else { // absolute displacement
double skewX = _scalar_skew_horizontal.getValue("px");
double skewY = _scalar_skew_vertical.getValue("px");
- NR::Maybe<NR::Rect> bbox(sp_item_bbox_desktop(item));
+ Geom::OptRect bbox(sp_item_bbox_desktop(item));
if (bbox) {
- double width = bbox->extent(NR::X);
- double height = bbox->extent(NR::Y);
+ double width = bbox->dimensions()[Geom::X];
+ double height = bbox->dimensions()[Geom::Y];
sp_item_skew_rel (item, skewX/height, skewY/width);
}
}
}
} else { // transform whole selection
- NR::Maybe<NR::Rect> bbox = selection->bounds();
- NR::Maybe<NR::Point> center = selection->center();
+ Geom::OptRect bbox = selection->bounds();
+ boost::optional<Geom::Point> center = selection->center();
if ( bbox && center ) {
- double width = bbox->extent(NR::X);
- double height = bbox->extent(NR::Y);
+ double width = bbox->dimensions()[Geom::X];
+ double height = bbox->dimensions()[Geom::Y];
if (!_units_skew.isAbsolute()) { // percentage
double skewX = _scalar_skew_horizontal.getValue("%");
}
}
- sp_document_done(sp_desktop_document(selection->desktop()), SP_VERB_DIALOG_TRANSFORM,
+ sp_document_done(sp_desktop_document(selection->desktop()), SP_VERB_DIALOG_TRANSFORM,
_("Skew"));
}
double e = _scalar_transform_e.getValue();
double f = _scalar_transform_f.getValue();
- NR::Matrix displayed(a, b, c, d, e, f);
+ Geom::Matrix displayed(a, b, c, d, e, f);
if (_check_replace_matrix.get_active()) {
for (GSList const *l = selection->itemList(); l != NULL; l = l->next) {
sp_selection_apply_affine(selection, displayed); // post-multiply each object's transform
}
- sp_document_done(sp_desktop_document(selection->desktop()), SP_VERB_DIALOG_TRANSFORM,
+ sp_document_done(sp_desktop_document(selection->desktop()), SP_VERB_DIALOG_TRANSFORM,
_("Edit transformation matrix"));
}
void
Transformation::onMoveValueChanged()
{
- set_response_sensitive(Gtk::RESPONSE_APPLY, true);
+ setResponseSensitive(Gtk::RESPONSE_APPLY, true);
}
void
//g_message("onMoveRelativeToggled: %f, %f px\n", x, y);
- NR::Maybe<NR::Rect> bbox = selection->bounds();
+ Geom::OptRect bbox = selection->bounds();
if (bbox) {
if (_check_move_relative.get_active()) {
// From absolute to relative
- _scalar_move_horizontal.setValue(x - bbox->min()[NR::X], "px");
- _scalar_move_vertical.setValue( y - bbox->min()[NR::Y], "px");
+ _scalar_move_horizontal.setValue(x - bbox->min()[Geom::X], "px");
+ _scalar_move_vertical.setValue( y - bbox->min()[Geom::Y], "px");
} else {
// From relative to absolute
- _scalar_move_horizontal.setValue(bbox->min()[NR::X] + x, "px");
- _scalar_move_vertical.setValue( bbox->min()[NR::Y] + y, "px");
+ _scalar_move_horizontal.setValue(bbox->min()[Geom::X] + x, "px");
+ _scalar_move_vertical.setValue( bbox->min()[Geom::Y] + y, "px");
}
}
- set_response_sensitive(Gtk::RESPONSE_APPLY, true);
+ setResponseSensitive(Gtk::RESPONSE_APPLY, true);
}
void
return;
}
- set_response_sensitive(Gtk::RESPONSE_APPLY, true);
+ setResponseSensitive(Gtk::RESPONSE_APPLY, true);
if (_check_scale_proportional.get_active()) {
if (!_units_scale.isAbsolute()) { // percentage, just copy over
return;
}
- set_response_sensitive(Gtk::RESPONSE_APPLY, true);
+ setResponseSensitive(Gtk::RESPONSE_APPLY, true);
if (_check_scale_proportional.get_active()) {
if (!_units_scale.isAbsolute()) { // percentage, just copy over
void
Transformation::onRotateValueChanged()
{
- set_response_sensitive(Gtk::RESPONSE_APPLY, true);
+ setResponseSensitive(Gtk::RESPONSE_APPLY, true);
}
void
Transformation::onSkewValueChanged()
{
- set_response_sensitive(Gtk::RESPONSE_APPLY, true);
+ setResponseSensitive(Gtk::RESPONSE_APPLY, true);
}
void
// a, b, c, d, e ,f);
*/
- set_response_sensitive(Gtk::RESPONSE_APPLY, true);
+ setResponseSensitive(Gtk::RESPONSE_APPLY, true);
}
void
double e = _scalar_transform_e.getValue();
double f = _scalar_transform_f.getValue();
- NR::Matrix displayed (a, b, c, d, e, f);
- NR::Matrix current (SP_ITEM(selection->itemList()->data)->transform); // take from the first item in selection
+ Geom::Matrix displayed (a, b, c, d, e, f);
+ Geom::Matrix current = SP_ITEM(selection->itemList()->data)->transform; // take from the first item in selection
- NR::Matrix new_displayed;
+ Geom::Matrix new_displayed;
if (_check_replace_matrix.get_active()) {
new_displayed = current;
} else {
_scalar_move_horizontal.setValue(0);
_scalar_move_vertical.setValue(0);
} else {
- NR::Maybe<NR::Rect> bbox = selection->bounds();
+ Geom::OptRect bbox = selection->bounds();
if (bbox) {
- _scalar_move_horizontal.setValue(bbox->min()[NR::X], "px");
- _scalar_move_vertical.setValue(bbox->min()[NR::Y], "px");
+ _scalar_move_horizontal.setValue(bbox->min()[Geom::X], "px");
+ _scalar_move_vertical.setValue(bbox->min()[Geom::Y], "px");
}
}
break;
break;
}
case PAGE_SCALE: {
- _scalar_scale_horizontal.setValue(100);
- _scalar_scale_vertical.setValue(100);
+ _scalar_scale_horizontal.setValue(100, "%");
+ _scalar_scale_vertical.setValue(100, "%");
break;
}
case PAGE_SKEW: {
void
Transformation::onApplySeparatelyToggled()
{
- prefs_set_int_attribute ("dialogs.transformation", "applyseparately", _check_apply_separately.get_active()? 1 : 0);
+ Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+ prefs->setBool("/dialogs/transformation/applyseparately", _check_apply_separately.get_active());
}
} // namespace UI
} // namespace Inkscape
-
-
/*
Local Variables:
mode:c++