LauncherGoDev/sysgo/UI/above_all_patch.go
2021-10-11 13:55:54 +08:00

74 lines
1.6 KiB
Go

package UI
import (
"github.com/veandco/go-sdl2/sdl"
"github.com/veandco/go-sdl2/ttf"
"github.com/cuu/gogame/color"
"github.com/cuu/gogame/draw"
"github.com/cuu/gogame/rect"
)
type AboveAllPatch struct {
Widget
Text string
FontObj *ttf.Font
Color *color.Color
ValColor *color.Color
CanvasHWND *sdl.Surface
Icons map[string]IconItemInterface
Value int
}
func NewAboveAllPatch() *AboveAllPatch {
p := &AboveAllPatch{}
p.PosX = Width / 2
p.PosY = Height / 2
p.Width = 50
p.Height = 120
p.FontObj = Fonts["veramono20"]
p.Color = MySkinManager.GiveColor("Text")
p.ValColor = MySkinManager.GiveColor("URL")
p.Icons = make(map[string]IconItemInterface)
p.Value = 0
return p
}
func (self *AboveAllPatch) SetCanvasHWND(_canvashwnd *sdl.Surface) {
self.CanvasHWND = _canvashwnd
}
func (self *AboveAllPatch) Draw() {
start_rect := draw.MidRect(self.PosX, self.PosY, self.Width, self.Height, Width, Height)
draw.AARoundRect(self.CanvasHWND, start_rect, self.Color, 3, 0, self.Color)
if self.Value > 10 {
vol_height := int(float64(self.Height) * (float64(self.Value) / 100.0))
dheight := self.Height - vol_height
vol_rect := rect.Rect(self.PosX-self.Width/2, self.PosY-self.Height/2+dheight, self.Width, vol_height)
draw.AARoundRect(self.CanvasHWND, &vol_rect, self.ValColor, 3, 0, self.ValColor)
} else {
vol_height := 10
dheight := self.Height - vol_height
vol_rect := rect.Rect(self.PosX-self.Width/2, self.PosY-self.Height/2+dheight, self.Width, vol_height)
draw.AARoundRect(self.CanvasHWND, &vol_rect, self.ValColor, 3, 0, self.ValColor)
}
}