private void Handler_ComponentRemoving(object theSender, ComponentEventArgs theArgs) { if (!(theArgs.Component is Page)) { return; } MultiLayerPanel aCtl = DesignedControl; Page aPg = (Page)theArgs.Component; if (!aCtl.Controls.Contains(aPg)) { return; } IDesignerHost aHost = (IDesignerHost)GetService(typeof(IDesignerHost)); if (!inTransaction) { inTransaction = true; DesignerTransactionUtility.DoInTransaction ( aHost, "MultiPaneControlRemoveComponent", new TransactionAwareParammedMethod(Transaction_UpdateSelectedPage), null ); inTransaction = false; } else { Transaction_UpdateSelectedPage(aHost, null); } CheckVerbStatus(); }
private void Handler_RemovePage(object sender, EventArgs eevent) { MultiLayerPanel aCtl = DesignedControl; if (aCtl == null) { return; } else if (aCtl.Controls.Count < 1) { return; } IDesignerHost aHost = (IDesignerHost)GetService(typeof(IDesignerHost)); if (aHost == null) { return; } inTransaction = true; DesignerTransactionUtility.DoInTransaction ( aHost, "MultiPaneControlRemovePage", new TransactionAwareParammedMethod(Transaction_RemovePage), null ); inTransaction = false; }
public object CreateControlWithOnePage(IDesignerHost theHost, object theParam) { MultiLayerPanel aCtl = (MultiLayerPanel)theHost.CreateComponent(typeof(MultiLayerPanel)); Page aPg = (Page)theHost.CreateComponent(typeof(Page)); aCtl.Controls.Add(aPg); return(new IComponent[] { aCtl }); }
private object Transaction_SetSelectedPageAsConcrete(IDesignerHost theHost, object theParam) { MultiLayerPanel aCtl = DesignedControl; MemberDescriptor aMember_SelectedPage = TypeDescriptor.GetProperties(aCtl)["SelectedPage"]; RaiseComponentChanging(aMember_SelectedPage); aCtl.SelectedPage = (Page)theParam; RaiseComponentChanged(aMember_SelectedPage, null, null); return(null); }
private object Transaction_AddPage(IDesignerHost host, object param) { MultiLayerPanel ctl = DesignedControl; Page newPage = (Page)host.CreateComponent(typeof(Page)); MemberDescriptor memControls = TypeDescriptor.GetProperties(ctl)["Controls"]; RaiseComponentChanging(memControls); ctl.Controls.Add(newPage); DesignerSelectedPage = newPage; RaiseComponentChanged(memControls, null, null); return(null); }
private object Transaction_UpdateSelectedPage(IDesignerHost theHost, object theParam) { MultiLayerPanel aCtl = DesignedControl; Page aPgTemp = selectedPage; int aCurIndex = aCtl.Controls.IndexOf(selectedPage); if (selectedPage == aCtl.SelectedPage) { MemberDescriptor aMember_SelectedPage = TypeDescriptor.GetProperties(aCtl)["SelectedPage"]; RaiseComponentChanging(aMember_SelectedPage); if (aCtl.Controls.Count > 1) { if (aCurIndex == aCtl.Controls.Count - 1) { aCtl.SelectedPage = (Page)aCtl.Controls[aCurIndex - 1]; } else { aCtl.SelectedPage = (Page)aCtl.Controls[aCurIndex + 1]; } } else { aCtl.SelectedPage = null; } RaiseComponentChanged(aMember_SelectedPage, null, null); } else { if (aCtl.Controls.Count > 1) { if (aCurIndex == aCtl.Controls.Count - 1) { DesignerSelectedPage = (Page)aCtl.Controls[aCurIndex - 1]; } else { DesignerSelectedPage = (Page)aCtl.Controls[aCurIndex + 1]; } } else { DesignerSelectedPage = null; } } return(null); }
private object Transaction_RemovePage(IDesignerHost theHost, object theParam) { if (selectedPage == null) { return(null); } MultiLayerPanel aCtl = DesignedControl; MemberDescriptor aMember_Controls = TypeDescriptor.GetProperties(aCtl)["Controls"]; RaiseComponentChanging(aMember_Controls); try { theHost.DestroyComponent(selectedPage); } catch { } RaiseComponentChanged(aMember_Controls, null, null); return(null); }
protected override void FillTreeWithData(Selector theSel, ITypeDescriptorContext theCtx, IServiceProvider theProvider) { base.FillTreeWithData(theSel, theCtx, theProvider); MultiLayerPanel aCtl = (MultiLayerPanel)theCtx.Instance; foreach (Page aIt in aCtl.Controls) { SelectorNode aNd = new SelectorNode(aIt.Name, aIt); theSel.Nodes.Add(aNd); if (aIt == aCtl.SelectedPage) { theSel.SelectedNode = aNd; } } }
protected override void OnDragOver(DragEventArgs theDragEvents) { MultiLayerPanel aCtl = DesignedControl; Point pt = aCtl.PointToClient(new Point(theDragEvents.X, theDragEvents.Y)); if (!aCtl.DisplayRectangle.Contains(pt)) { theDragEvents.Effect = DragDropEffects.None; } else { MultiPanePageDesigner aDsgn_Sel = GetSelectedPageDesigner(); if (aDsgn_Sel != null) { aDsgn_Sel.InternalOnDragOver(theDragEvents); } } }
private void Handler_SelectionChanged(object sender, EventArgs e) { ISelectionService aSrv = (ISelectionService)GetService(typeof(ISelectionService)); if (aSrv == null) { return; } ICollection aSel = aSrv.GetSelectedComponents(); MultiLayerPanel aCtl = DesignedControl; foreach (object aIt in aSel) { Page aPage = GetPageOfControl(aIt); if ((aPage != null) && (aPage.Parent == aCtl)) { DesignerSelectedPage = aPage; break; } } }