]> git.saurik.com Git - wxWidgets.git/blobdiff - utils/wxPython/demo/wxMask.py
New toolbar wrappers
[wxWidgets.git] / utils / wxPython / demo / wxMask.py
diff --git a/utils/wxPython/demo/wxMask.py b/utils/wxPython/demo/wxMask.py
new file mode 100644 (file)
index 0000000..f338391
--- /dev/null
@@ -0,0 +1,103 @@
+
+from wxPython.wx import *
+
+#----------------------------------------------------------------------
+
+logic = ['']*16
+def rlf(x):
+    logic[eval(x)]=x
+
+
+rlf('wxAND')
+rlf('wxAND_INVERT')
+rlf('wxAND_REVERSE')
+rlf('wxCLEAR')
+rlf('wxCOPY')
+rlf('wxEQUIV')
+rlf('wxINVERT')
+rlf('wxNAND')
+rlf('wxNOR')
+rlf('wxNO_OP')
+rlf('wxOR')
+rlf('wxOR_INVERT')
+rlf('wxOR_REVERSE')
+rlf('wxSET')
+rlf('wxSRC_INVERT')
+rlf('wxXOR')
+
+class TestMaskWindow(wxScrolledWindow):
+    def __init__(self, parent):
+        wxScrolledWindow.__init__(self, parent, -1)
+        self.SetBackgroundColour(wxColour(0,128,0))
+
+        # A reference bitmap that we won't mask
+        self.bmp_nomask  = wxBitmap('bitmaps/test_image.png', wxBITMAP_TYPE_PNG)
+
+        # One that we will
+        self.bmp_withmask  = wxBitmap('bitmaps/test_image.png', wxBITMAP_TYPE_PNG)
+
+        # this mask comes from a monochrome bitmap
+        self.bmp_themask = wxBitmap('bitmaps/test_mask.bmp',  wxBITMAP_TYPE_BMP)
+        self.bmp_themask.SetDepth(1)
+        mask = wxMask(self.bmp_themask)
+
+        # set the mask on our bitmap
+        self.bmp_withmask.SetMask(mask)
+
+        # Now we'll create a mask in a bit of an easier way, by picking a
+        # colour in the image that is to be the transparent colour.
+        self.bmp_withcolourmask  = wxBitmap('bitmaps/test_image.png', wxBITMAP_TYPE_PNG)
+        mask = wxMaskColour(self.bmp_withcolourmask, wxWHITE)
+        self.bmp_withcolourmask.SetMask(mask)
+
+        self.SetScrollbars(20, 20, 600/20, 460/20)
+
+
+
+    def OnPaint (self, e):
+        dc = wxPaintDC(self)
+        self.PrepareDC(dc)
+        dc.SetTextForeground(wxWHITE)
+
+        # make an interesting background...
+        dc.SetPen(wxMEDIUM_GREY_PEN)
+        for i in range(100):
+            dc.DrawLine(0,i*10,i*10,0)
+
+        # draw raw image, mask, and masked images
+        dc.DrawText('original image', 0,0)
+        dc.DrawBitmap(self.bmp_nomask, 0,20, 0)
+        dc.DrawText('with colour mask', 0,100)
+        dc.DrawBitmap(self.bmp_withcolourmask, 0,120, 1)
+        dc.DrawText('the mask image', 0,200)
+        dc.DrawBitmap(self.bmp_themask, 0,220, 0)
+        dc.DrawText('masked image', 0,300)
+        dc.DrawBitmap(self.bmp_withmask, 0,320, 1)
+
+        cx,cy = self.bmp_themask.GetWidth(), self.bmp_themask.GetHeight()
+
+        # draw array of assorted blit operations
+        mdc = wxMemoryDC()
+        for i in range(16):
+            text = logic[i]
+            x,y = 120+100*(i%4), 20+100*(i/4)
+            dc.DrawText(text, x,y-20)
+            mdc.SelectObject(self.bmp_withcolourmask)
+            dc.Blit(x,y, cx,cy, mdc, 0,0, i,1)
+
+
+
+
+
+#----------------------------------------------------------------------
+
+def runTest(frame, nb, log):
+    win = TestMaskWindow(nb)
+    return win
+
+#----------------------------------------------------------------------
+
+
+
+overview = """\
+"""