New file |
| | |
| | | |
| | | 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 |
| | | } |
| | | } |
| | | } |