public GuiHost() { InitializeViewModel(); plugLoader = new PluginLoader(); plugInstaller = new PluginInstaller(pluginPath); plugInstaller.ProgressUpdated += ProgressUpdated_Handler; plugInstaller.ExtractedInfoFile += ExtractedInfoFile_Handler; plugins = plugLoader.LoadPlugins(pluginPath).ToList <IPlugin>(); _pluginMenu = new ObservableCollection <Model.PluginData>(); SelectPlugin = new CustomCommand <int>(SelectPluginHandler); SelectCategoryCommand = new CustomCommand <string>(SelectCategoryHandler); InstallPluginCommand = new CustomCommand(InstallPluginHandler); int id = 0; undoRedoController = new Logic.UndoRedoController(); foreach (IPlugin plug in plugins) { undoRedoController.AddPlug = new List <FrameworkElement>(); plug.ControlChangedTrigger += Controll_GotFocus; PluginMenu.Add(new Model.PluginData(plug.Title, id)); fillCategorieAndPluginList(plug.Category, plug.Title); id++; } if (plugins.Count != 0) { currentView = plugins[0].MainView; configurationView = plugins[0].ConfigurationView; Title = plugins[0].Title; undoRedoController.SelectPlugin(0); } Categories.Add("Alle Plugins"); categoryList.Add("Alle Plugins", AllPluginTitles); }
private void LoadMenu() { RootMenu = Menu.AddMenu(Name); PluginMenu = RootMenu.AddSubMenu("Plugins"); foreach (var plugin in PluginList) { PluginMenu.Add(new MenuCheckbox(plugin.Name, plugin.Name)).OnValueChanged += OnPluginStateChanged; } }