]>
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
),
29 class TestMaskWindow(wxScrolledWindow
):
30 def __init__(self
, parent
):
31 wxScrolledWindow
.__init
__(self
, parent
, -1)
32 self
.SetBackgroundColour(wxColour(0,128,0))
34 # A reference bitmap that we won't mask
35 self
.bmp_nomask
= wxBitmap('bitmaps/test_image.png', wxBITMAP_TYPE_PNG
)
38 self
.bmp_withmask
= wxBitmap('bitmaps/test_image.png', wxBITMAP_TYPE_PNG
)
40 # this mask comes from a monochrome bitmap
41 self
.bmp_themask
= wxBitmap('bitmaps/test_mask.bmp', wxBITMAP_TYPE_BMP
)
42 self
.bmp_themask
.SetDepth(1)
43 mask
= wxMask(self
.bmp_themask
)
45 # set the mask on our bitmap
46 self
.bmp_withmask
.SetMask(mask
)
48 # Now we'll create a mask in a bit of an easier way, by picking a
49 # colour in the image that is to be the transparent colour.
50 self
.bmp_withcolourmask
= wxBitmap('bitmaps/test_image.png', wxBITMAP_TYPE_PNG
)
51 mask
= wxMaskColour(self
.bmp_withcolourmask
, wxWHITE
)
52 self
.bmp_withcolourmask
.SetMask(mask
)
54 self
.SetScrollbars(20, 20, 700/20, 460/20)
56 EVT_PAINT(self
, self
.OnPaint
)
59 def OnPaint (self
, e
):
62 dc
.SetTextForeground(wxWHITE
)
64 # make an interesting background...
65 dc
.SetPen(wxMEDIUM_GREY_PEN
)
67 dc
.DrawLine(0,i
*10,i
*10,0)
69 # draw raw image, mask, and masked images
70 dc
.DrawText('original image', 0,0)
71 dc
.DrawBitmap(self
.bmp_nomask
, 0,20, 0)
72 dc
.DrawText('with colour mask', 0,100)
73 dc
.DrawBitmap(self
.bmp_withcolourmask
, 0,120, 1)
74 dc
.DrawText('the mask image', 0,200)
75 dc
.DrawBitmap(self
.bmp_themask
, 0,220, 0)
76 dc
.DrawText('masked image', 0,300)
77 dc
.DrawBitmap(self
.bmp_withmask
, 0,320, 1)
79 cx
,cy
= self
.bmp_themask
.GetWidth(), self
.bmp_themask
.GetHeight()
81 # draw array of assorted blit operations
84 for text
, code
in logicList
:
85 x
,y
= 120+150*(i
%4), 20+100*(i
/4)
86 dc
.DrawText(text
, x
, y
-20)
87 mdc
.SelectObject(self
.bmp_withcolourmask
)
88 dc
.Blit(x
,y
, cx
,cy
, mdc
, 0,0, code
, true
)
94 #----------------------------------------------------------------------
96 def runTest(frame
, nb
, log
):
97 win
= TestMaskWindow(nb
)
100 #----------------------------------------------------------------------