]> git.saurik.com Git - wxWidgets.git/blobdiff - wxPython/demo/Threads.py
fix text scrolling in GTK2 (patch 703988)
[wxWidgets.git] / wxPython / demo / Threads.py
index b1dce085a67c2af993fff54a91ec293fde83f4c6..05883731b9d21a5690c06357ee7eb5df6a33e0af 100644 (file)
@@ -7,7 +7,7 @@ from   whrandom import random
 
 #----------------------------------------------------------------------
 
-wxEVT_UPDATE_BARGRAPH = 25015
+wxEVT_UPDATE_BARGRAPH = wxNewEventType()
 
 def EVT_UPDATE_BARGRAPH(win, func):
     win.Connect(-1, -1, wxEVT_UPDATE_BARGRAPH, func)
@@ -30,11 +30,11 @@ class CalcBarThread:
         self.val = val
 
     def Start(self):
-        self.keepGoing = self.running = true
+        self.keepGoing = self.running = True
         thread.start_new_thread(self.Run, ())
 
     def Stop(self):
-        self.keepGoing = false
+        self.keepGoing = False
 
     def IsRunning(self):
         return self.running
@@ -43,11 +43,10 @@ class CalcBarThread:
         while self.keepGoing:
             evt = UpdateBarEvent(self.barNum, int(self.val))
             wxPostEvent(self.win, evt)
-            del evt
+            #del evt
 
             sleeptime = (random() * 2) + 0.5
-            #print self.barNum, 'sleeping for', sleeptime
-            time.sleep(sleeptime)
+            time.sleep(sleeptime/4)
 
             sleeptime = sleeptime * 5
             if int(random() * 2):
@@ -58,7 +57,7 @@ class CalcBarThread:
             if self.val < 0: self.val = 0
             if self.val > 300: self.val = 300
 
-        self.running = false
+        self.running = False
 
 #----------------------------------------------------------------------
 
@@ -160,26 +159,22 @@ class TestFrame(wxFrame):
         panel.SetFont(wxFont(10, wxSWISS, wxNORMAL, wxBOLD))
         wxStaticText(panel, -1,
                      "This demo shows multiple threads interacting with this\n"
-                     "window by sending events to it.", wxPoint(5,5))
+                     "window by sending events to it, one thread for each bar.",
+                     wxPoint(5,5))
         panel.Fit()
 
         self.graph = GraphWindow(self, ['Zero', 'One', 'Two', 'Three', 'Four',
                                         'Five', 'Six', 'Seven'])
-        self.graph.SetSize((-1, self.graph.GetBestHeight()))
+        self.graph.SetSize((450, self.graph.GetBestHeight()))
 
         sizer = wxBoxSizer(wxVERTICAL)
         sizer.Add(panel, 0, wxEXPAND)
         sizer.Add(self.graph, 1, wxEXPAND)
 
         self.SetSizer(sizer)
-        self.SetAutoLayout(true)
+        self.SetAutoLayout(True)
         sizer.Fit(self)
 
-        #self.graph.SetValue(0, 25)
-        #self.graph.SetValue(1, 50)
-        #self.graph.SetValue(2, 75)
-        #self.graph.SetValue(3, 100)
-
         EVT_UPDATE_BARGRAPH(self, self.OnUpdate)
         self.threads = []
         self.threads.append(CalcBarThread(self, 0, 50))
@@ -199,11 +194,12 @@ class TestFrame(wxFrame):
 
     def OnUpdate(self, evt):
         self.graph.SetValue(evt.barNum, evt.value)
-        self.graph.Refresh(false)
+        self.graph.Refresh(False)
 
 
     def OnCloseWindow(self, evt):
         busy = wxBusyInfo("One moment please, waiting for threads to die...")
+        wxYield()
         for t in self.threads:
             t.Stop()
         running = 1
@@ -221,7 +217,7 @@ class TestFrame(wxFrame):
 def runTest(frame, nb, log):
     win = TestFrame(frame, log)
     frame.otherWin = win
-    win.Show(true)
+    win.Show(True)
     return None
 
 #----------------------------------------------------------------------
@@ -248,3 +244,11 @@ ProcessEvent does, it processes it later from the context of the GUI
 thread.
 
 """
+
+
+
+if __name__ == '__main__':
+    import sys,os
+    import run
+    run.main(['', os.path.basename(sys.argv[0])])
+