Changes to ProgressBar:

- Don't crash if max=0
- set() now has an optional max parameter, to set the maximum value.
This commit is contained in:
Jack Jansen 1999-11-05 15:53:10 +00:00
parent fd6aabbb35
commit 58fa818c08
1 changed files with 10 additions and 4 deletions

View File

@ -254,8 +254,12 @@ class ProgressBar:
tp, text_h, rect = self.d.GetDialogItem(2) tp, text_h, rect = self.d.GetDialogItem(2)
SetDialogItemText(text_h, self._label) SetDialogItemText(text_h, self._label)
def _update(self, value): def _update(self, value):
maxval = self.maxval
if maxval == 0:
# XXXX Quick fix. Should probably display an unknown duration
value = 0
maxval = 1
self.d.BringToFront() self.d.BringToFront()
tp, h, bar_rect = self.d.GetDialogItem(3) tp, h, bar_rect = self.d.GetDialogItem(3)
Qd.SetPort(self.d) Qd.SetPort(self.d)
@ -267,11 +271,11 @@ class ProgressBar:
Qd.ForeColor(QuickDraw.blackColor) Qd.ForeColor(QuickDraw.blackColor)
Qd.BackColor(QuickDraw.blackColor) Qd.BackColor(QuickDraw.blackColor)
Qd.PaintRect((l, t, int(l + (r-l)*value/self.maxval), b)) # Draw bar Qd.PaintRect((l, t, int(l + (r-l)*value/maxval), b)) # Draw bar
Qd.ForeColor(QuickDraw.whiteColor) Qd.ForeColor(QuickDraw.whiteColor)
Qd.BackColor(QuickDraw.whiteColor) Qd.BackColor(QuickDraw.whiteColor)
Qd.PaintRect((int(l + (r-l)*value/self.maxval), t, r, b)) # Clear rest Qd.PaintRect((int(l + (r-l)*value/maxval), t, r, b)) # Clear rest
# Restore settings # Restore settings
Qd.ForeColor(QuickDraw.blackColor) Qd.ForeColor(QuickDraw.blackColor)
@ -294,8 +298,10 @@ class ProgressBar:
MacOS.HandleEvent(ev) MacOS.HandleEvent(ev)
def set(self, value): def set(self, value, max=None):
"""set(value) - Set progress bar position""" """set(value) - Set progress bar position"""
if max != None:
self.maxval = max
if value < 0: value = 0 if value < 0: value = 0
if value > self.maxval: value = self.maxval if value > self.maxval: value = self.maxval
self.curval = value self.curval = value