]>
Commit | Line | Data |
---|---|---|
1 | import wx | |
2 | import os | |
3 | print "PID:", os.getpid() | |
4 | ||
5 | count = 0 | |
6 | ||
7 | class ResultsFrame(wx.Frame): | |
8 | def __init__(self, parent, bmp): | |
9 | global count | |
10 | count += 1 | |
11 | wx.Frame.__init__(self, parent, title=str(count), size=(100,100)) | |
12 | p = wx.Panel(self) | |
13 | sb = wx.StaticBitmap(p, -1, bmp, (20,20)) | |
14 | self.Show() | |
15 | ||
16 | ||
17 | ||
18 | class TestPanel(wx.Panel): | |
19 | def __init__(self, parent): | |
20 | wx.Panel.__init__(self, parent) | |
21 | b = wx.Button(self, -1, "Test", (50,50)) | |
22 | self.Bind(wx.EVT_BUTTON, self.OnButton, b) | |
23 | ||
24 | def RunTest(self, bdc, bg, fg): | |
25 | # draw to the buffered dc | |
26 | bdc.SetBackground(wx.Brush(bg)) | |
27 | bdc.Clear() | |
28 | bdc.SetPen(wx.Pen(fg, 2)) | |
29 | bdc.DrawLine(0,0, 30,30) | |
30 | bdc.DrawLine(0,30, 30,0) | |
31 | ||
32 | # now bilt it to a bitmap | |
33 | bmp = wx.EmptyBitmap(30,30) | |
34 | mdc = wx.MemoryDC() | |
35 | mdc.SelectObject(bmp) | |
36 | mdc.Blit(0,0, 30,30, bdc, 0,0) | |
37 | del mdc | |
38 | ||
39 | # display the results | |
40 | ResultsFrame(self, bmp) | |
41 | ||
42 | ||
43 | ||
44 | def OnButton(self, evt): | |
45 | ||
46 | # 1. test a buffered dc not using a buffer bitmap | |
47 | bdc = wx.BufferedDC(wx.ClientDC(self), self.GetSize()) | |
48 | self.RunTest(bdc, "yellow", "red") | |
49 | del bdc | |
50 | ||
51 | # 2. now do one that does have a buffer bitmap | |
52 | buf = wx.EmptyBitmap(100,100) | |
53 | bdc = wx.BufferedDC(wx.ClientDC(self), buf) | |
54 | self.RunTest(bdc, "red", "blue") | |
55 | del bdc | |
56 | ||
57 | # 3. now one without a real DC | |
58 | buf = wx.EmptyBitmap(100,100) | |
59 | bdc = wx.BufferedDC(None, buf) | |
60 | self.RunTest(bdc, "purple", "yellow") | |
61 | del bdc | |
62 | ||
63 | # 4. finally test a real unbuffered DC | |
64 | dc = wx.ClientDC(self) | |
65 | self.RunTest(dc, "red", "white") | |
66 | ||
67 | ||
68 | # blit from the last buffer back to the main window | |
69 | buf.SetMaskColour("yellow") | |
70 | mdc = wx.MemoryDC() | |
71 | mdc.SelectObject(buf) | |
72 | dc.Blit(100,100,30,30, mdc, 0,0, useMask=True) | |
73 | ||
74 | ||
75 | ||
76 | app = wx.App(0) | |
77 | frm = wx.Frame(None) | |
78 | pnl = TestPanel(frm) | |
79 | frm.Show() | |
80 | app.MainLoop() | |
81 | ||
82 | ||
83 | ||
84 | ||
85 |