remove demo game
This commit is contained in:
44
ui.panel.go
Normal file
44
ui.panel.go
Normal file
@@ -0,0 +1,44 @@
|
||||
package pncdsl
|
||||
|
||||
import (
|
||||
"image/color"
|
||||
|
||||
"github.com/hajimehoshi/ebiten/v2"
|
||||
"github.com/hajimehoshi/ebiten/v2/vector"
|
||||
)
|
||||
|
||||
// Panel is a generic background widget — a colored rectangle. Useful as a
|
||||
// backdrop for grouping other widgets or as a chat/notebook frame.
|
||||
type Panel struct {
|
||||
Name string
|
||||
Bounds Rectangle
|
||||
// BG, if nil, falls back to the active Theme.PanelBG.
|
||||
BG color.Color
|
||||
// Border thickness in pixels (0 = no border).
|
||||
Border int
|
||||
// BorderColor, if nil, falls back to Theme.DialogBorder.
|
||||
BorderColor color.Color
|
||||
}
|
||||
|
||||
func (p *Panel) GetName() string { return p.Name }
|
||||
func (p *Panel) Tick(ctx *UICtx) {}
|
||||
|
||||
func (p *Panel) Draw(dst *ebiten.Image, ctx *UICtx) {
|
||||
bg := p.BG
|
||||
if bg == nil {
|
||||
bg = ctx.Game.Theme().PanelBG
|
||||
}
|
||||
vector.DrawFilledRect(dst,
|
||||
float32(p.Bounds.X), float32(p.Bounds.Y),
|
||||
float32(p.Bounds.W), float32(p.Bounds.H), bg, false)
|
||||
if p.Border > 0 {
|
||||
bc := p.BorderColor
|
||||
if bc == nil {
|
||||
bc = ctx.Game.Theme().DialogBorder
|
||||
}
|
||||
vector.StrokeRect(dst,
|
||||
float32(p.Bounds.X), float32(p.Bounds.Y),
|
||||
float32(p.Bounds.W), float32(p.Bounds.H),
|
||||
float32(p.Border), bc, false)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user