12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 |
- package UI
- import (
- "github.com/veandco/go-sdl2/ttf"
-
- "github.com/cuu/gogame/draw"
- "github.com/cuu/gogame/color"
-
- )
- type ListItemInterface interface {
- Init(text string)
-
- Size() (int,int)
- NewSize(w,h int)
- Coord() (int,int)
- NewCoord(x,y int)
- GetLinkObj() PluginInterface
- Draw()
-
- }
- type ListItem struct {
- Widget
- Labels map[string]LabelInterface
- Icons map[string]IconItemInterface
- Fonts map[string]*ttf.Font
- LinkObj PluginInterface
-
- Parent PageInterface
- }
- func NewListItem() *ListItem {
- i := &ListItem{}
- i.Labels = make(map[string]LabelInterface)
- i.Icons = make( map[string]IconItemInterface)
- i.Fonts = make(map[string]*ttf.Font)
- i.Height = 30
- i.Width = 0
-
- return i
- }
- func (self *ListItem) Init(text string) {
- l := NewLabel()
- l.PosX = 16
- l.SetCanvasHWND(self.Parent.GetCanvasHWND())
- l.Init(text,self.Fonts["normal"],nil)
- self.Labels["Text"] = l
-
- }
- func (self *ListItem) Coord() (int,int) {
- return self.PosX,self.PosY
- }
- func (self *ListItem) Size() (int,int) {
- return self.Width,self.Height
- }
- func (self *ListItem) GetLinkObj() PluginInterface {
- return self.LinkObj
- }
- func (self *ListItem) Draw() {
- x_,_ := self.Labels["Text"].Coord()
- _,h_ := self.Labels["Text"].Size()
-
- self.Labels["Text"].NewCoord(x_, self.PosY+(self.Height - h_)/2)
- self.Labels["Text"].Draw()
-
- draw.Line(self.Parent.GetCanvasHWND(),&color.Color{169,169,169,255},
- self.PosX, (self.PosY+self.Height-1),
- (self.PosX+self.Width),(self.PosY+self.Height-1),1)
-
- }
|