using System; using System.Collections.Generic; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using static System.Windows.Forms.VisualStyles.VisualStyleElement.Window; 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 Show(string title, Icon icon, object? tag = null) where T : FlyoutDialogBase { return Show(null, title, icon, tag); } public static T ShowDialog(string title, Icon icon, object? tag = null) where T : FlyoutDialogBase { return ShowDialog(null, title, icon, tag); } public static T Show(IWin32Window? parent, string title, Icon icon, object? tag = null) where T : FlyoutDialogBase { return Show(CreatePanelInstance(tag), parent, title, icon); } public static T ShowDialog(IWin32Window? parent, string title, Icon icon, object? tag = null) where T : FlyoutDialogBase { return ShowDialog(CreatePanelInstance(tag), parent, title, icon); } public static T Show(T dialogPanel, string title, Icon icon) where T : FlyoutDialogBase { return Show(dialogPanel, null, title, icon); } public static T ShowDialog(T dialogPanel, string title, Icon icon) where T : FlyoutDialogBase { return ShowDialog(dialogPanel, null, title, icon); } public static T Show(T dialogPanel, IWin32Window? parent, string title, Icon icon) where T : FlyoutDialogBase { CreateForm(dialogPanel, parent, title, icon).Show(); return dialogPanel; } public static T ShowDialog(T dialogPanel, IWin32Window? parent, string title, Icon icon) where T : FlyoutDialogBase { CreateForm(dialogPanel, parent, title, icon).ShowDialog(); return dialogPanel; } private static T CreatePanelInstance(object? tag) where T : FlyoutDialogBase { T dialogPanel = Activator.CreateInstance(); dialogPanel.Tag = tag; return dialogPanel; } private static DialogBaseForm CreateForm(T dialogPanel, IWin32Window? parent, string title, Icon icon) where T : FlyoutDialogBase { dialogPanel.Dock = DockStyle.Fill; var dialog = new DialogBaseForm(dialogPanel) { Text = title, Icon = icon, StartPosition = parent == null ? FormStartPosition.CenterScreen : FormStartPosition.CenterParent, ClientSize = dialogPanel.Size }; dialog.Controls.Add(dialogPanel); return dialog; } } }