public void SendToBack(Figure figure)
        {
            if (!Includes (figure))
                return;

            FigureCollection.Remove (figure);
            FigureCollection.Insert (0, figure);
            figure.Invalidate ();
        }
        public override sealed void Remove(Figure figure)
        {
            if (!FigureCollection.Contains (figure))
                return;

            figure.Parent = null;
            FigureCollection.Remove (figure);
            figure.FigureInvalidated -= OnChildInvalidated;
            figure.Invalidate ();
            OnChildRemoved (new FigureEventArgs (figure, figure.DisplayBox));
        }
        public void BringToFront(Figure figure)
        {
            if (!Includes (figure))
                return;

            FigureCollection.Remove (figure);
            FigureCollection.Add (figure);
            figure.Invalidate ();
        }
        public override sealed void Add(Figure figure)
        {
            if (FigureCollection.Contains (figure))
                return;

            if (figure.Parent != null) {
                throw new Exception ("Can't add a figure which already has a parent");
            }

            FigureCollection.Add (figure);
            figure.Parent = this;
            figure.FigureInvalidated += OnChildInvalidated;
            figure.Invalidate ();
            OnChildAdded (new FigureEventArgs (figure, figure.DisplayBox));
        }
 public void RemoveFromSelection(Figure figure)
 {
     selection.Remove (figure);
     figure.SetAttribute (FigureAttribute.Selected, false);
     figure.Invalidate ();
 }
 public void AddToSelection(Figure figure)
 {
     if (!IsFigureSelected (figure) && Drawing.Includes (figure)) {
         selection.Add (figure);
         figure.SetAttribute (FigureAttribute.Selected, true);
         figure.Invalidate ();
     }
 }