/// <summary> /// Moves a display object (source) to before another display object (target) /// </summary> /// <param name="source"></param> /// <param name="target">Specify null to move to end</param> public void MoveToBefore(IRenderable source, IRenderable target) { int sourceIndex = IndexOf(source); int targetIndex = -2; if (target != null) { targetIndex = IndexOf(target); } if (sourceIndex == -1 || targetIndex == -1 || sourceIndex == targetIndex) { return; } DisplayObjectEntry temp = displayObjects[sourceIndex]; displayObjects.RemoveAt(sourceIndex); if (targetIndex == -2) { displayObjects.Add(temp); } else if (targetIndex < sourceIndex) { displayObjects.Insert(targetIndex, temp); } else { displayObjects.Insert(targetIndex - 1, temp); } OnZOrderChanged(); }
public IRenderable this[string name] { get { DisplayObjectEntry entry = displayObjects.Find(delegate(DisplayObjectEntry ent) { return(ent.displayObject.Name == name); }); if (entry != null) { return(entry.displayObject); } else { return(null); } } }
public void MoveToBottom(IRenderable source) { int sourceIndex = IndexOf(source); if (sourceIndex != -1) { DisplayObjectEntry temp = displayObjects[sourceIndex]; displayObjects.RemoveAt(sourceIndex); displayObjects.Insert(0, temp); OnZOrderChanged(); } }
public void MoveUp(IRenderable displayObject) { int index = IndexOf(displayObject); if (index != -1 && index < displayObjects.Count - 1) { // swap the entries DisplayObjectEntry temp = displayObjects[index]; displayObjects[index] = displayObjects[index + 1]; displayObjects[index + 1] = temp; OnZOrderChanged(); } }
public void MoveDown(IRenderable displayObject) { // find the entry int index = IndexOf(displayObject); if (index > 0) { // swap the entries DisplayObjectEntry temp = displayObjects[index]; displayObjects[index] = displayObjects[index - 1]; displayObjects[index - 1] = temp; OnZOrderChanged(); } }