]> git.saurik.com Git - wxWidgets.git/blobdiff - utils/wxPython/demo/wxScrolledWindow.py
wxHandleFatalExceptions() added, documented
[wxWidgets.git] / utils / wxPython / demo / wxScrolledWindow.py
index 7012e38f9a9f3b9dad4b9cea94f509b7220769b7..44b5f9fd93d679e51e1722fcf3873ee288eff8be 100644 (file)
@@ -4,10 +4,12 @@ from wxPython.wx import *
 #---------------------------------------------------------------------------
 
 class MyCanvas(wxScrolledWindow):
-    def __init__(self, parent):
-        wxScrolledWindow.__init__(self, parent, -1, wxPoint(0, 0), wxPyDefaultSize, wxSUNKEN_BORDER)
+    def __init__(self, parent, id = -1, size = wxDefaultSize):
+        wxScrolledWindow.__init__(self, parent, id, wxPoint(0, 0), size, wxSUNKEN_BORDER)
 
         self.lines = []
+        self.maxWidth  = 1000
+        self.maxHeight = 1000
 
         self.SetBackgroundColour(wxNamedColor("WHITE"))
         self.Connect(-1, -1, wxEVT_LEFT_DOWN, self.OnLeftButtonEvent)
@@ -16,9 +18,17 @@ class MyCanvas(wxScrolledWindow):
 
         self.SetCursor(wxStockCursor(wxCURSOR_PENCIL))
         bmp = wxBitmap('bitmaps/test2.bmp', wxBITMAP_TYPE_BMP)
+        mask = wxMaskColour(bmp, wxBLUE)
+        bmp.SetMask(mask)
         self.bmp = bmp
 
-        self.SetScrollbars(20, 20, 50, 50)
+        self.SetScrollbars(20, 20, self.maxWidth/20, self.maxHeight/20)
+
+    def getWidth(self):
+        return self.maxWidth
+
+    def getHeight(self):
+        return self.maxHeight
 
 
     def OnPaint(self, event):
@@ -29,7 +39,6 @@ class MyCanvas(wxScrolledWindow):
 
     def DoDrawing(self, dc):
         dc.BeginDrawing()
-        #dc.Clear()
         pen1 = wxPen(wxNamedColour('RED'))
         dc.SetPen(pen1)
         dc.DrawRectangle(5, 5, 50, 50)
@@ -54,14 +63,29 @@ class MyCanvas(wxScrolledWindow):
         dc.SetPen(wxGREEN_PEN)
         dc.DrawSpline(lst+[(100,100)])
 
-        dc.DrawBitmap(self.bmp, 200, 20)
+        dc.DrawBitmap(self.bmp, 200, 20, true)
         dc.SetTextForeground(wxColour(0, 0xFF, 0x80))
-        dc.DrawText("a bitmap", 200, 80)
+        dc.DrawText("a bitmap", 200, 85)
+
+        font = wxFont(20, wxSWISS, wxNORMAL, wxNORMAL)
+        dc.SetFont(font)
+        dc.SetTextForeground(wxBLACK)
+        for a in range(0, 360, 45):
+            dc.DrawRotatedText("Rotated text...", 300, 300, a)
+
+        dc.SetPen(wxTRANSPARENT_PEN)
+        dc.SetBrush(wxBLUE_BRUSH)
+        dc.DrawRectangle(50,500,50,50)
+        dc.DrawRectangle(100,500,50,50)
+
+        #from wxPython import dch
+        #dch.FillRect(dc, wxRect(50, 400, 50, 50), wxBLACK)
 
         self.DrawSavedLines(dc)
         dc.EndDrawing()
 
 
+
     def DrawSavedLines(self, dc):
         dc.SetPen(wxPen(wxNamedColour('MEDIUM FOREST GREEN'), 4))
         for line in self.lines:
@@ -82,8 +106,10 @@ class MyCanvas(wxScrolledWindow):
         if event.LeftDown():
             self.SetXY(event)
             self.curLine = []
+            self.CaptureMouse()
 
         elif event.Dragging():
+            print event.GetPosition()
             dc = wxClientDC(self)
             self.PrepareDC(dc)
             dc.BeginDrawing()
@@ -97,6 +123,7 @@ class MyCanvas(wxScrolledWindow):
         elif event.LeftUp():
             self.lines.append(self.curLine)
             self.curLine = []
+            self.ReleaseMouse()
 
 #---------------------------------------------------------------------------