using System;
using Shared;
using HDL_ON.UI.CSS;
namespace HDL_ON.UI
{
///
/// 通用二次确认界面
/// 可以自定义按钮文字、提示内容支持多行显示
///
public class ConfirmDialog : Dialog
{
/// bodyView
///
FrameLayout bodyView;
///
/// 是否加载报警颜色窗口(红色)
///
bool isAlarmColor = false;
///
///
///
public ConfirmDialog()
{
}
///
///
///
public ConfirmDialog(bool isAlarmColor)
{
this.isAlarmColor = isAlarmColor;
}
///
/// 初始化Dialog
///
/// 标题
/// 提示信息
///
///
///
///
void ShowDialogBase(string titleStr, string msgStr, Action okAction, Action cancelAction, int cancelID = StringId.Cancel, int confirmID = StringId.Confirm)
{
this.BackgroundColor = CSS_Color.DialogTransparentColor1;
if (bodyView != null && bodyView.Parent != null)
{
bodyView.RemoveFromParent();
}
bodyView = new FrameLayout();
this.AddChidren(bodyView);
FrameLayout contentView = new FrameLayout()
{
Gravity = Gravity.Center,
Width = Application.GetRealWidth(270),
Height = Application.GetRealHeight(140),
BackgroundColor = CSS_Color.MainBackgroundColor,
BorderColor = 0x00000000,
BorderWidth = 0,
Radius = (uint)Application.GetMinRealAverage(10),
};
bodyView.AddChidren(contentView);
Button btnTitle = new Button()
{
Y = Application.GetRealHeight(20),
Height = Application.GetRealHeight(22),
TextColor = CSS_Color.MainColor,
TextSize = CSS_FontSize.SubheadingFontSize,
TextAlignment = TextAlignment.Center,
IsBold = true,
Text = titleStr,
};
contentView.AddChidren(btnTitle);
int Width135 = Application.GetRealWidth(135);
//提示内容按钮
Button btnMsg = new Button()
{
Y = btnTitle.Bottom + Application.GetRealHeight(4),
X = Application.GetRealWidth(6),
Height = Application.GetRealHeight(46),
Width = Application.GetRealWidth(258),
TextAlignment = TextAlignment.Center,
TextColor = CSS_Color.TextualColor,
TextSize = CSS_FontSize.PromptFontSize_FirstLevel,
Text = msgStr,
IsMoreLines = true,
};
contentView.AddChidren(btnMsg);
Button btnLine = new Button()
{
Y = Application.GetRealHeight(96),
Height = Application.GetRealHeight(1),
Width = Application.GetRealWidth(270 / 2),
BackgroundColor = CSS_Color.DividingLineColor,
};
contentView.AddChidren(btnLine);
Button btnCancel = new Button()
{
Y = btnLine.Bottom,
Width = Width135,
Height = Application.GetRealHeight(43),
TextAlignment = TextAlignment.Center,
TextColor = CSS_Color.TextualColor,
TextSize = CSS_FontSize.SubheadingFontSize,
TextID = cancelID,
};
contentView.AddChidren(btnCancel);
Button btnConfirm = new Button()
{
X = contentView.Width - Width135,
Y = btnLine.Y,
Width = Width135,
Height = Application.GetRealHeight(45),
TextAlignment = TextAlignment.Center,
//TextColor = CSS_Color.TextualColor,
TextSize = CSS_FontSize.SubheadingFontSize,
TextColor = CSS_Color.MainBackgroundColor,
BackgroundColor = CSS_Color.MainColor,
TextID = confirmID,
};
contentView.AddChidren(btnConfirm);
//例:右下圆角 大小为50
int mRectCornerID = HDLUtils.RectCornerBottomRight;
btnConfirm.SetCornerWithSameRadius((uint)Application.GetMinRealAverage(10), mRectCornerID);
btnCancel.MouseUpEventHandler += (sender, e) =>
{
this.Close();
cancelAction?.Invoke();
};
btnConfirm.MouseUpEventHandler += (sender, e) =>
{
this.Close();
okAction?.Invoke();
};
//this.Show();
if(isAlarmColor)
{
btnTitle.TextColor = CSS_Color.WarningColor;
btnConfirm.TextColor = CSS_Color.MainBackgroundColor;
btnConfirm.BackgroundColor = CSS_Color.WarningColor;
}
}
///
/// 加载提示Dialog
///
///
///
///
public void ShowDialog(int titleId, int msgId, Action okAction, Action cancelAction = null)
{
this.ShowDialogBase(Language.StringByID(titleId), Language.StringByID(msgId), okAction, cancelAction);
this.Show();
}
///
/// 加载提示Dialog
/// 可以自定义按钮文字
///
///
///
///
///
///
///
public void ShowDialog(int titleId, int msgId, Action okAction, Action cancelAction, int cancelID, int confirmID)
{
this.ShowDialogBase(Language.StringByID(titleId), Language.StringByID(msgId), okAction, cancelAction, cancelID, confirmID);
this.Show();
}
///
/// 加载提示Dialog
///
///
///
///
public void ShowDialog(string titleStr, string msgStr, Action okAction, Action cancelAction = null)
{
this.ShowDialogBase(titleStr, msgStr, okAction, cancelAction);
this.Show();
}
///
/// 加载提示Dialog
/// 可以自定义按钮文字
///
///
///
///
///
///
///
public void ShowDialog(string titleStr, string msgStr, Action okAction, Action cancelAction, int cancelID, int confirmID)
{
this.ShowDialogBase(titleStr, msgStr, okAction, cancelAction, cancelID, confirmID);
this.Show();
}
///
/// RefreshDialog 在Dialog没关闭情况下调用
/// 可以自定义按钮文字
///
///
///
///
///
///
///
public void RefreshDialog(string titleStr, string msgStr, Action okAction, Action cancelAction, int cancelID, int confirmID)
{
this.ShowDialogBase(titleStr, msgStr, okAction, cancelAction, cancelID, confirmID);
//this.Show();不需要show
}
}
}