]>
git.saurik.com Git - wxWidgets.git/blob - wxPython/demo/wxMask.py
2 from wxPython
.wx
import *
4 #----------------------------------------------------------------------
8 ('wxAND_INVERT', wxAND_INVERT
),
9 ('wxAND_REVERSE', wxAND_REVERSE
),
13 ('wxINVERT', wxINVERT
),
16 # this one causes an assert on wxGTK, and doesn't seem to
17 # do much on MSW anyway, so I'll just take it out....
22 ('wxOR_INVERT', wxOR_INVERT
),
23 ('wxOR_REVERSE', wxOR_REVERSE
),
25 ('wxSRC_INVERT', wxSRC_INVERT
),
31 class TestMaskWindow(wxScrolledWindow
):
32 def __init__(self
, parent
):
33 wxScrolledWindow
.__init
__(self
, parent
, -1)
34 self
.SetBackgroundColour(wxColour(0,128,0))
36 # A reference bitmap that we won't mask
37 self
.bmp_nomask
= images
.getTestStar2Bitmap()
40 self
.bmp_withmask
= images
.getTestStar2Bitmap()
42 # this mask comes from a monochrome bitmap
43 self
.bmp_themask
= images
.getTestMaskBitmap()
44 self
.bmp_themask
.SetDepth(1)
45 mask
= wxMask(self
.bmp_themask
)
47 # set the mask on our bitmap
48 self
.bmp_withmask
.SetMask(mask
)
50 # Now we'll create a mask in a bit of an easier way, by picking a
51 # colour in the image that is to be the transparent colour.
52 self
.bmp_withcolourmask
= images
.getTestStar2Bitmap()
53 mask
= wxMaskColour(self
.bmp_withcolourmask
, wxWHITE
)
54 self
.bmp_withcolourmask
.SetMask(mask
)
56 self
.SetScrollbars(20, 20, 700/20, 460/20)
58 EVT_PAINT(self
, self
.OnPaint
)
61 def OnPaint (self
, e
):
64 dc
.SetTextForeground(wxWHITE
)
66 # make an interesting background...
67 dc
.SetPen(wxMEDIUM_GREY_PEN
)
69 dc
.DrawLine(0,i
*10,i
*10,0)
71 # draw raw image, mask, and masked images
72 dc
.DrawText('original image', 0,0)
73 dc
.DrawBitmap(self
.bmp_nomask
, 0,20, 0)
74 dc
.DrawText('with colour mask', 0,100)
75 dc
.DrawBitmap(self
.bmp_withcolourmask
, 0,120, 1)
76 dc
.DrawText('the mask image', 0,200)
77 dc
.DrawBitmap(self
.bmp_themask
, 0,220, 0)
78 dc
.DrawText('masked image', 0,300)
79 dc
.DrawBitmap(self
.bmp_withmask
, 0,320, 1)
81 cx
,cy
= self
.bmp_themask
.GetWidth(), self
.bmp_themask
.GetHeight()
83 # draw array of assorted blit operations
86 for text
, code
in logicList
:
87 x
,y
= 120+150*(i
%4), 20+100*(i
/4)
88 dc
.DrawText(text
, x
, y
-20)
89 mdc
.SelectObject(self
.bmp_withcolourmask
)
90 dc
.Blit(x
,y
, cx
,cy
, mdc
, 0,0, code
, true
)
94 # On wxGTK there needs to be a panel under wxScrolledWindows if they are
95 # going to be in a wxNotebook...
96 class TestPanel(wxPanel
):
97 def __init__(self
, parent
, ID
):
98 wxPanel
.__init
__(self
, parent
, ID
)
99 self
.win
= TestMaskWindow(self
)
100 EVT_SIZE(self
, self
.OnSize
)
102 def OnSize(self
, evt
):
103 self
.win
.SetSize(evt
.GetSize())
106 #----------------------------------------------------------------------
108 def runTest(frame
, nb
, log
):
109 win
= TestPanel(nb
, -1)
112 #----------------------------------------------------------------------