/// <include file='CodeDoc\DockPanel.xml' path='//CodeDoc/Class[@name="DockPanel"]/Constructor[@name="()"]/*'/>
        public DockPanel()
        {
            m_extender     = new DockPanelExtender(this);
            m_dragHandler  = new DragHandler(this);
            m_panes        = new DockPaneCollection();
            m_floatWindows = new FloatWindowCollection();

            SetStyle(ControlStyles.ResizeRedraw |
                     ControlStyles.UserPaint |
                     ControlStyles.AllPaintingInWmPaint |
                     ControlStyles.DoubleBuffer, true);

            SuspendLayout();
            Font = SystemInformation.MenuFont;

            m_autoHideWindow         = new AutoHideWindow(this);
            m_autoHideWindow.Visible = false;

            m_dummyControl        = new DummyControl();
            m_dummyControl.Bounds = Rectangle.Empty;

            m_dockWindows = new DockWindowCollection(this);
            Controls.AddRange(new Control[] {
                m_autoHideWindow,
                m_dummyControl,
                DockWindows[DockState.Document],
                DockWindows[DockState.DockLeft],
                DockWindows[DockState.DockRight],
                DockWindows[DockState.DockTop],
                DockWindows[DockState.DockBottom]
            });

            m_localWindowsHook              = new LocalWindowsHook(HookType.WH_CALLWNDPROCRET);
            m_localWindowsHook.HookInvoked += new LocalWindowsHook.HookEventHandler(this.HookEventHandler);
            m_localWindowsHook.Install();

            m_dummyContent = new DockContent();
            ResumeLayout();
        }
        private void InternalConstruct(DockPanel dockPanel, DockPane pane, bool boundsSpecified, Rectangle bounds)
        {
            if (dockPanel == null)
            {
                throw(new ArgumentNullException(ResourceHelper.GetString("FloatWindow.Constructor.NullDockPanel")));
            }

            m_dockList = new DockList(this);

            FormBorderStyle = FormBorderStyle.SizableToolWindow;
            ShowInTaskbar   = false;

            SuspendLayout();
            if (boundsSpecified)
            {
                Bounds        = bounds;
                StartPosition = FormStartPosition.Manual;
            }
            else
            {
                StartPosition = FormStartPosition.WindowsDefaultLocation;
            }

            m_dummyControl        = new DummyControl();
            m_dummyControl.Bounds = Rectangle.Empty;
            Controls.Add(m_dummyControl);

            m_dockPanel = dockPanel;
            Owner       = DockPanel.FindForm();
            DockPanel.AddFloatWindow(this);
            if (pane != null)
            {
                pane.FloatWindow = this;
            }

            ResumeLayout();
        }