Exemplo n.º 1
0
 private void LoadFigurePlugins()
 {
     //relative path to dll-s
     foreach (string file in Directory.GetFiles(@".\..", "*.dll"))
     {
         Assembly assembly = Assembly.LoadFrom(Directory.GetCurrentDirectory() + file);
         foreach (Type type in assembly.GetTypes())
         {
             if (type.GetInterfaces().Contains(typeof(IFigurePlugin)))
             {
                 IFigurePlugin figurePlugin = Activator.CreateInstance(type) as IFigurePlugin;
                 FigurePlugins.Add(figurePlugin);
             }
         }
     }
 }
Exemplo n.º 2
0
        public void AddPlugin(IFigurePlugin plugin)
        {
            if (AddedPluginsList.Contains(plugin))
            {
                return;
            }
            Button btn = plugin.getToolBox();

            if (groupBox1.Controls.OfType <Button>().Count() != 0)
            {
                Button prevButton = groupBox1.Controls.OfType <Button>().Last();
                btn.Location       = new Point(prevButton.Location.X, prevButton.Location.Y + prevButton.Height);
                ActiveFigurePlugin = plugin;
            }
            groupBox1.Controls.Add(btn);
            btn.Click += (sender, e) =>
            {
                ActiveFigurePlugin = plugin;
                PropertyEditor.AddPlugin(plugin);
            };
            AddedPluginsList.Add(plugin);
        }
Exemplo n.º 3
0
 public void AddPlugin(IFigurePlugin plugin)
 {
     groupBox1.Controls.Clear();
     groupBox1.Controls.Add(plugin.getPropertyEditor());
 }