xm
2021-12-01 6d73bf6e816570291865674bef8bce8972e4de3f
HDL_ON/UI/UI2/FuntionControlView/Light/RGBPage.cs
@@ -45,14 +45,24 @@
        /// 渐变时间进度条
        /// </summary>
        DiyImageSeekBar barFadeTime;
        /// <summary>
        /// 色盘里面那个会滑动的球
        /// </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>
@@ -62,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)
@@ -93,7 +104,7 @@
                TextColor = CSS_Color.FirstLevelTitleColor,
                TextAlignment = TextAlignment.CenterLeft,
                TextSize = CSS_FontSize.EmphasisFontSize_FirstLevel,
                Text = light.name,
                Text = function.name,
            };
            controlView.AddChidren(btnFunctionName);
@@ -106,7 +117,7 @@
                TextColor = CSS_Color.PromptingColor1,
                TextAlignment = TextAlignment.CenterLeft,
                TextSize = CSS_FontSize.PromptFontSize_FirstLevel,
                Text = light.GetRoomListName()
                Text = function.GetRoomListName()
            };
            controlView.AddChidren(btnFromFoorAndRoom);
@@ -119,9 +130,8 @@
                Radius = (uint)Application.GetMinRealAverage(8),
                BorderColor = CSS_Color.PromptingColor2,
                BorderWidth = 1,
                BackgroundColor = (uint)(0xFF000000 + light.GetRGBcolor())
                BackgroundColor = (uint)(0xFF000000 + lightTemp.GetRGBcolor(function.GetAttrState(FunctionAttributeKey.RGB)))
            };
            controlView.AddChidren(btnCurColor);
            btnCollection = new Button()
@@ -132,28 +142,46 @@
                Height = Application.GetMinRealAverage(40),
                SelectedImagePath = "Collection/CollectionIcon.png",
                UnSelectedImagePath = "Collection/CollectionGrayIcon.png",
                IsSelected = light.collect
                IsSelected = function.collect
            };
            //controlView.AddChidren(btnCollection);
            controlView.AddChidren(btnCollection);
            //2020-12-16 如果是成员隐藏收藏功能
            if (!DB_ResidenceData.Instance.CurrentRegion.IsOthreShare)
            {
                controlView.AddChidren(btnCollection);
            }
            //if (!DB_ResidenceData.Instance.CurrentRegion.isOtherShare)
            //{
            //    controlView.AddChidren(btnCollection);
            //}
            //色盘的桌布控件(限制那个白色滑动球使用)
            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);
            if(light.trait_on_off.curValue.ToString() == "off")
            framePickerBack.AddChidren(colorPicker);
            if(function.trait_on_off.curValue.ToString() == "off")
            {
                colorPicker.ColorImagePath = "FunctionIcon/Light/ColorWheel.png";
                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()
@@ -184,7 +212,7 @@
            dimmerBar = new DiyImageSeekBar()
            {
                X = Application.GetRealWidth(35 +22),
                X = Application.GetRealWidth(35 + 22),
                Y = Application.GetRealHeight(312),
                Width = Application.GetRealWidth(210),
                Height = Application.GetRealHeight(54),
@@ -193,9 +221,9 @@
                ThumbImageHeight = Application.GetRealHeight(54),
                ProgressTextColor = CSS_Color.FirstLevelTitleColor,
                ProgressTextSize = CSS_FontSize.PromptFontSize_FirstLevel,
                ProgressBarColor = light.trait_on_off.curValue.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);
@@ -214,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);
            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 = light.fadeTime,
                SeekBarPadding = Application.GetRealWidth(20),
            };
            controlView.AddChidren(barFadeTime);
                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 = 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,
            };
            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",
            };
@@ -288,21 +332,21 @@
            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.curValue.ToString() == "on"
                IsSelected = function.trait_on_off.curValue.ToString() == "on"
            };
            controlView.AddChidren(btnSwitch);
            LoadEventList();
            new TopViewDiv(bodyView, Language.StringByID(StringId.Lights)).LoadTopView_FunctionTop(light, actionRefresh);
            new TopViewDiv(bodyView, Language.StringByID(StringId.Lights)).LoadTopView_FunctionTop(function, actionRefresh);
            new System.Threading.Thread(() =>
            {
                DriverLayer.Control.Ins.SendReadCommand(light);
                DriverLayer.Control.Ins.SendReadCommand(function);
            })
            { IsBackground = true }.Start();
        }