Example #1
0
        void LoadFile()
        {
            string path = Path.Combine(Application.StartupPath, "savegame.xml");

            FDocument.Load(path);

            XmlNode      host;
            XmlAttribute attr;

            string[] nodename;
            char[]   separator = { '|' };
            host = FDocument.SelectSingleNode(@"//HOST");

            if (host != null)
            {
                //restore window
                attr = host.Attributes.GetNamedItem("windowleft") as XmlAttribute;
                if (attr != null)
                {
                    this.Left = Convert.ToInt32(attr.Value);
                }
                attr = host.Attributes.GetNamedItem("windowtop") as XmlAttribute;
                if (attr != null)
                {
                    this.Top = Convert.ToInt32(attr.Value);
                }
                attr = host.Attributes.GetNamedItem("windowwidth") as XmlAttribute;
                if (attr != null)
                {
                    this.Width = Convert.ToInt32(attr.Value);
                }
                attr = host.Attributes.GetNamedItem("windowheight") as XmlAttribute;
                if (attr != null)
                {
                    this.Height = Convert.ToInt32(attr.Value);
                }

                foreach (XmlNode plugin in host.ChildNodes)
                {
                    attr     = plugin.LastChild.Attributes.GetNamedItem("nodename") as XmlAttribute;
                    nodename = attr.Value.Split(separator);

                    if (System.IO.File.Exists(nodename[0]))
                    {
                        PluginPage pp = AddPlugin(nodename[0], nodename[1]);
                        System.Diagnostics.Debug.WriteLine("Loading From XML");
                        pp.LoadFromXML(plugin);
                    }
                }

                //select saved tabindex
                attr = host.Attributes.GetNamedItem("selectedtab") as XmlAttribute;
                if ((attr != null) && (PluginTabs != null))
                {
                    PluginTabs.SelectedIndex = Convert.ToInt32(attr.Value);
                }
            }
        }
Example #2
0
        public PluginPage AddPlugin(string Path, string ClassName)
        {
            //if this is the first plugin, simply put it on the panel
            PluginPage pp = new PluginPage();

            pp.Dock = DockStyle.Fill;

            if (FPluginCount == 0)
            {
                pp.Parent = MainPanel;
            }
            else
            {
                TabPage tab;
                //if not yet there, create the TabControl
                if (PluginTabs == null)
                {
                    PluginTabs                       = new TabControl();
                    PluginTabs.MouseClick           += PluginTabsMouseClick;
                    PluginTabs.SelectedIndexChanged += PluginTabsSelectedIndexChanged;
                    PluginTabs.Parent                = MainPanel;
                    PluginTabs.Dock                  = DockStyle.Fill;

                    //move first plugin to TabPage
                    tab = new TabPage();
                    MainPanel.Controls[0].Parent = tab;
                    tab.Text = (tab.Controls[0] as PluginPage).NodeInfoName;

                    PluginTabs.TabPages.Add(tab);
                }

                tab = new TabPage();
                PluginTabs.TabPages.Add(tab);
                pp.Parent = tab;

                //tab.Height = PluginPages.Height; //initializing
                PluginTabs.SelectedIndex = PluginTabs.TabPages.Count - 1;
            }

            //if this is an additional plugin (to the first)
            //create a TabPage and put allplugins there
            //AddPluginPage(FPlugins[PlugIndex].Path, FPlugins[PlugIndex].ClassName);

            pp.LoadPlugin(Path, ClassName);

            if (PluginTabs != null)
            {
                PluginTabs.TabPages[PluginTabs.SelectedIndex].Text = pp.NodeInfoName;
            }

            this.Text = pp.NodeInfoName + "SA";
            FPluginCount++;
            return(pp);
        }
Example #3
0
        private PluginPage AddPluginPage(string Path, string ClassName)
        {
            TabPage tab = new TabPage();

            tab.Text = ClassName;
            PluginTabs.TabPages.Add(tab);
            tab.Height = PluginTabs.Height;             //initializing
            PluginTabs.SelectedIndex = PluginTabs.TabPages.Count - 1;

            PluginPage pp = new PluginPage();

            pp.Parent = tab;
            pp.Dock   = DockStyle.Fill;

            pp.LoadPlugin(Path, ClassName);

            this.Text = pp.NodeInfoName + "SA";

            return(pp);
        }