2003-12-08 20:23:28 -05:00
|
|
|
# 11/21/2003 - Jeff Grimmett (grimmtooth@softhome.net)
|
|
|
|
#
|
|
|
|
# o Updated for wx namespace
|
|
|
|
#
|
|
|
|
# 11/30/2003 - Jeff Grimmett (grimmtooth@softhome.net)
|
|
|
|
#
|
|
|
|
# o wx.ProgressDialog appears to be broken. No abort button
|
|
|
|
# and it's not possible to dismiss it otherwise.
|
|
|
|
#
|
|
|
|
|
|
|
|
import wx
|
1999-06-22 03:03:29 -04:00
|
|
|
|
|
|
|
#---------------------------------------------------------------------------
|
|
|
|
|
2004-08-09 21:21:16 -04:00
|
|
|
class TestPanel(wx.Panel):
|
|
|
|
def __init__(self, parent, log):
|
|
|
|
self.log = log
|
|
|
|
wx.Panel.__init__(self, parent, -1)
|
|
|
|
|
|
|
|
b = wx.Button(self, -1, "Create and Show a ProgressDialog", (50,50))
|
|
|
|
self.Bind(wx.EVT_BUTTON, self.OnButton, b)
|
|
|
|
|
|
|
|
|
|
|
|
def OnButton(self, evt):
|
2005-04-28 14:18:07 -04:00
|
|
|
max = 80
|
2004-08-09 21:21:16 -04:00
|
|
|
|
|
|
|
dlg = wx.ProgressDialog("Progress dialog example",
|
|
|
|
"An informative message",
|
|
|
|
maximum = max,
|
|
|
|
parent=self,
|
2005-04-28 14:18:07 -04:00
|
|
|
style = wx.PD_CAN_ABORT
|
|
|
|
| wx.PD_APP_MODAL
|
|
|
|
| wx.PD_ELAPSED_TIME
|
|
|
|
#| wx.PD_ESTIMATED_TIME
|
|
|
|
| wx.PD_REMAINING_TIME
|
|
|
|
)
|
1999-06-22 03:03:29 -04:00
|
|
|
|
2004-08-09 21:21:16 -04:00
|
|
|
keepGoing = True
|
|
|
|
count = 0
|
2003-12-08 20:23:28 -05:00
|
|
|
|
2004-08-09 21:21:16 -04:00
|
|
|
while keepGoing and count < max:
|
2005-04-28 14:18:07 -04:00
|
|
|
count += 1
|
|
|
|
wx.MilliSleep(250)
|
1999-06-22 03:03:29 -04:00
|
|
|
|
2005-04-28 14:18:07 -04:00
|
|
|
if count >= max / 2:
|
2006-05-03 22:15:48 -04:00
|
|
|
(keepGoing, skip) = dlg.Update(count, "Half-time!")
|
2004-08-09 21:21:16 -04:00
|
|
|
else:
|
2006-05-03 22:15:48 -04:00
|
|
|
(keepGoing, skip) = dlg.Update(count)
|
1999-06-22 03:03:29 -04:00
|
|
|
|
2006-05-03 22:15:48 -04:00
|
|
|
|
2004-08-09 21:21:16 -04:00
|
|
|
dlg.Destroy()
|
1999-06-22 03:03:29 -04:00
|
|
|
|
2004-08-09 21:21:16 -04:00
|
|
|
#---------------------------------------------------------------------------
|
|
|
|
|
|
|
|
|
|
|
|
def runTest(frame, nb, log):
|
|
|
|
win = TestPanel(nb, log)
|
|
|
|
return win
|
1999-06-22 03:03:29 -04:00
|
|
|
|
|
|
|
#---------------------------------------------------------------------------
|
|
|
|
|
|
|
|
|
2003-07-02 19:13:10 -04:00
|
|
|
overview = """\
|
2004-02-23 21:01:04 -05:00
|
|
|
<html><body>
|
2003-12-08 20:23:28 -05:00
|
|
|
This class represents a dialog that shows a short message and a progress bar.
|
|
|
|
Optionally, it can display an ABORT button
|
2004-02-23 21:01:04 -05:00
|
|
|
<p>
|
2003-12-08 20:23:28 -05:00
|
|
|
This dialog indicates the progress of some event that takes a while to accomplish,
|
|
|
|
usually, such as file copy progress, download progress, and so on. The display
|
|
|
|
is <b>completely</b> under control of the program; you must update the dialog from
|
|
|
|
within the program creating it.
|
2004-02-23 21:01:04 -05:00
|
|
|
<p>
|
2003-12-08 20:23:28 -05:00
|
|
|
When the dialog closes, you must check to see if the user aborted the process or
|
|
|
|
not, and act accordingly -- that is, if the PD_CAN_ABORT style flag is set.
|
|
|
|
If not then you may progress blissfully onward.
|
2004-02-23 21:01:04 -05:00
|
|
|
</body></html>
|
2003-12-08 20:23:28 -05:00
|
|
|
"""
|
1999-06-22 03:03:29 -04:00
|
|
|
|
2003-07-02 19:13:10 -04:00
|
|
|
if __name__ == '__main__':
|
|
|
|
import sys,os
|
|
|
|
import run
|
2004-03-04 19:06:33 -05:00
|
|
|
run.main(['', os.path.basename(sys.argv[0])] + sys.argv[1:])
|