Changeset 174
- Timestamp:
- 3/9/2008 3:11:05 PM (5 years ago)
- Location:
- branches/eraser6
- Files:
-
- 2 edited
-
Eraser/SettingsPanel.cs (modified) (2 diffs)
-
Manager/Plugins.cs (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
branches/eraser6/Eraser/SettingsPanel.cs
r122 r174 6 6 using System.Text; 7 7 using System.Windows.Forms; 8 9 using Eraser.Manager.Plugin; 8 10 9 11 namespace Eraser … … 15 17 InitializeComponent(); 16 18 Dock = DockStyle.None; 19 20 //Load the list of DLLs 21 Host instance = Host.Instance; 22 List<PluginInstance>.Enumerator i = instance.Plugins.GetEnumerator(); 23 while (i.MoveNext()) 24 { 25 ListViewItem item = pluginsManager.Items.Add(i.Current.Plugin.Name); 26 item.SubItems.Add(i.Current.Plugin.Author); 27 item.SubItems.Add(string.Empty);//item.SubItems.Add(i.Current.Version); 28 item.SubItems.Add(i.Current.Path); 29 } 30 31 //For new DLLs, register the callback. 32 instance.PluginLoad += new Host.OnPluginLoadEventHandler(OnNewPluginLoaded); 33 } 34 35 private void OnNewPluginLoaded(PluginInstance instance) 36 { 37 throw new NotImplementedException("The plugin load event handler has not been implemented."); 17 38 } 18 39 } -
branches/eraser6/Manager/Plugins.cs
r172 r174 32 32 /// Retrieves the list of currently loaded plugins. 33 33 /// </summary> 34 public abstract List< IPlugin> Plugins34 public abstract List<PluginInstance> Plugins 35 35 { 36 36 get; 37 } 38 39 /// <summary> 40 /// The plugin load event delegate. 41 /// </summary> 42 /// <param name="instance">The instance of the plugin loaded.</param> 43 public delegate void OnPluginLoadEventHandler(PluginInstance instance); 44 45 /// <summary> 46 /// The plugin loaded event. 47 /// </summary> 48 public event OnPluginLoadEventHandler PluginLoad; 49 50 /// <summary> 51 /// Event callback executor for the OnPluginLoad Event 52 /// </summary> 53 /// <param name="instance"></param> 54 protected void OnPluginLoad(PluginInstance instance) 55 { 56 if (PluginLoad != null) 57 PluginLoad.Invoke(instance); 37 58 } 38 59 … … 74 95 public const string PLUGINSFOLDER = "Plugins/"; 75 96 76 public override List< IPlugin> Plugins97 public override List<PluginInstance> Plugins 77 98 { 78 99 get { return plugins; } … … 95 116 if (typeInterface != null) 96 117 { 118 //Initialize the plugin 97 119 IPlugin pluginInterface = (IPlugin)Activator.CreateInstance( 98 120 assembly.GetType(type.ToString())); 99 121 pluginInterface.Initialize(this); 122 123 //Create the PluginInstance structure 124 PluginInstance instance = new PluginInstance(assembly, filePath, pluginInterface); 125 126 //Add the plugin to the list of loaded plugins 100 127 lock (plugins) 101 plugins.Add(pluginInterface); 128 plugins.Add(instance); 129 OnPluginLoad(instance); 102 130 } 103 131 } … … 109 137 } 110 138 111 private List<IPlugin> plugins = new List<IPlugin>(); 139 private List<PluginInstance> plugins = new List<PluginInstance>(); 140 } 141 142 /// <summary> 143 /// Structure holding the instance values of the plugin like handle and path. 144 /// </summary> 145 public struct PluginInstance 146 { 147 internal PluginInstance(Assembly assembly, string path, IPlugin plugin) 148 { 149 Assembly = assembly; 150 Path = path; 151 Plugin = plugin; 152 } 153 154 public Assembly Assembly; 155 public string Path; 156 public IPlugin Plugin; 112 157 } 113 158
Note: See TracChangeset
for help on using the changeset viewer.
