| 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 = 20 |
| 26 | |
| 27 | dlg = wx.ProgressDialog("Progress dialog example", |
| 28 | "An informative message", |
| 29 | maximum = max, |
| 30 | parent=self, |
| 31 | style = wx.PD_CAN_ABORT | wx.PD_APP_MODAL) |
| 32 | |
| 33 | keepGoing = True |
| 34 | count = 0 |
| 35 | |
| 36 | while keepGoing and count < max: |
| 37 | count = count + 1 |
| 38 | #print count |
| 39 | wx.Sleep(1) |
| 40 | |
| 41 | if count == max / 2: |
| 42 | keepGoing = dlg.Update(count, "Half-time!") |
| 43 | else: |
| 44 | keepGoing = dlg.Update(count) |
| 45 | |
| 46 | dlg.Destroy() |
| 47 | |
| 48 | #--------------------------------------------------------------------------- |
| 49 | |
| 50 | |
| 51 | def runTest(frame, nb, log): |
| 52 | win = TestPanel(nb, log) |
| 53 | return win |
| 54 | |
| 55 | #--------------------------------------------------------------------------- |
| 56 | |
| 57 | |
| 58 | overview = """\ |
| 59 | <html><body> |
| 60 | This class represents a dialog that shows a short message and a progress bar. |
| 61 | Optionally, it can display an ABORT button |
| 62 | <p> |
| 63 | This dialog indicates the progress of some event that takes a while to accomplish, |
| 64 | usually, such as file copy progress, download progress, and so on. The display |
| 65 | is <b>completely</b> under control of the program; you must update the dialog from |
| 66 | within the program creating it. |
| 67 | <p> |
| 68 | When the dialog closes, you must check to see if the user aborted the process or |
| 69 | not, and act accordingly -- that is, if the PD_CAN_ABORT style flag is set. |
| 70 | If not then you may progress blissfully onward. |
| 71 | </body></html> |
| 72 | """ |
| 73 | |
| 74 | if __name__ == '__main__': |
| 75 | import sys,os |
| 76 | import run |
| 77 | run.main(['', os.path.basename(sys.argv[0])] + sys.argv[1:]) |