]>
Commit | Line | Data |
---|---|---|
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:]) |