music_lib_list_page.go 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143
  1. package MusicPlayer
  2. import (
  3. //"fmt"
  4. "github.com/cuu/gogame/event"
  5. "github.com/cuu/gogame/rect"
  6. "github.com/cuu/gogame/surface"
  7. "github.com/veandco/go-sdl2/ttf"
  8. "github.com/cuu/gogame/color"
  9. "github.com/clockworkpi/LauncherGoDev/sysgo/UI"
  10. )
  11. type MusicLibListPage struct {
  12. UI.Page
  13. ListFontObj *ttf.Font
  14. URLColor *color.Color
  15. TextColor *color.Color
  16. Labels map[string]UI.LabelInterface
  17. Icons map[string]UI.IconItemInterface
  18. IP string
  19. MyList []UI.ListItemInterface
  20. MyStack *MusicLibStack
  21. BGwidth int
  22. BGheight int //70
  23. Scroller *UI.ListScroller
  24. Scrolled int
  25. Parent *MusicPlayerPage
  26. }
  27. func NewMusicLibListPage() *MusicLibListPage {
  28. p := &MusicLibListPage{}
  29. p.PageIconMargin = 20
  30. p.SelectedIconTopOffset = 20
  31. p.EasingDur = 10
  32. p.Align = UI.ALIGN["SLeft"]
  33. p.FootMsg = [5]string{"Nav.", "", "Scan","Back","Add to Playlist"}
  34. p.URLColor = UI.MySkinManager.GiveColor("URL")
  35. p.TextColor = UI.MySkinManager.GiveColor("Text")
  36. p.ListFontObj = UI.MyLangManager.TrFont("notosanscjk15")
  37. p.Labels = make(map[string]UI.LabelInterface)
  38. p.Icons = make(map[string]UI.IconItemInterface)
  39. p.BGwidth = 56
  40. p.BGheight = 70
  41. return p
  42. }
  43. func (self *MusicLibListPage) OnLoadCb() {
  44. self.PosY = 0
  45. }
  46. func (self *MusicLibListPage) SetCoords() {
  47. }
  48. func (self *MusicLibListPage) Init() {
  49. if self.Screen == nil {
  50. panic("No Screen")
  51. }
  52. if self.Screen.CanvasHWND != nil && self.CanvasHWND == nil {
  53. self.HWND = self.Screen.CanvasHWND
  54. self.CanvasHWND = surface.Surface(self.Screen.Width, self.Screen.Height)
  55. }
  56. self.PosX = self.Index * self.Screen.Width
  57. self.Width = self.Screen.Width
  58. self.Height = self.Screen.Height
  59. ps := UI.NewInfoPageSelector()
  60. ps.Width = UI.Width - 12
  61. ps.PosX = 2
  62. ps.Parent = self
  63. self.Ps = ps
  64. self.PsIndex = 0
  65. bgpng := UI.NewIconItem()
  66. bgpng.ImgSurf = UI.MyIconPool.GetImgSurf("empty")
  67. bgpng.MyType = UI.ICON_TYPES["STAT"]
  68. bgpng.Parent = self
  69. bgpng.AddLabel("Please upload data over Wi-Fi", UI.Fonts["varela22"])
  70. bgpng.SetLabelColor(&color.Color{204, 204, 204, 255})
  71. bgpng.Adjust(0, 0, self.BGwidth, self.BGheight, 0)
  72. self.Icons["bg"] = bgpng
  73. icon_for_list := UI.NewMultiIconItem()
  74. icon_for_list.ImgSurf = UI.MyIconPool.GetImgSurf("sys")
  75. icon_for_list.MyType = UI.ICON_TYPES["STAT"]
  76. icon_for_list.Parent = self
  77. icon_for_list.Adjust(0, 0, 18, 18, 0)
  78. self.Icons["sys"] = icon_for_list
  79. self.Scroller = UI.NewListScroller()
  80. self.Scroller.Parent = self
  81. self.Scroller.PosX = self.Width - 10
  82. self.Scroller.PosY = 2
  83. self.Scroller.Init()
  84. }
  85. func (self *MusicLibListPage) KeyDown(ev *event.Event) {
  86. if ev.Data["Key"] == UI.CurKeys["Left"] || ev.Data["Key"] == UI.CurKeys["Menu"] {
  87. self.ReturnToUpLevelPage()
  88. self.Screen.Draw()
  89. self.Screen.SwapAndShow()
  90. }
  91. return
  92. }
  93. func (self *MusicLibListPage) Draw() {
  94. self.ClearCanvas()
  95. if len(self.MyList) == 0 {
  96. self.Icons["bg"].NewCoord(self.Width/2, self.Height/2)
  97. self.Icons["bg"].Draw()
  98. }
  99. if self.HWND != nil {
  100. surface.Fill(self.HWND, UI.MySkinManager.GiveColor("White"))
  101. rect_ := rect.Rect(self.PosX, self.PosY, self.Width, self.Height)
  102. surface.Blit(self.HWND, self.CanvasHWND, &rect_, nil)
  103. }
  104. }