示例#1
0
        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");
                }
            }
        }
示例#2
0
        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);
            }
        }
示例#3
0
        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"]);
        }