PlaylistDetailViewController.cs 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. using SongBrowserPlugin.DataAccess;
  2. using System;
  3. using System.Collections.Generic;
  4. using System.Linq;
  5. using System.Text;
  6. using System.Threading.Tasks;
  7. using TMPro;
  8. using UnityEngine;
  9. using UnityEngine.UI;
  10. using VRUI;
  11. namespace SongBrowserPlugin.UI
  12. {
  13. class PlaylistDetailViewController : VRUIViewController
  14. {
  15. private Playlist _selectedPlaylist;
  16. private TextMeshProUGUI _playlistTitleText;
  17. private TextMeshProUGUI _playlistAuthorText;
  18. private TextMeshProUGUI _playlistNumberOfSongs;
  19. private Button _selectButton;
  20. public Action<Playlist> didPressPlayPlaylist;
  21. public void Init(Playlist playlist)
  22. {
  23. _playlistTitleText = UIBuilder.CreateText(this.transform as RectTransform,
  24. playlist.playlistTitle,
  25. new Vector2(0, -20),
  26. new Vector2(60f, 10f)
  27. );
  28. _playlistTitleText.alignment = TextAlignmentOptions.Center;
  29. _playlistAuthorText = UIBuilder.CreateText(this.transform as RectTransform,
  30. playlist.playlistAuthor,
  31. new Vector2(0, -30),
  32. new Vector2(60f, 10f)
  33. );
  34. _playlistAuthorText.alignment = TextAlignmentOptions.Center;
  35. _playlistNumberOfSongs = UIBuilder.CreateText(this.transform as RectTransform,
  36. playlist.songs.Count.ToString(),
  37. new Vector2(0, -40),
  38. new Vector2(60f, 10f)
  39. );
  40. _playlistNumberOfSongs.alignment = TextAlignmentOptions.Center;
  41. Button buttonTemplate = Resources.FindObjectsOfTypeAll<Button>().FirstOrDefault(x => x.name == "PlayButton");
  42. _selectButton = UIBuilder.CreateButton(this.transform as RectTransform, buttonTemplate, "Select", 3, 0, 3.5f, 25, 6);
  43. _selectButton.onClick.AddListener(delegate ()
  44. {
  45. didPressPlayPlaylist.Invoke(_selectedPlaylist);
  46. });
  47. SetContent(playlist);
  48. }
  49. public virtual void SetContent(Playlist p)
  50. {
  51. _selectedPlaylist = p;
  52. _playlistTitleText.text = _selectedPlaylist.playlistTitle;
  53. _playlistAuthorText.text = _selectedPlaylist.playlistAuthor;
  54. _playlistNumberOfSongs.text = "Song Count: " + _selectedPlaylist.songs.Count.ToString();
  55. }
  56. }
  57. }