plugin feature events
This commit is contained in:
@@ -24,22 +24,6 @@ namespace Pilz.Plugins.Advanced
|
|||||||
return GetAsItem(module, addDefaultHandler ? RadMenuItem_RMMethod_Click : null);
|
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)
|
public static RadMenuItem GetAsItem(this PluginFunction function)
|
||||||
{
|
{
|
||||||
return GetAsItem(function, true);
|
return GetAsItem(function, true);
|
||||||
@@ -50,14 +34,14 @@ namespace Pilz.Plugins.Advanced
|
|||||||
return GetAsItem(function, addDefaultHandler ? RadMenuItem_RMFunction_Click : null);
|
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
|
var item = new RadMenuItem
|
||||||
{
|
{
|
||||||
Text = function.Name,
|
Text = module.Name,
|
||||||
SvgImage = function.Icon,
|
SvgImage = module.Icon,
|
||||||
Tag = function,
|
Tag = module,
|
||||||
Visibility = function.Enabled ? ElementVisibility.Visible : ElementVisibility.Collapsed
|
Visibility = module.Enabled ? ElementVisibility.Visible : ElementVisibility.Collapsed
|
||||||
};
|
};
|
||||||
|
|
||||||
if (clickHandler is not null)
|
if (clickHandler is not null)
|
||||||
|
|||||||
@@ -9,6 +9,18 @@ namespace Pilz.Plugins.Advanced
|
|||||||
{
|
{
|
||||||
public sealed class PluginFeatureController
|
public sealed class PluginFeatureController
|
||||||
{
|
{
|
||||||
|
public delegate void PluginFeatureEventHandler(PluginFeatureController controller, PluginFeature feature);
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Fires when a new <see cref="PluginFeature"/> has been registred.
|
||||||
|
/// </summary>
|
||||||
|
public static event PluginFeatureEventHandler? OnPluginFeatureReistred;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Fires when a <see cref="PluginFeature"/> has been unregistred.
|
||||||
|
/// </summary>
|
||||||
|
public static event PluginFeatureEventHandler? OnPluginFeatureUnregistred;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// The default public instance that can be used by plugins and the interface providing software.
|
/// The default public instance that can be used by plugins and the interface providing software.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -41,12 +53,16 @@ namespace Pilz.Plugins.Advanced
|
|||||||
public void Register(PluginFeature module)
|
public void Register(PluginFeature module)
|
||||||
{
|
{
|
||||||
if (!features.Contains(module))
|
if (!features.Contains(module))
|
||||||
|
{
|
||||||
features.Add(module);
|
features.Add(module);
|
||||||
|
OnPluginFeatureReistred?.Invoke(this, module);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Unregister(PluginFeature module)
|
public void Unregister(PluginFeature module)
|
||||||
{
|
{
|
||||||
features.Remove(module);
|
features.Remove(module);
|
||||||
|
OnPluginFeatureUnregistred?.Invoke(this, module);
|
||||||
}
|
}
|
||||||
|
|
||||||
public class FeatureController
|
public class FeatureController
|
||||||
|
|||||||
Reference in New Issue
Block a user