/// <summary>
/// Adds a 2d element to this overlay.
/// </summary>
/// <remarks>
/// Containers are created and managed using the GuiManager. A container
/// could be as simple as a square panel, or something more complex like
/// a grid or tree view. Containers group collections of other elements,
/// giving them a relative coordinate space and a common z-order.
/// If you want to attach a gui widget to an overlay, you have to do it via
/// a container.
/// </remarks>
/// <param name="element"></param>
public void AddElement(OverlayElementContainer element)
{
elementList.Add(element);
elementLookup.Add(element.Name, element);
// notify the parent
element.NotifyParent(null, this);
// Set Z order, scaled to separate overlays
// max 100 container levels per overlay, should be plenty
element.NotifyZOrder(zOrder * 100);
}