diff options
author | Sin Nombre <sin@ubuntu.(none)> | 2010-05-28 20:45:29 (GMT) |
---|---|---|
committer | Sin Nombre <sin@ubuntu.(none)> | 2010-05-28 20:45:29 (GMT) |
commit | 9e93d1b9802385900b6f833f81f84c0ac50f91ef (patch) | |
tree | f2c16599bde31b31e5d44bae4a87e7e4093f3cab /pgu/gui/misc.py | |
parent | ac8cbb6691ba3de1c7c42f4362edbe11270f4506 (diff) |
Diffstat (limited to 'pgu/gui/misc.py')
-rw-r--r-- | pgu/gui/misc.py | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/pgu/gui/misc.py b/pgu/gui/misc.py new file mode 100644 index 0000000..ba8ab92 --- /dev/null +++ b/pgu/gui/misc.py @@ -0,0 +1,43 @@ +from const import * +import widget +import app + +class ProgressBar(widget.Widget): + """A progress bar. + + <pre>ProgressBar(value,min,max)</pre> + + <dl> + <dt>value<dd>starting value + <dt>min<dd>minimum value rendered on the screen (usually 0) + <dt>max<dd>maximum value + </dl> + + <strong>Example</strong> + <code> + w = gui.ProgressBar(0,0,100) + w.value = 25 + </code> + """ + + def __init__(self,value,min,max,**params): + params.setdefault('cls','progressbar') + widget.Widget.__init__(self,**params) + self.min,self.max,self.value = min,max,value + + def paint(self,s): + r = pygame.rect.Rect(0,0,self.rect.w,self.rect.h) + r.w = r.w*(self.value-self.min)/(self.max-self.min) + self.bar = r + app.App.app.theme.render(s,self.style.bar,r) + + def __setattr__(self,k,v): + if k == 'value': + v = int(v) + v = max(v,self.min) + v = min(v,self.max) + _v = self.__dict__.get(k,NOATTR) + self.__dict__[k]=v + if k == 'value' and _v != NOATTR and _v != v: + self.send(CHANGE) + self.repaint()
\ No newline at end of file |