예제 #1
0
 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);
 }
예제 #2
0
 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);
 }