Example #1
0
 private void SplitBegin(int x, int y)
 {
     RadSplitter.SplitData splitData = this.CalcSplitBounds();
     if (splitData.target == null || this.minSize >= this.maxSize)
     {
         return;
     }
     this.anchor      = new Point(x, y);
     this.splitTarget = splitData.target;
     this.splitSize   = this.GetSplitSize(x, y);
     try
     {
         if (this.splitterMessageFilter != null)
         {
             this.splitterMessageFilter = new RadSplitter.SplitterMessageFilter(this);
         }
         Application.AddMessageFilter((IMessageFilter)this.splitterMessageFilter);
     }
     finally
     {
         CodeAccessPermission.RevertAssert();
     }
     this.Capture = true;
     this.DrawSplitBar(1);
 }
Example #2
0
        private RadSplitter.SplitData CalcSplitBounds()
        {
            RadSplitter.SplitData splitData = new RadSplitter.SplitData();
            Control target = this.FindTarget();

            splitData.target = target;
            if (target != null)
            {
                switch (target.Dock)
                {
                case DockStyle.Top:
                case DockStyle.Bottom:
                    this.initTargetSize = target.Bounds.Height;
                    break;

                case DockStyle.Left:
                case DockStyle.Right:
                    this.initTargetSize = target.Bounds.Width;
                    break;
                }
                Control parentInternal             = this.ParentInternal;
                Control.ControlCollection controls = parentInternal.Controls;
                int count = controls.Count;
                int num1  = 0;
                int num2  = 0;
                for (int index = 0; index < count; ++index)
                {
                    Control control = controls[index];
                    if (control != target)
                    {
                        switch (control.Dock)
                        {
                        case DockStyle.Top:
                        case DockStyle.Bottom:
                            num2 += control.Height;
                            continue;

                        case DockStyle.Left:
                        case DockStyle.Right:
                            num1 += control.Width;
                            continue;

                        default:
                            continue;
                        }
                    }
                }
                Size clientSize = parentInternal.ClientSize;
                this.maxSize         = !this.Horizontal ? clientSize.Height - num2 - this.minExtra : clientSize.Width - num1 - this.minExtra;
                splitData.dockWidth  = num1;
                splitData.dockHeight = num2;
            }
            return(splitData);
        }