123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- # -*- coding: utf-8 -*-
- import pygame
- from util_funcs import midRect
- from libs.roundrects import aa_round_rect
- from skin_manager import MySkinManager
- class ListScroller(object):
- _PosX = 0
- _PosY = 0
- _Width = 7
- _Height = 0
- _MinHeight = 6 ## tested
- _Parent = None
- _Color = MySkinManager.GiveColor('Front')
-
- _StartX = 0
- _StartY = 0
- _EndX = 0
- _EndY = 0
- _Value = 0
- _CanvasHWND = None
-
- def __init__(self):
- pass
- def Init(self):
- self.SetCanvasHWND(self._Parent._CanvasHWND)
- def SetCanvasHWND(self,canvas):
- self._CanvasHWND = canvas
-
- def AnimateDraw(self,x2,y2):
- pass
- def UpdateSize(self,bigheight,dirtyheight):
- bodyheight = float(self._Parent._Height) / float(bigheight)
- if bodyheight > 1:
- bodyheight = 1 ## 100%
- margin = 4
- self._Height = bodyheight * self._Parent._Height - margin ## Draw body
-
- 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 = self._Parent._Height - margin/2 - self._Height/2
- process = float(dirtyheight) / float(bigheight)
- value = process* (self._EndY - self._StartY)
- self._Value = int(value)
-
- def Draw(self):
-
- start_rect = midRect(self._PosX+self._StartX,self._StartY+self._Value,self._Width,self._Height,self._Parent._Width,self._Parent._Height)
- aa_round_rect(self._CanvasHWND,start_rect, self._Color,3,0, self._Color)
|