]> granicus.if.org Git - python/commitdiff
Changes to ProgressBar:
authorJack Jansen <jack.jansen@cwi.nl>
Fri, 5 Nov 1999 15:53:10 +0000 (15:53 +0000)
committerJack Jansen <jack.jansen@cwi.nl>
Fri, 5 Nov 1999 15:53:10 +0000 (15:53 +0000)
- Don't crash if max=0
- set() now has an optional max parameter, to set the maximum value.

Mac/Lib/EasyDialogs.py

index db855f58d6beab4236b9a0428d50bb5cd479f0e4..13bb0ec322197a09ef3bd58307ae89c2385f886d 100644 (file)
@@ -253,9 +253,13 @@ class ProgressBar:
                        self._label = lf2cr(newstr[0])
                tp, text_h, rect = self.d.GetDialogItem(2)
                SetDialogItemText(text_h, self._label)          
-
                                
        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()
                tp, h, bar_rect = self.d.GetDialogItem(3)
                Qd.SetPort(self.d)
@@ -267,11 +271,11 @@ class ProgressBar:
 
                Qd.ForeColor(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.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
                Qd.ForeColor(QuickDraw.blackColor)
@@ -294,8 +298,10 @@ class ProgressBar:
                                        MacOS.HandleEvent(ev) 
                        
                        
-       def set(self, value):
+       def set(self, value, max=None):
                """set(value) - Set progress bar position"""
+               if max != None:
+                       self.maxval = max
                if value < 0: value = 0
                if value > self.maxval: value = self.maxval
                self.curval = value