]> git.saurik.com Git - wxWidgets.git/blame - wxPython/demo/ProgressDialog.py
workaround sizing bug on Mac
[wxWidgets.git] / wxPython / demo / ProgressDialog.py
CommitLineData
8fa876ca
RD
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
11import wx
bb0054cd
RD
12
13#---------------------------------------------------------------------------
14
34a544a6
RD
15class 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):
83c8bcfd 25 max = 80
34a544a6
RD
26
27 dlg = wx.ProgressDialog("Progress dialog example",
28 "An informative message",
29 maximum = max,
30 parent=self,
83c8bcfd
RD
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 )
bb0054cd 37
34a544a6
RD
38 keepGoing = True
39 count = 0
8fa876ca 40
34a544a6 41 while keepGoing and count < max:
83c8bcfd
RD
42 count += 1
43 wx.MilliSleep(250)
bb0054cd 44
83c8bcfd 45 if count >= max / 2:
8ec09aac 46 (keepGoing, skip) = dlg.Update(count, "Half-time!")
34a544a6 47 else:
8ec09aac 48 (keepGoing, skip) = dlg.Update(count)
bb0054cd 49
8ec09aac 50
34a544a6 51 dlg.Destroy()
bb0054cd 52
34a544a6
RD
53#---------------------------------------------------------------------------
54
55
56def runTest(frame, nb, log):
57 win = TestPanel(nb, log)
58 return win
bb0054cd
RD
59
60#---------------------------------------------------------------------------
61
62
1fded56b 63overview = """\
b4f1aaad 64<html><body>
8fa876ca
RD
65This class represents a dialog that shows a short message and a progress bar.
66Optionally, it can display an ABORT button
b4f1aaad 67<p>
8fa876ca
RD
68This dialog indicates the progress of some event that takes a while to accomplish,
69usually, such as file copy progress, download progress, and so on. The display
70is <b>completely</b> under control of the program; you must update the dialog from
71within the program creating it.
b4f1aaad 72<p>
8fa876ca
RD
73When the dialog closes, you must check to see if the user aborted the process or
74not, and act accordingly -- that is, if the PD_CAN_ABORT style flag is set.
75If not then you may progress blissfully onward.
b4f1aaad 76</body></html>
8fa876ca 77"""
bb0054cd 78
1fded56b
RD
79if __name__ == '__main__':
80 import sys,os
81 import run
8eca4fef 82 run.main(['', os.path.basename(sys.argv[0])] + sys.argv[1:])