package UI import ( "fmt" "github.com/cuu/gogame/surface" "github.com/cuu/gogame/image" "github.com/cuu/gogame/draw" "github.com/cuu/gogame/rect" ) type MultiIconItem struct { IconItem IconWidth int IconHeight int } func NewMultiIconItem() *MultiIconItem { m := &MultiIconItem{} m.IconIndex = 0 m.IconWidth = 18 m.IconHeight = 18 return m } func (self * MultiIconItem) CreateImgSurf() { if self.ImgSurf == nil && self.ImageName != "" { self.ImgSurf = image.Load(self.ImageName) } } func (self *MultiIconItem) DrawTopLeft() { if self.Parent == nil { fmt.Println("Error: MultiIconItem Draw Parent nil") return } parent_x,parent_y := self.Parent.Coord() if self.Label != nil { lab_w,lab_h:= self.Label.Size() if self.Align == ALIGN["VCenter"] { self.Label.NewCoord( self.PosX - lab_w/2 + parent_x, self.PosY + self.Height/2+6 + parent_y) }else if self.Align == ALIGN["HLeft"] { self.Label.NewCoord( self.PosX + self.Width/2+3 + parent_x, self.PosY - lab_h/2 + parent_y ) } self.Label.Draw() } if self.ImgSurf != nil { portion := rect.Rect(0,self.IconIndex*self.IconHeight,self.IconWidth,self.IconHeight) rect_ := rect.Rect( self.PosX+parent_x,self.PosY+parent_y, self.Width,self.Height ) // DIFF surface.Blit(self.Parent.GetCanvasHWND(),self.ImgSurf,&rect_,&portion) } } func (self *MultiIconItem) Draw() { if self.Parent == nil { fmt.Println("Error: MultiIconItem Draw Parent nil") return } parent_x,parent_y := self.Parent.Coord() if self.Label != nil { // lab_x,lab_y := self.Label.Coord() lab_w,lab_h:= self.Label.Size() if self.Align == ALIGN["VCenter"] { self.Label.NewCoord( self.PosX - lab_w/2 + parent_x, self.PosY + self.Height/2+6 + parent_y) }else if self.Align == ALIGN["HLeft"] { self.Label.NewCoord( self.PosX + self.Width/2+3 + parent_x, self.PosY - lab_h/2 + parent_y ) } self.Label.Draw() } if self.ImgSurf != nil { portion := rect.Rect(0,self.IconIndex*self.IconHeight,self.IconWidth,self.IconHeight) surface.Blit(self.Parent.GetCanvasHWND(), self.ImgSurf,draw.MidRect(self.PosX + parent_x, self.PosY + parent_y, self.Width,self.Height, Width, Height),&portion) } }