using System; using HDL_ON.Entity; using HDL_ON.UI.CSS; using HDL_ON.UI.Music; using Shared; namespace HDL_ON.UI { public partial class FunctionControlZone : FrameLayout { #region 区域控件 FrameLayout bodyDiv; /// /// 功能/场景icon /// Button btnIcon; /// /// 功能名称/场景名称 /// Button btnName; /// /// 楼层信息显示按钮 /// Button btnFromFloor; /// /// 收藏按钮 /// Button btnCollectionIcon; #endregion #region 区域变量 Function function; /// /// 是否在调光 /// bool onDimmerBar; #endregion public FunctionControlZone(Function func) { bodyDiv = this; function = func; } public override void RemoveFromParent() { base.RemoveFromParent(); bodyDiv = null; } /// /// 加载功能类型控制卡片 /// public void LoadFunctionDiv() { if (function == null) { this.RemoveFromParent(); return; } LoadDiv(); if (function.functionCategory == FunctionCategory.Curtain || function.functionCategory == FunctionCategory.Music || function.functionCategory == FunctionCategory.Scene)//窗帘没有开关按钮 { switch (function.functionCategory) { case FunctionCategory.Curtain: btnIcon.UnSelectedImagePath = "FunctionIcon/Curtain/CurtainThinIcon.png"; CurtainFragment(); break; case FunctionCategory.Music: btnIcon.UnSelectedImagePath = "FunctionIcon/Music/MusicThinIcon.png"; MusicFragment(); break; case FunctionCategory.Scene: btnIcon.UnSelectedImagePath = "FunctionIcon/Scene/SceneIcon.png"; if ((function as Scene).sceneType == SceneType.MovieScene) { var movieIcon = new Button() { X = Application.GetRealWidth(52), Y = Application.GetRealHeight(14), Width = Application.GetRealWidth(16), Height = Application.GetRealWidth(16), UnSelectedImagePath = "FunctionIcon/Scene/MovieMark.png", }; bodyDiv.AddChidren(movieIcon); btnName.X = Application.GetRealWidth(52 + 16); } //加载场景控制事件 LoadEvent_ControlScene(); break; } } else { #region 加载开关按钮 /// /// 开关按钮 /// Button btnSwitch; if (function.functionType == FunctionType.RGB || function.functionType == FunctionType.Dimmer) { btnSwitch = new Button() { X = Application.GetRealWidth(303), Y = Application.GetRealHeight(78), Width = Application.GetMinRealAverage(32), Height = Application.GetMinRealAverage(32), UnSelectedImagePath = "Public/PowerClose.png", SelectedImagePath = "Public/PowerOpen.png", IsSelected = function.trait_on_off.value.ToString() == "on", Tag = function.functionType + "_Switch_" + function.sid, }; bodyDiv.AddChidren(btnSwitch); } else { btnSwitch = new Button() { X = Application.GetRealWidth(303), Y = Application.GetRealHeight(58), Width = Application.GetMinRealAverage(32), Height = Application.GetMinRealAverage(32), UnSelectedImagePath = "Public/PowerClose.png", SelectedImagePath = "Public/PowerOpen.png", IsSelected = function.trait_on_off.value.ToString() == "on", Tag = function.functionType + "_Switch_" + function.sid, }; bodyDiv.AddChidren(btnSwitch); } //加载开关按钮事件 LoadEvent_SwitchFunction(btnSwitch); switch (function.functionCategory) { case FunctionCategory.Thermostat: switch (function.functionType) { case FunctionType.AC: btnIcon.UnSelectedImagePath = "FunctionIcon/AC/AcThinIcon1.png"; LoadLastStatesButton(); break; case FunctionType.FloorHeating: btnIcon.UnSelectedImagePath = "FunctionIcon/FloorHeating/FloorHeatingThinIcon.png"; LoadLastStatesButton(); break; } break; case FunctionCategory.Light: btnIcon.UnSelectedImagePath = "FunctionIcon/Light/LightThinIcon.png"; btnSwitch.IsSelected = function.trait_on_off.value.ToString() == "on"; LoadLightControl(); break; case FunctionCategory.SwitchDevice: switch (function.functionType) { case FunctionType.Socket: btnIcon.UnSelectedImagePath = "FunctionIcon/Socket/SocketThinIcon.png"; break; } btnSwitch.IsSelected = function.trait_on_off.value.ToString() == "on"; break; case FunctionCategory.Electrical: switch (function.functionType) { case FunctionType.Fan: btnIcon.UnSelectedImagePath = "FunctionIcon/Electrical/FanThinIcon.png"; break; case FunctionType.TV: btnIcon.UnSelectedImagePath = "FunctionIcon/Electrical/TVThinIcon.png"; break; } btnSwitch.IsSelected = function.trait_on_off.value.ToString() == "on"; break; } #endregion } if (function.functionCategory != FunctionCategory.Scene) { LoadEvent_DivSkipEvent(); } LoadEvent_FunctionCollection(); } /// /// 加载控制卡片区域 /// void LoadDiv() { btnIcon = new Button() { X = Application.GetRealWidth(10), Y = Application.GetRealHeight(15), Width = Application.GetRealWidth(32), Height = Application.GetRealWidth(32), }; bodyDiv.AddChidren(btnIcon); btnName = new Button() { X = Application.GetRealWidth(8 +10 + 32), Y = Application.GetRealHeight(10), Width = Application.GetRealWidth(200), Height = Application.GetRealHeight(24), Text = function.name, TextAlignment = TextAlignment.CenterLeft, TextColor = CSS_Color.FirstLevelTitleColor, TextSize = CSS_FontSize.TextFontSize, }; bodyDiv.AddChidren(btnName); btnFromFloor = new Button() { X = Application.GetRealWidth(8 + 10 + 32), Y = Application.GetRealHeight(10 + 24), Width = Application.GetRealWidth(200), Height = Application.GetRealHeight(18), Text = function.GetRoomListName(), TextAlignment = TextAlignment.CenterLeft, TextColor = CSS_Color.PromptingColor1, TextSize = CSS_FontSize.PromptFontSize_FirstLevel, }; bodyDiv.AddChidren(btnFromFloor); btnCollectionIcon = new Button() { X = Application.GetRealWidth(299), Y = Application.GetRealHeight(10), Width = Application.GetMinRealAverage(40), Height = Application.GetMinRealAverage(40), SelectedImagePath = "Collection/CollectionIcon.png", UnSelectedImagePath = "Collection/CollectionGrayIcon.png", IsSelected = function.collection }; bodyDiv.AddChidren(btnCollectionIcon); } /// /// 加载灯光功能控制卡片 /// void LoadLightControl() { switch (function.functionType) { case FunctionType.Dimmer: case FunctionType.RGB: #region Dimmer var btnDimmerMinValues = new Button() { X = Application.GetRealWidth(14), Y = Application.GetRealHeight(85), Width = Application.GetRealWidth(22), Height = Application.GetRealHeight(21), Text = "0%", TextAlignment = TextAlignment.CenterLeft, TextColor = CSS_Color.PromptingColor1, TextSize = CSS_FontSize.PromptFontSize_FirstLevel, }; bodyDiv.AddChidren(btnDimmerMinValues); var dimmerControlBar = new DiyImageSeekBar() { X = Application.GetRealWidth(14 + 22), Y = Application.GetRealHeight(68),//91,设计数据 Width = Application.GetRealWidth(180), Height = Application.GetRealHeight(54), SeekBarViewHeight = Application.GetRealHeight(8), ThumbImagePath = "Public/ThumbImage.png", ThumbImageHeight = Application.GetRealHeight(54), ProgressBarColor = function.trait_on_off.value.ToString() == "on" ? CSS_Color.AuxiliaryColor1 : CSS_Color.PromptingColor2, ProgressTextColor = CSS_Color.FirstLevelTitleColor, ProgressTextSize = CSS_FontSize.PromptFontSize_FirstLevel, MaxValue = 100, Progress = (function as Light).brightness, Tag = function.functionType + "_DimmerBar_" + function.sid }; bodyDiv.AddChidren(dimmerControlBar); var btnDimmerMaxValues = new Button() { X = Application.GetRealWidth(14 + 22+180), Y = Application.GetRealHeight(85), Width = Application.GetRealWidth(35), Height = Application.GetRealHeight(21), Text = "100%", TextAlignment = TextAlignment.CenterLeft, TextColor = CSS_Color.PromptingColor1, TextSize = CSS_FontSize.PromptFontSize_FirstLevel, }; bodyDiv.AddChidren(btnDimmerMaxValues); //加载调光事件 LoadEvent_LightDimming(dimmerControlBar); #endregion break; } } /// /// 加载窗帘功能控制卡片 /// void CurtainFragment() { #region Curtain var btnCurtainClose = new Button() { X = Application.GetRealWidth(163), Y = Application.GetRealHeight(58), Width = Application.GetMinRealAverage(32), Height = Application.GetMinRealAverage(32), UnSelectedImagePath = "FunctionIcon/Curtain/CurtainCloseIcon.png", SelectedImagePath = "FunctionIcon/Curtain/CurtainCloseOnIcon.png", Tag = function.functionType + "_off_" + function.sid }; bodyDiv.AddChidren(btnCurtainClose); var btnCurtainStop = new Button() { X = Application.GetRealWidth(233), Y = Application.GetRealHeight(58), Width = Application.GetMinRealAverage(32), Height = Application.GetMinRealAverage(32), UnSelectedImagePath = "FunctionIcon/Curtain/CurtainStopIcon.png", SelectedImagePath = "FunctionIcon/Curtain/CurtainStopOnIcon.png", }; bodyDiv.AddChidren(btnCurtainStop); var btnCurtainOpen = new Button() { X = Application.GetRealWidth(303), Y = Application.GetRealHeight(58), Width = Application.GetMinRealAverage(32), Height = Application.GetMinRealAverage(32), UnSelectedImagePath = "FunctionIcon/Curtain/CurtainOpenIcon.png", SelectedImagePath = "FunctionIcon/Curtain/CurtainOpenOnIcon.png", Tag = function.functionType + "_on_" + function.sid }; bodyDiv.AddChidren(btnCurtainOpen); LoadEvent_ControlCurtain(btnCurtainStop, btnCurtainOpen, btnCurtainClose, function as Curtain); #endregion } /// /// 加载音乐功能控制卡片 /// void MusicFragment() { #region Music var btnPrev = new Button() { X = Application.GetRealWidth(163), Y = Application.GetRealHeight(58), Width = Application.GetMinRealAverage(32), Height = Application.GetMinRealAverage(32), UnSelectedImagePath = "MusicIcon/prev.png", SelectedImagePath = "MusicIcon/prevSeletced.png", }; bodyDiv.AddChidren(btnPrev); var btnPlay = new Button() { X = Application.GetRealWidth(233), Y = Application.GetRealHeight(58), Width = Application.GetMinRealAverage(32), Height = Application.GetMinRealAverage(32), UnSelectedImagePath = "MusicIcon/pause.png", SelectedImagePath = "MusicIcon/play.png", IsSelected = (function as A31MusicModel).A31PlayStatus.status == "play" , Tag = function.functionType + "_State_" + function.sid }; bodyDiv.AddChidren(btnPlay); var btnNext = new Button() { X = Application.GetRealWidth(303), Y = Application.GetRealHeight(58), Width = Application.GetMinRealAverage(32), Height = Application.GetMinRealAverage(32), UnSelectedImagePath = "MusicIcon/next.png", SelectedImagePath = "MusicIcon/nextSelected.png", }; bodyDiv.AddChidren(btnNext); LoadEvent_ControlMusic(btnPlay, btnNext, btnPrev, function as A31MusicModel); #endregion } /// /// 加载功能状态信息按钮 /// void LoadLastStatesButton() { var btnLastStates = new Button() { X = Application.GetRealWidth(10 + 32 + 8), Y = Application.GetRealHeight(10 + 24 + 18), Width = Application.GetRealWidth(200), Height = Application.GetRealHeight(18), Text = function.lastState, TextAlignment = TextAlignment.CenterLeft, SelectedTextColor = CSS_Color.PromptingColor1, TextColor = 0x00000000, TextSize = CSS_FontSize.PromptFontSize_SecondaryLevel, Tag = function.functionType + "_laststates_" + function.sid, IsSelected = function.trait_on_off.value.ToString() == "on" }; bodyDiv.AddChidren(btnLastStates); } } }