| 1 | # 11/21/2003 - Jeff Grimmett (grimmtooth@softhome.net) |
| 2 | # |
| 3 | # o Updated for wx namespace |
| 4 | # |
| 5 | # 11/30/2003 - Jeff Grimmett (grimmtooth@softhome.net) |
| 6 | # |
| 7 | # o wx.ProgressDialog appears to be broken. No abort button |
| 8 | # and it's not possible to dismiss it otherwise. |
| 9 | # |
| 10 | |
| 11 | import wx |
| 12 | |
| 13 | #--------------------------------------------------------------------------- |
| 14 | |
| 15 | class TestPanel(wx.Panel): |
| 16 | def __init__(self, parent, log): |
| 17 | self.log = log |
| 18 | wx.Panel.__init__(self, parent, -1) |
| 19 | |
| 20 | b = wx.Button(self, -1, "Create and Show a ProgressDialog", (50,50)) |
| 21 | self.Bind(wx.EVT_BUTTON, self.OnButton, b) |
| 22 | |
| 23 | |
| 24 | def OnButton(self, evt): |
| 25 | max = 80 |
| 26 | |
| 27 | dlg = wx.ProgressDialog("Progress dialog example", |
| 28 | "An informative message", |
| 29 | maximum = max, |
| 30 | parent=self, |
| 31 | style = wx.PD_CAN_ABORT |
| 32 | | wx.PD_APP_MODAL |
| 33 | | wx.PD_ELAPSED_TIME |
| 34 | #| wx.PD_ESTIMATED_TIME |
| 35 | | wx.PD_REMAINING_TIME |
| 36 | ) |
| 37 | |
| 38 | keepGoing = True |
| 39 | count = 0 |
| 40 | |
| 41 | while keepGoing and count < max: |
| 42 | count += 1 |
| 43 | wx.MilliSleep(250) |
| 44 | |
| 45 | if count >= max / 2: |
| 46 | keepGoing = dlg.Update(count, "Half-time!") |
| 47 | else: |
| 48 | keepGoing = dlg.Update(count) |
| 49 | |
| 50 | dlg.Destroy() |
| 51 | |
| 52 | #--------------------------------------------------------------------------- |
| 53 | |
| 54 | |
| 55 | def runTest(frame, nb, log): |
| 56 | win = TestPanel(nb, log) |
| 57 | return win |
| 58 | |
| 59 | #--------------------------------------------------------------------------- |
| 60 | |
| 61 | |
| 62 | overview = """\ |
| 63 | <html><body> |
| 64 | This class represents a dialog that shows a short message and a progress bar. |
| 65 | Optionally, it can display an ABORT button |
| 66 | <p> |
| 67 | This dialog indicates the progress of some event that takes a while to accomplish, |
| 68 | usually, such as file copy progress, download progress, and so on. The display |
| 69 | is <b>completely</b> under control of the program; you must update the dialog from |
| 70 | within the program creating it. |
| 71 | <p> |
| 72 | When the dialog closes, you must check to see if the user aborted the process or |
| 73 | not, and act accordingly -- that is, if the PD_CAN_ABORT style flag is set. |
| 74 | If not then you may progress blissfully onward. |
| 75 | </body></html> |
| 76 | """ |
| 77 | |
| 78 | if __name__ == '__main__': |
| 79 | import sys,os |
| 80 | import run |
| 81 | run.main(['', os.path.basename(sys.argv[0])] + sys.argv[1:]) |