using System;

using System.Collections.Generic;

using System.Collections.ObjectModel;



namespace WeifenLuo.WinFormsUI.Docking

{

	public class DockWindowCollection : ReadOnlyCollection<DockWindow>

	{

		internal DockWindowCollection(DockPanel dockPanel)

            : base(new List<DockWindow>())

		{

			Items.Add(new DockWindow(dockPanel, DockState.Document));

			Items.Add(new DockWindow(dockPanel, DockState.DockLeft));

			Items.Add(new DockWindow(dockPanel, DockState.DockRight));

			Items.Add(new DockWindow(dockPanel, DockState.DockTop));

			Items.Add(new DockWindow(dockPanel, DockState.DockBottom));

		}



		public DockWindow this [DockState dockState]

		{

			get

			{

				if (dockState == DockState.Document)

					return Items[0];

				else if (dockState == DockState.DockLeft || dockState == DockState.DockLeftAutoHide)

					return Items[1];

				else if (dockState == DockState.DockRight || dockState == DockState.DockRightAutoHide)

					return Items[2];

				else if (dockState == DockState.DockTop || dockState == DockState.DockTopAutoHide)

					return Items[3];

				else if (dockState == DockState.DockBottom || dockState == DockState.DockBottomAutoHide)

					return Items[4];



				throw (new ArgumentOutOfRangeException());

			}

		}

	}

}

