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