forked from wxWidgets/Phoenix
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtest_dcbuffer.py
104 lines (78 loc) · 3.36 KB
/
test_dcbuffer.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
import imp_unittest, unittest
import wtc
import wx
import sys
#---------------------------------------------------------------------------
class BufferedDCTests(wtc.WidgetTestCase):
def test_0_CheckKeepReference(self):
# We're using the KeepReference annotation for the dc and bitmap args
# to ensure that they will live as long as the DC does. This test will
# try to verify that it works the way I think it does, that the extra
# reference is made, and also released when the DC goes away.
cdc = wx.ClientDC(self.frame)
bmp = wx.Bitmap(1,1)
cdc_cnt1 = sys.getrefcount(cdc)
bmp_cnt1 = sys.getrefcount(bmp)
dc = wx.BufferedDC(cdc, bmp)
cdc_cnt2 = sys.getrefcount(cdc)
bmp_cnt2 = sys.getrefcount(bmp)
del dc
cdc_cnt3 = sys.getrefcount(cdc)
bmp_cnt3 = sys.getrefcount(bmp)
self.assertTrue(cdc_cnt2 == cdc_cnt1 + 1)
self.assertTrue(cdc_cnt3 == cdc_cnt1)
self.assertTrue(bmp_cnt2 == bmp_cnt1 + 1)
self.assertTrue(bmp_cnt3 == bmp_cnt1)
def test_BufferedDCDefaultCtor(self):
dc = wx.BufferedDC()
dc.Init(None, wx.Bitmap(25,25))
dc.DrawLine(0,0, 50,50)
def test_BufferedDCCtors(self):
dc = wx.BufferedDC(wx.ClientDC(self.frame), wx.Size(100,100))
dc.DrawLine(0,0, 50,50)
dc = wx.BufferedDC(wx.ClientDC(self.frame))
dc.DrawLine(0,0, 50,50)
dc = wx.BufferedDC(None, wx.Bitmap(100,100))
dc.DrawLine(0,0, 50,50)
def test_BufferedPaintDC(self):
class TestPanel(wx.Panel):
def __init__(self, *args, **kw):
wx.Panel.__init__(self, *args, **kw)
self.SetBackgroundStyle(wx.BG_STYLE_PAINT)
self.Bind(wx.EVT_PAINT, self.onPaint)
self.bmp = wx.Bitmap(100,100)
self.onPaintCalled = False
def onPaint(self, evt):
dc = wx.BufferedPaintDC(self, self.bmp)
dc.DrawLine(0,0, 50,50)
self.onPaintCalled = True
panel = TestPanel(self.frame)
self.frame.SendSizeEvent()
panel.Refresh()
self.myUpdate(panel)
self.myYield()
self.assertTrue(panel.onPaintCalled == True)
def test_AutoBufferedPaintDC(self):
class TestPanel(wx.Panel):
def __init__(self, *args, **kw):
wx.Panel.__init__(self, *args, **kw)
self.SetBackgroundStyle(wx.BG_STYLE_PAINT)
self.Bind(wx.EVT_PAINT, self.onPaint)
self.onPaintCalled = False
def onPaint(self, evt):
dc = wx.AutoBufferedPaintDC(self)
dc.DrawLine(0,0, 50,50)
self.onPaintCalled = True
panel = TestPanel(self.frame)
self.frame.SendSizeEvent()
panel.Refresh()
self.myUpdate(panel)
self.myYield()
self.assertTrue(panel.onPaintCalled == True)
def test_BufferedDCConstantsExist(self):
wx.BUFFER_VIRTUAL_AREA
wx.BUFFER_CLIENT_AREA
wx.BUFFER_USES_SHARED_BUFFER
#---------------------------------------------------------------------------
if __name__ == '__main__':
unittest.main()