X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=src%2Frect-context.cpp;h=bcb1bf7347e615586a761896448014d229fcdf6d;hb=f9aec48f7047a3bef09beb3d61a4bb28e96cf17f;hp=7ae27c13de4327bd5ef3da72083ebe1af389d586;hpb=1fa13559ef379875e427ec176aea683c603fb1bf;p=inkscape.git diff --git a/src/rect-context.cpp b/src/rect-context.cpp index 7ae27c13d..bcb1bf734 100644 --- a/src/rect-context.cpp +++ b/src/rect-context.cpp @@ -1,11 +1,11 @@ -#define __SP_RECT_CONTEXT_C__ - /* * Rectangle drawing context * * Author: * Lauris Kaplinski * bulia byak + * Jon A. Cruz + * Abhishek Sharma * * Copyright (C) 2006 Johan Engelen * Copyright (C) 2000-2005 authors @@ -43,6 +43,8 @@ #include "context-fns.h" #include "shape-editor.h" +using Inkscape::DocumentUndo; + //static const double goldenratio = 1.61803398874989484820; // golden ratio static void sp_rect_context_class_init(SPRectContextClass *klass); @@ -110,6 +112,7 @@ static void sp_rect_context_init(SPRectContext *rect_context) event_context->tolerance = 0; event_context->within_tolerance = false; event_context->item_to_select = NULL; + event_context->tool_url = "/tools/shapes/rect"; rect_context->item = NULL; @@ -284,6 +287,7 @@ static gint sp_rect_context_root_handler(SPEventContext *event_context, GdkEvent SnapManager &m = desktop->namedview->snap_manager; m.setup(desktop); m.freeSnapReturnByRef(button_dt, Inkscape::SNAPSOURCE_NODE_HANDLE); + m.unSetup(); rc->center = from_2geom(button_dt); sp_canvas_item_grab(SP_CANVAS_ITEM(desktop->acetate), @@ -323,7 +327,9 @@ static gint sp_rect_context_root_handler(SPEventContext *event_context, GdkEvent Geom::Point const motion_w(event->motion.x, event->motion.y); Geom::Point motion_dt(desktop->w2d(motion_w)); + m.preSnap(Inkscape::SnapCandidatePoint(motion_dt, Inkscape::SNAPSOURCE_NODE_HANDLE)); + m.unSetup(); } break; case GDK_BUTTON_RELEASE: @@ -462,16 +468,16 @@ static void sp_rect_drag(SPRectContext &rc, Geom::Point const pt, guint state) return; } - /* Create object */ - Inkscape::XML::Document *xml_doc = sp_document_repr_doc(SP_EVENT_CONTEXT_DOCUMENT(&rc)); + // Create object + Inkscape::XML::Document *xml_doc = SP_EVENT_CONTEXT_DOCUMENT(&rc)->getReprDoc(); Inkscape::XML::Node *repr = xml_doc->createElement("svg:rect"); - /* Set style */ + // Set style sp_desktop_apply_style_tool (desktop, repr, "/tools/shapes/rect", false); rc.item = (SPItem *) desktop->currentLayer()->appendChildRepr(repr); Inkscape::GC::release(repr); - rc.item->transform = sp_item_i2doc_affine(SP_ITEM(desktop->currentLayer())).inverse(); + rc.item->transform = SP_ITEM(desktop->currentLayer())->i2doc_affine().inverse(); rc.item->updateRepr(); sp_canvas_force_full_redraw_after_interruptions(desktop->canvas, 5); @@ -545,8 +551,8 @@ static void sp_rect_finish(SPRectContext *rc) sp_canvas_end_forced_full_redraws(desktop->canvas); sp_desktop_selection(desktop)->set(rc->item); - sp_document_done(sp_desktop_document(desktop), SP_VERB_CONTEXT_RECT, - _("Create rectangle")); + DocumentUndo::done(sp_desktop_document(desktop), SP_VERB_CONTEXT_RECT, + _("Create rectangle")); rc->item = NULL; } @@ -571,7 +577,7 @@ static void sp_rect_cancel(SPRectContext *rc) sp_canvas_end_forced_full_redraws(desktop->canvas); - sp_document_cancel(sp_desktop_document(desktop)); + DocumentUndo::cancel(sp_desktop_document(desktop)); } @@ -584,4 +590,4 @@ static void sp_rect_cancel(SPRectContext *rc) fill-column:99 End: */ -// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:encoding=utf-8:textwidth=99 : +// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:fileencoding=utf-8:textwidth=99 :