rename Pilz.Plugins.Advanced to Pilz.Features

This commit is contained in:
Pilzinsel64
2025-11-06 11:49:46 +01:00
parent 8bc09d9a59
commit fb42b0675b
37 changed files with 66 additions and 50 deletions

View File

@@ -0,0 +1,54 @@
using Pilz.Features;
namespace Pilz.UI.WinForms.Features;
public abstract class PluginModule<TPluginModuleUI> : PluginModuleBase where TPluginModuleUI : Control
{
public bool Visible { get; set; } = true;
public bool AllowEmbedding { get; set; } = true;
/// <summary>
/// Wrapper for the <see cref="PluginFeature.Icon"/> property to directly use it as <see cref="System.Drawing.Image"/>.
/// </summary>
public Image? Image
{
get => base.Icon as Image;
set => base.Icon = value;
}
protected PluginModule(string type, string identifier) : base(type, identifier)
{
}
protected PluginModule(string type, string identifier, string? name) : base(type, identifier, name)
{
}
public virtual void ShowUI()
{
ShowUI(null);
}
public virtual void ShowUI(PluginFunctionParameter? @params)
{
}
public virtual TPluginModuleUI? CreateUI()
{
return CreateUI(null);
}
public virtual TPluginModuleUI? CreateUI(PluginFunctionParameter? @params)
{
object? ui = default;
if (OnPreExecute(@params, ref ui))
ui = CreateNewUI(@params);
OnPostExecute(@params, ref ui);
return ui as TPluginModuleUI;
}
protected abstract TPluginModuleUI? CreateNewUI(PluginFunctionParameter? @params);
}