using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using nft.framework;
using System.Drawing.Drawing2D;
using System.Diagnostics;
using nft.framework.drawing;
using WeifenLuo.WinFormsUI.Docking;

namespace nft.ui.mainframe {
    /// <summary>
    /// MdiChildFrame の概要の説明です。
    /// </summary>
    public class MdiChildFrame : DockContent {
        /// <summary>
        /// 必要なデザイナ変数です。
        /// </summary>
        private System.ComponentModel.Container components = null;

        public MdiChildFrame() {
            InitializeComponent();
        }

        public MdiChildFrame(String caption, Control content) {
            //
            // Windows フォーム デザイナ サポートに必要です。
            //
            InitializeComponent();
            Text = caption;
            Content = content;
        }

        /// <summary>
        /// 使用されているリソースに後処理を実行します。
        /// </summary>
        protected override void Dispose(bool disposing) {
            IDisposable c = Content as IDisposable;
            if (c != null) {
                c.Dispose();
                Content = null;
            }
            if (disposing) {
                if (components != null) {
                    components.Dispose();
                }
            }
            base.Dispose(disposing);
        }

        #region Windows フォーム デザイナで生成されたコード
        /// <summary>
        /// デザイナ サポートに必要なメソッドです。このメソッドの内容を
        /// コード エディタで変更しないでください。
        /// </summary>
        private void InitializeComponent() {
            this.SuspendLayout();
            // 
            // MdiChildFrame
            // 
            this.AllowEndUserDocking = false;
            this.ClientSize = new System.Drawing.Size(640, 480);
            this.DockAreas = WeifenLuo.WinFormsUI.Docking.DockAreas.Document;
            this.Font = new System.Drawing.Font("MS UI Gothic", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(128)));
            this.Name = "MdiChildFrame";
            this.ShowHint = WeifenLuo.WinFormsUI.Docking.DockState.Document;
            this.Text = "MdiChildFrame";
            this.ResumeLayout(false);

        }
        #endregion
        public Control Content {
            get {
                if (Controls.Count > 0)
                    return Controls[0];
                else
                    return null;
               }
            set {
                if (value != null) {
                    value.Dock = DockStyle.Fill;
                    Controls.Add(value);
                } else if (Controls.Count > 0) {
                    Controls.RemoveAt(0);
                }
            }
        }
    }
}
