plugin feature events
This commit is contained in:
@@ -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)
|
||||
|
||||
@@ -9,6 +9,18 @@ namespace Pilz.Plugins.Advanced
|
||||
{
|
||||
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>
|
||||
/// The default public instance that can be used by plugins and the interface providing software.
|
||||
/// </summary>
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user