#include "StdAfx.h" #include ".\actionoffsetitem.h" #include "SigmaDoc.h" #include "SigmaView.h" #include "ActionOffsetItem.h" #include "Visitor.h" NAction::CActionOffsetItem::CActionOffsetItem() : CActionItem(nullptr, 0) { } CActionOffsetItem::CActionOffsetItem(CSigmaDoc * ppDoc, UINT actionType, const CPositionList& list, CPoint2D* pOffset) : CActionItem(ppDoc,actionType) { int num=(int)list.GetCount(); if(num>0) { this->Remember(list); Create(num); for(int i=0;i0) { this->Remember(list); Create(num); for(int i=0;iGetRange(rect); pOne->Offset(offset_x[i],offset_y[i]); pOne->GetRange(range); i++; } //if(GetDoc()->GetSelectItem()) //GetDoc()->GetSelectItem()->ReloadTrackerPath(); Invalidate(rect); Invalidate(range); } void NAction::CActionOffsetItem::accept(CActionVisitor& visitor) { visitor.visit(*this); } void CActionOffsetItem::Undo() { CActionItem::Undo(); CRect8 range(1e100,-1e100,-1e100,1e100); CRect8 rect(1e100,-1e100,-1e100,1e100); int i=0; COne* pOne; POSITION pos = value.GetHeadPosition(); while (pos != NULL) { pOne = (COne*)value.GetNext(pos); pOne->GetRange(rect); pOne->Offset(-offset_x[i],-offset_y[i]); pOne->GetRange(range); i++; } //if(GetDoc()->GetSelectItem()) //GetDoc()->GetSelectItem()->ReloadTrackerPath(); Invalidate(rect); Invalidate(range); }