diff --git a/Pilz.Plugins.Advanced/Extensions.cs b/Pilz.Plugins.Advanced/Extensions.cs
index eda2514..a125741 100644
--- a/Pilz.Plugins.Advanced/Extensions.cs
+++ b/Pilz.Plugins.Advanced/Extensions.cs
@@ -24,22 +24,6 @@ namespace Pilz.Plugins.Advanced
return GetAsItem(module, addDefaultHandler ? RadMenuItem_RMMethod_Click : null);
}
- public static RadMenuItem GetAsItem(this PluginModule module, EventHandler? clickHandler)
- {
- var item = new RadMenuItem
- {
- Text = module.Name,
- SvgImage = module.Icon,
- Tag = module,
- Visibility = module.Visible ? ElementVisibility.Visible : ElementVisibility.Collapsed
- };
-
- if (clickHandler is not null)
- item.Click += clickHandler;
-
- return item;
- }
-
public static RadMenuItem GetAsItem(this PluginFunction function)
{
return GetAsItem(function, true);
@@ -50,14 +34,14 @@ namespace Pilz.Plugins.Advanced
return GetAsItem(function, addDefaultHandler ? RadMenuItem_RMFunction_Click : null);
}
- public static RadMenuItem GetAsItem(this PluginFunction function, EventHandler? clickHandler)
+ public static RadMenuItem GetAsItem(this PluginFeature module, EventHandler? clickHandler)
{
var item = new RadMenuItem
{
- Text = function.Name,
- SvgImage = function.Icon,
- Tag = function,
- Visibility = function.Enabled ? ElementVisibility.Visible : ElementVisibility.Collapsed
+ Text = module.Name,
+ SvgImage = module.Icon,
+ Tag = module,
+ Visibility = module.Enabled ? ElementVisibility.Visible : ElementVisibility.Collapsed
};
if (clickHandler is not null)
diff --git a/Pilz.Plugins.Advanced/PluginFeatureController.cs b/Pilz.Plugins.Advanced/PluginFeatureController.cs
index 2ff7567..3408aa9 100644
--- a/Pilz.Plugins.Advanced/PluginFeatureController.cs
+++ b/Pilz.Plugins.Advanced/PluginFeatureController.cs
@@ -9,6 +9,18 @@ namespace Pilz.Plugins.Advanced
{
public sealed class PluginFeatureController
{
+ public delegate void PluginFeatureEventHandler(PluginFeatureController controller, PluginFeature feature);
+
+ ///
+ /// Fires when a new has been registred.
+ ///
+ public static event PluginFeatureEventHandler? OnPluginFeatureReistred;
+
+ ///
+ /// Fires when a has been unregistred.
+ ///
+ public static event PluginFeatureEventHandler? OnPluginFeatureUnregistred;
+
///
/// The default public instance that can be used by plugins and the interface providing software.
///
@@ -41,12 +53,16 @@ namespace Pilz.Plugins.Advanced
public void Register(PluginFeature module)
{
if (!features.Contains(module))
+ {
features.Add(module);
+ OnPluginFeatureReistred?.Invoke(this, module);
+ }
}
public void Unregister(PluginFeature module)
{
features.Remove(module);
+ OnPluginFeatureUnregistred?.Invoke(this, module);
}
public class FeatureController