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