etk/box.go
2023-10-24 12:50:41 -07:00

64 lines
839 B
Go

package etk
import (
"image"
"sync"
"github.com/hajimehoshi/ebiten/v2"
)
type Box struct {
rect image.Rectangle
children []Widget
sync.Mutex
}
func NewBox() *Box {
return &Box{}
}
func (b *Box) Rect() image.Rectangle {
b.Lock()
defer b.Unlock()
return b.rect
}
func (b *Box) SetRect(r image.Rectangle) {
b.Lock()
defer b.Unlock()
b.rect = r
}
func (b *Box) SetFocus(focus bool) bool {
return false
}
func (b *Box) Focus() bool {
return false
}
func (b *Box) HandleKeyboardEvent(key ebiten.Key, r rune) (handled bool, err error) {
return false, nil
}
func (b *Box) Children() []Widget {
b.Lock()
defer b.Unlock()
return b.children
}
func (b *Box) AddChild(w ...Widget) {
b.Lock()
defer b.Unlock()
b.children = append(b.children, w...)
}
func (b *Box) Draw(screen *ebiten.Image) error {
return nil
}