public void Add(XnaDrawObject obj) { // insert to the top of z-order _graphicsList.Insert(0, obj); var create = new XnaCreateCommand(obj, _graphicsList); _undoRedo.AddCommand(create); }
XnaDrawObject CreateGroup(SvgGroup svg) { XnaDrawObject o = null; SvgElement child = svg.getChild(); if (child != null) { AddFromSvg(child); } return(o); }
XnaDrawObject CreateXnaDrawObject(SvgElement svge) { XnaDrawObject o = null; switch (svge.getElementType()) { case SvgElement._SvgElementType.typeLine: o = XnaDrawLine.Create((SvgLine )svge); break; case SvgElement._SvgElementType.typeRect: o = XnaDrawRectangle.Create((SvgRect )svge); break; case SvgElement._SvgElementType.typeEllipse: o = DrawEllipse.Create((SvgEllipse )svge); break; case SvgElement._SvgElementType.typePolyline: o = XnaDrawPolygon.Create((SvgPolyline )svge); break; case SvgElement._SvgElementType.typeImage: o = DrawImage.Create((SvgImage )svge); break; case SvgElement._SvgElementType.typeText: o = XnaDrawText.Create((SvgText )svge); break; case SvgElement._SvgElementType.typeGroup: o = CreateGroup((SvgGroup )svge); break; case SvgElement._SvgElementType.typePath: o = XnaDrawPath.Create((SvgPath)svge); break; case SvgElement._SvgElementType.typeDesc: Description = ((SvgDesc)svge).Value; break; default: break; } return(o); }
// ************** Read from SVG public void AddFromSvg(SvgElement ele) { while (ele != null) { XnaDrawObject o = CreateXnaDrawObject(ele); if (o != null) { Add(o); } SvgElement child = ele.getChild(); while (child != null) { AddFromSvg(child); child = child.getNext(); } ele = ele.getNext(); } }
public void ResizeCommand(XnaDrawObject obj, Point old, Point newP, int handle) { var cmd = new ResizeCommand(obj, old, newP, handle); _undoRedo.AddCommand(cmd); }