public void SetObjectManager(BaseObject bo) { bo.SetObjectManager(this); if (Canvas.Chart != null) { FormulaArea fa = Canvas.Chart[bo.AreaName]; if (fa == null) { fa = Canvas.Chart[0]; bo.AreaName = fa.Name; } bo.Area = fa; } }
public void SetObjectManager(BaseObject bo) { bo.SetObjectManager(this); if (this.Canvas.BackChart != null) { FormulaArea area = this.Canvas.BackChart[bo.AreaName]; if (area == null) { area = this.Canvas.BackChart[0]; bo.AreaName = area.Name; } bo.Area = area; } }
public void Paste() { try { IDataObject ido = Clipboard.GetDataObject(); string s = (string)ido.GetData(typeof(string)); if (s != null) { byte[] bs = Encoding.UTF8.GetBytes(s); MemoryStream ms = new MemoryStream(bs); StreamReader sr = new StreamReader(ms); string t = sr.ReadLine(); Type T = Type.GetType(t); if (T != null) { XmlSerializer xs = new XmlSerializer(T); object o = xs.Deserialize(sr); if (o is BaseObject) { BaseObject bo = o as BaseObject; bo.SetObjectManager(this); FormulaHitInfo fhi = Canvas.Chart.GetHitInfo(CurrentMouseX, CurrentMouseY); FormulaArea fa = fhi.Area; if (fhi.HitType == FormulaHitType.htArea && fa != null) { PointF pf0 = bo.ToPointF(bo.ControlPoints[0]); float DeltaX = CurrentMouseX - pf0.X; float DeltaY = CurrentMouseY - pf0.Y; for (int i = 0; i < bo.ControlPoints.Length; i++) { PointF pf = bo.ToPointF(bo.ControlPoints[i]); bo.ControlPoints[i] = GetValueFromPos(pf.X + DeltaX, pf.Y + DeltaY, ref fa); } AddObject(bo); Invalidate(); } } } } } catch { } }