using System; using System.Collections.Generic; using Shared; namespace HDL_ON.UI.Music.View { public class DialogView { /// ///弹窗文件夹列表界面 /// /// public void FieListView(MusicInfo musicInfo) { //主控件 Dialog dialog = new Dialog() { BackgroundColor = Color.PopupBackgroundColor, }; dialog.Show(); //父控件 FrameLayout frame = new FrameLayout { }; dialog.AddChidren(frame); frame.MouseUpEventHandler += (sen, e) => { dialog.Close(); }; //白色快父控件 FrameLayout dialogFra = new FrameLayout() { X = Application.GetRealWidth(16), Y = Application.GetRealHeight(187), Width = Application.GetRealWidth(344), Height = Application.GetRealHeight(460), BackgroundColor = Color.WhiteColor, Radius = (uint)Application.GetRealHeight(12), }; frame.AddChidren(dialogFra); //显示头部信息父控件 FrameLayout topFra = new FrameLayout() { Width = Application.GetRealWidth(344), Height = Application.GetRealHeight(70), }; dialogFra.AddChidren(topFra); //取消控件 Button cancelnBtn = new Button { X = Application.GetRealWidth(16), Y = Application.GetRealHeight(24), Width = Application.GetRealWidth(60), Height = Application.GetRealHeight(20), TextID = StringId.cancelMusic, TextAlignment = TextAlignment.CenterLeft, TextColor = Color.MusicNoTxetColor, TextSize = TextSize.Text14, }; topFra.AddChidren(cancelnBtn); cancelnBtn.MouseUpEventHandler += (sen, e) => { dialog.Close(); }; //标题控件 Button txetBtn = new Button { X = cancelnBtn.Right + Application.GetRealWidth(20), Y = Application.GetRealHeight(23), Width = Application.GetRealWidth(152), Height = Application.GetRealHeight(22), TextColor = Color.TextColor, TextSize = TextSize.Text16, TextAlignment = TextAlignment.Center, TextID = StringId.myList, IsBold = true, }; topFra.AddChidren(txetBtn); //添加图标控件 Button addIconBtn = new Button { X = Application.GetRealWidth(304), Y = Application.GetRealHeight(20), Width = Application.GetMinRealAverage(28), Height = Application.GetMinRealAverage(28), UnSelectedImagePath = "MusicIcon/addMusic.png", }; topFra.AddChidren(addIconBtn); VerticalScrolViewLayout verticalScrolViewLayout = new VerticalScrolViewLayout { Y = Application.GetRealHeight(70), Height = dialogFra.Height - Application.GetRealHeight(70), Width = Application.GetRealWidth(344), }; dialogFra.AddChidren(verticalScrolViewLayout); addIconBtn.MouseUpEventHandler += (sender, e) => { var fileNameList = new List(); fileNameList.Clear(); foreach (var stringName in A31MusicModel.Current.FileLists) { fileNameList.Add(stringName.ListName); } new TipView().InputBox(StringId.addNewList, "", StringId.listNameNull, StringId.listNamesSame, fileNameList, (name) => { A31MusicModel.Current.FileLists.Add(new FileListInfo { ListName = name, }); A31MusicModel.Save(); FileView(dialog, verticalScrolViewLayout, musicInfo); }); }; FileView(dialog, verticalScrolViewLayout, musicInfo); } void FileView(Dialog dialog, VerticalScrolViewLayout verticalScrolViewLayout, MusicInfo musicInfo) { verticalScrolViewLayout.RemoveAll(); for (int i = 0; i < A31MusicModel.Current.FileLists.Count; i++) { var list = A31MusicModel.Current.FileLists[i]; RowLayout addFlieRow = new RowLayout { Height = Application.GetRealHeight(78), LineColor = Color.WhiteColor, SubViewWidth = Application.GetRealWidth(80),//改变编辑控件宽度多少; }; verticalScrolViewLayout.AddChidren(addFlieRow); //文件图标 Button fileIconBtn = new Button { X = Application.GetRealWidth(12), Y = Application.GetRealHeight(8), Width = Application.GetMinRealAverage(62), Height = Application.GetMinRealAverage(62), UnSelectedImagePath = "MusicIcon/file.png", }; addFlieRow.AddChidren(fileIconBtn); //文件名控件 Button fileNameBtn = new Button { X = fileIconBtn.Right + Application.GetRealWidth(12), Y = Application.GetRealHeight(29), Width = Application.GetRealWidth(189), Height = Application.GetRealHeight(20), TextColor = Color.TextColor, TextSize = TextSize.Text14, TextAlignment = TextAlignment.CenterLeft, Text = list.ListName, }; addFlieRow.AddChidren(fileNameBtn); ///编辑控件 var editBtn = new Button { BackgroundColor = Color.MusicEditColor, Text = Language.StringByID(StringId.editMusic), TextColor = Color.WhiteColor, TextSize = TextSize.Text16, }; addFlieRow.AddRightView(editBtn); editBtn.MouseUpEventHandler += (sender, e) => { var fileNameList = new List(); fileNameList.Clear(); foreach (var stringName in A31MusicModel.Current.FileLists) { fileNameList.Add(stringName.ListName); } new TipView().InputBox(StringId.modifyName, list.ListName, StringId.listNameNull, StringId.listNamesSame, fileNameList, (name) => { if (list.ListName != name) { ///修改名称不一样更新保存 list.ListName = name; fileNameBtn.Text = name; A31MusicModel.Save(); } }); }; ///删除控件 var delBtn = new Button { BackgroundColor = Color.MusicDelColor, Text = Language.StringByID(StringId.delMusic), TextColor = Color.WhiteColor, TextSize = TextSize.Text16, }; addFlieRow.AddRightView(delBtn); delBtn.MouseUpEventHandler += (sender, e) => { new View.TipView().TipBox(StringId.tip, StringId.delMusicFile, () => { addFlieRow.RemoveFromParent(); A31MusicModel.Current.FileLists.Remove(list); A31MusicModel.Save(); }); }; EventHandler click = (sender, e) => { if (null == list.MusicInfoList.Find((music) => music.URL == musicInfo.URL)) { list.MusicInfoList.Add(musicInfo); A31MusicModel.Save(); } dialog.Close(); string msg = Language.StringByID(StringId.addMusicList) + list.ListName; new PublicAssmebly().TipMsgAutoClose(msg, false); }; fileNameBtn.MouseUpEventHandler += click; addFlieRow.MouseUpEventHandler += click; } } /// /// 选中组合的播放器的界面 /// public void PlayMergence() { //主控件 Dialog dialog = new Dialog() { BackgroundColor = Color.PopupBackgroundColor, }; dialog.Show(); //父控件 FrameLayout frame = new FrameLayout { }; dialog.AddChidren(frame); frame.MouseUpEventHandler += (sen, e) => { dialog.Close(); }; //白色快父控件 FrameLayout dialogFra = new FrameLayout() { X = Application.GetRealWidth(16), Y = Application.GetRealHeight(397), Width = Application.GetRealWidth(344), Height = Application.GetRealHeight(250), BackgroundColor = Color.WhiteColor, Radius = (uint)Application.GetRealHeight(12), }; frame.AddChidren(dialogFra); //显示头部信息父控件 FrameLayout topFra = new FrameLayout() { Width = Application.GetRealWidth(344), Height = Application.GetRealHeight(50), }; dialogFra.AddChidren(topFra); //取消控件 Button cancelnBtn = new Button { X = Application.GetRealWidth(20), Y = Application.GetRealHeight(15), Width = Application.GetRealWidth(60), Height = Application.GetRealHeight(20), TextID = StringId.cancelMusic, TextAlignment = TextAlignment.CenterLeft, TextColor = Color.MusicNoTxetColor, TextSize = TextSize.Text14, }; topFra.AddChidren(cancelnBtn); cancelnBtn.MouseUpEventHandler += (sen, e) => { dialog.Close(); }; //标题控件 Button txetBtn = new Button { X = cancelnBtn.Right + Application.GetRealWidth(20), Y = Application.GetRealHeight(14), Width = Application.GetRealWidth(152), Height = Application.GetRealHeight(22), TextColor = Color.TextColor, TextSize = TextSize.Text16, TextAlignment = TextAlignment.Center, TextID = StringId.selectedMergence, IsBold = true, }; topFra.AddChidren(txetBtn); //确认控件 Button confirmBtn = new Button { X = Application.GetRealWidth(344 - 60 - 20), Y = Application.GetRealHeight(15), Width = Application.GetRealWidth(60), Height = Application.GetRealHeight(20), TextID = StringId.confirmMusic, TextAlignment = TextAlignment.CenterRight, TextColor = Color.SelectedColor, TextSize = TextSize.Text14, }; topFra.AddChidren(confirmBtn); VerticalScrolViewLayout verticalScrolViewLayout = new VerticalScrolViewLayout { Y = Application.GetRealHeight(50), Height = dialogFra.Height - Application.GetRealHeight(50), Width = Application.GetRealWidth(344), }; dialogFra.AddChidren(verticalScrolViewLayout); var playList = new List(); for (int i = 0; i < A31MusicModel.A31MusicModelList.Count; i++) { var player = A31MusicModel.A31MusicModelList[i]; if (!player.IsOnLine) { //不在线不显示; continue; } RowLayout PlayRow = new RowLayout { Height = Application.GetRealHeight(50), LineColor = Color.WhiteColor, SubViewWidth = Application.GetRealWidth(80),//改变编辑控件宽度多少; }; verticalScrolViewLayout.AddChidren(PlayRow); //播放器名称控件 Button PlayNameBtn = new Button { X = Application.GetRealWidth(20), Y = Application.GetRealHeight(15), Width = Application.GetRealWidth(150), Height = Application.GetRealHeight(20), TextColor = Color.TextColor, TextSize = TextSize.Text14, TextAlignment = TextAlignment.CenterLeft, Text = player.Name, }; PlayRow.AddChidren(PlayNameBtn); //选中图标控件 Button selectedIconBtn = new Button { X = Application.GetRealWidth(303), Y = Application.GetRealHeight(11), Width = Application.GetMinRealAverage(28), Height = Application.GetMinRealAverage(28), UnSelectedImagePath = "MusicIcon/noSelectedIcon.png", SelectedImagePath = "MusicIcon/selectedIcon.png", }; PlayRow.AddChidren(selectedIconBtn); ///加大几点范围 Button clickBtn = new Button { Height = Application.GetRealHeight(50), }; PlayRow.AddChidren(clickBtn); clickBtn.MouseUpEventHandler += (sender, e) => { clickBtn.IsSelected = !clickBtn.IsSelected; selectedIconBtn.IsSelected = clickBtn.IsSelected; var musicPlayer = playList.Find((c) => c.UniqueDeviceName == player.UniqueDeviceName); if (selectedIconBtn.IsSelected) { if (musicPlayer == null) { playList.Add(player); } } else { if (musicPlayer != null) { playList.Remove(player); } } }; //线 Button lineBtn = new Button { Y = PlayRow.Height - 1, X = Application.GetRealWidth(20), Width = Application.GetRealWidth(304), Height = 1, BackgroundColor = Color.LineColor, }; PlayRow.AddChidren(lineBtn); } confirmBtn.MouseUpEventHandler += (sender, e) => { if (playList.Count <= 1) { new PublicAssmebly().TipMsgAutoClose("至少选中两个以上播放器", false); return; } PlayerView(dialog, playList); }; } /// /// 选中主播放器的界面 /// /// void PlayerView(Dialog dialogF ,List musicList) { //主控件 Dialog dialog = new Dialog() { //BackgroundColor = Color.PopupBackgroundColor, }; dialog.Show(); //父控件 FrameLayout frame = new FrameLayout { }; dialog.AddChidren(frame); frame.MouseUpEventHandler += (sen, e) => { dialog.Close(); }; //白色快父控件 FrameLayout dialogFra = new FrameLayout() { X = Application.GetRealWidth(16), Y = Application.GetRealHeight(397), Width = Application.GetRealWidth(344), Height = Application.GetRealHeight(250), BackgroundColor = Color.WhiteColor, Radius = (uint)Application.GetRealHeight(12), }; frame.AddChidren(dialogFra); //显示头部信息父控件 FrameLayout topFra = new FrameLayout() { Width = Application.GetRealWidth(344), Height = Application.GetRealHeight(50), }; dialogFra.AddChidren(topFra); //取消控件 Button cancelnBtn = new Button { X = Application.GetRealWidth(20), Y = Application.GetRealHeight(15), Width = Application.GetRealWidth(60), Height = Application.GetRealHeight(20), TextID = StringId.cancelMusic, TextAlignment = TextAlignment.CenterLeft, TextColor = Color.MusicNoTxetColor, TextSize = TextSize.Text14, }; topFra.AddChidren(cancelnBtn); cancelnBtn.MouseUpEventHandler += (sen, e) => { dialog.Close(); }; //标题控件 Button txetBtn = new Button { X = cancelnBtn.Right + Application.GetRealWidth(20), Y = Application.GetRealHeight(14), Width = Application.GetRealWidth(152), Height = Application.GetRealHeight(22), TextColor = Color.TextColor, TextSize = TextSize.Text16, TextAlignment = TextAlignment.Center, TextID = StringId.readyPlay, IsBold = true, }; topFra.AddChidren(txetBtn); //确认控件 Button confirmBtn = new Button { X = Application.GetRealWidth(344 - 60 - 20), Y = Application.GetRealHeight(15), Width = Application.GetRealWidth(60), Height = Application.GetRealHeight(20), TextID = StringId.confirmMusic, TextAlignment = TextAlignment.CenterRight, TextColor = Color.SelectedColor, TextSize = TextSize.Text14, }; topFra.AddChidren(confirmBtn); confirmBtn.MouseUpEventHandler += (sender, e) => { }; VerticalScrolViewLayout verticalScrolViewLayout = new VerticalScrolViewLayout { Y = Application.GetRealHeight(50), Height = dialogFra.Height - Application.GetRealHeight(50), Width = Application.GetRealWidth(344), }; dialogFra.AddChidren(verticalScrolViewLayout); //记录选中状态 Button selectedBtn = new Button() { Tag="No"}; for (int i = 0; i < musicList.Count; i++) { var player = musicList[i]; RowLayout addFlieRow = new RowLayout { Height = Application.GetRealHeight(50), LineColor = Color.WhiteColor, }; verticalScrolViewLayout.AddChidren(addFlieRow); //播放器名称控件 Button PlayNameBtn = new Button { X = Application.GetRealWidth(20), Y = Application.GetRealHeight(15), Width = Application.GetRealWidth(150), Height = Application.GetRealHeight(20), TextColor = Color.TextColor, TextSize = TextSize.Text14, TextAlignment = TextAlignment.CenterLeft, Text = player.Name, }; addFlieRow.AddChidren(PlayNameBtn); //选中图标控件 Button selectedIconBtn = new Button { X = Application.GetRealWidth(303), Y = Application.GetRealHeight(11), Width = Application.GetMinRealAverage(28), Height = Application.GetMinRealAverage(28), UnSelectedImagePath = "MusicIcon/noSelectedIcon.png", SelectedImagePath = "MusicIcon/selectedIcon.png", }; addFlieRow.AddChidren(selectedIconBtn); ///加大几点范围 Button clickBtn = new Button { Height = Application.GetRealHeight(50), }; addFlieRow.AddChidren(clickBtn); clickBtn.MouseUpEventHandler += (sender, e) => { selectedBtn.IsSelected = false; selectedBtn.Tag = "Yes"; selectedBtn = selectedIconBtn; selectedBtn.IsSelected = true; }; //线 Button lineBtn = new Button { Y = addFlieRow.Height - 1, X = Application.GetRealWidth(20), Width = Application.GetRealWidth(304), Height = 1, BackgroundColor = Color.LineColor, }; addFlieRow.AddChidren(lineBtn); } confirmBtn.MouseUpEventHandler += (sender, e) => { if (selectedBtn.Tag.ToString() == "No") { new PublicAssmebly().TipMsgAutoClose("还没选中播放器", false); return; } dialogF.Close(); dialog.Close(); }; } } }