| | |
| | | public partial class RGBPage : FrameLayout |
| | | { |
| | | #region 控件集合 |
| | | FrameLayout bodyView; |
| | | static RGBPage bodyView; |
| | | /// <summary> |
| | | /// 颜色选择区域 |
| | | /// </summary> |
| | |
| | | /// 显示当前选中颜色的按钮 |
| | | /// </summary> |
| | | Button btnCurColor; |
| | | /// <summary> |
| | | /// 功能名称 |
| | | /// </summary> |
| | | Button btnFunctionName; |
| | | /// <summary> |
| | | /// 功能所属楼层、房间 |
| | | /// </summary> |
| | | Button btnFromFoorAndRoom; |
| | | /// <summary> |
| | | /// 收藏按钮 |
| | | /// </summary> |
| | | Button btnCollection; |
| | | /// <summary> |
| | | /// k开关按钮 |
| | | /// </summary> |
| | | Button btnSwitch; |
| | | /// <summary> |
| | | /// 恢复默认颜色 |
| | | /// </summary> |
| | | Button btnRestoredPoint; |
| | | /// <summary> |
| | | /// 调光进度条 |
| | | /// </summary> |
| | | DiyImageSeekBar dimmerBar; |
| | | /// <summary> |
| | | /// 渐变时间进度条 |
| | | /// </summary> |
| | | DiyImageSeekBar barFadeTime; |
| | | /// <summary> |
| | | /// 色盘里面那个会滑动的球 |
| | | /// </summary> |
| | | Button btnWhiteRound; |
| | | #endregion |
| | | |
| | | #region 区域变量 |
| | | Light lightTemp; |
| | | Button btnCollection_Out; |
| | | Button btnFunctionName_Out; |
| | | Button btnFromFloor_Out; |
| | | bool onDimmerBar = false; |
| | | Function function; |
| | | /// <summary> |
| | | /// 刷新显示信息 |
| | | /// </summary> |
| | | Action actionRefresh; |
| | | #endregion |
| | | |
| | | public RGBPage(Function func) |
| | |
| | | function = func; |
| | | } |
| | | |
| | | public void LoadPage() |
| | | public void LoadPage(Button btnCollectionIcon, Button btnFunctionNameOut, Button btnFromFloorOut) |
| | | { |
| | | btnCollection_Out = btnCollectionIcon; |
| | | btnFunctionName_Out = btnFunctionNameOut; |
| | | btnFromFloor_Out = btnFromFloorOut; |
| | | bodyView.BackgroundColor = CSS_Color.BackgroundColor; |
| | | new PublicAssmebly().LoadTopView(bodyView, Language.StringByID(StringId.Lights), function); |
| | | //new TopViewDiv(bodyView, Language.StringByID(StringId.Lights)).LoadTopView(function,null); |
| | | //new PublicAssmebly().LoadTopView(bodyView, Language.StringByID(StringId.Lights), function); |
| | | |
| | | FrameLayout controlView = new FrameLayout() |
| | | { |
| | |
| | | }; |
| | | bodyView.AddChidren(controlView); |
| | | |
| | | Button btnLightName = new Button() |
| | | btnFunctionName = new Button() |
| | | { |
| | | X = Application.GetRealWidth(16), |
| | | Y = Application.GetRealHeight(14), |
| | |
| | | TextSize = CSS_FontSize.EmphasisFontSize_FirstLevel, |
| | | Text = function.name, |
| | | }; |
| | | controlView.AddChidren(btnLightName); |
| | | controlView.AddChidren(btnFunctionName); |
| | | |
| | | Button btnFromFoorAndRoom = new Button() |
| | | btnFromFoorAndRoom = new Button() |
| | | { |
| | | X = Application.GetRealWidth(16), |
| | | Y = btnLightName.Bottom, |
| | | Y = btnFunctionName.Bottom, |
| | | Width = Application.GetRealWidth(270), |
| | | Height = Application.GetRealHeight(21), |
| | | TextColor = CSS_Color.PromptingColor1, |
| | |
| | | Radius = (uint)Application.GetMinRealAverage(8), |
| | | BorderColor = CSS_Color.PromptingColor2, |
| | | BorderWidth = 1, |
| | | BackgroundColor = (uint)(0xFF000000 + lightTemp.GetRGBcolor(function)) |
| | | }; |
| | | controlView.AddChidren(btnCurColor); |
| | | |
| | | var btnCollection = new Button() |
| | | btnCollection = new Button() |
| | | { |
| | | X = Application.GetRealWidth(273), |
| | | Y = Application.GetRealHeight(14), |
| | | Width = Application.GetMinRealAverage(40), |
| | | Height = Application.GetMinRealAverage(40), |
| | | UnSelectedImagePath = "Collection/CollectionIcon.png", |
| | | SelectedImagePath = "Collection/CollectionWhiteIcon.png", |
| | | SelectedImagePath = "Collection/CollectionIcon.png", |
| | | UnSelectedImagePath = "Collection/CollectionGrayIcon.png", |
| | | IsSelected = function.collect |
| | | }; |
| | | controlView.AddChidren(btnCollection); |
| | | //controlView.AddChidren(btnCollection); |
| | | //2020-12-16 如果是成员隐藏收藏功能 |
| | | if (!DB_ResidenceData.Instance.CurrentRegion.IsOthreShare) |
| | | { |
| | | 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); |
| | | framePickerBack.AddChidren(colorPicker); |
| | | if(function.trait_on_off.curValue.ToString() == "off") |
| | | { |
| | | colorPicker.ColorImagePath = "FunctionIcon/Light/ColorWheelGray.png"; |
| | | } |
| | | |
| | | //白点控件 |
| | | 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 = btnBrightnessText.Bottom, |
| | | Width = Application.GetRealWidth(22), |
| | | Width = Application.GetRealWidth(30), |
| | | Height = Application.GetRealHeight(21), |
| | | Text = "0%", |
| | | TextAlignment = TextAlignment.CenterLeft, |
| | |
| | | }; |
| | | controlView.AddChidren(btnMinValuesText); |
| | | |
| | | var dimmerControlBar = new DiyImageSeekBar() |
| | | dimmerBar = new DiyImageSeekBar() |
| | | { |
| | | X = btnMinValuesText.Right, |
| | | 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), |
| | | ProgressBarColor = CSS_Color.AuxiliaryColor1, |
| | | 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 = 30, |
| | | Progress = Convert.ToInt32(function.GetAttrState(FunctionAttributeKey.Brightness)), |
| | | SeekBarPadding = Application.GetRealWidth(20), |
| | | }; |
| | | controlView.AddChidren(dimmerControlBar); |
| | | controlView.AddChidren(dimmerBar); |
| | | |
| | | var btnMaxValuesText = new Button() |
| | | { |
| | | X = dimmerControlBar.Right, |
| | | X = dimmerBar.Right, |
| | | Y = btnBrightnessText.Bottom, |
| | | Width = Application.GetRealWidth(35), |
| | | Width = Application.GetRealWidth(45), |
| | | Height = Application.GetRealHeight(21), |
| | | Text = "100%", |
| | | TextAlignment = TextAlignment.CenterLeft, |
| | |
| | | var btnGradualChangeText = new Button() |
| | | { |
| | | X = Application.GetRealWidth(35), |
| | | Y = Application.GetRealHeight(385), |
| | | 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.Brightness, |
| | | TextID = StringId.SpeedOfChange, |
| | | }; |
| | | controlView.AddChidren(btnGradualChangeText); |
| | | |
| | | var btnGradualChangeMinValuesText = new Button() |
| | | { |
| | | X = Application.GetRealWidth(35), |
| | | Y = btnGradualChangeText.Bottom, |
| | | 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() |
| | | barFadeTime = new DiyImageSeekBar() |
| | | { |
| | | X = btnGradualChangeMinValuesText.Right, |
| | | Y = Application.GetRealHeight(412 - 21), |
| | |
| | | SeekBarViewHeight = Application.GetRealHeight(8), |
| | | ThumbImagePath = "Public/ThumbImage.png", |
| | | ThumbImageHeight = Application.GetRealHeight(54), |
| | | ProgressBarColor = CSS_Color.AuxiliaryColor1, |
| | | ProgressBarColor = CSS_Color.MainColor, |
| | | //SeekBarBackgroundColor = CSS_Color.MainColor, |
| | | ProgressTextColor = CSS_Color.FirstLevelTitleColor, |
| | | ProgressTextSize = CSS_FontSize.PromptFontSize_FirstLevel, |
| | | ProgressBarUnitSring = "s", |
| | | MaxValue = 10, |
| | | Progress = 0, |
| | | 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(barGradualChange); |
| | | controlView.AddChidren(barFadeTime); |
| | | |
| | | var btnGradualChangeMaxValuesText = new Button() |
| | | { |
| | | X = barGradualChange.Right, |
| | | Y = btnGradualChangeText.Bottom, |
| | | 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 |
| | | |
| | | Button btnRestoredPoint = new Button() |
| | | btnRestoredPoint = new Button() |
| | | { |
| | | X = Application.GetRealWidth(86), |
| | | Y = Application.GetRealHeight(448), |
| | | Width = Application.GetMinRealAverage(76), |
| | | Height = Application.GetMinRealAverage(76), |
| | | 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); |
| | | |
| | | Button btnSwitch = new Button() |
| | | btnSwitch = new Button() |
| | | { |
| | | X = btnRestoredPoint.Right + Application.GetRealWidth(4), |
| | | Y = Application.GetRealHeight(448), |
| | | Width = Application.GetMinRealAverage(76), |
| | | Height = Application.GetMinRealAverage(76), |
| | | UnSelectedImagePath = "Public/PowerClose_Shadow.png", |
| | | SelectedImagePath = "Public/PowerOpen_Shadow.png", |
| | | 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(); |
| | | } |
| | | |
| | | |
| | | |
| | | } |
| | | } |