using System; using HDL_ON.Entity; using HDL_ON.UI.CSS; using Shared; namespace HDL_ON.UI { public partial class RGBPage : FrameLayout { #region 控件集合 static RGBPage bodyView; /// /// 颜色选择区域 /// ColorPicker colorPicker; /// /// 显示当前选中颜色的按钮 /// Button btnCurColor; /// /// 功能名称 /// Button btnFunctionName; /// /// 功能所属楼层、房间 /// Button btnFromFoorAndRoom; /// /// 收藏按钮 /// Button btnCollection; /// /// k开关按钮 /// Button btnSwitch; /// /// 恢复默认颜色 /// Button btnRestoredPoint; /// /// 调光进度条 /// DiyImageSeekBar dimmerBar; /// /// 渐变时间进度条 /// DiyImageSeekBar barFadeTime; /// /// 色盘里面那个会滑动的球 /// Button btnWhiteRound; #endregion #region 区域变量 Light lightTemp; Button btnCollection_Out; Button btnFunctionName_Out; Button btnFromFloor_Out; bool onDimmerBar = false; Function function; /// /// 最后打开的颜色 /// byte[] lastColor = new byte[3] { 255, 255, 255 }; /// /// 刷新显示信息 /// Action actionRefresh; #endregion public RGBPage(Function func) { bodyView = this; function = func; lightTemp = new Light(); } public void LoadPage(Button btnCollectionIcon, Button btnFunctionNameOut, Button btnFromFloorOut) { btnCollection_Out = btnCollectionIcon; btnFunctionName_Out = btnFunctionNameOut; btnFromFloor_Out = btnFromFloorOut; bodyView.BackgroundColor = CSS_Color.BackgroundColor; //new TopViewDiv(bodyView, Language.StringByID(StringId.Lights)).LoadTopView(function,null); //new PublicAssmebly().LoadTopView(bodyView, Language.StringByID(StringId.Lights), function); 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); btnCurColor = new Button() { X = Application.GetRealWidth(16), Y = btnFromFoorAndRoom.Bottom, Width = Application.GetMinRealAverage(24), Height = Application.GetMinRealAverage(24), Radius = (uint)Application.GetMinRealAverage(8), BorderColor = CSS_Color.PromptingColor2, BorderWidth = 1, BackgroundColor = (uint)(0xFF000000 + lightTemp.GetRGBcolor(function.GetAttrState(FunctionAttributeKey.RGB))) }; controlView.AddChidren(btnCurColor); 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); //} //色盘的桌布控件(限制那个白色滑动球使用) 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() { ColorImagePath = "FunctionIcon/Light/ColorWheel.png", }; 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() { X = Application.GetRealWidth(35), Y = Application.GetRealHeight(308), Width = Application.GetRealWidth(224), Height = Application.GetRealHeight(21), TextAlignment = TextAlignment.CenterLeft, TextColor = CSS_Color.FirstLevelTitleColor, TextSize = CSS_FontSize.PromptFontSize_FirstLevel, TextID = StringId.Brightness, }; controlView.AddChidren(btnBrightnessText); var btnMinValuesText = new Button() { X = Application.GetRealWidth(35), Y = btnBrightnessText.Bottom, Width = Application.GetRealWidth(30), Height = Application.GetRealHeight(21), Text = "0%", TextAlignment = TextAlignment.CenterLeft, TextColor = CSS_Color.PromptingColor1, TextSize = CSS_FontSize.PromptFontSize_FirstLevel, }; controlView.AddChidren(btnMinValuesText); dimmerBar = new DiyImageSeekBar() { X = Application.GetRealWidth(35 + 22), Y = Application.GetRealHeight(312), Width = Application.GetRealWidth(210), Height = Application.GetRealHeight(54), SeekBarViewHeight = Application.GetRealHeight(8), ThumbImagePath = "Public/ThumbImage.png", ThumbImageHeight = Application.GetRealHeight(54), ProgressTextColor = CSS_Color.FirstLevelTitleColor, ProgressTextSize = CSS_FontSize.PromptFontSize_FirstLevel, ProgressBarColor = function.trait_on_off.curValue.ToString() == "on" ? CSS_Color.AuxiliaryColor1 : CSS_Color.DividingLineColor, MaxValue = 100, Progress = Convert.ToInt32(function.GetAttrState(FunctionAttributeKey.Brightness)), SeekBarPadding = Application.GetRealWidth(20), }; controlView.AddChidren(dimmerBar); var btnMaxValuesText = new Button() { X = dimmerBar.Right, Y = btnBrightnessText.Bottom, Width = Application.GetRealWidth(45), Height = Application.GetRealHeight(21), Text = "100%", TextAlignment = TextAlignment.CenterLeft, TextColor = CSS_Color.PromptingColor1, TextSize = CSS_FontSize.PromptFontSize_FirstLevel, }; controlView.AddChidren(btnMaxValuesText); #endregion if (function.GetAttribute(FunctionAttributeKey.FadeTime) != null) { #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, 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 = 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, Visible = function.GetAttribute(FunctionAttributeKey.FadeTime) != null, Enable = function.GetAttribute(FunctionAttributeKey.FadeTime) != null, }; controlView.AddChidren(btnGradualChangeMaxValuesText); #endregion } btnRestoredPoint = new Button() { 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", }; controlView.AddChidren(btnRestoredPoint); btnSwitch = new Button() { 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 = function.trait_on_off.curValue.ToString() == "on" }; controlView.AddChidren(btnSwitch); LoadEventList(); new TopViewDiv(bodyView, Language.StringByID(StringId.Lights)).LoadTopView_FunctionTop(function, actionRefresh); new System.Threading.Thread(() => { DriverLayer.Control.Ins.SendReadCommand(function); }) { IsBackground = true }.Start(); } } }