diff options
| author | Johan B. C. Engelen <jbc.engelen@swissonline.ch> | 2008-03-22 21:19:28 +0000 |
|---|---|---|
| committer | johanengelen <johanengelen@users.sourceforge.net> | 2008-03-22 21:19:28 +0000 |
| commit | a4acda9b2ff714a63e5d1b77b701df0e8f707d0d (patch) | |
| tree | 634cef00c8824ca7146815d335802ba2e6a5695a /src/ui/widget/registered-widget.cpp | |
| parent | update to latest 2geom (diff) | |
| download | inkscape-a4acda9b2ff714a63e5d1b77b701df0e8f707d0d.tar.gz inkscape-a4acda9b2ff714a63e5d1b77b701df0e8f707d0d.zip | |
changes to use RegisteredTransformedPoint as widget for LPE point. not complete
(bzr r5171)
Diffstat (limited to 'src/ui/widget/registered-widget.cpp')
| -rw-r--r-- | src/ui/widget/registered-widget.cpp | 23 |
1 files changed, 21 insertions, 2 deletions
diff --git a/src/ui/widget/registered-widget.cpp b/src/ui/widget/registered-widget.cpp index 1de084f5d..1fd956897 100644 --- a/src/ui/widget/registered-widget.cpp +++ b/src/ui/widget/registered-widget.cpp @@ -481,7 +481,7 @@ RegisteredTransformedPoint::RegisteredTransformedPoint ( const Glib::ustring& la const Glib::ustring& key, Registry& wr, Inkscape::XML::Node* repr_in, SPDocument* doc_in ) : RegisteredWidget<Point> (label, tip), - transform(Geom::identity()) + to_svg(Geom::identity()) { init_parent(key, wr, repr_in, doc_in); @@ -493,6 +493,25 @@ RegisteredTransformedPoint::RegisteredTransformedPoint ( const Glib::ustring& la } void +RegisteredTransformedPoint::setValue(Geom::Point & p) +{ + Geom::Point new_p = p * to_svg.inverse(); + Point::setValue(new_p); // the Point widget should display things in canvas coordinates +} + +void +RegisteredTransformedPoint::setTransform(Geom::Matrix & canvas_to_svg) +{ + // check if matrix is singular / has inverse + if ( ! canvas_to_svg.isSingular() ) { + to_svg = canvas_to_svg; + } else { + // set back to default + to_svg = Geom::identity(); + } +} + +void RegisteredTransformedPoint::on_value_changed() { if (setProgrammatically()) { @@ -505,7 +524,7 @@ RegisteredTransformedPoint::on_value_changed() _wr->setUpdating (true); - Geom::Point pos = getValue() * transform; + Geom::Point pos = getValue() * to_svg; Inkscape::SVGOStringStream os; os << pos; |
