mac
2024-07-25 3f6685c77beeb12baf840733fb890860f4c26e7c
HDL_ON/UI/UI2/FuntionControlView/Acst/AcstSubPage.cs
@@ -21,32 +21,47 @@
        Function function;
        uint curColor;
        string colorString;
        string imageFolder = "blue";
        public static void UpdateStatus(Function temp)
        {
            if(bodyView == null)
            if(bodyView == null || bodyView.function.sid != temp.sid)
            {
                return;
            }
            Application.RunOnMainThread(() => {
                bodyView.btnTempValues.Text = temp.GetAttrState(AcstSub_AttrEnum.room_temp.ToString());
                bodyView.btnHumiValues.Text = temp.GetAttrState(AcstSub_AttrEnum.room_humidity.ToString());
                bodyView.btnSetTempValues.Width = bodyView.btnSetTempValues.GetTextWidth() + Application.GetRealWidth(10);
                int progress = 0;
                int.TryParse(temp.GetAttrState(FunctionAttributeKey.SetTemp), out progress);
                bodyView.tempBar.Progress = progress + 16;
                int setTempValue = 0;
                double dd = 0;
                double.TryParse(temp.GetAttrState(AcstSub_AttrEnum.set_temp.ToString(), "--"), out dd);
                setTempValue = Convert.ToInt32(dd);
                if (setTempValue != 0)
                    bodyView.btnSetTempValues.Text = setTempValue.ToString();
                //bodyView.btnSetTempValues.Width = bodyView.btnSetTempValues.GetTextWidth() + Application.GetRealWidth(10);
                //int progress = 0;
                //int.TryParse(temp.GetAttrState(AcstSub_AttrEnum.set_temp.ToString()), out progress);
                if (bodyView.tempBar.Progress != setTempValue - 16)
                    bodyView.tempBar.Progress = setTempValue - 16;
                if(temp.trait_on_off.curValue.ToString() == "on")
                {
                    bodyView.btnPowerControl.IsSelected = true;
                    bodyView.tempBar.Enable = false;
                    bodyView.tempBar.ProgressBarColor = bodyView.curColor;
                    //bodyView.tempBar.IsClickable = function.trait_on_off.curValue.ToString() == "off",
                    //bodyView.tempBar.IsOffline = false;
                }
                else
                {
                    bodyView.btnPowerControl.IsSelected = false;
                    bodyView.tempBar.Enable = true;
                    bodyView.tempBar.ProgressBarColor = CSS_Color.DividingLineColor;
                    //bodyView.tempBar.IsOffline = true;
                }
            });
@@ -59,21 +74,24 @@
            switch (imageFolder)
            {
                case "blue":
                    curColor = CSS.CSS_Color.MainColor;
                    curColor = CSS_Color.MainColor;
                    colorString = "#4484F4";
                    break;
                case "orange":
                    curColor = 0xFFFFB848;
                    colorString = "#FFB848";
                    break;
                case "purple":
                    curColor = 0xFF9175F3;
                    colorString = "#9175F3";
                    break;
            }
            bodyView = this;
        }
        public void LoadPage()
        public void LoadPage(Action action)
        {
            new TopViewDiv(bodyView, function.GetRoomListName()).LoadTopView();
            new TopViewDiv(bodyView, function.name).LoadTopView_FunctionTop(function,action);
            var contentView = new FrameLayout()
            {
@@ -101,69 +119,71 @@
            var tempValuesView = new FrameLayout()
            {
                X = Application.GetRealWidth(21),
                Y = Application.GetRealWidth(17),
                Y = Application.GetRealWidth(22),
                Width = Application.GetRealWidth(130),
                Height = Application.GetRealWidth(132),
            };
            tempHumiView.AddChidren(tempValuesView);
            btnTempValues = new Button()
            {
                Y = Application.GetRealWidth(45),
                Height = Application.GetRealWidth(35),
                Y = Application.GetRealWidth(38),
                Height = Application.GetRealWidth(66),
                IsBold = true,
                TextSize = 30,
                TextColor = CSS.CSS_Color.FirstLevelTitleColor,
                TextAlignment = TextAlignment.TopRight,
                Text = "---",
                Text = function.GetAttrState(AcstSub_AttrEnum.room_temp.ToString(),"---"),
            };
            btnTempValues.Text = function.GetAttrState(AcstSub_AttrEnum.room_temp.ToString());
#if __IOS__
            btnTempValues.Width = btnTempValues.GetTextWidth() + Application.GetRealWidth(10);
#else
            btnTempValues.Width = btnTempValues.GetTextWidth();
#endif
            btnTempValues.Gravity = Gravity.CenterHorizontal;
            tempValuesView.AddChidren(btnTempValues);
            var btnTempValuesUint = new Button()
            {
                X = btnTempValues.Right,
                Y = Application.GetRealWidth(48),
                //Y = Application.GetRealWidth(48),
                Y = Application.GetRealWidth(45),
                Height = Application.GetRealWidth(66),
                TextAlignment = TextAlignment.TopLeft,
                Width = Application.GetRealWidth(30),
                Height = Application.GetRealWidth(30),
                //Height = Application.GetRealWidth(30),
                TextSize = 10,
                TextColor = CSS.CSS_Color.FirstLevelTitleColor,
                Text = "°C"
            };
            tempValuesView.AddChidren(btnTempValuesUint);
            var humiValuesView = new FrameLayout()
            {
                X = Application.GetRealWidth(130+21),
                Y = Application.GetRealWidth(17),
                Y = Application.GetRealWidth(22),
                Width = Application.GetRealWidth(130),
                Height = Application.GetRealWidth(132),
            };
            tempHumiView.AddChidren(humiValuesView);
            btnHumiValues = new Button()
            {
                Y = Application.GetRealWidth(45),
                Height = Application.GetRealWidth(35),
                Y = Application.GetRealWidth(39),
                Height = Application.GetRealWidth(66),
                IsBold = true,
                TextSize = 30,
                TextColor = CSS.CSS_Color.FirstLevelTitleColor,
                Text = "---",
                Text = function.GetAttrState(AcstSub_AttrEnum.room_humidity.ToString(),"---"),
                TextAlignment = TextAlignment.TopRight,
            };
            btnHumiValues.Text = function.GetAttrState(AcstSub_AttrEnum.room_humidity.ToString());
            btnHumiValues.Width = btnTempValues.GetTextWidth();
            btnHumiValues.Gravity = Gravity.CenterHorizontal;
            humiValuesView.AddChidren(btnHumiValues);
            var btnHumiValuesUint = new Button()
            {
                X = btnTempValues.Right,
                Y = Application.GetRealWidth(48),
                Y = Application.GetRealWidth(45),
                TextAlignment = TextAlignment.TopLeft,
                Width = Application.GetRealWidth(30),
                Height = Application.GetRealWidth(30),
                Height = Application.GetRealWidth(66),
                TextSize = 10,
                TextColor = CSS.CSS_Color.FirstLevelTitleColor,
                Text = "%"
@@ -172,7 +192,7 @@
            EventHandler<MouseEventArgs> eventHandler = (sender, e) => {
                var page = new AcstSubHistoryPage(function);
                var page = new AcstSubHistoryPage(function, colorString);
                MainPage.BasePageView.AddChidren(page);
                page.LoadPage();
                MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
@@ -184,25 +204,36 @@
            #endregion
            int setTempValue = 0;
            string setTempStr = "--";
            double dd = 0;
            double.TryParse(function.GetAttrState(AcstSub_AttrEnum.set_temp.ToString(), "--"), out dd);
            setTempValue = Convert.ToInt32(dd);
            if (setTempValue != 0)
                setTempStr = setTempValue.ToString();
            btnSetTempValues = new Button()
            {
                Gravity = Gravity.CenterHorizontal,
                X = Application.GetRealWidth((375 - 77 -30)/2),
                Y = Application.GetRealHeight(260),
                Width = Application.GetRealWidth(71),
                Width = Application.GetRealWidth(73),
                Height = Application.GetRealHeight(90),
                TextAlignment = TextAlignment.TopRight,
                TextAlignment = TextAlignment.TopCenter,
                TextColor = CSS.CSS_Color.FirstLevelTitleColor,
                IsBold = true,
                TextSize = 60,
                Text = function.GetAttrState(AcstSub_AttrEnum.set_temp.ToString(), "--")
                Text = setTempStr
            };
            contentView.AddChidren(btnSetTempValues);
#if __IOS__
            bodyView.btnSetTempValues.Width = bodyView.btnSetTempValues.GetTextWidth() + Application.GetRealWidth(10);
#endif
            var btnSetTempUnit = new Button()
            {
                X = btnSetTempValues.Right + Application.GetRealWidth(3),
                Y = Application.GetRealHeight(267),
                Width = Application.GetRealWidth(30),
                Width = Application.GetRealWidth(50),
                Height = Application.GetRealHeight(50),
                TextSize = 23,
                TextColor = CSS.CSS_Color.FirstLevelTitleColor,
@@ -227,8 +258,8 @@
            contentView.AddChidren(btnMinValuesText);
            int progress = 0;
            int.TryParse(function.GetAttrState(FunctionAttributeKey.SetTemp),out progress);
            //int progress = 0;
            //int.TryParse(function.GetAttrState(FunctionAttributeKey.SetTemp),out progress);
            tempBar = new DiyImageSeekBar()
            {
@@ -241,11 +272,13 @@
                ThumbImageHeight = Application.GetRealHeight(51),
                ProgressBarColor = function.trait_on_off.curValue.ToString() == "on" ? curColor : CSS_Color.DividingLineColor,
                MaxValue = 14,
                Progress = progress + 16,
                Progress = setTempValue - 16,
                SeekBarPadding = Application.GetRealWidth(20),
                IsProgressTextShow = false,
                ProgressChangeDelayTime = 0,
                IsOffline = function.trait_on_off.curValue.ToString() == "off",
                //IsClickable = function.trait_on_off.curValue.ToString() == "off",
                //Enable = function.trait_on_off.curValue.ToString() == "off",
                //IsOffline = true,// function.trait_on_off.curValue.ToString() == "off",
            };
            contentView.AddChidren(tempBar);
            tempBar.OnProgressChangedEvent = (sender, e) => {
@@ -254,7 +287,7 @@
            tempBar.OnStopTrackingTouchEvent = (sender, e) => {
                new System.Threading.Thread(() => {
                    var d = new Dictionary<string, string>();
                    d.Add(FunctionAttributeKey.SetTemp, e.ToString());
                    d.Add(FunctionAttributeKey.SetTemp, (e+16).ToString());
                    Control.Ins.SendWriteCommand(function, d);
                })
                { IsBackground = true }.Start();
@@ -273,8 +306,6 @@
                TextSize = CSS_FontSize.PromptFontSize_FirstLevel,
            };
            contentView.AddChidren(btnMaxValuesText);
@@ -301,6 +332,8 @@
                { IsBackground = true }.Start();
            };
            Control.Ins.SendReadCommand(function);
        }
    }
}