X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/8eca4fef106b8327e2e55636de3f68a511a4c392..b4eecebd423df0c6efe86d7658cd3df818d67ed8:/wxPython/demo/Threads.py diff --git a/wxPython/demo/Threads.py b/wxPython/demo/Threads.py index 49654f96a7..ceb2fdc78b 100644 --- a/wxPython/demo/Threads.py +++ b/wxPython/demo/Threads.py @@ -97,18 +97,18 @@ class GraphWindow(wx.Window): dc.SetBackground(wx.Brush(self.GetBackgroundColour())) dc.Clear() dc.SetPen(wx.Pen(wx.BLACK, 3, wx.SOLID)) - dc.DrawLine((self.linePos, 0), (self.linePos, size.height-10)) + dc.DrawLine(self.linePos, 0, self.linePos, size.height-10) bh = ypos = self.barHeight for x in range(len(self.values)): label, val = self.values[x] - dc.DrawText(label, (5, ypos)) + dc.DrawText(label, 5, ypos) if val: color = self.colors[ x % len(self.colors) ] dc.SetPen(wx.Pen(color)) dc.SetBrush(wx.Brush(color)) - dc.DrawRectangle((self.linePos+3, ypos), (val, bh)) + dc.DrawRectangle(self.linePos+3, ypos, val, bh) ypos = ypos + 2*bh if ypos > size[1]-10: @@ -116,21 +116,8 @@ class GraphWindow(wx.Window): def OnPaint(self, evt): - width, height = size =self.GetSize() - bmp = wx.EmptyBitmap(width, height) - - dc = wx.MemoryDC() - dc.SelectObject(bmp) - - - self.Draw(dc, size) - - wdc = wx.PaintDC(self) - wdc.BeginDrawing() - wdc.Blit((0,0), size, dc, (0,0)) - wdc.EndDrawing() - - dc.SelectObject(wx.NullBitmap) + dc = wx.BufferedPaintDC(self) + self.Draw(dc, self.GetSize()) def OnEraseBackground(self, evt): @@ -212,19 +199,35 @@ class TestFrame(wx.Frame): -#---------------------------------------------------------------------- +#--------------------------------------------------------------------------- + +class TestPanel(wx.Panel): + def __init__(self, parent, log): + self.log = log + wx.Panel.__init__(self, parent, -1) + + b = wx.Button(self, -1, "Show Threads sample", (50,50)) + self.Bind(wx.EVT_BUTTON, self.OnButton, b) + + + def OnButton(self, evt): + win = TestFrame(self, self.log) + win.Show(True) + + +#--------------------------------------------------------------------------- + def runTest(frame, nb, log): - win = TestFrame(frame, log) - frame.otherWin = win - win.Show(True) - return None + win = TestPanel(nb, log) + return win #---------------------------------------------------------------------- + overview = """\ The main issue with multi-threaded GUI programming is the thread safty of the GUI itself. On most platforms the GUI is not thread safe and