95 lines
2.3 KiB
C#
95 lines
2.3 KiB
C#
namespace Pilz.UI.Dialogs;
|
|
|
|
public partial class FlyoutBase : UserControl
|
|
{
|
|
public DialogResult Result { get; protected set; }
|
|
public bool RegisterDialogAccept { get; set; } = true;
|
|
public bool RegisterDialogCancel { get; set; } = false;
|
|
|
|
protected bool ActionPanelVisible
|
|
{
|
|
get => tableLayoutPanel_ActionPanel.Visible;
|
|
set => tableLayoutPanel_ActionPanel.Visible = value;
|
|
}
|
|
|
|
protected bool CancelButtonVisible
|
|
{
|
|
get => button_Cancel.Visible;
|
|
set => button_Cancel.Visible = value;
|
|
}
|
|
|
|
protected bool CancelButtonEnable
|
|
{
|
|
get => button_Cancel.Enabled;
|
|
set => button_Cancel.Enabled = value;
|
|
}
|
|
|
|
protected bool ConfirmButtonEnable
|
|
{
|
|
get => button_Accept.Enabled;
|
|
set => button_Accept.Enabled = value;
|
|
}
|
|
|
|
public string Title
|
|
{
|
|
get => label_Title.Text;
|
|
set
|
|
{
|
|
label_Title.Text = value;
|
|
SetShowTitlePanel();
|
|
}
|
|
}
|
|
|
|
public FlyoutBase()
|
|
{
|
|
InitializeComponent();
|
|
ParentChanged += FlyoutBase_ParentChanged;
|
|
|
|
// Change TabIndex to a very high value
|
|
// -> prevent conflicts with controls based on this class
|
|
button_Cancel.TabIndex = int.MaxValue - 1;
|
|
button_Cancel.TabIndex = int.MaxValue;
|
|
}
|
|
|
|
private void FlyoutBase_ParentChanged(object? sender, EventArgs e)
|
|
{
|
|
var frm = FindForm();
|
|
if (frm != null)
|
|
{
|
|
if (RegisterDialogAccept)
|
|
frm.AcceptButton = button_Accept;
|
|
if (RegisterDialogCancel)
|
|
frm.CancelButton = button_Cancel;
|
|
}
|
|
}
|
|
|
|
protected void Close(DialogResult result)
|
|
{
|
|
Result = result;
|
|
|
|
if (FindForm() is DialogBase dialogForm)
|
|
dialogForm.Close();
|
|
}
|
|
|
|
protected virtual bool ValidateOK()
|
|
{
|
|
return true;
|
|
}
|
|
|
|
private void SetShowTitlePanel()
|
|
{
|
|
tableLayoutPanel_TitlePanel.Visible = !string.IsNullOrWhiteSpace(label_Title.Text);
|
|
}
|
|
|
|
private void Button_Accept_Click(object sender, System.EventArgs e)
|
|
{
|
|
if (ValidateOK())
|
|
Close(DialogResult.OK);
|
|
}
|
|
|
|
private void Button_Cancel_Click(object sender, System.EventArgs e)
|
|
{
|
|
Close(DialogResult.Cancel);
|
|
}
|
|
}
|