mac
2024-07-25 f9181a9c8125136f597add7c30cb2ff508d54ba7
HDL_ON/UI/UI0-Public/PublicAssmebly.cs
@@ -11,12 +11,16 @@
{
    public partial class PublicAssmebly
    {
        public Button btnTip;
        public int entryMaxLength = 20;
        //public Action entrylistener;
        void EditParaterEvent(Button btnConfirm, int errorId_IsNullOrEmpty, int errorId_ContainsPar, List<string> list, EditText editText, Action<string> callBackAction,
            FrameLayout contentView, Button btnLine, Button btnCancel, FrameLayout editView, Dialog dialog, int titleId)
        {
            var btnTip = new Button()
            btnTip = new Button()
            {
                X = editView.X,
                Y = editView.Bottom,
@@ -151,13 +155,14 @@
            etParater.TextChangeEventHandler = (sender, e) =>
            {
                if (etParater.Text.Length > 20)
                if (System.Text.Encoding.Unicode.GetBytes(etParater.Text).Length > entryMaxLength)
                {
                    etParater.Text = etParater.Text.Remove(20);
                    etParater.Text = etParater.Text.Remove(etParater.Text.Length-1);
#if __ANDROID__
                    etParater.SetSelectionEnd();
#endif
                    //entrylistener?.Invoke();
                }
            };
@@ -225,6 +230,8 @@
            };
            EditParaterEvent(btnConfirm, errorId_IsNullOrEmpty, errorId_ContainsPar, baseList, etParater, callBackAction,
                contentView, btnLine, btnCancel, editView, dialog, titleId);
            etParater.Foucs = true;
        }
        /// <summary>
@@ -352,6 +359,125 @@
        }
        /// <summary>
        /// 加载提示弹窗
        /// </summary>
        /// <param name="titleId"></param>
        /// <param name="msgId"></param>
        /// <param name="callBackAction"></param>
        public void TipOptionMsgNotTitle(string msg, Action callBackAction, int extraHeight = 0)
        {
            Dialog dialog = new Dialog()
            {
                BackgroundColor = CSS_Color.DialogTransparentColor1,
            };
            FrameLayout contentView = new FrameLayout()
            {
                Gravity = Gravity.Center,
                Width = Application.GetRealWidth(270),
                Height = Application.GetRealHeight(140 + extraHeight),
                BackgroundColor = CSS.CSS_Color.MainBackgroundColor,
                BorderColor = 0x00000000,
                BorderWidth = 0,
                Radius = (uint)Application.GetMinRealAverage(10),
            };
            dialog.AddChidren(contentView);
            Button btnMsg = new Button()
            {
                Gravity = Gravity.CenterHorizontal,
                Height = Application.GetRealHeight(40 + extraHeight),
                Y = Application.GetRealHeight(40),
                Width = Application.GetRealHeight(200),
                TextAlignment = TextAlignment.Center,
                TextColor = 0xFF222222,
                TextSize = CSS_FontSize.TextFontSize,
                Text = msg,
                IsMoreLines = true,
            };
            contentView.AddChidren(btnMsg);
            Button btnLine = new Button()
            {
                Y = Application.GetRealHeight(96 + extraHeight),
                Height = Application.GetRealHeight(1),
                Width = Application.GetRealWidth(270 / 2),
                BackgroundColor = CSS.CSS_Color.DividingLineColor,
            };
            contentView.AddChidren(btnLine);
            Button btnCancel = new Button()
            {
                Y = btnLine.Bottom,
                Width = Application.GetRealWidth(135),
                Height = Application.GetRealHeight(43),
                TextAlignment = TextAlignment.Center,
                TextColor = CSS_Color.TextualColor,
                TextSize = CSS_FontSize.SubheadingFontSize,
                //SelectedTextColor = CSS_Color.MainBackgroundColor,
                //SelectedBackgroundColor = CSS_Color.MainColor,
                TextID = StringId.Cancel,
            };
            contentView.AddChidren(btnCancel);
            Button btnLine11 = new Button()
            {
                Y = btnLine.Bottom,
                X = btnCancel.Right,
                Width = 1,
                Height = Application.GetRealHeight(43),
                BackgroundColor = CSS.CSS_Color.DividingLineColor,
            };
            contentView.AddChidren(btnCancel);
            Button btnConfirm = new Button()
            {
                X = btnLine11.Right,
                Y = btnLine.Bottom,
                Width = Application.GetRealWidth(135),
                Height = Application.GetRealHeight(45),
                TextAlignment = TextAlignment.Center,
                //TextColor = CSS_Color.TextualColor,
                TextSize = CSS_FontSize.SubheadingFontSize,
                TextColor = CSS_Color.MainColor,
                BackgroundColor = CSS_Color.MainBackgroundColor,
                TextID = StringId.Confirm,
            };
            contentView.AddChidren(btnConfirm);
            //例:右下圆角 大小为50
            int mRectCornerID = HDLUtils.RectCornerBottomRight;
            btnConfirm.SetCornerWithSameRadius((uint)Application.GetMinRealAverage(10), mRectCornerID);
            dialog.Show();
            //btnCancel.MouseDownEventHandler += (sender, e) =>
            //{
            //    btnCancel.IsSelected = true;
            //};
            btnCancel.MouseUpEventHandler += (sender, e) =>
            {
                //btnCancel.IsSelected = false;
                dialog.Close();
            };
            //btnConfirm.MouseDownEventHandler += (sender, e) =>
            //{
            //    btnConfirm.IsSelected = true;
            //};
            btnConfirm.MouseUpEventHandler += (sender, e) =>
            {
                //btnConfirm.IsSelected = false;
                callBackAction();
                dialog.Close();
            };
        }
        static Dialog dialogTipMsgAutoClose;
        /// <summary>
        /// 信息提示窗口,自动关闭
        /// </summary>
@@ -359,14 +485,31 @@
        /// <param name="isWhite"></param>
        public void TipMsgAutoClose(string msg, bool isWhite, int closeTime = 1500)
        {
            Dialog dialog = new Dialog();
            if (dialogTipMsgAutoClose == null)
            {
                dialogTipMsgAutoClose = new Dialog();
            }
            else
            {
                try
                {
                    if (dialogTipMsgAutoClose != null)
                    {
                        dialogTipMsgAutoClose.Close();
                    }
                    dialogTipMsgAutoClose = null;
                }
                catch { }
                dialogTipMsgAutoClose = new Dialog();
            }
            FrameLayout dialogBody = new FrameLayout();
            dialog.AddChidren(dialogBody);
            dialogTipMsgAutoClose.AddChidren(dialogBody);
            dialogBody.MouseUpEventHandler = (sender, e) =>
            {
                dialog.Close();
                dialog = null;
                dialogTipMsgAutoClose.Close();
                dialogTipMsgAutoClose = null;
            };
            FrameLayout frame = new FrameLayout()
@@ -378,11 +521,11 @@
                BackgroundColor = isWhite ? 0xE6FFFFFF : CSS_Color.DialogTransparentColor1,
                Radius = (uint)Application.GetRealWidth(12),
            };
            dialog.AddChidren(frame);
            dialogTipMsgAutoClose.AddChidren(frame);
            frame.MouseUpEventHandler = (sender, e) =>
            {
                dialog.Close();
                dialog = null;
                dialogTipMsgAutoClose.Close();
                dialogTipMsgAutoClose = null;
            };
            Button btnTipIcon = new Button()
@@ -407,17 +550,22 @@
            };
            frame.AddChidren(btnTipMsg);
            dialog.Show();
            dialogTipMsgAutoClose.Show();
            new Thread(() =>
            {
                Thread.Sleep(closeTime);
                Application.RunOnMainThread(() =>
                {
                    if(dialog!=null)
                    try
                    {
                        dialog.Close();
                        if (dialogTipMsgAutoClose != null)
                        {
                            dialogTipMsgAutoClose.Close();
                        }
                        dialogTipMsgAutoClose = null;
                    }
                    catch { }
                });
            })
            { IsBackground = true }.Start();
@@ -428,86 +576,105 @@
        /// <param name="title"></param>
        /// <param name="msg"></param>
        /// <param name="action"></param>
        public void TipMsg(string title, string msg, Action action = null)
        public void TipMsg(string title, string msg, Action action = null,bool again = true)
        {
            Dialog dialog = new Dialog()
            try
            {
                BackgroundColor = CSS_Color.DialogTransparentColor1,
            };
                Dialog dialog = new Dialog()
                {
                    BackgroundColor = CSS_Color.DialogTransparentColor1,
                };
            FrameLayout contentView = new FrameLayout()
                FrameLayout contentView = new FrameLayout()
                {
                    Gravity = Gravity.Center,
                    Width = Application.GetRealWidth(270),
                    Height = Application.GetRealHeight(140),
                    BackgroundColor = CSS.CSS_Color.MainBackgroundColor,
                    BorderColor = 0x00000000,
                    BorderWidth = 0,
                    Radius = (uint)Application.GetMinRealAverage(10),
                };
                dialog.AddChidren(contentView);
                Button btnTitle = new Button()
                {
                    Y = Application.GetRealHeight(16),
                    Height = Application.GetRealHeight(30),
                    TextColor = CSS_Color.MainColor,
                    TextSize = CSS_FontSize.SubheadingFontSize,
                    TextAlignment = TextAlignment.Center,
                    IsBold = true,
                    Text = title
                };
                contentView.AddChidren(btnTitle);
                Button btnMsg = new Button()
                {
                    Gravity = Gravity.CenterHorizontal,
                    Height = Application.GetRealHeight(35),
                    Y = btnTitle.Bottom,
                    Width = Application.GetRealHeight(200),
                    TextAlignment = TextAlignment.Center,
                    TextColor = CSS_Color.TextualColor,
                    TextSize = CSS_FontSize.PromptFontSize_FirstLevel,
                    Text = msg,
                    IsMoreLines = true,
                };
                contentView.AddChidren(btnMsg);
                Button btnLine = new Button()
                {
                    Y = Application.GetRealHeight(96),
                    Height = Application.GetRealHeight(1),
                    BackgroundColor = CSS.CSS_Color.DividingLineColor,
                };
                contentView.AddChidren(btnLine);
                Button btnConfirm = new Button()
                {
                    Y = btnLine.Bottom,
                    Height = Application.GetRealHeight(43),
                    TextAlignment = TextAlignment.Center,
                    TextColor = CSS_Color.TextualColor,
                    TextSize = CSS_FontSize.SubheadingFontSize,
                    SelectedTextColor = CSS_Color.MainBackgroundColor,
                    SelectedBackgroundColor = CSS_Color.MainColor,
                    TextID = StringId.Confirm,
                };
                contentView.AddChidren(btnConfirm);
                dialog.Show();
                btnConfirm.MouseDownEventHandler += (sender, e) =>
                {
                    btnConfirm.IsSelected = true;
                };
                btnConfirm.MouseUpEventHandler += (sender, e) =>
                {
                    btnConfirm.IsSelected = false;
                    action?.Invoke();
                    dialog.Close();
                };
            }catch(Exception ex)
            {
                Gravity = Gravity.Center,
                Width = Application.GetRealWidth(270),
                Height = Application.GetRealHeight(140),
                BackgroundColor = CSS.CSS_Color.MainBackgroundColor,
                BorderColor = 0x00000000,
                BorderWidth = 0,
                Radius = (uint)Application.GetMinRealAverage(10),
            };
            dialog.AddChidren(contentView);
            Button btnTitle = new Button()
                MainPage.Log($"lc add fail:{ex.Message}");
                if (again)
                {
                    new System.Threading.Thread(() =>
                    {
                        System.Threading.Thread.Sleep(500);
                        Application.RunOnMainThread(() =>
                        {
                            TipMsg(title, msg, action, false);
                        });
                    }).Start() ;
                }
            }
            finally
            {
                Y = Application.GetRealHeight(16),
                Height = Application.GetRealHeight(30),
                TextColor = CSS_Color.MainColor,
                TextSize = CSS_FontSize.SubheadingFontSize,
                TextAlignment = TextAlignment.Center,
                IsBold = true,
                Text = title
            };
            contentView.AddChidren(btnTitle);
            Button btnMsg = new Button()
            {
                Gravity = Gravity.CenterHorizontal,
                Height = Application.GetRealHeight(35),
                Y = btnTitle.Bottom,
                Width = Application.GetRealHeight(200),
                TextAlignment = TextAlignment.Center,
                TextColor = CSS_Color.TextualColor,
                TextSize = CSS_FontSize.PromptFontSize_FirstLevel,
                Text = msg,
                IsMoreLines = true,
            };
            contentView.AddChidren(btnMsg);
            Button btnLine = new Button()
            {
                Y = Application.GetRealHeight(96),
                Height = Application.GetRealHeight(1),
                BackgroundColor = CSS.CSS_Color.DividingLineColor,
            };
            contentView.AddChidren(btnLine);
            Button btnConfirm = new Button()
            {
                Y = btnLine.Bottom,
                Height = Application.GetRealHeight(43),
                TextAlignment = TextAlignment.Center,
                TextColor = CSS_Color.TextualColor,
                TextSize = CSS_FontSize.SubheadingFontSize,
                SelectedTextColor = CSS_Color.MainBackgroundColor,
                SelectedBackgroundColor = CSS_Color.MainColor,
                TextID = StringId.Confirm,
            };
            contentView.AddChidren(btnConfirm);
            dialog.Show();
            btnConfirm.MouseDownEventHandler += (sender, e) =>
            {
                btnConfirm.IsSelected = true;
            };
            btnConfirm.MouseUpEventHandler += (sender, e) =>
            {
                btnConfirm.IsSelected = false;
                action?.Invoke();
                dialog.Close();
            };
            }
        }
@@ -610,9 +777,13 @@
                sRange.Add(i);
            }
            sRange.Add(60);
            int curValus = 0;
            int.TryParse(curItemKey, out curValus);
            BottomTimeSelectControl timeControl = new BottomTimeSelectControl(mRange, sRange, 5, Language.StringByID(StringId.SceneDelay));
            timeControl.RowHeight = Application.GetRealHeight(50);
            timeControl.InitControl(0, 0, 262, false);
            timeControl.InitControl(curValus / 60, curValus % 60, 262, false);
            //timeControl.ChangePickerEvent2();
            timeControl.FinishEvent = (type, hours, min) =>
            {