1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 |
- package UI
- import (
- "fmt"
- "github.com/cuu/gogame/draw"
- "github.com/cuu/gogame/image"
- "github.com/cuu/gogame/rect"
- "github.com/cuu/gogame/surface"
- )
- 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)
- }
- }
|