From 4d6c9858844d1545a9b253c1b31842fa89695c1d Mon Sep 17 00:00:00 2001
From: JLChen <551775569@qq.com>
Date: 星期日, 06 六月 2021 13:59:01 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/wxr4' into WJC

---
 HDL_ON/UI/UI2/FuntionControlView/Electrical/StbPage.cs |  637 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 637 insertions(+), 0 deletions(-)

diff --git a/HDL_ON/UI/UI2/FuntionControlView/Electrical/StbPage.cs b/HDL_ON/UI/UI2/FuntionControlView/Electrical/StbPage.cs
new file mode 100644
index 0000000..b96c396
--- /dev/null
+++ b/HDL_ON/UI/UI2/FuntionControlView/Electrical/StbPage.cs
@@ -0,0 +1,637 @@
+锘縰sing System;
+using Shared;
+using HDL_ON.UI.CSS;
+using HDL_ON.Entity;
+using System.Collections.Generic;
+using HDL_ON.DriverLayer;
+
+namespace HDL_ON.UI
+{
+    public class StbPage : FrameLayout
+    {
+        #region 鎺т欢闆嗗悎
+        StbPage bodyView;
+        /// <summary>
+        /// 鍔熻兘鍚嶇О鎸夐挳
+        /// </summary>
+        Button btnFunctionName;
+        /// <summary>
+        /// 鎴块棿妤煎眰淇℃伅鎸夐挳
+        /// </summary>
+        Button btnFromFoorAndRoom;
+        /// <summary>
+        /// 鏀惰棌鎸夐挳
+        /// </summary>
+        Button btnCollection;
+
+        Button btnMenu;
+        FrameLayout topMenuView;
+        Button btnTopMenuUp;
+        Button btnTopMenuLeft;
+        Button btnTopMenuRight;
+        Button btnTopMenuDown;
+        Button btnOk;
+        FrameLayout channleView;
+        Button btnChlReduce;
+        Button btnChlPlus;
+        FrameLayout volView;
+        Button btnVolReduce;
+        Button btnVolPlus;
+        Button btnBack;
+        Button btnMore;
+        Button btn123;
+        Button btnMute;
+        Button btnPower;
+
+        #endregion
+
+        #region 鍖哄煙鍙橀噺
+        Function function;
+        Button btnCollection_Out;
+        Button btnFunctionName_Out;
+        Button btnFromFloor_Out;
+        /// <summary>
+        /// 鍒锋柊鏄剧ず淇℃伅
+        /// </summary>
+        Action actionRefresh;
+        #endregion
+
+        public StbPage(Function func)
+        {
+            bodyView = this;
+            function = func;
+        }
+
+
+        public void LoadPage(Button btnCollectionIcon, Button btnFunctionNameOut, Button btnFromFloorOut)
+        {
+            bodyView.BackgroundColor = CSS_Color.BackgroundColor;
+            btnCollection_Out = btnCollectionIcon;
+            btnFunctionName_Out = btnFunctionNameOut;
+            btnFromFloor_Out = btnFromFloorOut;
+
+            FrameLayout controlView = new FrameLayout()
+            {
+                Gravity = Gravity.CenterHorizontal,
+                Y = Application.GetRealHeight(88),
+                Width = Application.GetRealWidth(327),
+                Height = Application.GetRealHeight(526),
+                BackgroundImagePath = "Public/Fragmentbg.png",
+            };
+            bodyView.AddChidren(controlView);
+
+            btnFunctionName = new Button()
+            {
+                X = Application.GetRealWidth(16),
+                Y = Application.GetRealHeight(14),
+                Width = Application.GetRealWidth(270),
+                Height = Application.GetRealHeight(37),
+                TextColor = CSS_Color.FirstLevelTitleColor,
+                TextAlignment = TextAlignment.CenterLeft,
+                TextSize = CSS_FontSize.EmphasisFontSize_FirstLevel,
+                Text = function.name,
+            };
+            controlView.AddChidren(btnFunctionName);
+
+            btnFromFoorAndRoom = new Button()
+            {
+                X = Application.GetRealWidth(16),
+                Y = btnFunctionName.Bottom,
+                Width = Application.GetRealWidth(270),
+                Height = Application.GetRealHeight(21),
+                TextColor = CSS_Color.PromptingColor1,
+                TextAlignment = TextAlignment.CenterLeft,
+                TextSize = CSS_FontSize.PromptFontSize_FirstLevel,
+                Text = function.GetRoomListName()
+            };
+            controlView.AddChidren(btnFromFoorAndRoom);
+
+            btnCollection = new Button()
+            {
+                X = Application.GetRealWidth(273),
+                Y = Application.GetRealHeight(14),
+                Width = Application.GetMinRealAverage(40),
+                Height = Application.GetMinRealAverage(40),
+                SelectedImagePath = "Collection/CollectionIcon.png",
+                UnSelectedImagePath = "Collection/CollectionGrayIcon.png",
+                IsSelected = function.collect
+            };
+            controlView.AddChidren(btnCollection);
+            //2020-12-16 濡傛灉鏄垚鍛橀殣钘忔敹钘忓姛鑳�
+            //if (!DB_ResidenceData.Instance.CurrentRegion.isOtherShare)
+            //{
+            //    controlView.AddChidren(btnCollection);
+            //}
+
+
+
+            #region 杞洏鎺у埗鍖哄煙
+            topMenuView = new FrameLayout()
+            {
+                Y = Application.GetRealHeight(88),
+                Gravity = Gravity.CenterHorizontal,
+                Width = Application.GetRealWidth(199),
+                Height = Application.GetRealWidth(199),
+                BackgroundImagePath = "FunctionIcon/Electrical/TV/TVOkIcon.png",
+            };
+            controlView.AddChidren(topMenuView);
+
+            btnTopMenuUp = new Button()
+            {
+                Gravity = Gravity.CenterHorizontal,
+                Width = Application.GetRealWidth(80),
+                Height = Application.GetRealWidth(50),
+            };
+            topMenuView.AddChidren(btnTopMenuUp);
+
+            btnTopMenuLeft = new Button()
+            {
+                Gravity = Gravity.CenterVertical,
+                Width = Application.GetRealWidth(50),
+                Height = Application.GetRealWidth(80),
+            };
+            topMenuView.AddChidren(btnTopMenuLeft);
+
+            btnTopMenuRight = new Button()
+            {
+                X = Application.GetRealWidth(150),
+                Gravity = Gravity.CenterVertical,
+                Width = Application.GetRealWidth(50),
+                Height = Application.GetRealWidth(80),
+            };
+            topMenuView.AddChidren(btnTopMenuRight);
+
+            btnTopMenuDown = new Button()
+            {
+                Y = Application.GetRealWidth(150),
+                Gravity = Gravity.CenterHorizontal,
+                Width = Application.GetRealWidth(80),
+                Height = Application.GetRealWidth(50),
+            };
+            topMenuView.AddChidren(btnTopMenuDown);
+
+            btnOk = new Button()
+            {
+                Gravity = Gravity.Center,
+                Width = Application.GetRealWidth(100),
+                Height = Application.GetRealWidth(100),
+            };
+            topMenuView.AddChidren(btnOk);
+
+
+
+            #endregion
+
+
+            #region 棰戦亾闊抽噺璋冭妭
+            channleView = new FrameLayout()
+            {
+                X = Application.GetRealWidth(26),
+                Y = Application.GetRealHeight(246),
+                Width = Application.GetRealWidth(44),
+                Height = Application.GetRealWidth(102),
+                BackgroundImagePath = "FunctionIcon/Electrical/TV/MenuBgIcon.png",
+            };
+            controlView.AddChidren(channleView);
+
+            btnChlPlus = new Button()
+            {
+                Gravity = Gravity.CenterHorizontal,
+                Y = Application.GetRealHeight(10),
+                Width = Application.GetRealWidth(24),
+                Height = Application.GetRealWidth(24),
+                UnSelectedImagePath = "FunctionIcon/Electrical/TV/PlusIcon.png"
+            };
+            channleView.AddChidren(btnChlPlus);
+
+            Button btnChlText;
+            btnChlText = new Button()
+            {
+                Gravity = Gravity.CenterVertical,
+                Height = Application.GetRealWidth(23),
+                TextAlignment = TextAlignment.Center,
+                TextSize = CSS_FontSize.PromptFontSize_FirstLevel,
+                TextColor = CSS_Color.FirstLevelTitleColor,
+                TextID = StringId.Chl,
+            };
+            channleView.AddChidren(btnChlText);
+
+            btnChlReduce = new Button()
+            {
+                Gravity = Gravity.CenterHorizontal,
+                Y = Application.GetRealWidth(66),
+                Width = Application.GetRealWidth(24),
+                Height = Application.GetRealWidth(24),
+                UnSelectedImagePath = "FunctionIcon/Electrical/TV/ReduceIcon.png"
+            };
+            channleView.AddChidren(btnChlReduce);
+
+            volView = new FrameLayout()
+            {
+                X = Application.GetRealWidth(257),
+                Y = Application.GetRealHeight(246),
+                Width = Application.GetRealWidth(44),
+                Height = Application.GetRealWidth(102),
+                BackgroundImagePath = "FunctionIcon/Electrical/TV/MenuBgIcon.png",
+            };
+            controlView.AddChidren(volView);
+
+            btnVolPlus = new Button()
+            {
+                Gravity = Gravity.CenterHorizontal,
+                Y = Application.GetRealHeight(10),
+                Width = Application.GetRealWidth(24),
+                Height = Application.GetRealWidth(24),
+                UnSelectedImagePath = "FunctionIcon/Electrical/TV/PlusIcon.png"
+            };
+            volView.AddChidren(btnVolPlus);
+
+            Button btnVolText;
+            btnVolText = new Button()
+            {
+                Gravity = Gravity.CenterVertical,
+                Height = Application.GetRealWidth(23),
+                TextAlignment = TextAlignment.Center,
+                TextSize = CSS_FontSize.PromptFontSize_FirstLevel,
+                TextColor = CSS_Color.FirstLevelTitleColor,
+                TextID = StringId.Vol,
+            };
+            volView.AddChidren(btnVolText);
+
+            btnVolReduce = new Button()
+            {
+                Gravity = Gravity.CenterHorizontal,
+                Y = Application.GetRealWidth(66),
+                Width = Application.GetRealWidth(24),
+                Height = Application.GetRealWidth(24),
+                UnSelectedImagePath = "FunctionIcon/Electrical/TV/ReduceIcon.png"
+            };
+            volView.AddChidren(btnVolReduce);
+
+
+
+            #endregion
+
+            #region 搴曢儴鎺у埗鍖哄煙
+            btnBack = new Button()
+            {
+                X = Application.GetRealWidth(52),
+                Y = Application.GetRealHeight(402),
+                Width = Application.GetRealWidth(32),
+                Height = Application.GetRealWidth(32),
+                UnSelectedImagePath = "FunctionIcon/Electrical/TV/TVBackIcon.png",
+            };
+            controlView.AddChidren(btnBack);
+
+            btnMenu = new Button()
+            {
+                X = Application.GetRealWidth(116),
+                Y = Application.GetRealHeight(402),
+                Width = Application.GetRealWidth(32),
+                Height = Application.GetRealWidth(32),
+                UnSelectedImagePath = "FunctionIcon/Electrical/TV/TVMenuIcon.png",
+            };
+            controlView.AddChidren(btnMenu);
+
+            btn123 = new Button()
+            {
+                X = Application.GetRealWidth(180),
+                Y = Application.GetRealHeight(402),
+                Width = Application.GetRealWidth(40),
+                Height = Application.GetRealWidth(40),
+                UnSelectedImagePath = "FunctionIcon/Electrical/TV/TV123Icon.png",
+            };
+            controlView.AddChidren(btn123);
+
+            btnMute = new Button()
+            {
+                X = Application.GetRealWidth(244),
+                Y = Application.GetRealHeight(402),
+                Width = Application.GetRealWidth(32),
+                Height = Application.GetRealWidth(32),
+                UnSelectedImagePath = "FunctionIcon/Electrical/TV/TVMuteIcon.png",
+            };
+            controlView.AddChidren(btnMute);
+
+            btnMore = new Button()
+            {
+                X = Application.GetRealWidth(116),
+                Y = Application.GetRealHeight(466),
+                Width = Application.GetRealWidth(32),
+                Height = Application.GetRealWidth(32),
+                UnSelectedImagePath = "FunctionIcon/AC/More.png",
+            };
+            controlView.AddChidren(btnMore);
+
+            btnPower = new Button()
+            {
+                X = Application.GetRealWidth(180),
+                Y = Application.GetRealHeight(466),
+                Width = Application.GetRealWidth(32),
+                Height = Application.GetRealWidth(32),
+                UnSelectedImagePath = "FunctionIcon/Electrical/TV/TVPowerIcon.png",
+            };
+            controlView.AddChidren(btnPower);
+
+            #endregion
+
+            LoadEventList();
+
+            new TopViewDiv(bodyView, Language.StringByID(StringId.STB)).LoadTopView_FunctionTop(function, actionRefresh);
+            DriverLayer.Control.Ins.SendReadCommand(function);
+
+        }
+
+
+        void ShowNumberView()
+        {
+            Dialog dialog = new Dialog();
+
+            FrameLayout dialogView = new FrameLayout()
+            {
+                AnimateSpeed = 0.3f,
+                Animate = Animate.DownToUp,
+            };
+            dialog.AddChidren(dialogView);
+
+            dialogView.MouseUpEventHandler = (sender, e) =>
+            {
+                dialog.Close();
+            };
+
+            FrameLayout numberView = new FrameLayout()
+            {
+                Y = Application.GetRealHeight(403),
+                Height = Application.GetRealHeight(264),
+                BackgroundColor = CSS_Color.MainBackgroundColor,
+            };
+            dialogView.AddChidren(numberView);
+
+            for (int i = 0; i < 10; i++)
+            {
+                Button btn = new Button()
+                {
+                    Width = Application.GetRealWidth(98),
+                    Height = Application.GetRealHeight(44),
+                    Radius = (uint)Application.GetRealWidth(8),
+                    BorderWidth = (uint)Application.GetRealWidth(1),
+                    BorderColor = CSS_Color.PromptingColor1,
+                    BackgroundColor = CSS_Color.MainBackgroundColor,
+                    SelectedBackgroundColor = CSS_Color.MainColor,
+                    TextColor = CSS_Color.FirstLevelTitleColor,
+                    SelectedTextColor = CSS_Color.MainBackgroundColor,
+                    IsBold = true,
+                    Text = i.ToString(),
+                    TextAlignment = TextAlignment.Center,
+                };
+                if (i == 1 || i == 4 || i == 7)
+                {
+                    btn.X = Application.GetRealWidth(24);
+
+                }
+                else if (i == 2 || i == 5 || i == 8)
+                {
+                    btn.X = Application.GetRealWidth(138);
+                }
+                else if (i == 3 || i == 6 || i == 9)
+                {
+                    btn.X = Application.GetRealWidth(252);
+                }
+                else
+                {
+                    btn.X = Application.GetRealWidth(138);
+                }
+                if (i == 0)
+                {
+                    btn.Y = Application.GetRealHeight(204);
+                }
+                else if (i < 4)
+                {
+                    btn.Y = Application.GetRealHeight(24);
+
+                }
+                else if (i < 7)
+                {
+                    btn.Y = Application.GetRealHeight(84);
+                }
+                else
+                {
+                    btn.Y = Application.GetRealHeight(144);
+                }
+                numberView.AddChidren(btn);
+                btn.MouseUpEventHandler = (sender, e) => {
+                    string index = (sender as Button).Text;
+                    btn.IsSelected = false;
+                    if (DB_ResidenceData.Instance.GatewayType == 1)
+                    {
+                        Dictionary<string, string> d = new Dictionary<string, string>();
+                        d.Add($"number_{index}", "");
+                        Control.Ins.SendWriteCommand(function, d);
+                    }
+                };
+                btn.MouseDownEventHandler = (sender, e) => {
+                    btn.IsSelected = true;
+                };
+            }
+
+
+
+            dialog.Show();
+        }
+
+        /// <summary>
+        /// 鍔犺浇浜嬩欢鍒楄〃
+        /// </summary>
+        void LoadEventList()
+        {
+            LoadControlEvent();
+            LoadCollectionEvent();
+
+            //鍥為��鍒锋柊淇℃伅浜嬩欢
+            actionRefresh = () => {
+                btnFunctionName.Text = btnFunctionName_Out.Text = function.name;
+                btnFromFloor_Out.Text = btnFromFoorAndRoom.Text = function.GetRoomListName();
+                function.UpdataFuncitonInfo();
+            };
+        }
+
+        /// <summary>
+        /// 鏀惰棌鍔熻兘鎸夐挳浜嬩欢
+        /// </summary>
+        void LoadCollectionEvent()
+        {
+            btnCollection.MouseUpEventHandler += (sender, e) => {
+                btnCollection.IsSelected = function.collect = btnCollection_Out.IsSelected = !btnCollection.IsSelected;
+                function.CollectFunction();
+            };
+        }
+
+        /// <summary>
+        /// 鍔犺浇鎺у埗浜嬩欢
+        /// </summary>
+        void LoadControlEvent()
+        {
+            btnMenu.MouseUpEventHandler = (sender, e) =>
+            {
+                if (DB_ResidenceData.Instance.GatewayType == 1)
+                {
+                    Dictionary<string, string> d = new Dictionary<string, string>();
+                    d.Add("av_tv", "");
+                    Control.Ins.SendWriteCommand(function, d);
+                }
+            };
+            btnChlPlus.MouseUpEventHandler = (sender, e) =>
+            {
+                if (DB_ResidenceData.Instance.GatewayType == 1)
+                {
+                    Dictionary<string, string> d = new Dictionary<string, string>();
+                    d.Add("ch+", "");
+                    Control.Ins.SendWriteCommand(function, d);
+                }
+            };
+            btnChlReduce.MouseUpEventHandler = (sender, e) =>
+            {
+                if (DB_ResidenceData.Instance.GatewayType == 1)
+                {
+                    Dictionary<string, string> d = new Dictionary<string, string>();
+                    d.Add("ch-", "");
+                    Control.Ins.SendWriteCommand(function, d);
+                }
+            };
+            btnVolPlus.MouseUpEventHandler = (sender, e) =>
+            {
+                if (DB_ResidenceData.Instance.GatewayType == 1)
+                {
+                    Dictionary<string, string> d = new Dictionary<string, string>();
+                    d.Add("volume+", "");
+                    Control.Ins.SendWriteCommand(function, d);
+                }
+            };
+            btnVolReduce.MouseUpEventHandler = (sender, e) =>
+            {
+                if (DB_ResidenceData.Instance.GatewayType == 1)
+                {
+                    Dictionary<string, string> d = new Dictionary<string, string>();
+                    d.Add("volume-", "");
+                    Control.Ins.SendWriteCommand(function, d);
+                }
+            };
+            btnBack.MouseUpEventHandler = (sender, e) =>
+            {
+                if (DB_ResidenceData.Instance.GatewayType == 1)
+                {
+                    Dictionary<string, string> d = new Dictionary<string, string>();
+                    d.Add("return", "");
+                    Control.Ins.SendWriteCommand(function, d);
+                }
+            };
+
+            btnMenu.MouseUpEventHandler = (sender, e) =>
+            {
+                if (DB_ResidenceData.Instance.GatewayType == 1)
+                {
+                    Dictionary<string, string> d = new Dictionary<string, string>();
+                    d.Add("menu", "");
+                    Control.Ins.SendWriteCommand(function, d);
+                }
+            };
+            btn123.MouseUpEventHandler = (sender, e) =>
+            {
+                ShowNumberView();
+            };
+            btnMute.MouseUpEventHandler = (sender, e) =>
+            {
+                if (DB_ResidenceData.Instance.GatewayType == 1)
+                {
+                    Dictionary<string, string> d = new Dictionary<string, string>();
+                    d.Add("mute", "");
+                    Control.Ins.SendWriteCommand(function, d);
+                }
+            };
+            btnPower.MouseUpEventHandler = (sender, e) =>
+            {
+                if (DB_ResidenceData.Instance.GatewayType == 1)
+                {
+                    Dictionary<string, string> d = new Dictionary<string, string>();
+                    d.Add("on_off", "");
+                    Control.Ins.SendWriteCommand(function, d);
+                }
+            };
+
+
+            btnTopMenuUp.MouseDownEventHandler = (sender, e) => {
+                topMenuView.BackgroundImagePath = "FunctionIcon/Electrical/TV/TVOkIconUp.png";
+            };
+            btnTopMenuDown.MouseDownEventHandler = (sender, e) => {
+                topMenuView.BackgroundImagePath = "FunctionIcon/Electrical/TV/TVOkIconDown.png";
+            };
+            btnTopMenuLeft.MouseDownEventHandler = (sender, e) => {
+                topMenuView.BackgroundImagePath = "FunctionIcon/Electrical/TV/TVOkIconLeft.png";
+            };
+            btnTopMenuRight.MouseDownEventHandler = (sender, e) => {
+                topMenuView.BackgroundImagePath = "FunctionIcon/Electrical/TV/TVOkIconRight.png";
+            };
+            btnOk.MouseDownEventHandler = (sender, e) => {
+                topMenuView.BackgroundImagePath = "FunctionIcon/Electrical/TV/TVOkIconOk.png";
+            };
+            btnMenu.MouseUpEventHandler = (sender, e) =>
+            {
+                topMenuView.BackgroundImagePath = "FunctionIcon/Electrical/TV/TVOkIcon.png";
+                if (DB_ResidenceData.Instance.GatewayType == 1)
+                {
+                    Dictionary<string, string> d = new Dictionary<string, string>();
+                    d.Add("menu", "");
+                    Control.Ins.SendWriteCommand(function, d);
+                }
+            };
+            btnTopMenuUp.MouseUpEventHandler = (sender, e) => {
+                topMenuView.BackgroundImagePath = "FunctionIcon/Electrical/TV/TVOkIcon.png";
+                if (DB_ResidenceData.Instance.GatewayType == 1)
+                {
+                    Dictionary<string, string> d = new Dictionary<string, string>();
+                    d.Add("up", "");
+                    Control.Ins.SendWriteCommand(function, d);
+                }
+            };
+            btnTopMenuLeft.MouseUpEventHandler = (sender, e) => {
+                topMenuView.BackgroundImagePath = "FunctionIcon/Electrical/TV/TVOkIcon.png";
+                if (DB_ResidenceData.Instance.GatewayType == 1)
+                {
+                    Dictionary<string, string> d = new Dictionary<string, string>();
+                    d.Add("left", "");
+                    Control.Ins.SendWriteCommand(function, d);
+                }
+            };
+            btnTopMenuRight.MouseUpEventHandler = (sender, e) => {
+                topMenuView.BackgroundImagePath = "FunctionIcon/Electrical/TV/TVOkIcon.png";
+                if (DB_ResidenceData.Instance.GatewayType == 1)
+                {
+                    Dictionary<string, string> d = new Dictionary<string, string>();
+                    d.Add("right", "");
+                    Control.Ins.SendWriteCommand(function, d);
+                }
+            };
+            btnTopMenuDown.MouseUpEventHandler = (sender, e) => {
+                topMenuView.BackgroundImagePath = "FunctionIcon/Electrical/TV/TVOkIcon.png";
+                if (DB_ResidenceData.Instance.GatewayType == 1)
+                {
+                    Dictionary<string, string> d = new Dictionary<string, string>();
+                    d.Add("down", "");
+                    Control.Ins.SendWriteCommand(function, d);
+                }
+            };
+            btnOk.MouseUpEventHandler = (sender, e) => {
+                topMenuView.BackgroundImagePath = "FunctionIcon/Electrical/TV/TVOkIcon.png";
+                if (DB_ResidenceData.Instance.GatewayType == 1)
+                {
+                    Dictionary<string, string> d = new Dictionary<string, string>();
+                    d.Add("ok", "");
+                    Control.Ins.SendWriteCommand(function, d);
+                }
+            };
+
+
+        }
+
+    }
+}

--
Gitblit v1.8.0