X-Git-Url: https://git.tokkee.org/?p=inkscape.git;a=blobdiff_plain;f=src%2Fstar-context.cpp;h=0fb20a2ab0a044ac928e5acc24ce919d162c7e6b;hp=61646ceee7cc79d0fe47eac6496685e2514712ed;hb=9dc68827cbd515262ecb8d5ae8547d9e82c72e00;hpb=072de79e6270f4137fa48a8a73491e8a0904d8f8 diff --git a/src/star-context.cpp b/src/star-context.cpp index 61646ceee..0fb20a2ab 100644 --- a/src/star-context.cpp +++ b/src/star-context.cpp @@ -1,5 +1,3 @@ -#define __SP_STAR_CONTEXT_C__ - /* * Star drawing context * @@ -7,6 +5,8 @@ * Mitsuru Oka * Lauris Kaplinski * bulia byak + * Jon A. Cruz + * Abhishek Sharma * * Copyright (C) 1999-2002 Lauris Kaplinski * Copyright (C) 2001-2002 Mitsuru Oka @@ -47,6 +47,8 @@ #include "star-context.h" +using Inkscape::DocumentUndo; + static void sp_star_context_class_init (SPStarContextClass * klass); static void sp_star_context_init (SPStarContext * star_context); static void sp_star_context_dispose (GObject *object); @@ -111,6 +113,7 @@ sp_star_context_init (SPStarContext * star_context) event_context->tolerance = 0; event_context->within_tolerance = false; event_context->item_to_select = NULL; + event_context->tool_url = "/tools/shapes/star"; star_context->item = NULL; @@ -260,7 +263,7 @@ static gint sp_star_context_root_handler(SPEventContext *event_context, GdkEvent SnapManager &m = desktop->namedview->snap_manager; m.setup(desktop, true); m.freeSnapReturnByRef(sc->center, Inkscape::SNAPSOURCE_NODE_HANDLE); - + m.unSetup(); sp_canvas_item_grab(SP_CANVAS_ITEM(desktop->acetate), GDK_KEY_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_POINTER_MOTION_MASK | @@ -297,7 +300,9 @@ static gint sp_star_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: @@ -422,12 +427,12 @@ static void sp_star_drag(SPStarContext *sc, Geom::Point p, guint state) return; } - /* Create object */ - Inkscape::XML::Document *xml_doc = sp_document_repr_doc(SP_EVENT_CONTEXT_DOCUMENT(sc)); + // Create object + Inkscape::XML::Document *xml_doc = SP_EVENT_CONTEXT_DOCUMENT(sc)->getReprDoc(); Inkscape::XML::Node *repr = xml_doc->createElement("svg:path"); repr->setAttribute("sodipodi:type", "star"); - /* Set style */ + // Set style sp_desktop_apply_style_tool(desktop, repr, "/tools/shapes/star", false); sc->item = SP_ITEM(desktop->currentLayer()->appendChildRepr(repr)); @@ -443,7 +448,7 @@ static void sp_star_drag(SPStarContext *sc, Geom::Point p, guint state) m.setup(desktop, true, sc->item); Geom::Point pt2g = to_2geom(p); m.freeSnapReturnByRef(pt2g, Inkscape::SNAPSOURCE_NODE_HANDLE); - + m.unSetup(); Geom::Point const p0 = desktop->dt2doc(sc->center); Geom::Point const p1 = desktop->dt2doc(pt2g); @@ -499,8 +504,8 @@ sp_star_finish (SPStarContext * sc) sp_canvas_end_forced_full_redraws(desktop->canvas); sp_desktop_selection(desktop)->set(sc->item); - SPDocumentUndo::done(sp_desktop_document(desktop), SP_VERB_CONTEXT_STAR, - _("Create star")); + DocumentUndo::done(sp_desktop_document(desktop), SP_VERB_CONTEXT_STAR, + _("Create star")); sc->item = NULL; } @@ -525,7 +530,7 @@ static void sp_star_cancel(SPStarContext *sc) sp_canvas_end_forced_full_redraws(desktop->canvas); - SPDocumentUndo::cancel(sp_desktop_document(desktop)); + DocumentUndo::cancel(sp_desktop_document(desktop)); } /* @@ -537,4 +542,4 @@ static void sp_star_cancel(SPStarContext *sc) 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 :