diff --git a/Pilz.Plugins.Advanced/Extensions.cs b/Pilz.Plugins.Advanced.UI.Telerik/Extensions.cs
similarity index 93%
rename from Pilz.Plugins.Advanced/Extensions.cs
rename to Pilz.Plugins.Advanced.UI.Telerik/Extensions.cs
index dabc116..ecc0448 100644
--- a/Pilz.Plugins.Advanced/Extensions.cs
+++ b/Pilz.Plugins.Advanced.UI.Telerik/Extensions.cs
@@ -4,7 +4,7 @@ using Telerik.WinControls;
using Telerik.WinControls.Elements;
using Telerik.WinControls.UI;
-namespace Pilz.Plugins.Advanced
+namespace Pilz.Plugins.Advanced.UI.Telerik
{
public static class Extensions
{
@@ -15,12 +15,12 @@ namespace Pilz.Plugins.Advanced
return null;
}
- public static RadMenuItem GetAsItem(this PluginModule module)
+ public static RadMenuItem GetAsItem(this PluginModuleBase module)
{
return GetAsItem(module, true);
}
- public static RadMenuItem GetAsItem(this PluginModule module, bool addDefaultHandler)
+ public static RadMenuItem GetAsItem(this PluginModuleBase module, bool addDefaultHandler)
{
return GetAsItem(module, addDefaultHandler ? RadMenuItem_RMMethod_Click : null);
}
@@ -40,7 +40,8 @@ namespace Pilz.Plugins.Advanced
var item = new RadMenuItem
{
Text = module.Name,
- SvgImage = module.Icon,
+ Image = module.Icon as Image,
+ SvgImage = module.Icon as RadSvgImage,
Tag = module,
Visibility = module.Enabled ? ElementVisibility.Visible : ElementVisibility.Collapsed
};
@@ -77,7 +78,7 @@ namespace Pilz.Plugins.Advanced
if (feature is PluginFunction function)
item = function.GetAsItem(addDefaultHandler);
- else if (feature is PluginModule module)
+ else if (feature is PluginModuleBase module)
item = module.GetAsItem(addDefaultHandler);
else
item = feature.GetAsItem(null);
diff --git a/Pilz.Plugins.Advanced.UI.Telerik/Pilz.Plugins.Advanced.UI.Telerik.csproj b/Pilz.Plugins.Advanced.UI.Telerik/Pilz.Plugins.Advanced.UI.Telerik.csproj
new file mode 100644
index 0000000..b124e57
--- /dev/null
+++ b/Pilz.Plugins.Advanced.UI.Telerik/Pilz.Plugins.Advanced.UI.Telerik.csproj
@@ -0,0 +1,35 @@
+
+
+
+ net8.0-windows
+ enable
+ enable
+ true
+ https://gitlab.com/Pilzinsel64/pilz-framework
+ MIT
+
+
+
+
+
+
+
+
+
+ True
+ 1.0.0
+
+
+
+
+ all
+
+
+
+
+
+ UserControl
+
+
+
+
diff --git a/Pilz.Plugins.Advanced.UI.Telerik/PluginModule.cs b/Pilz.Plugins.Advanced.UI.Telerik/PluginModule.cs
new file mode 100644
index 0000000..0eecf11
--- /dev/null
+++ b/Pilz.Plugins.Advanced.UI.Telerik/PluginModule.cs
@@ -0,0 +1,39 @@
+using Pilz.Plugins.Advanced.UI;
+using Pilz.UI.Telerik;
+using Pilz.UI.Telerik.Dialogs;
+using System.Drawing;
+using System.Windows.Forms;
+using Telerik.WinControls;
+
+namespace Pilz.Plugins.Advanced.UI.Telerik
+{
+ public abstract class PluginModule : PluginModule
+ {
+ ///
+ /// Wrapper for the property to directly use it as .
+ ///
+ public RadSvgImage? SvgImage
+ {
+ get => base.Icon as RadSvgImage;
+ set => base.Icon = value;
+ }
+
+ protected PluginModule(string moduleType, string moduleIdentifier) : base(moduleType, moduleIdentifier)
+ {
+
+ }
+
+ protected PluginModule(string moduleType, string moduleIdentifier, string moduleName) : base(moduleType, moduleIdentifier, moduleName)
+ {
+ }
+
+ public override void ShowUI()
+ {
+ if (CreateNewUI() is PluginModuleUI ui)
+ {
+ ui.BackColor = Color.Transparent;
+ DialogBaseForm.Show(ui, Name!, SvgImage!.ToImage().ToIcon()!);
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/Pilz.Plugins.Advanced/PluginModuleUI.cs b/Pilz.Plugins.Advanced.UI.Telerik/PluginModuleUI.cs
similarity index 90%
rename from Pilz.Plugins.Advanced/PluginModuleUI.cs
rename to Pilz.Plugins.Advanced.UI.Telerik/PluginModuleUI.cs
index 43006ba..e2b2142 100644
--- a/Pilz.Plugins.Advanced/PluginModuleUI.cs
+++ b/Pilz.Plugins.Advanced.UI.Telerik/PluginModuleUI.cs
@@ -6,7 +6,7 @@ using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
-namespace Pilz.Plugins.Advanced
+namespace Pilz.Plugins.Advanced.UI.Telerik
{
public class PluginModuleUI : FlyoutDialogBase, ILoadContent
{
diff --git a/Pilz.Plugins.Advanced/FeatureInsertMode.cs b/Pilz.Plugins.Advanced.UI/FeatureInsertMode.cs
similarity index 97%
rename from Pilz.Plugins.Advanced/FeatureInsertMode.cs
rename to Pilz.Plugins.Advanced.UI/FeatureInsertMode.cs
index 3982075..7aae2a6 100644
--- a/Pilz.Plugins.Advanced/FeatureInsertMode.cs
+++ b/Pilz.Plugins.Advanced.UI/FeatureInsertMode.cs
@@ -4,7 +4,7 @@ using System.Linq;
using System.Text;
using System.Threading.Tasks;
-namespace Pilz.Plugins.Advanced
+namespace Pilz.Plugins.Advanced.UI
{
[Flags]
public enum FeatureInsertMode
diff --git a/Pilz.Plugins.Advanced/FeatureInsertPosition.cs b/Pilz.Plugins.Advanced.UI/FeatureInsertPosition.cs
similarity index 88%
rename from Pilz.Plugins.Advanced/FeatureInsertPosition.cs
rename to Pilz.Plugins.Advanced.UI/FeatureInsertPosition.cs
index fa3bc66..e45a0df 100644
--- a/Pilz.Plugins.Advanced/FeatureInsertPosition.cs
+++ b/Pilz.Plugins.Advanced.UI/FeatureInsertPosition.cs
@@ -4,7 +4,7 @@ using System.Linq;
using System.Text;
using System.Threading.Tasks;
-namespace Pilz.Plugins.Advanced
+namespace Pilz.Plugins.Advanced.UI
{
[Flags]
public enum FeatureInsertPosition
diff --git a/Pilz.Plugins.Advanced.UI/Pilz.Plugins.Advanced.UI.csproj b/Pilz.Plugins.Advanced.UI/Pilz.Plugins.Advanced.UI.csproj
new file mode 100644
index 0000000..27e5a3a
--- /dev/null
+++ b/Pilz.Plugins.Advanced.UI/Pilz.Plugins.Advanced.UI.csproj
@@ -0,0 +1,21 @@
+
+
+
+ net8.0-windows
+ enable
+ enable
+ true
+ https://gitlab.com/Pilzinsel64/pilz-framework
+ MIT
+
+
+
+ True
+ 1.0.0
+
+
+
+
+
+
+
diff --git a/Pilz.Plugins.Advanced/PluginModule.cs b/Pilz.Plugins.Advanced.UI/PluginModule.cs
similarity index 50%
rename from Pilz.Plugins.Advanced/PluginModule.cs
rename to Pilz.Plugins.Advanced.UI/PluginModule.cs
index bb1b171..7990af4 100644
--- a/Pilz.Plugins.Advanced/PluginModule.cs
+++ b/Pilz.Plugins.Advanced.UI/PluginModule.cs
@@ -1,14 +1,11 @@
-using Pilz.UI.Telerik;
-using Pilz.UI.Telerik.Dialogs;
-using System.Drawing;
+using System.Drawing;
using System.Windows.Forms;
-using Telerik.WinControls;
-namespace Pilz.Plugins.Advanced
+namespace Pilz.Plugins.Advanced.UI
{
- public abstract class PluginModule : PluginFeature
+ public abstract class PluginModule : PluginModuleBase where TPluginModuleUI : Control
{
- public delegate void PluginModuleUIEventHandler(PluginModule module, PluginModuleUI ui);
+ public delegate void PluginModuleUIEventHandler(PluginModuleBase module, TPluginModuleUI ui);
///
/// Fires when a instance has been created.
@@ -18,26 +15,34 @@ namespace Pilz.Plugins.Advanced
public bool Visible { get; set; } = true;
public bool AllowEmbedding { get; set; } = true;
+ ///
+ /// Wrapper for the property to directly use it as .
+ ///
+ public Image? Image
+ {
+ get => base.Icon as Image;
+ set => base.Icon = value;
+ }
+
+ protected PluginModule(string moduleType, string moduleIdentifier) : base(moduleType, moduleIdentifier)
+ {
+ }
+
protected PluginModule(string moduleType, string moduleIdentifier, string moduleName) : base(moduleType, moduleIdentifier, moduleName)
{
}
public virtual void ShowUI()
{
- if (CreateNewUI() is PluginModuleUI ui)
- {
- ui.BackColor = Color.Transparent;
- DialogBaseForm.Show(ui, Name!, Icon!.ToImage().ToIcon()!);
- }
}
- public virtual PluginModuleUI CreateUI()
+ public virtual TPluginModuleUI CreateUI()
{
var ui = CreateNewUI();
OnUICreated?.Invoke(this, ui);
return ui;
}
- protected abstract PluginModuleUI CreateNewUI();
+ protected abstract TPluginModuleUI CreateNewUI();
}
}
\ No newline at end of file
diff --git a/Pilz.Plugins.Advanced/Pilz.Plugins.Advanced.csproj b/Pilz.Plugins.Advanced/Pilz.Plugins.Advanced.csproj
index d6ab606..a9b0041 100644
--- a/Pilz.Plugins.Advanced/Pilz.Plugins.Advanced.csproj
+++ b/Pilz.Plugins.Advanced/Pilz.Plugins.Advanced.csproj
@@ -1,23 +1,16 @@
+
- net8.0-windows
+ net8.0
enable
enable
- true
https://gitlab.com/Pilzinsel64/pilz-framework
MIT
+
True
- 2.6.1
+ 2.7.0
-
-
-
-
-
-
- all
-
-
+
\ No newline at end of file
diff --git a/Pilz.Plugins.Advanced/PluginFeature.cs b/Pilz.Plugins.Advanced/PluginFeature.cs
index 9029e2e..dff18a3 100644
--- a/Pilz.Plugins.Advanced/PluginFeature.cs
+++ b/Pilz.Plugins.Advanced/PluginFeature.cs
@@ -3,7 +3,6 @@ using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
-using Telerik.WinControls;
namespace Pilz.Plugins.Advanced
{
@@ -30,7 +29,7 @@ namespace Pilz.Plugins.Advanced
///
/// The symbol for the feature.
///
- public virtual RadSvgImage? Icon { get; set; }
+ public virtual object? Icon { get; set; }
///
/// Sets the prioritization of the feature.
/// This will be respected on abfragen features and on inserting as items using the extension methods"/>.
diff --git a/Pilz.Plugins.Advanced/PluginFeatureController.cs b/Pilz.Plugins.Advanced/PluginFeatureController.cs
index 2f1a0a4..66ae903 100644
--- a/Pilz.Plugins.Advanced/PluginFeatureController.cs
+++ b/Pilz.Plugins.Advanced/PluginFeatureController.cs
@@ -4,8 +4,6 @@ using System.Linq;
using System.Reflection;
using System.Text;
using System.Threading.Tasks;
-using Telerik.Pdf;
-using Telerik.WinControls;
namespace Pilz.Plugins.Advanced
{
@@ -167,7 +165,7 @@ namespace Pilz.Plugins.Advanced
}
}
- public class ModuleController(PluginFeatureController controller) : FeatureController(controller)
+ public class ModuleController(PluginFeatureController controller) : FeatureController(controller)
{
}
diff --git a/Pilz.Plugins.Advanced/PluginFunction.cs b/Pilz.Plugins.Advanced/PluginFunction.cs
index b8f6629..4831687 100644
--- a/Pilz.Plugins.Advanced/PluginFunction.cs
+++ b/Pilz.Plugins.Advanced/PluginFunction.cs
@@ -3,7 +3,6 @@ using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
-using Telerik.WinControls;
namespace Pilz.Plugins.Advanced
{
diff --git a/Pilz.Plugins.Advanced/PluginModuleBase.cs b/Pilz.Plugins.Advanced/PluginModuleBase.cs
new file mode 100644
index 0000000..7e3e33c
--- /dev/null
+++ b/Pilz.Plugins.Advanced/PluginModuleBase.cs
@@ -0,0 +1,16 @@
+using System.ComponentModel;
+
+namespace Pilz.Plugins.Advanced
+{
+ [EditorBrowsable(EditorBrowsableState.Never)]
+ public abstract class PluginModuleBase : PluginFeature
+ {
+ protected PluginModuleBase(string moduleType, string moduleIdentifier) : base(moduleType, moduleIdentifier)
+ {
+ }
+
+ protected PluginModuleBase(string moduleType, string moduleIdentifier, string moduleName) : base(moduleType, moduleIdentifier, moduleName)
+ {
+ }
+ }
+}
\ No newline at end of file
diff --git a/Pilz.sln b/Pilz.sln
index 0048474..9dc50ea 100644
--- a/Pilz.sln
+++ b/Pilz.sln
@@ -41,6 +41,10 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Pilz.Plugins.Advanced", "Pi
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Pilz.Gaming.Minecraft", "Pilz.Gaming.Minecraft\Pilz.Gaming.Minecraft.csproj", "{B285DA24-39C9-4BA2-AF3D-A1A05737268B}"
EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Pilz.Plugins.Advanced.UI", "Pilz.Plugins.Advanced.UI\Pilz.Plugins.Advanced.UI.csproj", "{5030C047-B04B-4BA7-8CEF-3B6C3F3A2C59}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Pilz.Plugins.Advanced.UI.Telerik", "Pilz.Plugins.Advanced.UI.Telerik\Pilz.Plugins.Advanced.UI.Telerik.csproj", "{0A837BD6-A19C-4A05-A57D-CBB0CD64B244}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@@ -201,6 +205,22 @@ Global
{B285DA24-39C9-4BA2-AF3D-A1A05737268B}.Release|Any CPU.Build.0 = Release|Any CPU
{B285DA24-39C9-4BA2-AF3D-A1A05737268B}.Release|x86.ActiveCfg = Release|Any CPU
{B285DA24-39C9-4BA2-AF3D-A1A05737268B}.Release|x86.Build.0 = Release|Any CPU
+ {5030C047-B04B-4BA7-8CEF-3B6C3F3A2C59}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {5030C047-B04B-4BA7-8CEF-3B6C3F3A2C59}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {5030C047-B04B-4BA7-8CEF-3B6C3F3A2C59}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {5030C047-B04B-4BA7-8CEF-3B6C3F3A2C59}.Debug|x86.Build.0 = Debug|Any CPU
+ {5030C047-B04B-4BA7-8CEF-3B6C3F3A2C59}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {5030C047-B04B-4BA7-8CEF-3B6C3F3A2C59}.Release|Any CPU.Build.0 = Release|Any CPU
+ {5030C047-B04B-4BA7-8CEF-3B6C3F3A2C59}.Release|x86.ActiveCfg = Release|Any CPU
+ {5030C047-B04B-4BA7-8CEF-3B6C3F3A2C59}.Release|x86.Build.0 = Release|Any CPU
+ {0A837BD6-A19C-4A05-A57D-CBB0CD64B244}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {0A837BD6-A19C-4A05-A57D-CBB0CD64B244}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {0A837BD6-A19C-4A05-A57D-CBB0CD64B244}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {0A837BD6-A19C-4A05-A57D-CBB0CD64B244}.Debug|x86.Build.0 = Debug|Any CPU
+ {0A837BD6-A19C-4A05-A57D-CBB0CD64B244}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {0A837BD6-A19C-4A05-A57D-CBB0CD64B244}.Release|Any CPU.Build.0 = Release|Any CPU
+ {0A837BD6-A19C-4A05-A57D-CBB0CD64B244}.Release|x86.ActiveCfg = Release|Any CPU
+ {0A837BD6-A19C-4A05-A57D-CBB0CD64B244}.Release|x86.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE