private void SelectionService_SelectionChanged(object sender, EventArgs e) { if (SelectionService != null) { ICollection SelectedComponents = SelectionService.GetSelectedComponents(); PropertyGrid ModPropertyGrid = (PropertyGrid)this.GetService(typeof(PropertyGrid)); if (ModPropertyGrid == null) { return; } object[] Comps = new object[SelectedComponents.Count]; int i = 0; SelectedObjects = Comps; foreach (Object O in SelectedComponents) { Comps[i] = O; i++; } IronUI.UD.EventHandlersGrid.Rows.Clear(); if (Comps.Length == 1) { Dictionary <string, string> EventHandlers = GetEventHandlers(Comps[0]); foreach (string Event in EventHandlers.Keys) { IronUI.UD.EventHandlersGrid.Rows.Add(new object[] { Event, EventHandlers[Event] }); } if (Comps[0].GetType() == typeof(ModDataGridView)) { ModPropertyGrid.Dock = DockStyle.None; ModPropertyGrid.Anchor = ModUiTools.GetAnchorStyleDefinition(true, true, true, true); ModPropertyGrid.Location = ModUiTools.GetLocationDefinition(0, 0); ModPropertyGrid.Size = ModUiTools.GetSizeDefinition(IronUI.UD.PropertiesPropertySubTab.Size.Width, IronUI.UD.PropertiesPropertySubTab.Size.Height - (IronUI.UD.DataGridColumnAddPanel.Size.Height + 5)); IronUI.UD.DataGridColumnAddPanel.Visible = true; } else if (ModPropertyGrid.Dock == DockStyle.None) { ModPropertyGrid.Dock = DockStyle.Fill; IronUI.UD.DataGridColumnAddPanel.Visible = false; } } ModPropertyGrid.SelectedObjects = Comps; if (Comps.Length > 0) { IronUI.UD.LeftTabs.SelectTab("PropertiesTab"); } } }
private void GenerateCodeToolStripMenuItem_Click(object sender, EventArgs e) { Form FormControl = RecursivelyGetFormControl(this.BaseSplit.Panel2); if (FormControl == null) { return; } try { string Xml = ModUiTools.XmlFromFormControl(FormControl); ModCodeAndControlHolder Code = ModUiTools.XmlToCode(Xml); XmlOutRTB.Text = Code.XmlCode; PyOutRTB.Text = Code.PyCode; RbOutRTB.Text = Code.RbCode; MainTabs.SelectTab("CodeTab"); } catch (Exception Exp) { IronException.Report("UI Designer Error", Exp); } }
void CreateDesigner(bool New, string XmlCode) { ModUi.ResetEventHandlers(); //Create a new DesignSurface ModDesignSurface MDS = new ModDesignSurface(); MDS.SetUpSelectionService(); MDS.BeginLoad(typeof(Form)); IDH = (IDesignerHost)MDS.GetService(typeof(IDesignerHost)); try { IDH.RemoveService(typeof(ITypeDescriptorFilterService)); }catch {} try { IDH.RemoveService(typeof(IToolboxService)); }catch {} try { IDH.RemoveService(typeof(PropertyGrid)); }catch { } //Read XML and update the Form control if (!New) { ModCodeAndControlHolder Code = ModUiTools.XmlToCode(XmlCode, (Form)IDH.RootComponent); } //Panel P = (Panel)IDH.CreateComponent(typeof(Panel)); //P.Location = ModUiTools.GetLocationDefinition(20, 20); //P.Size = ModUiTools.GetSizeDefinition(100, 100); //Button B = (Button)IDH.CreateComponent(typeof(Button), "TestButton"); //B.Text = "123"; //P.Controls.Add(B); //P.Parent = (Form)IDH.RootComponent; try { this.BaseSplit.Panel2.Controls.RemoveAt(0); } catch { } Control C = MDS.View as Control; C.Parent = this.BaseSplit.Panel2; C.Dock = DockStyle.Fill; IDH.AddService(typeof(ITypeDescriptorFilterService), new CustomFilterService()); ModToolBox TB = new ModToolBox(); TB.Parent = this.ToolboxTab; TB.Dock = DockStyle.Fill; IDH.AddService(typeof(IToolboxService), TB); PropertyGrid PG = new PropertyGrid(); PG.Parent = this.PropertiesPropertySubTab; PG.Dock = DockStyle.Fill; IDH.AddService(typeof(PropertyGrid), PG); // Use ComponentChangeService to announce changing of the // Form's Controls collection */ IComponentChangeService ICC = (IComponentChangeService)IDH.GetService(typeof(IComponentChangeService)); ICC.OnComponentChanging(IDH.RootComponent, TypeDescriptor.GetProperties(IDH.RootComponent)["Controls"]); }