using System; using HDL_ON.Entity; using HDL_ON.UI.CSS; using Shared; namespace HDL_ON.UI { public partial class RoomPage : FrameLayout { #region 控件列表 /// /// 当前窗体 /// static FrameLayout bodyView; /// /// 功能列表集合显示区域 /// static VerticalScrolViewLayout functionListView; #endregion #region static Room room; Action skipEditPageAction; Action ReloadRoomName; /// /// 删除房间事件 /// Action deleteAction; /// /// 图片修改事件 /// Action modifyImageAction; #endregion /// /// /// /// /// 编辑事件 /// 删除事件回调 /// 房间背景图修改事件回调 public RoomPage(Room r, Action rrn, Action delAction, Action modifyImageAction) { bodyView = this; room = r; skipEditPageAction = () => { LoadEvent_SkipEditRoomPage(); }; ReloadRoomName = rrn; deleteAction = delAction; this.modifyImageAction = modifyImageAction; } /// /// 重载界面 /// void ReLoadPage() { bodyView.RemoveAll(); LoadPage(); } public void LoadPage() { bodyView.BackgroundColor = CSS_Color.BackgroundColor; new TopViewDiv(bodyView,room.roomName).LoadTopView_RoomTop(ReloadRoomName, skipEditPageAction); functionListView = new VerticalScrolViewLayout() { Y = Application.GetRealHeight(64), Height = Application.GetRealHeight(603-12), }; bodyView.AddChidren(functionListView); foreach (var function in room.GetRoomFunctions(false)) { if (MainPage.RoomNotSupportFunctionList.Contains( function.spk)) { continue; } functionListView.AddChidren(new Button() { Height = Application.GetRealHeight(12) }); if (function.spk == SPK.LightRGB || function.spk == SPK.LightDimming) { var functionDiv = new FunctionControlZone(function) { Gravity = Gravity.CenterHorizontal, Width = Application.GetRealWidth(343), Height = Application.GetRealHeight(116), Radius = (uint)Application.GetMinRealAverage(12), BorderColor = 0x00FFFFFF, BorderWidth = 1, BackgroundColor = CSS_Color.MainBackgroundColor, Tag = function.spk + function.sid }; functionDiv.LoadFunctionDiv(); functionListView.AddChidren(functionDiv); } else { var functionDiv = new FunctionControlZone(function) { Gravity = Gravity.CenterHorizontal, Width = Application.GetRealWidth(343), Height = Application.GetRealHeight(96), Radius = (uint)Application.GetMinRealAverage(12), BorderColor = 0x00FFFFFF, BorderWidth = 1, BackgroundColor = CSS_Color.MainBackgroundColor, Tag = function.spk + function.sid }; functionDiv.LoadFunctionDiv(); functionListView.AddChidren(functionDiv); } } foreach (var scene in room.GetRoomScenes(false)) { functionListView.AddChidren(new Button() { Height = Application.GetRealHeight(12) }); var sceneRow = new FrameLayout() { Gravity = Gravity.CenterHorizontal, Width = Application.GetRealWidth(343), Height = Application.GetRealHeight(116), Radius = (uint)Application.GetMinRealAverage(12), BorderColor = 0x00FFFFFF, BorderWidth = 1, BackgroundColor = CSS_Color.MainBackgroundColor, Tag = "Scene-" + scene.sid }; functionListView.AddChidren(sceneRow); LoadSceneRow(sceneRow, scene); } } /// /// 加载功能类型控制卡片 /// public void LoadSceneRow(FrameLayout bodyDiv, Scene scene) { var btnIcon = new Button() { X = Application.GetRealWidth(10), Y = Application.GetRealHeight(15), Width = Application.GetRealWidth(32), Height = Application.GetRealWidth(32), }; bodyDiv.AddChidren(btnIcon); var btnName = new Button() { X = Application.GetRealWidth(8 + 10 + 32), Y = Application.GetRealHeight(10), Width = Application.GetRealWidth(200), Height = Application.GetRealHeight(24), Text = scene.name, TextAlignment = TextAlignment.CenterLeft, TextColor = CSS_Color.FirstLevelTitleColor, TextSize = CSS_FontSize.TextFontSize, }; bodyDiv.AddChidren(btnName); var btnFromFloor = new Button() { X = Application.GetRealWidth(8 + 10 + 32), Y = Application.GetRealHeight(10 + 24), Width = Application.GetRealWidth(200), Height = Application.GetRealHeight(18), Text = scene.GetRoomListName(), TextAlignment = TextAlignment.CenterLeft, TextColor = CSS_Color.PromptingColor1, TextSize = CSS_FontSize.PromptFontSize_FirstLevel, }; bodyDiv.AddChidren(btnFromFloor); var 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 = scene.collect }; bodyDiv.AddChidren(btnCollectionIcon); //2020-12-16 如果是成员隐藏收藏功能 //if (!DB_ResidenceData.Instance.CurrentRegion.isOtherShare) //{ // bodyDiv.AddChidren(btnCollectionIcon); //} btnIcon.UnSelectedImagePath = "FunctionIcon/Scene/SceneIcon.png"; if (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(btnName,btnFromFloor,bodyDiv,scene ); LoadEvent_FunctionCollection(btnCollectionIcon,scene); } /// /// 加载功能收藏按钮事件 /// void LoadEvent_FunctionCollection(Button btnCollectionIcon,Scene scene) { btnCollectionIcon.MouseUpEventHandler += (sender, e) => { btnCollectionIcon.IsSelected = scene.collect = !btnCollectionIcon.IsSelected; scene.CollectScene(); }; } /// /// 加载场景控制事件 /// void LoadEvent_ControlScene(Button btnName,Button btnFromFloor,FrameLayout bodyDiv, Scene scene) { EventHandler upEvent = (sender, e) => { DriverLayer.Control.Ins.ControlScene(scene); string msg = scene.name + Language.StringByID(StringId.AlreadyOpened); new PublicAssmebly().TipMsgAutoClose(msg, false); }; btnName.MouseUpEventHandler = upEvent; btnFromFloor.MouseUpEventHandler = upEvent; bodyDiv.MouseUpEventHandler = upEvent; } } }