public bool RemoveElement(ElementInfo elm) { if (elm != null && elm.ParentViewport == this)// && !elm.IsLocked) { bool bIsBack = (Elements.Count > 0 && elm == Elements[0]); elm.OnBeforeRemove(); if (Elements.Remove(elm)) { if (SelectedElementInfo == elm) { SelectedElementInfo = null; } ParentSceneInfo.OnViewportElementRemoved(elm); if (bIsBack) { Elements.Insert(0, null); foreach (var e in Elements) { if (e != null && e != elm) { e.OnViewportBackImageChanged(null, true); } } } return(true); } } return(false); }
public bool AddElement(ElementInfo elm) { if (Elements.Contains(elm)) { return(false); } elm.m_ParentViewport = this; if (Elements.Count == 0 || !(elm is ElementInfo_BackgroundImage)) { Elements.Add(elm); } else { Elements[0] = elm; } if (elm.Resource != null && !elm.Resource.IsLoaded) { elm.Resource.Load(); } elm.OnAfterAdded(); if (elm == Elements[0]) { float zero = 0; elm.Update(0, ref zero); foreach (var e in Elements) { if (e != null && e != elm) { e.OnViewportBackImageChanged(elm as ElementInfo_BackgroundImage, true); } } } else if (BackImage != null) { elm.OnViewportBackImageChanged(BackImage, false); } ParentSceneInfo.OnViewportElementAdded(elm); return(true); }