123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105 |
- package MusicPlayer
- import (
- //"fmt"
- //"io/ioutil"
- //"path/filepath"
- "github.com/veandco/go-sdl2/ttf"
- //"runtime"
- //"strconv"
- //"strings"
- //"github.com/mitchellh/go-homedir"
- //"github.com/clockworkpi/LauncherGoDev/sysgo"
- "github.com/clockworkpi/LauncherGoDev/sysgo/UI"
- //"github.com/cuu/gogame/color"
- "github.com/cuu/gogame/draw"
- //"github.com/cuu/gogame/event"
- //"github.com/cuu/gogame/rect"
- //"github.com/cuu/gogame/surface"
- //"github.com/cuu/gogame/time"
- )
- type MusicPlayPageListItem struct {
- UI.InfoPageListItem
- Active bool
- Value string
- MyType int
- Path string
- State string
- PlayingProcess int
- }
- func NewMusicPlayPageListItem() *MusicPlayPageListItem {
- p := &MusicPlayPageListItem{}
- p.Height = UI.DefaultInfoPageListItemHeight
- p.ReadOnly = false
- p.Labels = make(map[string]UI.LabelInterface)
- p.Icons = make(map[string]UI.IconItemInterface)
- p.Fonts = make(map[string]*ttf.Font)
- p.MyType = UI.ICON_TYPES["EXE"]
- return p
- }
- func (self *MusicPlayPageListItem) Init(text string) {
- l := UI.NewLabel()
- l.PosX = 10
- l.SetCanvasHWND(self.Parent.GetCanvasHWND())
- l.Init(text, self.Fonts["normal"], nil)
- self.Labels["Text"] = l
- }
- func (self *MusicPlayPageListItem) Draw() {
- x, _ := self.Labels["Text"].Coord()
- _, h := self.Labels["Text"].Size()
- self.Labels["Text"].NewCoord(x, self.PosY+(self.Height-h)/2)
-
- if self.MyType == UI.ICON_TYPES["DIR"] && self.Path != "[..]" {
- sys_icon := self.Parent.(*MusicPlayerPage).Icons["sys"]
- _,h := sys_icon.Size()
- sys_icon.SetIconIndex(0)
- sys_icon.NewCoord(self.PosX+12,self.PosY + ( self.Height - h)/2 + h/2)
- sys_icon.Draw()
- }
- if self.MyType == UI.ICON_TYPES["FILE"] {
- sys_icon := self.Parent.(*MusicPlayerPage).Icons["sys"]
- _,h := sys_icon.Size()
- sys_icon.SetIconIndex(1)
- sys_icon.NewCoord(self.PosX+12,self.PosY + ( self.Height - h)/2 + h /2)
- sys_icon.Draw()
- }
- self.Labels["Text"].NewCoord(x, self.PosY+(self.Height-h)/2)
-
- self.Labels["Text"].SetBold(self.Active)
- self.Labels["Text"].Draw()
-
- /*
- if _, ok := self.Labels["Small"]; ok {
- x, _ = self.Labels["Small"].Coord()
- w, h = self.Labels["Small"].Size()
- self.Labels["Small"].NewCoord(self.Width-w-10, self.PosY+(self.Height-h)/2)
- self.Labels["Small"].Draw()
- }
- */
- canvas_ := self.Parent.GetCanvasHWND()
- draw.Line(canvas_, UI.MySkinManager.GiveColor("Line"),
- self.PosX, self.PosY+self.Height-1,
- self.PosX+self.Width, self.PosY+self.Height-1, 1)
- if self.PlayingProcess > 0 {
- seek_posx := int(self.Width * self.PlayingProcess/100.0)
- draw.Line(canvas_, UI.MySkinManager.GiveColor("Active"),
- self.PosX, self.PosY+self.Height-2,
- self.PosX+seek_posx, self.PosY+self.Height-2, 2)
- }
- }
|