1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192 |
- package UI
- import (
- "fmt"
-
- "github.com/veandco/go-sdl2/sdl"
- // "github.com/veandco/go-sdl2/ttf"
-
- // "github.com/cuu/gogame/surface"
- // "github.com/cuu/gogame/rect"
- "github.com/cuu/gogame/color"
- // "github.com/cuu/gogame/font"
- "github.com/cuu/gogame/draw"
- )
- type ListScroller struct{
- Widget
- MinHeight int
- Parent PageInterface
- Color *color.Color
-
- StartX int
- StartY int
- EndX int
- EndY int
- Value int
- CanvasHWND *sdl.Surface
- }
- func NewListScroller() *ListScroller {
- l := &ListScroller{}
- l.Width = 7
- l.Color = &color.Color{131,199,219,255} // SkinManager().GiveColor('Front')
- return l
- }
- func (self *ListScroller) Init() {
- //just set the CanvasHWND
- cav_ := self.Parent.GetCanvasHWND()
- self.SetCanvasHWND(cav_)
- }
- func (self *ListScroller) SetCanvasHWND( canvas *sdl.Surface) {
- self.CanvasHWND = canvas
- }
- func (self *ListScroller) AnimateDraw(x2,y2 int) {
-
- }
- func (self *ListScroller) UpdateSize(bigheight, dirtyheight int) {
- _,h_ := self.Parent.Size()
-
- bodyheight := float64(h_)/float64(bigheight)
- if bodyheight > 1.0 {
- bodyheight = 1.0
- }
- margin := 4
- self.Height = int( bodyheight * float64(h_) - float64(margin) )
- if self.Height < self.MinHeight {
- self.Height = self.MinHeight
- }
- self.StartX = self.Width/2
- self.StartY = margin/2 + self.Height/2
- self.EndX = self.Width/2
- self.EndY = h_ - margin/2 - self.Height/2
- process := float64(dirtyheight) / float64(bigheight)
- value := process * float64(self.EndY - self.StartY)
- self.Value = int(value)
-
- }
- func (self *ListScroller) Draw() {
- w_,h_ := self.Parent.Size()
- start_rect := draw.MidRect(self.PosX+self.StartX,self.StartY+self.Value,self.Width,self.Height,w_,h_)
- if self.Width < 1 {
- fmt.Println("ListScroller width error")
- }else {
- draw.AARoundRect(self.CanvasHWND,start_rect,self.Color,3,0,self.Color)
- }
- }
|