Пример #1
0
 public DockAnchor(DockStyles orientation)
 {
     this.InitializeComponent();
     this.mOrientation = orientation;
     base.SizeMode = PictureBoxSizeMode.AutoSize;
     this.BackColor = Color.Transparent;
     base.Visible = false;
 }
Пример #2
0
 public DockContainerForm(DockController controller, DockPanel initialPanel)
 {
     EventHandler handler = null;
     this.mTextPadding = new Padding(6, 8, 0, 0);
     this.mFormBorderCurve = 15;
     this.mPanels = new List<DockPanel>();
     this.mOutterDockThreshhold = 30;
     this.mPreviewStyle = DockStyles.None;
     this.mPreviewColor = Color.SkyBlue;
     this.mPreviewOpacity = 100;
     this.DragPaused = true;
     this.mResizeThreshold = 8;
     this.mDockStyle = DockStyles.Fill;
     this.InitializeComponent();
     this.mController = controller;
     this.Controller.Containers.Add(this);
     this.RootContainer = this.RootPanel;
     initialPanel.ContainerControl = this.RootContainer;
     initialPanel.ContainerForm = this;
     initialPanel.DockStyle = DockStyles.Floating;
     initialPanel.OnDocked();
     this.mTitleBar = new DockContainerTitleBar(this);
     this.TitleBarPanel.Height = this.TitleBar.Height;
     if (handler == null)
     {
         handler = delegate (object s, EventArgs e) {
             this.TitleBarPanel.Height = this.TitleBar.Height;
         };
     }
     this.TitleBar.SizeChanged += handler;
     this.TitleBarPanel.Controls.Add(this.TitleBar);
     this.LoadBorder();
     this.OnDocked(initialPanel);
     this.RootContainer.Controls.Add(initialPanel);
     this._Mouse_Moved = new MouseEventHandler(this.Mouse_Moved);
     GlobalHook.Mouse.Moved += this._Mouse_Moved;
     this._Mouse_ButtonDown = new MouseEventHandler(this.Mouse_ButtonDown);
     GlobalHook.Mouse.ButtonDown += this._Mouse_ButtonDown;
     this._Mouse_ButtonUp = new MouseEventHandler(this.Mouse_ButtonUp);
     GlobalHook.Mouse.ButtonUp += this._Mouse_ButtonUp;
 }
Пример #3
0
 public void DockTo(IDockableContainer target, DockStyles orientation)
 {
     throw new Exception("A DockContainerForm may only be the target of docking operations, not the source.");
 }
Пример #4
0
 public void DockTo(IDockableContainer target, DockStyles orientation)
 {
     throw new Exception("The method or operation is not implemented.");
 }
Пример #5
0
        public void DockTo(IDockableContainer target, DockStyles orientation)
        {
            DockTabGroup containerControl;
            this.Undock();
            this.DockStyle = orientation;
            DockSplitter splitter = null;
            if ((orientation != DockStyles.Tabbed) && (target.DockStyle == DockStyles.Tabbed))
            {
                target = target.ContainerControl as IDockableContainer;
            }
            switch (orientation)
            {
                case DockStyles.Left:
                    splitter = new DockSplitter(Orientation.Vertical);
                    target.ContainerControl.Controls.Remove(target as Control);
                    target.ContainerControl.Controls.Add(splitter);
                    target.ContainerControl = splitter.Panel2;
                    splitter.Panel2.Controls.Add(target as Control);
                    this.ContainerControl = splitter.Panel1;
                    splitter.Panel1.Controls.Add(this);
                    target.DockStyle = DockStyles.Right;
                    goto Label_02B7;

                case DockStyles.Right:
                    splitter = new DockSplitter(Orientation.Vertical);
                    target.ContainerControl.Controls.Remove(target as Control);
                    target.ContainerControl.Controls.Add(splitter);
                    target.ContainerControl = splitter.Panel1;
                    splitter.Panel1.Controls.Add(target as Control);
                    this.ContainerControl = splitter.Panel2;
                    splitter.Panel2.Controls.Add(this);
                    target.DockStyle = DockStyles.Left;
                    goto Label_02B7;

                case DockStyles.Top:
                    splitter = new DockSplitter(Orientation.Horizontal);
                    target.ContainerControl.Controls.Remove(target as Control);
                    target.ContainerControl.Controls.Add(splitter);
                    target.ContainerControl = splitter.Panel2;
                    splitter.Panel2.Controls.Add(target as Control);
                    this.ContainerControl = splitter.Panel1;
                    splitter.Panel1.Controls.Add(this);
                    target.DockStyle = DockStyles.Bottom;
                    goto Label_02B7;

                case DockStyles.Bottom:
                    splitter = new DockSplitter(Orientation.Horizontal);
                    target.ContainerControl.Controls.Remove(target as Control);
                    target.ContainerControl.Controls.Add(splitter);
                    target.ContainerControl = splitter.Panel1;
                    splitter.Panel1.Controls.Add(target as Control);
                    this.ContainerControl = splitter.Panel2;
                    splitter.Panel2.Controls.Add(this);
                    target.DockStyle = DockStyles.Top;
                    goto Label_02B7;

                case DockStyles.Tabbed:
                    if (target.DockStyle != DockStyles.Tabbed)
                    {
                        containerControl = new DockTabGroup(TabOrientations.Bottom);
                        containerControl.ContainerForm = target.ContainerForm;
                        containerControl.AddTab(target as DockPanel);
                        containerControl.ContainerControl = target.ContainerControl;
                        target.ContainerControl.Controls.Remove(target as Control);
                        target.ContainerControl.Controls.Add(containerControl);
                        target.ContainerControl = containerControl;
                        break;
                    }
                    containerControl = target.ContainerControl as DockTabGroup;
                    break;

                default:
                    goto Label_02B7;
            }
            containerControl.AddTab(this);
            this.ContainerControl = containerControl;
            target.DockStyle = DockStyles.Tabbed;
        Label_02B7:
            this.ContainerForm = target.ContainerForm;
            this.ContainerForm.OnDocked(this);
        }
Пример #6
0
 internal void BeginDockPreview(DockStyles orientation)
 {
     this.mIsPreviewing = true;
     this.PreviewOrientation = orientation;
     this.DrawDockPreview();
 }
Пример #7
0
 private void OnDockStyleChanged(DockStyles style)
 {
     if (this.DockStyleChanged != null)
     {
         this.DockStyleChanged(this, style);
     }
 }