public bool StartPlugin(string name) { if (PluginContainers.ContainsKey(name)) { if (!PluginContainers[name].Plugin.Active) { var Plugin = PluginContainers[name].Plugin; if (Plugin is IDialogPlugin) { IDialogPlugin plugin = Plugin as IDialogPlugin; var item = new ToolStripMenuItem { Name = "ToolMenuItem_" + Plugin.PluginName, Text = plugin.ToolMenuTitle, Tag = plugin }; if (Plugin.MenuIcon != null) { item.Image = Plugin.MenuIcon; } item.Click += dialogPlugin_Click; ((ToolStripMenuItem)(Main.MainMenuStrip.Items["StripMenu_Tool"])).DropDownItems.Add(item); } if (Plugin is IDockPlugin) { IDockPlugin plugin = Plugin as IDockPlugin; DockContent dockContent = plugin.GetDockWindow() as DockContent; dockContent.HideOnClose = true; dockContent.Name = "DockWindow_" + Plugin.PluginName; var item = new ToolStripMenuItem { Name = "ViewMenuItem_" + Plugin.PluginName, Text = plugin.ViewMenuTitle, Tag = dockContent }; if (Plugin.MenuIcon != null) { item.Image = Plugin.MenuIcon; } item.Click += menuitem_Click; ((ToolStripMenuItem)(Main.MainMenuStrip.Items["StripMenu_View"])).DropDownItems.Add(item); Main.SubForms.Add(dockContent); } Plugin.Active = true; bool b = Plugin.StartPlugin(Main); if (b) { Utility.Logger.Add(2, string.Format("插件 {0}({1}) 已启动。", Plugin.PluginName, Plugin.Version)); } else { Utility.Logger.Add(2, string.Format("插件 {0}({1}) 启动失败。", Plugin.PluginName, Plugin.Version)); } return(b); } } return(false); }
public bool AddPlugin(ElectronicPlugin Plugin) { Plugins[Plugin.PluginName] = Plugin; if (Plugin is IDialogPlugin) { IDialogPlugin plugin = Plugin as IDialogPlugin; var item = new ToolStripMenuItem { Name = "ToolMenuItem_" + Plugin.PluginName, Text = plugin.ToolMenuTitle, Tag = plugin }; if (Plugin.MenuIcon != null) { item.Image = Plugin.MenuIcon; } item.Click += dialogPlugin_Click; ((ToolStripMenuItem)(Main.MainMenuStrip.Items["StripMenu_Tool"])).DropDownItems.Add(item); } if (Plugin is IDockPlugin) { IDockPlugin plugin = Plugin as IDockPlugin; DockContent dockContent = plugin.GetDockWindow() as DockContent; dockContent.HideOnClose = true; dockContent.Name = "DockWindow_" + Plugin.PluginName; var item = new ToolStripMenuItem { Name = "ViewMenuItem_" + Plugin.PluginName, Text = plugin.ViewMenuTitle, Tag = dockContent }; if (Plugin.MenuIcon != null) { item.Image = Plugin.MenuIcon; } item.Click += menuitem_Click; ((ToolStripMenuItem)(Main.MainMenuStrip.Items["StripMenu_View"])).DropDownItems.Add(item); Main.SubForms.Add(dockContent); } bool b = Plugin.StartPlugin(Main); if (b) { Utility.Logger.Add(2, string.Format("插件 {0}({1}) 已加载。", Plugin.PluginName, Plugin.Version)); } else { Utility.Logger.Add(2, string.Format("插件 {0}({1}) 加载失败。", Plugin.PluginName, Plugin.Version)); } return(b); }