diff --git a/Pilz.UI.Telerik.SymbolFactory/Pilz - Backup.UI.Telerik.SymbolFactory.csproj b/Pilz.UI.Telerik.SymbolFactory/Pilz - Backup.UI.Telerik.SymbolFactory.csproj
new file mode 100644
index 0000000..4ed218b
--- /dev/null
+++ b/Pilz.UI.Telerik.SymbolFactory/Pilz - Backup.UI.Telerik.SymbolFactory.csproj
@@ -0,0 +1,10 @@
+
+
+
+ net6.0
+ enable
+ enable
+ Pilz.UI.Telerik
+
+
+
diff --git a/Pilz.UI.Telerik.SymbolFactory/Pilz.UI.Telerik.SymbolFactory.csproj b/Pilz.UI.Telerik.SymbolFactory/Pilz.UI.Telerik.SymbolFactory.csproj
new file mode 100644
index 0000000..b146c5f
--- /dev/null
+++ b/Pilz.UI.Telerik.SymbolFactory/Pilz.UI.Telerik.SymbolFactory.csproj
@@ -0,0 +1,15 @@
+
+
+
+ net6.0-windows
+ enable
+ enable
+ Pilz.UI.Telerik
+
+
+
+
+
+
+
+
diff --git a/Pilz.UI.Telerik.SymbolFactory/SvgImageSize.cs b/Pilz.UI.Telerik.SymbolFactory/SvgImageSize.cs
new file mode 100644
index 0000000..905d4ed
--- /dev/null
+++ b/Pilz.UI.Telerik.SymbolFactory/SvgImageSize.cs
@@ -0,0 +1,16 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Pilz.UI.Telerik
+{
+ public enum SvgImageSize
+ {
+ Default,
+ Small,
+ Medium,
+ Large
+ }
+}
diff --git a/Pilz.UI.Telerik.SymbolFactory/SymbolFactory.cs b/Pilz.UI.Telerik.SymbolFactory/SymbolFactory.cs
new file mode 100644
index 0000000..91ed741
--- /dev/null
+++ b/Pilz.UI.Telerik.SymbolFactory/SymbolFactory.cs
@@ -0,0 +1,87 @@
+using System.Drawing;
+using System.Reflection;
+using Telerik.WinControls;
+using Telerik.WinControls.Svg;
+
+namespace Pilz.UI.Telerik
+{
+ public abstract class SymbolFactory where TSvgSymbols : Enum
+ {
+ public abstract string GetSvgImageRessourcePath(TSvgSymbols svgImage);
+ public abstract Assembly GetSvgImageResourceAssembly();
+
+ protected virtual Size ResolveCommonSize(SvgImageSize size)
+ {
+ return size switch
+ {
+ SvgImageSize.Small => new Size(16, 16),
+ SvgImageSize.Medium => new Size(20, 20),
+ SvgImageSize.Large => new Size(32, 32),
+ _ => Size.Empty,
+ };
+ }
+
+ public virtual Stream? GetSvgImageRessourceStream(TSvgSymbols svgImage)
+ {
+ var asm = GetSvgImageResourceAssembly();
+ var path = GetSvgImageRessourcePath(svgImage);
+ return asm.GetManifestResourceStream(path);
+ }
+
+ public virtual RadSvgImage GetSvgImage(TSvgSymbols svgImage, SvgImageSize size)
+ {
+ return GetSvgImage(svgImage, ResolveCommonSize(size));
+ }
+
+ public virtual RadSvgImage GetSvgImage(TSvgSymbols svgImage, Size size)
+ {
+ using var stream = GetSvgImageRessourceStream(svgImage);
+ var img = RadSvgImage.FromStream(stream);
+
+ if (size.IsEmpty)
+ img.Size = size;
+
+ return img;
+ }
+
+ public virtual RadSvgImage GetSvgImageColored(TSvgSymbols svgImage, SvgImageSize size, Color color)
+ {
+ return GetSvgImageColored(svgImage, ResolveCommonSize(size), color);
+ }
+
+ public virtual RadSvgImage GetSvgImageColored(TSvgSymbols svgImage, Size size, Color color)
+ {
+ var img = GetSvgImage(svgImage, size);
+
+ img.Document.Fill = new SvgColourServer(color);
+ img.ClearCache();
+
+ return img;
+ }
+
+ public virtual Image GetImage(TSvgSymbols svgImage, SvgImageSize size)
+ {
+ return GetImage(svgImage, ResolveCommonSize(size));
+ }
+
+ public virtual Image GetImage(TSvgSymbols svgImage, Size size)
+ {
+ return GetImageFromSvg(GetSvgImage(svgImage, size));
+ }
+
+ public virtual Image GetImageColored(TSvgSymbols svgImage, SvgImageSize size, Color color)
+ {
+ return GetImageColored(svgImage, ResolveCommonSize(size), color);
+ }
+
+ public virtual Image GetImageColored(TSvgSymbols svgImage, Size size, Color color)
+ {
+ return GetImageFromSvg(GetSvgImageColored(svgImage, size, color));
+ }
+
+ public virtual Image GetImageFromSvg(RadSvgImage svg)
+ {
+ return svg.Document.Draw(svg.Width, svg.Height);
+ }
+ }
+}
\ No newline at end of file
diff --git a/Pilz.UI.Telerik/Dialogs/DialogBaseForm.Statics.cs b/Pilz.UI.Telerik/Dialogs/DialogBaseForm.Statics.cs
new file mode 100644
index 0000000..6bc58a7
--- /dev/null
+++ b/Pilz.UI.Telerik/Dialogs/DialogBaseForm.Statics.cs
@@ -0,0 +1,44 @@
+using System;
+using System.Collections.Generic;
+using System.Drawing;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows.Forms;
+
+namespace Pilz.UI.Telerik.Dialogs
+{
+ partial class DialogBaseForm
+ {
+ public delegate void DialogLoadingEventHandler(DialogLoadingEventArgs e);
+ public delegate void DialogClosedEventHandler(DialogClosedEventArgs e);
+
+ public static event DialogLoadingEventHandler? DialogLoading;
+ public static event DialogClosedEventHandler? DialogClosed;
+
+ public static T ShowDialog(string title, Icon icon, object? tag = null) where T : FlyoutDialogBase
+ {
+ return ShowDialog(null, title, icon, tag);
+ }
+
+ public static T ShowDialog(IWin32Window? parent, string title, Icon icon, object? tag = null) where T : FlyoutDialogBase
+ {
+ var dialogPanel = Activator.CreateInstance();
+ dialogPanel.Dock = DockStyle.Fill;
+ dialogPanel.Tag = tag;
+
+ var dialog = new DialogBaseForm
+ {
+ DialogPanel = dialogPanel,
+ Text = title,
+ Icon = icon,
+ StartPosition = parent == null ? FormStartPosition.CenterScreen : FormStartPosition.CenterParent,
+ ClientSize = dialogPanel.Size
+ };
+ dialog.Controls.Add(dialogPanel);
+ dialog.ShowDialog(parent);
+
+ return dialogPanel;
+ }
+ }
+}
diff --git a/Pilz.UI.Telerik/Dialogs/DialogBaseForm.cs b/Pilz.UI.Telerik/Dialogs/DialogBaseForm.cs
new file mode 100644
index 0000000..06a6ef3
--- /dev/null
+++ b/Pilz.UI.Telerik/Dialogs/DialogBaseForm.cs
@@ -0,0 +1,34 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows.Forms;
+using Telerik.WinControls.UI;
+
+namespace Pilz.UI.Telerik.Dialogs
+{
+ public partial class DialogBaseForm : RadForm
+ {
+ public FlyoutDialogBase? DialogPanel { get; private set; }
+
+ private DialogBaseForm()
+ {
+ Load += DialogBaseForm_Load;
+ FormClosed += DialogBaseForm_FormClosed;
+ }
+
+ private void DialogBaseForm_Load(object? sender, EventArgs e)
+ {
+ if (DialogPanel is ILoadContent iLoadContent)
+ iLoadContent.LoadContent();
+
+ DialogLoading?.Invoke(new DialogLoadingEventArgs(this));
+ }
+
+ private void DialogBaseForm_FormClosed(object? sender, FormClosedEventArgs e)
+ {
+ DialogClosed?.Invoke(new DialogClosedEventArgs(this));
+ }
+ }
+}
diff --git a/Pilz.UI.Telerik/Dialogs/DialogClosedEventArgs.cs b/Pilz.UI.Telerik/Dialogs/DialogClosedEventArgs.cs
new file mode 100644
index 0000000..8f0b05d
--- /dev/null
+++ b/Pilz.UI.Telerik/Dialogs/DialogClosedEventArgs.cs
@@ -0,0 +1,20 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows.Forms;
+
+namespace Pilz.UI.Telerik.Dialogs
+{
+ public class DialogClosedEventArgs : EventArgs
+ {
+ public DialogBaseForm Parent { get; private set; }
+ public FlyoutDialogBase? Content => Parent?.DialogPanel;
+
+ public DialogClosedEventArgs(DialogBaseForm dialog)
+ {
+ Parent = dialog;
+ }
+ }
+}
diff --git a/Pilz.UI.Telerik/Dialogs/DialogLoadingEventArgs.cs b/Pilz.UI.Telerik/Dialogs/DialogLoadingEventArgs.cs
new file mode 100644
index 0000000..2e47dbf
--- /dev/null
+++ b/Pilz.UI.Telerik/Dialogs/DialogLoadingEventArgs.cs
@@ -0,0 +1,21 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows.Forms;
+using System.Windows.Forms.Design;
+
+namespace Pilz.UI.Telerik.Dialogs
+{
+ public class DialogLoadingEventArgs : EventArgs
+ {
+ public DialogBaseForm Parent { get; private set; }
+ public FlyoutDialogBase? Content => Parent?.DialogPanel;
+
+ public DialogLoadingEventArgs(DialogBaseForm dialog)
+ {
+ Parent = dialog;
+ }
+ }
+}
diff --git a/Pilz.UI.Telerik/Dialogs/FlyoutClosedEventArgs.cs b/Pilz.UI.Telerik/Dialogs/FlyoutClosedEventArgs.cs
new file mode 100644
index 0000000..3c310d4
--- /dev/null
+++ b/Pilz.UI.Telerik/Dialogs/FlyoutClosedEventArgs.cs
@@ -0,0 +1,18 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows.Forms;
+
+namespace Pilz.UI.Telerik.Dialogs
+{
+ public class FlyoutClosedEventArgs : global::Telerik.WinControls.UI.SplashScreen.FlyoutClosedEventArgs
+ {
+ public new FlyoutDialogBase? Content => base.Content as FlyoutDialogBase;
+
+ public FlyoutClosedEventArgs(FlyoutDialogBase content) : base(content)
+ {
+ }
+ }
+}
diff --git a/Pilz.UI.Telerik/Dialogs/FlyoutCreatedEventArgs.cs b/Pilz.UI.Telerik/Dialogs/FlyoutCreatedEventArgs.cs
new file mode 100644
index 0000000..e39597c
--- /dev/null
+++ b/Pilz.UI.Telerik/Dialogs/FlyoutCreatedEventArgs.cs
@@ -0,0 +1,19 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows.Forms;
+using Telerik.WinControls.UI.SplashScreen;
+
+namespace Pilz.UI.Telerik.Dialogs
+{
+ public class FlyoutCreatedEventArgs : ContentCreatedEventArgs
+ {
+ public new FlyoutDialogBase? Content => base.Content as FlyoutDialogBase;
+
+ public FlyoutCreatedEventArgs(FlyoutDialogBase content) : base(content)
+ {
+ }
+ }
+}
diff --git a/Pilz.UI.Telerik/Dialogs/FlyoutDialogBase.Designer.cs b/Pilz.UI.Telerik/Dialogs/FlyoutDialogBase.Designer.cs
new file mode 100644
index 0000000..385c2ea
--- /dev/null
+++ b/Pilz.UI.Telerik/Dialogs/FlyoutDialogBase.Designer.cs
@@ -0,0 +1,77 @@
+namespace Pilz.UI.Telerik.Dialogs
+{
+ partial class FlyoutDialogBase
+ {
+ ///
+ /// Erforderliche Designervariable.
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// Verwendete Ressourcen bereinigen.
+ ///
+ /// True, wenn verwaltete Ressourcen gelöscht werden sollen; andernfalls False.
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Vom Komponenten-Designer generierter Code
+
+ ///
+ /// Erforderliche Methode für die Designerunterstützung.
+ /// Der Inhalt der Methode darf nicht mit dem Code-Editor geändert werden.
+ ///
+ private void InitializeComponent()
+ {
+ System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FlyoutDialogBase));
+ radButton_Cancel = new global::Telerik.WinControls.UI.RadButton();
+ radButton_Confirm = new global::Telerik.WinControls.UI.RadButton();
+ panel_ActionButtons = new System.Windows.Forms.Panel();
+ ((System.ComponentModel.ISupportInitialize)radButton_Cancel).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)radButton_Confirm).BeginInit();
+ panel_ActionButtons.SuspendLayout();
+ SuspendLayout();
+ //
+ // radButton_Cancel
+ //
+ resources.ApplyResources(radButton_Cancel, "radButton_Cancel");
+ radButton_Cancel.Name = "radButton_Cancel";
+ radButton_Cancel.Click += RadButton_Cancel_Click;
+ //
+ // radButton_Confirm
+ //
+ resources.ApplyResources(radButton_Confirm, "radButton_Confirm");
+ radButton_Confirm.Name = "radButton_Confirm";
+ radButton_Confirm.Click += RadButton_Confirm_Click;
+ //
+ // panel_ActionButtons
+ //
+ panel_ActionButtons.Controls.Add(radButton_Cancel);
+ panel_ActionButtons.Controls.Add(radButton_Confirm);
+ resources.ApplyResources(panel_ActionButtons, "panel_ActionButtons");
+ panel_ActionButtons.Name = "panel_ActionButtons";
+ //
+ // FlyoutDialogBase
+ //
+ resources.ApplyResources(this, "$this");
+ AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ Controls.Add(panel_ActionButtons);
+ Name = "FlyoutDialogBase";
+ ((System.ComponentModel.ISupportInitialize)radButton_Cancel).EndInit();
+ ((System.ComponentModel.ISupportInitialize)radButton_Confirm).EndInit();
+ panel_ActionButtons.ResumeLayout(false);
+ ResumeLayout(false);
+ }
+
+ #endregion
+
+ private global::Telerik.WinControls.UI.RadButton radButton_Cancel;
+ private global::Telerik.WinControls.UI.RadButton radButton_Confirm;
+ private System.Windows.Forms.Panel panel_ActionButtons;
+ }
+}
diff --git a/Pilz.UI.Telerik/Dialogs/FlyoutDialogBase.Statics.cs b/Pilz.UI.Telerik/Dialogs/FlyoutDialogBase.Statics.cs
new file mode 100644
index 0000000..25b1c3b
--- /dev/null
+++ b/Pilz.UI.Telerik/Dialogs/FlyoutDialogBase.Statics.cs
@@ -0,0 +1,101 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using Telerik.WinControls.UI.SplashScreen;
+using Telerik.WinControls.UI;
+using System.Windows.Forms;
+
+namespace Pilz.UI.Telerik.Dialogs
+{
+ partial class FlyoutDialogBase
+ {
+ public delegate void FlyoutCreatedEventHandler(FlyoutCreatedEventArgs e);
+ public delegate void FlyoutClosedEventHandler(FlyoutClosedEventArgs e);
+
+ public static event FlyoutCreatedEventHandler FlyoutCreated
+ {
+ add => flyoutCreatedHandlers.Add(value);
+ remove => flyoutCreatedHandlers.Remove(value);
+ }
+
+ public static event FlyoutClosedEventHandler FlyoutClosed
+ {
+ add => flyoutCloseHandlers.Add(value);
+ remove => flyoutCloseHandlers.Remove(value);
+ }
+
+ private static readonly List flyoutCreatedHandlers = new();
+ private static readonly List flyoutCloseHandlers = new();
+
+ private static object? tagToAssign = null;
+ public static Control? ParentContext { get; private set; } = null;
+
+ static FlyoutDialogBase()
+ {
+ RadFlyoutManager.ContentCreated += RadFlyoutManager_ContentCreated;
+ RadFlyoutManager.FlyoutClosed += RadFlyoutManager_FlyoutClosed;
+ }
+
+ private static void RadFlyoutManager_ContentCreated(ContentCreatedEventArgs e)
+ {
+ if (e.Content is FlyoutDialogBase dialogBase)
+ {
+ if (tagToAssign != null)
+ dialogBase.Tag = tagToAssign;
+
+ var eventArgs = new FlyoutCreatedEventArgs((FlyoutDialogBase)e.Content);
+
+ if (dialogBase is ILoadContent iLoadContent)
+ iLoadContent.LoadContent();
+
+ foreach (var args in flyoutCreatedHandlers)
+ {
+ if (ParentContext != null)
+ ParentContext?.Invoke(args, eventArgs);
+ else
+ args.Invoke(eventArgs);
+ }
+ }
+ }
+
+ private static void RadFlyoutManager_FlyoutClosed(global::Telerik.WinControls.UI.SplashScreen.FlyoutClosedEventArgs e)
+ {
+ if (e.Content is FlyoutDialogBase dialogBase)
+ {
+ var eventArgs = new FlyoutClosedEventArgs((FlyoutDialogBase)e.Content);
+
+ foreach (var args in flyoutCloseHandlers)
+ {
+ if (ParentContext != null)
+ ParentContext?.Invoke(args, eventArgs);
+ else
+ args.Invoke(eventArgs);
+ }
+ }
+
+ ParentContext = null;
+ }
+
+ public static void Show(Control controlToAssociate, object? tag = null)
+ {
+ Show(controlToAssociate, typeof(T), tag);
+ }
+
+ public static void Show(Control controlToAssociate, Type flyoutContentType, object? tag = null)
+ {
+ tagToAssign = tag;
+ ParentContext = controlToAssociate;
+ RadFlyoutManager.Show(controlToAssociate, flyoutContentType);
+ }
+
+ protected static void CloseFlyout()
+ {
+ if (ParentContext == null)
+ throw new NullReferenceException(nameof(ParentContext));
+
+ ParentContext.BeginInvoke(RadFlyoutManager.Close);
+ }
+ }
+}
diff --git a/Pilz.UI.Telerik/Dialogs/FlyoutDialogBase.cs b/Pilz.UI.Telerik/Dialogs/FlyoutDialogBase.cs
new file mode 100644
index 0000000..6dff35e
--- /dev/null
+++ b/Pilz.UI.Telerik/Dialogs/FlyoutDialogBase.cs
@@ -0,0 +1,86 @@
+using Pilz.UI.Telerik;
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows.Forms;
+using Telerik.WinControls;
+using Telerik.WinControls.UI;
+using Telerik.WinControls.UI.SplashScreen;
+using static Telerik.WinControls.UI.PopupEditorNotificationData;
+
+namespace Pilz.UI.Telerik.Dialogs
+{
+ public partial class FlyoutDialogBase : UserControl
+ {
+ public static RadSvgImage? CancelSvg { get; set; } = null;
+ public static RadSvgImage? ConfirmSvg { get; set; } = null;
+
+ public DialogResult Result { get; protected set; }
+
+ protected bool ActionPanelVisible
+ {
+ get => panel_ActionButtons.Visible;
+ set => panel_ActionButtons.Visible = value;
+ }
+
+ protected bool CancelButtonEnable
+ {
+ get => radButton_Cancel.Enabled;
+ set => radButton_Cancel.Enabled = value;
+ }
+
+ protected bool ConfirmButtonEnable
+ {
+ get => radButton_Confirm.Enabled;
+ set => radButton_Confirm.Enabled = value;
+ }
+
+ protected FlyoutDialogBase()
+ {
+ InitializeComponent();
+ ParentChanged += FlyoutDialogBase_ParentChanged;
+
+ // SVG Symbols
+ radButton_Cancel.SvgImage = CancelSvg;
+ radButton_Confirm.SvgImage = ConfirmSvg;
+ }
+
+ private void FlyoutDialogBase_ParentChanged(object? sender, EventArgs e)
+ {
+ var frm = FindForm();
+ if (frm != null)
+ frm.AcceptButton = radButton_Confirm;
+ }
+
+ protected void Close(DialogResult result)
+ {
+ Result = result;
+
+ if (FindForm() is DialogBaseForm dialogForm)
+ dialogForm.Close();
+ else
+ CloseFlyout();
+ }
+
+ private void RadButton_Confirm_Click(object sender, EventArgs e)
+ {
+ if (ValidateOK())
+ Close(DialogResult.OK);
+ }
+
+ private void RadButton_Cancel_Click(object sender, EventArgs e)
+ {
+ Close(DialogResult.Cancel);
+ }
+
+ protected virtual bool ValidateOK()
+ {
+ return true;
+ }
+ }
+}
diff --git a/Pilz.UI.Telerik/Dialogs/FlyoutDialogBase.resx b/Pilz.UI.Telerik/Dialogs/FlyoutDialogBase.resx
new file mode 100644
index 0000000..ce650cc
--- /dev/null
+++ b/Pilz.UI.Telerik/Dialogs/FlyoutDialogBase.resx
@@ -0,0 +1,234 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+
+ Top, Right
+
+
+
+ MiddleRight
+
+
+ 187, 3
+
+
+ 110, 24
+
+
+
+ 0
+
+
+ Cancel
+
+
+ MiddleLeft
+
+
+ ImageBeforeText
+
+
+ radButton_Cancel
+
+
+ Telerik.WinControls.UI.RadButton, Telerik.WinControls.UI, Culture=neutral, PublicKeyToken=5bb2a467cbec794e
+
+
+ panel_ActionButtons
+
+
+ 0
+
+
+ Top, Right
+
+
+ MiddleRight
+
+
+ 71, 3
+
+
+ 110, 24
+
+
+ 1
+
+
+ Okay
+
+
+ MiddleLeft
+
+
+ ImageBeforeText
+
+
+ radButton_Confirm
+
+
+ Telerik.WinControls.UI.RadButton, Telerik.WinControls.UI, Culture=neutral, PublicKeyToken=5bb2a467cbec794e
+
+
+ panel_ActionButtons
+
+
+ 1
+
+
+ Bottom
+
+
+ 0, 120
+
+
+ 300, 30
+
+
+ 2
+
+
+ panel_ActionButtons
+
+
+ System.Windows.Forms.Panel, System.Windows.Forms, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ $this
+
+
+ 0
+
+
+ True
+
+
+ 7, 15
+
+
+ 300, 150
+
+
+ FlyoutDialogBase
+
+
+ System.Windows.Forms.UserControl, System.Windows.Forms, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
\ No newline at end of file
diff --git a/Pilz.UI.Telerik/Dialogs/ILoadContent.cs b/Pilz.UI.Telerik/Dialogs/ILoadContent.cs
new file mode 100644
index 0000000..6ab549c
--- /dev/null
+++ b/Pilz.UI.Telerik/Dialogs/ILoadContent.cs
@@ -0,0 +1,13 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Pilz.UI.Telerik.Dialogs
+{
+ public interface ILoadContent
+ {
+ void LoadContent();
+ }
+}
diff --git a/Pilz.UI.Telerik/Pilz.UI.Telerik.csproj b/Pilz.UI.Telerik/Pilz.UI.Telerik.csproj
new file mode 100644
index 0000000..22c45ad
--- /dev/null
+++ b/Pilz.UI.Telerik/Pilz.UI.Telerik.csproj
@@ -0,0 +1,14 @@
+
+
+
+ net6.0-windows
+ enable
+ enable
+ true
+
+
+
+
+
+
+
diff --git a/Pilz.sln b/Pilz.sln
index 6271f04..20a2f6a 100644
--- a/Pilz.sln
+++ b/Pilz.sln
@@ -1,7 +1,7 @@
Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio 15
-VisualStudioVersion = 15.0.28307.329
+# Visual Studio Version 17
+VisualStudioVersion = 17.7.34018.315
MinimumVisualStudioVersion = 10.0.40219.1
Project("{778DAE3C-4631-46EA-AA77-85C1314464D9}") = "Pilz", "Pilz\Pilz.vbproj", "{277D2B83-7613-4C49-9CAB-E080195A6E0C}"
EndProject
@@ -31,6 +31,10 @@ Project("{778DAE3C-4631-46EA-AA77-85C1314464D9}") = "Pilz.Networking", "Pilz.Net
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Pilz.Cryptography", "Pilz.Cryptography\Pilz.Cryptography.csproj", "{3F5988E6-439E-4A9D-B2C6-47EFFB161AC6}"
EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Pilz.UI.Telerik.SymbolFactory", "Pilz.UI.Telerik.SymbolFactory\Pilz.UI.Telerik.SymbolFactory.csproj", "{2B3B8161-29FF-4526-9082-4410AB5144A5}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Pilz.UI.Telerik", "Pilz.UI.Telerik\Pilz.UI.Telerik.csproj", "{DF674119-CC28-40AA-968F-1E23D184A491}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@@ -151,6 +155,22 @@ Global
{3F5988E6-439E-4A9D-B2C6-47EFFB161AC6}.Release|Any CPU.Build.0 = Release|Any CPU
{3F5988E6-439E-4A9D-B2C6-47EFFB161AC6}.Release|x86.ActiveCfg = Release|Any CPU
{3F5988E6-439E-4A9D-B2C6-47EFFB161AC6}.Release|x86.Build.0 = Release|Any CPU
+ {2B3B8161-29FF-4526-9082-4410AB5144A5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {2B3B8161-29FF-4526-9082-4410AB5144A5}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {2B3B8161-29FF-4526-9082-4410AB5144A5}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {2B3B8161-29FF-4526-9082-4410AB5144A5}.Debug|x86.Build.0 = Debug|Any CPU
+ {2B3B8161-29FF-4526-9082-4410AB5144A5}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {2B3B8161-29FF-4526-9082-4410AB5144A5}.Release|Any CPU.Build.0 = Release|Any CPU
+ {2B3B8161-29FF-4526-9082-4410AB5144A5}.Release|x86.ActiveCfg = Release|Any CPU
+ {2B3B8161-29FF-4526-9082-4410AB5144A5}.Release|x86.Build.0 = Release|Any CPU
+ {DF674119-CC28-40AA-968F-1E23D184A491}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {DF674119-CC28-40AA-968F-1E23D184A491}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {DF674119-CC28-40AA-968F-1E23D184A491}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {DF674119-CC28-40AA-968F-1E23D184A491}.Debug|x86.Build.0 = Debug|Any CPU
+ {DF674119-CC28-40AA-968F-1E23D184A491}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {DF674119-CC28-40AA-968F-1E23D184A491}.Release|Any CPU.Build.0 = Release|Any CPU
+ {DF674119-CC28-40AA-968F-1E23D184A491}.Release|x86.ActiveCfg = Release|Any CPU
+ {DF674119-CC28-40AA-968F-1E23D184A491}.Release|x86.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE