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); }
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); }