//--------------------------------------------------------------------------------- private void FormContainer_ResizeEnd(object sender, EventArgs e) { _UserMove = false; DockStyle dock = ControlContainerInterfaceList.pickAnchor(out ControlContainerInterface container); ControlContainerInterfaceList.hideAnchors(); if (container == null || dock == DockStyle.None) { return; } if (dock != DockStyle.Fill) { container = container.Split(dock); } List <GuiControlInterface> allControls = GetAllControl(); foreach (GuiControlInterface tc in allControls) { container.Add(tc); } FormContainer.UpdateName(container.GetControl()); Close(); }
protected override void OnMouseMove(MouseEventArgs e) { base.OnMouseMove(e); if (Capture && _MovedTaxonControl != null) { Rectangle R = _HeaderRect; R.Inflate(5, 5); if (!R.Contains(e.Location)) { FormContainer form = FormContainer.GetFormContainer(this); GuiControlInterface tuc = _MovedTaxonControl; Remove(_MovedTaxonControl, false); FormContainer moveForm = new FormContainer(tuc); moveForm.Show(); Point global = Cursor.Position; moveForm.Left = global.X - 20; moveForm.Top = global.Y - 8; FormContainer tempForm = moveForm; SendMessage(this.Handle.ToInt32(), WM_LBUTTONUP, 0, 0); SendMessage(tempForm.Handle.ToInt32(), WM_SYSCOMMAND, SC_MOVE | 0x02, 0); CloseIfEmpty(); if (form != null) { form.UpdateName(); } } else { for (int i = 0; i < Children.Count; i++) { if (Children[i] == _MovedTaxonControl) { continue; } if (_ChildrenRect[i].Left <e.Location.X && _ChildrenRect[i].Right> e.Location.X) { Children.Remove(_MovedTaxonControl); Children.Insert(i, _MovedTaxonControl); Invalidate(); break; } } } } }
//------------------------------------------------------------------- // build descriptor from form // public static FormContainerDesc FromFormContainer(FormContainer _form) { FormContainerDesc desc = new FormContainerDesc(); desc.Placement = winFunctions.winGetPlacement(_form.Handle); if (_form.Controls[0] is GUI.ControlContainerTabs) { desc._TaxonTabControlsDescriptor = GUI.ControlContainerTabsDesc.FromTaxonTabControls(_form.Controls[0] as GUI.ControlContainerTabs); } else if (_form.Controls[0] is GUI.ControlContainerSplitter) { desc.SplitterContainerDescriptor = GUI.ControlContainerSplitterDesc.FromTaxonSplitterContainer(_form.Controls[0] as GUI.ControlContainerSplitter); } return(desc); }
//------------------------------------------------------------------- // rebuild form from descriptor // public FormContainer Rebuild() { FormContainer form = null; if (_SplitterContainerDescriptor != null) { GUI.ControlContainerSplitter split = _SplitterContainerDescriptor.Rebuild(); form = new FormContainer(split); } else if (_TaxonTabControlsDescriptor != null) { GUI.ControlContainerTabs tabControl = _TaxonTabControlsDescriptor.Rebuild(); form = new FormContainer(tabControl); } if (form != null && winFunctions.winPlacementIsValid(Placement)) { winFunctions.winSetPlacement(form.Handle, Placement); } return(form); }