]> git.saurik.com Git - wxWidgets.git/blame_incremental - wxPython/demo/AlphaDrawing.py
non-PCH build fix (according to Tinderbox).
[wxWidgets.git] / wxPython / demo / AlphaDrawing.py
... / ...
CommitLineData
1
2import wx
3
4#----------------------------------------------------------------------
5
6class TestPanel(wx.Panel):
7 def __init__(self, parent, log):
8 self.log = log
9 wx.Panel.__init__(self, parent, -1)
10 self.Bind(wx.EVT_PAINT, self.OnPaint)
11
12 txt = """\
13If this build of wxPython includes the new wx.GCDC class (which
14provides the wx.DC API on top of the new wx.GraphicsContext class)
15then these squares should be transparent.
16"""
17 wx.StaticText(self, -1, txt, (20, 20))
18
19
20 def OnPaint(self, evt):
21 pdc = wx.PaintDC(self)
22 try:
23 dc = wx.GCDC(pdc)
24 except:
25 dc = pdc
26 rect = wx.Rect(0,0, 100, 100)
27 for RGB, pos in [((178, 34, 34), ( 50, 90)),
28 (( 35, 142, 35), (110, 150)),
29 (( 0, 0, 139), (170, 90))
30 ]:
31 r, g, b = RGB
32 penclr = wx.Colour(r, g, b, wx.ALPHA_OPAQUE)
33 brushclr = wx.Colour(r, g, b, 128) # half transparent
34 dc.SetPen(wx.Pen(penclr))
35 dc.SetBrush(wx.Brush(brushclr))
36 rect.SetPosition(pos)
37 dc.DrawRoundedRectangleRect(rect, 8)
38
39
40#----------------------------------------------------------------------
41
42def runTest(frame, nb, log):
43 win = TestPanel(nb, log)
44 return win
45
46#----------------------------------------------------------------------
47
48
49
50overview = """<html><body>
51<h2><center>Alpha Drawing</center></h2>
52
53The wx.DC on Mac now supports alpha transparent drawing using pens and
54brushes. This is accomplished by enabling the wx.Colour class to have
55a fourth component for the alpha value, where 0 is fully transparent,
56and 255 is fully opaque.
57
58<p>You can consider this a \"preview of coming attractions\" for the
59other platforms.
60
61</body></html>
62"""
63
64
65
66if __name__ == '__main__':
67 import sys,os
68 import run
69 run.main(['', os.path.basename(sys.argv[0])] + sys.argv[1:])
70