mac
2024-07-25 3f6685c77beeb12baf840733fb890860f4c26e7c
HDL_ON/UI/UI2/FuntionControlView/Aks/CommonView/MenuFramLayout.cs
@@ -1,89 +1,134 @@
using System;
using HDL_ON.UI.Music;
using HDL_ON.UI.UI2.FuntionControlView.Aks.Entity;
using Shared;
namespace HDL_ON.UI.UI2.FuntionControlView.Aks.CommonView
{
    public class MenuFramLayout : BaseFramLayout
    {
        private uint UpBackgroundColor = 0x00000000;
        private uint DownBackgroundColor = 0xff454635;
        public const int widthFrameLayout = 180;
        public const int heightFrameLayout = 180;
        public const int cornerValue = 90;
        public MenuFramLayout(int width = widthFrameLayout, int height = heightFrameLayout)
        {
            this.Width = Application.GetMinRealAverage(width);
            this.Height = Application.GetMinRealAverage(height);
            this.Radius = (uint)Application.GetRealHeight(cornerValue);
            this.Width = Application.GetRealWidth(width);
            this.Height = Application.GetRealWidth(height);
            this.Radius = (uint)Application.GetRealWidth(cornerValue);
            this.BackgroundColor = MusicColor.ViewColor;
            this.Gravity = Gravity.CenterHorizontal;
        }
        Button btnTop = new Button
        {
            Y = Application.GetMinRealAverage(16),
            X = Application.GetMinRealAverage(78),
            Width = Application.GetRealWidth(24),
            Height = Application.GetRealHeight(20),
            Y = Application.GetRealWidth(16),
            X = Application.GetRealWidth(78),
            Width = Application.GetRealWidth(24),//高度和宽高不一样,以宽度为维度计算,否则变形
            Height = Application.GetRealWidth(20),
            UnSelectedImagePath = "AksIcon/shang.png",
            SelectedImagePath = "AksIcon/shang_selected.png",
            Name = "上",
        };
        Button btnTopClick = new Button
        {
            X = Application.GetRealWidth(52),
            Width = Application.GetRealWidth(76),
            Height = Application.GetRealHeight(40),
        };
        Button btnBottom = new Button
        {
            Y = Application.GetMinRealAverage(144),
            X = Application.GetMinRealAverage(78),
            Y = Application.GetRealWidth(144),
            X = Application.GetRealWidth(78),
            Width = Application.GetRealWidth(24),
            Height = Application.GetRealHeight(20),
            Height = Application.GetRealWidth(20),
            UnSelectedImagePath = "AksIcon/xia.png",
            SelectedImagePath = "AksIcon/xia_selected.png",
            Name = "下",
        };
        Button btnBottomClick = new Button
        {
            Y = Application.GetRealWidth(128),
            X = Application.GetRealWidth(52),
            Width = Application.GetRealWidth(76),
            Height = Application.GetRealHeight(52),
        };
        Button btnLeft = new Button
        {
            Y = Application.GetMinRealAverage(78),
            X = Application.GetMinRealAverage(16),
            Y = Application.GetRealWidth(78),
            X = Application.GetRealWidth(16),
            Width = Application.GetRealWidth(20),
            Height = Application.GetRealHeight(24),
            Height = Application.GetRealWidth(24),
            UnSelectedImagePath = "AksIcon/zuo.png",
            SelectedImagePath = "AksIcon/zuo_selected.png",
            Name = "左",
        };
        Button btnLeftClick = new Button
        {
            Y = Application.GetRealWidth(52),
            Width = Application.GetRealWidth(52),
            Height = Application.GetRealHeight(76),
        };
        Button btnRight = new Button
        {
            Y = Application.GetMinRealAverage(78),
            X = Application.GetMinRealAverage(144),
            Y = Application.GetRealWidth(78),
            X = Application.GetRealWidth(144),
            Width = Application.GetRealWidth(20),
            Height = Application.GetRealHeight(24),
            Height = Application.GetRealWidth(24),
            UnSelectedImagePath = "AksIcon/you.png",
            SelectedImagePath = "AksIcon/you_selected.png",
            Name = "右",
        };
        Button btnRightClick = new Button
        {
            X = Application.GetRealWidth(128),
            Y = Application.GetRealWidth(52),
            Width = Application.GetRealWidth(52),
            Height = Application.GetRealHeight(76),
        };
        Button btnOkbj = new Button
        {
            Y = Application.GetMinRealAverage(52),
            X = Application.GetMinRealAverage(52),
            Width = Application.GetMinRealAverage(76),
            Height = Application.GetMinRealAverage(76),
            Radius = (uint)Application.GetRealHeight(38),
            Gravity = Gravity.Center,
            Width = Application.GetRealWidth(76),
            Height = Application.GetRealWidth(76),
            Radius = (uint)Application.GetRealWidth(38),
            BackgroundColor = MusicColor.WhiteColor,
        };
        Button btnOk = new Button
        {
            Y = Application.GetMinRealAverage(76),
            X = Application.GetMinRealAverage(76),
            Width = Application.GetMinRealAverage(28),
            Height = Application.GetMinRealAverage(28),
            Radius = (uint)Application.GetRealHeight(14),
            BackgroundColor = MusicColor.SelectedColor,
            Gravity = Gravity.Center,
            Width = Application.GetRealWidth(28),
            Height = Application.GetRealWidth(28),
            Radius = (uint)Application.GetRealWidth(14),
            BackgroundColor = 0xff1B2D4D,
            SelectedBackgroundColor = MusicColor.SelectedColor,
            Name = "确定"
        };
        public void AddView(FrameLayout layout)
        {
            this.AddChidren(btnTop);
            this.AddChidren(btnTopClick);
            this.AddChidren(btnBottom);
            this.AddChidren(btnBottomClick);
            this.AddChidren(btnLeft);
            this.AddChidren(btnLeftClick);
            this.AddChidren(btnRight);
            this.AddChidren(btnRightClick);
            this.AddChidren(btnOkbj);
            this.AddChidren(btnOk);
            layout.AddChidren(this);
            //btnBottom.Y = btnOkbj.Bottom + Application.GetRealWidth(16);
        }
@@ -91,133 +136,93 @@
        /// 上
        /// </summary>
        /// <param name="action"></param>
        public void SetTopClickListener(Action<Button> action)
        public void SetTopClickListener(Action<KeypadEntity> action)
        {
            EventHandler<MouseEventArgs> UpClick = (sender, e) =>
            {
                //btnTop.BackgroundColor = this.UpBackgroundColor;
                btnTop.IsSelected = false;
                action?.Invoke(btnTop);
                //弹起来还原背景颜色
                KeypadEntity keypadEntity = new KeypadEntity();
                keypadEntity.name = btnTop.Name;
                keypadEntity.keypad = "key_up";
                action?.Invoke(keypadEntity);
                SetButtonIsSelected(btnTop);
            };
            btnTop.MouseUpEventHandler += UpClick;
            btnTopClick.MouseUpEventHandler += UpClick;
            EventHandler<MouseEventArgs> DownClick = (sender, e) =>
            {
                //按下去改变背景颜色
                btnTop.BackgroundColor = this.DownBackgroundColor;
            };
            btnTop.MouseDownEventHandler += DownClick;
        }
        /// <summary>
        /// 下
        /// </summary>
        /// <param name="action"></param>
        public void SetBottomClickListener(Action<Button> action)
        public void SetBottomClickListener(Action<KeypadEntity> action)
        {
            EventHandler<MouseEventArgs> UpClick = (sender, e) =>
            {
                //btnBottom.BackgroundColor = this.UpBackgroundColor;
                btnBottom.IsSelected = false;
                action?.Invoke(btnBottom);
                //弹起来还原背景颜色
                KeypadEntity keypadEntity = new KeypadEntity();
                keypadEntity.name = btnBottom.Name;
                keypadEntity.keypad = "key_down";
                action?.Invoke(keypadEntity);
                SetButtonIsSelected(btnBottom);
            };
            btnBottom.MouseUpEventHandler += UpClick;
            btnBottomClick.MouseUpEventHandler += UpClick;
            EventHandler<MouseEventArgs> DownClick = (sender, e) =>
            {
                //按下去改变背景颜色
                btnBottom.BackgroundColor = this.DownBackgroundColor;
            };
            btnBottom.MouseDownEventHandler += DownClick;
        }
        /// <summary>
        /// 左
        /// </summary>
        /// <param name="action"></param>
        public void SetLeftClickListener(Action<Button> action)
        public void SetLeftClickListener(Action<KeypadEntity> action)
        {
            EventHandler<MouseEventArgs> UpClick = (sender, e) =>
            {
                //btnLeft.BackgroundColor = this.UpBackgroundColor;
                btnLeft.IsSelected = false;
                action?.Invoke(btnLeft);
                //弹起来还原背景颜色
                KeypadEntity keypadEntity = new KeypadEntity();
                keypadEntity.name = btnLeft.Name;
                keypadEntity.keypad = "key_left";
                action?.Invoke(keypadEntity);
                SetButtonIsSelected(btnLeft);
            };
            btnLeft.MouseUpEventHandler += UpClick;
            btnLeftClick.MouseUpEventHandler += UpClick;
            EventHandler<MouseEventArgs> DownClick = (sender, e) =>
            {
                //按下去改变背景颜色
                btnLeft.BackgroundColor = this.DownBackgroundColor;
            };
            btnLeft.MouseDownEventHandler += DownClick;
        }
        /// <summary>
        /// 右
        /// </summary>
        /// <param name="action"></param>
        public void SetRightClickListener(Action<Button> action)
        public void SetRightClickListener(Action<KeypadEntity> action)
        {
            EventHandler<MouseEventArgs> UpClick = (sender, e) =>
            {
                //btnRight.BackgroundColor = this.UpBackgroundColor;
                btnRight.IsSelected = false;
                action?.Invoke(btnRight);
                //弹起来还原背景颜色
                KeypadEntity keypadEntity = new KeypadEntity();
                keypadEntity.name = btnRight.Name;
                keypadEntity.keypad = "key_right";
                action?.Invoke(keypadEntity);
                SetButtonIsSelected(btnRight);
            };
            btnRight.MouseUpEventHandler += UpClick;
            btnRightClick.MouseUpEventHandler += UpClick;
            EventHandler<MouseEventArgs> DownClick = (sender, e) =>
            {
                //按下去改变背景颜色
                btnRight.BackgroundColor = this.DownBackgroundColor;
            };
            btnRight.MouseDownEventHandler += DownClick;
        }
        /// <summary>
        /// ok
        /// </summary>
        /// <param name="action"></param>
        public void SetOkClickListener(Action<Button> action)
        public void SetOkClickListener(Action<KeypadEntity> action)
        {
            EventHandler<MouseEventArgs> UpClick = (sender, e) =>
            {
                btnOk.BackgroundColor = MusicColor.SelectedColor;// this.UpBackgroundColor;
                action?.Invoke(btnOk);
                //弹起来还原背景颜色
                KeypadEntity keypadEntity = new KeypadEntity();
                keypadEntity.name = btnOk.Name;
                keypadEntity.keypad = "key_ok";
                action?.Invoke(keypadEntity);
                SetButtonIsSelected(btnOk);
            };
            btnOk.MouseUpEventHandler += UpClick;
            EventHandler<MouseEventArgs> DownClick = (sender, e) =>
            {
                //按下去改变背景颜色
                btnOk.BackgroundColor = this.DownBackgroundColor;
            };
            btnOk.MouseDownEventHandler += DownClick;
        }
        public void SetClickUpBackgroundColor(uint backgroundColor)
        {
            this.UpBackgroundColor = backgroundColor;
        }
        public void SetClickDownBackgroundColor(uint backgroundColor)
        {
            this.DownBackgroundColor = backgroundColor;
        }
    }
}