protected virtual void close() { Closing.Raise(this, null); if (Parent is Interface) { (Parent as Interface).DeleteWidget(this); } else { GraphicObject p = Parent as GraphicObject; if (p is Group) { lock (IFace.UpdateMutex) { RegisterClip(p.ScreenCoordinates(p.LastPaintedSlot)); (p as Group).DeleteChild(this); } //(Parent as Group).RegisterForRedraw (); } else if (Parent is PrivateContainer) { (Parent as Container).Child = null; } } }