From 6d73bf6e816570291865674bef8bce8972e4de3f Mon Sep 17 00:00:00 2001
From: xm <1271024303@qq.com>
Date: 星期三, 01 十二月 2021 16:32:57 +0800
Subject: [PATCH] 2021-12-01-01

---
 HDL_ON/UI/UI2/FuntionControlView/Light/RGBPage.cs |  227 ++++++++++++++++++++++++++++++++++++--------------------
 1 files changed, 145 insertions(+), 82 deletions(-)

diff --git a/HDL_ON/UI/UI2/FuntionControlView/Light/RGBPage.cs b/HDL_ON/UI/UI2/FuntionControlView/Light/RGBPage.cs
index d912967..45ef832 100644
--- a/HDL_ON/UI/UI2/FuntionControlView/Light/RGBPage.cs
+++ b/HDL_ON/UI/UI2/FuntionControlView/Light/RGBPage.cs
@@ -41,14 +41,28 @@
         /// 璋冨厜杩涘害鏉�
         /// </summary>
         DiyImageSeekBar dimmerBar;
+        /// <summary>
+        /// 娓愬彉鏃堕棿杩涘害鏉�
+        /// </summary>
+        DiyImageSeekBar barFadeTime;
+        /// <summary>
+        /// 鑹茬洏閲岄潰閭d釜浼氭粦鍔ㄧ殑鐞�
+        /// </summary>
+        Button btnWhiteRound;
         #endregion
 
         #region 鍖哄煙鍙橀噺
-        Light light;
+        Light lightTemp;
         Button btnCollection_Out;
         Button btnFunctionName_Out;
         Button btnFromFloor_Out;
         bool onDimmerBar = false;
+        Function function;
+
+        /// <summary>
+        /// 鏈�鍚庢墦寮�鐨勯鑹�
+        /// </summary>
+        byte[] lastColor = new byte[3] { 255, 255, 255 };
         /// <summary>
         /// 鍒锋柊鏄剧ず淇℃伅
         /// </summary>
@@ -58,7 +72,8 @@
         public RGBPage(Function func)
         {
             bodyView = this;
-            light = func as Light;
+            function = func;
+            lightTemp = new Light();
         }
 
         public void LoadPage(Button btnCollectionIcon, Button btnFunctionNameOut, Button btnFromFloorOut)
@@ -89,7 +104,7 @@
                 TextColor = CSS_Color.FirstLevelTitleColor,
                 TextAlignment = TextAlignment.CenterLeft,
                 TextSize = CSS_FontSize.EmphasisFontSize_FirstLevel,
-                Text = light.name,
+                Text = function.name,
             };
             controlView.AddChidren(btnFunctionName);
 
@@ -102,7 +117,7 @@
                 TextColor = CSS_Color.PromptingColor1,
                 TextAlignment = TextAlignment.CenterLeft,
                 TextSize = CSS_FontSize.PromptFontSize_FirstLevel,
-                Text = light.GetRoomListName()
+                Text = function.GetRoomListName()
             };
             controlView.AddChidren(btnFromFoorAndRoom);
 
@@ -115,7 +130,7 @@
                 Radius = (uint)Application.GetMinRealAverage(8),
                 BorderColor = CSS_Color.PromptingColor2,
                 BorderWidth = 1,
-                BackgroundColor = (uint)(0xFF000000 + light.redColor * 256 * 256 + light.greenColor * 256 + light.blueColor)
+                BackgroundColor = (uint)(0xFF000000 + lightTemp.GetRGBcolor(function.GetAttrState(FunctionAttributeKey.RGB)))
             };
             controlView.AddChidren(btnCurColor);
 
@@ -127,19 +142,46 @@
                 Height = Application.GetMinRealAverage(40),
                 SelectedImagePath = "Collection/CollectionIcon.png",
                 UnSelectedImagePath = "Collection/CollectionGrayIcon.png",
-                IsSelected = light.collection
+                IsSelected = function.collect
             };
             controlView.AddChidren(btnCollection);
+            //2020-12-16 濡傛灉鏄垚鍛橀殣钘忔敹钘忓姛鑳�
+            //if (!DB_ResidenceData.Instance.CurrentRegion.isOtherShare)
+            //{
+            //    controlView.AddChidren(btnCollection);
+            //}
+
+            //鑹茬洏鐨勬甯冩帶浠�(闄愬埗閭d釜鐧借壊婊戝姩鐞冧娇鐢�)
+            var framePickerBack = new FrameLayout();
+            framePickerBack.Gravity = Gravity.CenterHorizontal;
+            framePickerBack.Y = btnFromFoorAndRoom.Bottom + Application.GetRealHeight(1);
+            framePickerBack.Width = Application.GetMinRealAverage(216);
+            framePickerBack.Height = Application.GetMinRealAverage(216);
+            controlView.AddChidren(framePickerBack);
 
             colorPicker = new ColorPicker()
             {
-                Gravity = Gravity.CenterHorizontal,
-                Y = btnFromFoorAndRoom.Bottom + Application.GetRealHeight(1),
-                Width = Application.GetMinRealAverage(216),
-                Height = Application.GetMinRealAverage(216),
                 ColorImagePath = "FunctionIcon/Light/ColorWheel.png",
             };
-            controlView.AddChidren(colorPicker);
+            framePickerBack.AddChidren(colorPicker);
+            if(function.trait_on_off.curValue.ToString() == "off")
+            {
+                colorPicker.ColorImagePath = "FunctionIcon/Light/ColorWheelGray.png";
+            }
+            //colorPicker.MouseDownEventHandler = (sender, e) => {
+            //    MainPage.BasePageView.ScrollEnabled = false;
+            //};
+            //colorPicker.MouseUpEventHandler = (sender, e) => {
+            //    MainPage.BasePageView.ScrollEnabled = true;
+            //};
+
+            //鐧界偣鎺т欢
+            this.btnWhiteRound = new Button();
+            btnWhiteRound.Width = Application.GetRealWidth(24);
+            btnWhiteRound.Height = Application.GetRealWidth(24);
+            btnWhiteRound.UnSelectedImagePath = "FunctionIcon/Light/ColorWheelTip.png";
+            btnWhiteRound.Visible = false;
+            framePickerBack.AddChidren(btnWhiteRound);
 
             #region 浜害璋冭妭
             var btnBrightnessText = new Button()
@@ -159,7 +201,7 @@
             {
                 X = Application.GetRealWidth(35),
                 Y = btnBrightnessText.Bottom,
-                Width = Application.GetRealWidth(22),
+                Width = Application.GetRealWidth(30),
                 Height = Application.GetRealHeight(21),
                 Text = "0%",
                 TextAlignment = TextAlignment.CenterLeft,
@@ -170,7 +212,7 @@
 
             dimmerBar = new DiyImageSeekBar()
             {
-                X = btnMinValuesText.Right,
+                X = Application.GetRealWidth(35 + 22),
                 Y = Application.GetRealHeight(312),
                 Width = Application.GetRealWidth(210),
                 Height = Application.GetRealHeight(54),
@@ -179,9 +221,9 @@
                 ThumbImageHeight = Application.GetRealHeight(54),
                 ProgressTextColor = CSS_Color.FirstLevelTitleColor,
                 ProgressTextSize = CSS_FontSize.PromptFontSize_FirstLevel,
-                ProgressBarColor = light.trait_on_off.value.ToString() == "on" ? CSS_Color.AuxiliaryColor1 : CSS_Color.DividingLineColor,
+                ProgressBarColor = function.trait_on_off.curValue.ToString() == "on" ? CSS_Color.AuxiliaryColor1 : CSS_Color.DividingLineColor,
                 MaxValue = 100,
-                Progress = light.brightness,
+                Progress = Convert.ToInt32(function.GetAttrState(FunctionAttributeKey.Brightness)),
                 SeekBarPadding = Application.GetRealWidth(20),
             };
             controlView.AddChidren(dimmerBar);
@@ -190,7 +232,7 @@
             {
                 X = dimmerBar.Right,
                 Y = btnBrightnessText.Bottom,
-                Width = Application.GetRealWidth(35),
+                Width = Application.GetRealWidth(45),
                 Height = Application.GetRealHeight(21),
                 Text = "100%",
                 TextAlignment = TextAlignment.CenterLeft,
@@ -200,73 +242,89 @@
             controlView.AddChidren(btnMaxValuesText);
             #endregion
 
-            #region 娓愬彉鏃堕棿璋冭妭
-            var btnGradualChangeText = new Button()
+            if (function.GetAttribute(FunctionAttributeKey.FadeTime) != null)
             {
-                X = Application.GetRealWidth(35),
-                Y = Application.GetRealHeight(375),
-                Width = Application.GetRealWidth(224),
-                Height = Application.GetRealHeight(21),
-                TextAlignment = TextAlignment.CenterLeft,
-                TextColor = CSS_Color.FirstLevelTitleColor,
-                TextSize = CSS_FontSize.PromptFontSize_FirstLevel,
-                TextID = StringId.SpeedOfChange,
-            };
-            controlView.AddChidren(btnGradualChangeText);
+                #region 娓愬彉鏃堕棿璋冭妭
+                var btnGradualChangeText = new Button()
+                {
+                    X = Application.GetRealWidth(35),
+                    Y = Application.GetRealHeight(375),
+                    Width = Application.GetRealWidth(224),
+                    Height = Application.GetRealHeight(21),
+                    TextAlignment = TextAlignment.CenterLeft,
+                    TextColor = CSS_Color.FirstLevelTitleColor,
+                    TextSize = CSS_FontSize.PromptFontSize_FirstLevel,
+                    TextID = StringId.SpeedOfChange,
+                    Visible = function.GetAttribute(FunctionAttributeKey.FadeTime) != null,
+                    Enable = function.GetAttribute(FunctionAttributeKey.FadeTime) != null,
+                };
+                controlView.AddChidren(btnGradualChangeText);
 
-            var btnGradualChangeMinValuesText = new Button()
-            {
-                X = Application.GetRealWidth(35),
-                Y = btnGradualChangeText.Bottom+ Application.GetRealHeight(10),
-                Width = Application.GetRealWidth(22),
-                Height = Application.GetRealHeight(21),
-                Text = "0s",
-                TextAlignment = TextAlignment.CenterLeft,
-                TextColor = CSS_Color.PromptingColor1,
-                TextSize = CSS_FontSize.PromptFontSize_FirstLevel,
-            };
-            controlView.AddChidren(btnGradualChangeMinValuesText);
+                var btnGradualChangeMinValuesText = new Button()
+                {
+                    X = Application.GetRealWidth(35),
+                    Y = btnGradualChangeText.Bottom + Application.GetRealHeight(10),
+                    Width = Application.GetRealWidth(22),
+                    Height = Application.GetRealHeight(21),
+                    Text = "0s",
+                    TextAlignment = TextAlignment.CenterLeft,
+                    TextColor = CSS_Color.PromptingColor1,
+                    TextSize = CSS_FontSize.PromptFontSize_FirstLevel,
+                    Visible = function.GetAttribute(FunctionAttributeKey.FadeTime) != null,
+                    Enable = function.GetAttribute(FunctionAttributeKey.FadeTime) != null,
+                };
+                controlView.AddChidren(btnGradualChangeMinValuesText);
 
-            var barGradualChange = new DiyImageSeekBar()
-            {
-                X = btnGradualChangeMinValuesText.Right,
-                Y = Application.GetRealHeight(412 - 21),
-                Width = Application.GetRealWidth(210),
-                Height = Application.GetRealHeight(54),
-                SeekBarViewHeight = Application.GetRealHeight(8),
-                ThumbImagePath = "Public/ThumbImage.png",
-                ThumbImageHeight = Application.GetRealHeight(54),
-                ProgressBarColor = CSS_Color.MainColor,
-                //SeekBarBackgroundColor = CSS_Color.MainColor,
-                ProgressTextColor = CSS_Color.FirstLevelTitleColor,
-                ProgressTextSize = CSS_FontSize.PromptFontSize_FirstLevel,
-                ProgressBarUnitSring = "s",
-                MaxValue = 10,
-                Progress = 0,
-                SeekBarPadding = Application.GetRealWidth(20),
-            };
-            controlView.AddChidren(barGradualChange);
+                barFadeTime = new DiyImageSeekBar()
+                {
+                    X = btnGradualChangeMinValuesText.Right,
+                    Y = Application.GetRealHeight(412 - 21),
+                    Width = Application.GetRealWidth(210),
+                    Height = Application.GetRealHeight(54),
+                    SeekBarViewHeight = Application.GetRealHeight(8),
+                    ThumbImagePath = "Public/ThumbImage.png",
+                    ThumbImageHeight = Application.GetRealHeight(54),
+                    ProgressBarColor = CSS_Color.MainColor,
+                    //SeekBarBackgroundColor = CSS_Color.MainColor,
+                    ProgressTextColor = CSS_Color.FirstLevelTitleColor,
+                    ProgressTextSize = CSS_FontSize.PromptFontSize_FirstLevel,
+                    ProgressBarUnitSring = "s",
+                    MaxValue = 10,
+                    Progress = Convert.ToInt32(function.GetAttrState(FunctionAttributeKey.FadeTime)),
+                    SeekBarPadding = Application.GetRealWidth(20),
+                    Visible = function.GetAttribute(FunctionAttributeKey.FadeTime) != null,
+                    Enable = function.GetAttribute(FunctionAttributeKey.FadeTime) != null,
+                };
+                controlView.AddChidren(barFadeTime);
+                barFadeTime.OnStopTrackingTouchEvent = (sender, e) =>
+                {
+                    function.SetAttrState(FunctionAttributeKey.FadeTime, barFadeTime.Progress);
+                    function.UpdataFuncitonInfo();
+                };
 
-            var btnGradualChangeMaxValuesText = new Button()
-            {
-                X = barGradualChange.Right,
-                Y = btnGradualChangeText.Bottom+ Application.GetRealHeight(10),
-                Width = Application.GetRealWidth(35),
-                Height = Application.GetRealHeight(21),
-                Text = "10s",
-                TextAlignment = TextAlignment.CenterLeft,
-                TextColor = CSS_Color.PromptingColor1,
-                TextSize = CSS_FontSize.PromptFontSize_FirstLevel,
-            };
-            controlView.AddChidren(btnGradualChangeMaxValuesText);
-            #endregion
+                var btnGradualChangeMaxValuesText = new Button()
+                {
+                    X = barFadeTime.Right,
+                    Y = btnGradualChangeText.Bottom + Application.GetRealHeight(10),
+                    Width = Application.GetRealWidth(35),
+                    Height = Application.GetRealHeight(21),
+                    Text = "10s",
+                    TextAlignment = TextAlignment.CenterLeft,
+                    TextColor = CSS_Color.PromptingColor1,
+                    TextSize = CSS_FontSize.PromptFontSize_FirstLevel,
+                    Visible = function.GetAttribute(FunctionAttributeKey.FadeTime) != null,
+                    Enable = function.GetAttribute(FunctionAttributeKey.FadeTime) != null,
+                };
+                controlView.AddChidren(btnGradualChangeMaxValuesText);
+                #endregion
 
+            }
             btnRestoredPoint = new Button()
             {
-                X = Application.GetRealWidth(104),
-                Y = Application.GetRealHeight(462),
-                Width = Application.GetMinRealAverage(40),
-                Height = Application.GetMinRealAverage(40),
+                X = Application.GetRealWidth(116),
+                Y = Application.GetRealHeight(466),
+                Width = Application.GetMinRealAverage(32),
+                Height = Application.GetMinRealAverage(32),
                 UnSelectedImagePath = "Public/Restored_Shadow.png",
                 SelectedImagePath = "Public/Restored_Shadow.png",
             };
@@ -274,18 +332,23 @@
 
             btnSwitch = new Button()
             {
-                X = btnRestoredPoint.Right + Application.GetRealWidth(40),
-                Y = Application.GetRealHeight(462),
-                Width = Application.GetMinRealAverage(40),
-                Height = Application.GetMinRealAverage(40),
+                X = btnRestoredPoint.Right + Application.GetRealWidth(32),
+                Y = Application.GetRealHeight(466),
+                Width = Application.GetMinRealAverage(32),
+                Height = Application.GetMinRealAverage(32),
                 UnSelectedImagePath = "Public/PowerClose.png",
                 SelectedImagePath = "Public/PowerOpen.png",
-                IsSelected = light.trait_on_off.value.ToString() == "on"
+                IsSelected = function.trait_on_off.curValue.ToString() == "on"
             };
             controlView.AddChidren(btnSwitch);
 
             LoadEventList();
-            new TopViewDiv(bodyView, Language.StringByID(StringId.Lights)).LoadTopView(light, actionRefresh);
+            new TopViewDiv(bodyView, Language.StringByID(StringId.Lights)).LoadTopView_FunctionTop(function, actionRefresh);
+            new System.Threading.Thread(() =>
+            {
+                DriverLayer.Control.Ins.SendReadCommand(function);
+            })
+            { IsBackground = true }.Start();
         }
     }
 }

--
Gitblit v1.8.0