|
using System;
|
using Shared;
|
using HDL_ON.UI.CSS;
|
|
namespace HDL_ON.UI
|
{
|
/// <summary>
|
/// 通用二次确认界面
|
/// 可以自定义按钮文字、提示内容支持多行显示
|
/// </summary>
|
public class ConfirmDialog : Dialog
|
{
|
/// bodyView
|
/// </summary>
|
FrameLayout bodyView;
|
/// <summary>
|
/// 是否加载报警颜色窗口(红色)
|
/// </summary>
|
bool isAlarmColor = false;
|
|
/// <summary>
|
///
|
/// </summary>
|
public ConfirmDialog()
|
{
|
|
}
|
/// <summary>
|
///
|
/// </summary>
|
public ConfirmDialog(bool isAlarmColor)
|
{
|
this.isAlarmColor = isAlarmColor;
|
}
|
|
/// <summary>
|
/// 初始化Dialog
|
/// </summary>
|
/// <param name="titleStr"></param>
|
/// <param name="msgStr"></param>
|
/// <param name="okAction"></param>
|
/// <param name="cancelAction"></param>
|
/// <param name="cancelID"></param>
|
/// <param name="confirmID"></param>
|
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;
|
}
|
}
|
|
/// <summary>
|
/// 加载提示Dialog
|
/// </summary>
|
/// <param name="titleId"></param>
|
/// <param name="msgId"></param>
|
/// <param name="callBackAction"></param>
|
public void ShowDialog(int titleId, int msgId, Action okAction, Action cancelAction = null)
|
{
|
this.ShowDialogBase(Language.StringByID(titleId), Language.StringByID(msgId), okAction, cancelAction);
|
this.Show();
|
}
|
|
/// <summary>
|
/// 加载提示Dialog
|
/// 可以自定义按钮文字
|
/// </summary>
|
/// <param name="titleId"></param>
|
/// <param name="msgId"></param>
|
/// <param name="okAction"></param>
|
/// <param name="cancelAction"></param>
|
/// <param name="cancelID"></param>
|
/// <param name="confirmID"></param>
|
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();
|
}
|
|
/// <summary>
|
/// 加载提示Dialog
|
/// </summary>
|
/// <param name="titleId"></param>
|
/// <param name="msgId"></param>
|
/// <param name="callBackAction"></param>
|
public void ShowDialog(string titleStr, string msgStr, Action okAction, Action cancelAction = null)
|
{
|
this.ShowDialogBase(titleStr, msgStr, okAction, cancelAction);
|
this.Show();
|
}
|
|
/// <summary>
|
/// 加载提示Dialog
|
/// 可以自定义按钮文字
|
/// </summary>
|
/// <param name="titleStr"></param>
|
/// <param name="msgStr"></param>
|
/// <param name="okAction"></param>
|
/// <param name="cancelAction"></param>
|
/// <param name="cancelID"></param>
|
/// <param name="confirmID"></param>
|
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();
|
}
|
|
/// <summary>
|
/// RefreshDialog 在Dialog没关闭情况下调用
|
/// 可以自定义按钮文字
|
/// </summary>
|
/// <param name="titleStr"></param>
|
/// <param name="msgStr"></param>
|
/// <param name="okAction"></param>
|
/// <param name="cancelAction"></param>
|
/// <param name="cancelID"></param>
|
/// <param name="confirmID"></param>
|
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
|
}
|
}
|
}
|