]> git.saurik.com Git - wxWidgets.git/blobdiff - wxPython/demo/wxScrolledWindow.py
Lots of little bug fixes, API updates, etc.
[wxWidgets.git] / wxPython / demo / wxScrolledWindow.py
index e0ad207b73c710469d4734ff0e6788034b5e06ca..d9aa83e3f46edca9b57212a5619e0a174e556e53 100644 (file)
@@ -16,7 +16,7 @@ class MyCanvas(wxScrolledWindow):
         self.maxHeight = 1000
         self.x = self.y = 0
         self.curLine = []
-        self.drawing = false
+        self.drawing = False
 
         self.SetBackgroundColour("WHITE")
         self.SetCursor(wxStockCursor(wxCURSOR_PENCIL))
@@ -64,22 +64,22 @@ class MyCanvas(wxScrolledWindow):
             self.DoDrawing(dc)
 
 
-    def DoDrawing(self, dc):
+    def DoDrawing(self, dc, printing=False):
         dc.BeginDrawing()
         dc.SetPen(wxPen('RED'))
-        dc.DrawRectangle(5, 5, 50, 50)
+        dc.DrawRectangle((5, 5), (50, 50))
 
         dc.SetBrush(wxLIGHT_GREY_BRUSH)
         dc.SetPen(wxPen('BLUE', 4))
-        dc.DrawRectangle(15, 15, 50, 50)
+        dc.DrawRectangle((15, 15), (50, 50))
 
         dc.SetFont(wxFont(14, wxSWISS, wxNORMAL, wxNORMAL))
         dc.SetTextForeground(wxColour(0xFF, 0x20, 0xFF))
         te = dc.GetTextExtent("Hello World")
-        dc.DrawText("Hello World", 60, 65)
+        dc.DrawText("Hello World", (60, 65))
 
         dc.SetPen(wxPen('VIOLET', 4))
-        dc.DrawLine(5, 65+te[1], 60+te[0], 65+te[1])
+        dc.DrawLine((5, 65+te[1]), (60+te[0], 65+te[1]))
 
         lst = [(100,110), (150,110), (150,160), (100,160)]
         dc.DrawLines(lst, -60)
@@ -88,44 +88,53 @@ class MyCanvas(wxScrolledWindow):
         dc.SetPen(wxGREEN_PEN)
         dc.DrawSpline(lst+[(100,100)])
 
-        dc.DrawBitmap(self.bmp, 200, 20, true)
+        dc.DrawBitmap(self.bmp, (200, 20), True)
         dc.SetTextForeground(wxColour(0, 0xFF, 0x80))
-        dc.DrawText("a bitmap", 200, 85)
+        dc.DrawText("a bitmap", (200, 85))
+
+##         dc.SetFont(wxFont(14, wxSWISS, wxNORMAL, wxNORMAL))
+##         dc.SetTextForeground("BLACK")
+##         dc.DrawText("TEST this STRING", 10, 200)
+##         print dc.GetFullTextExtent("TEST this STRING")
 
         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.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)
+        dc.DrawRectangle((50,500), (50,50))
+        dc.DrawRectangle((100,500), (50,50))
 
         dc.SetPen(wxPen('RED'))
-        dc.DrawEllipticArc(200, 500, 50, 75, 0, 90)
-
-        y = 20
-        for style in [wxDOT, wxLONG_DASH, wxSHORT_DASH, wxDOT_DASH, wxUSER_DASH]:
-            pen = wxPen("DARK ORCHID", 1, style)
-            if style == wxUSER_DASH:
-                pen.SetCap(wxCAP_BUTT)
-                pen.SetDashes([1,2])
-                pen.SetColour("RED")
-            dc.SetPen(pen)
-            dc.DrawLine(300, y, 400, y)
-            y = y + 10
+        dc.DrawEllipticArc((200, 500), (50, 75), 0, 90)
+
+        if not printing:
+            # This has troubles when used on a print preview in wxGTK,
+            # probably something to do with the pen styles and the scaling
+            # it does...
+            y = 20
+            for style in [wxDOT, wxLONG_DASH, wxSHORT_DASH, wxDOT_DASH, wxUSER_DASH]:
+                pen = wxPen("DARK ORCHID", 1, style)
+                if style == wxUSER_DASH:
+                    pen.SetCap(wxCAP_BUTT)
+                    pen.SetDashes([1,2])
+                    pen.SetColour("RED")
+                dc.SetPen(pen)
+                dc.DrawLine((300, y),  (400, y))
+                y = y + 10
 
         dc.SetBrush(wxTRANSPARENT_BRUSH)
         dc.SetPen(wxPen(wxColour(0xFF, 0x20, 0xFF), 1, wxSOLID))
-        dc.DrawRectangle(450, 50, 100, 100)
+        dc.DrawRectangle((450, 50), (100, 100))
         old_pen = dc.GetPen()
         new_pen = wxPen("BLACK", 5)
         dc.SetPen(new_pen)
-        dc.DrawRectangle(470, 70, 60, 60)
+        dc.DrawRectangle((470, 70), (60, 60))
         dc.SetPen(old_pen)
-        dc.DrawRectangle(490, 90, 20, 20)
+        dc.DrawRectangle((490, 90), (20, 20))
 
         self.DrawSavedLines(dc)
         dc.EndDrawing()
@@ -135,7 +144,7 @@ class MyCanvas(wxScrolledWindow):
         dc.SetPen(wxPen('MEDIUM FOREST GREEN', 4))
         for line in self.lines:
             for coords in line:
-                apply(dc.DrawLine, coords)
+                dc.DrawLine(*coords)
 
 
     def SetXY(self, event):
@@ -149,10 +158,11 @@ class MyCanvas(wxScrolledWindow):
 
     def OnLeftButtonEvent(self, event):
         if event.LeftDown():
+            self.SetFocus()
             self.SetXY(event)
             self.curLine = []
             self.CaptureMouse()
-            self.drawing = true
+            self.drawing = True
 
         elif event.Dragging() and self.drawing:
             if BUFFERED:
@@ -167,9 +177,9 @@ class MyCanvas(wxScrolledWindow):
 
             dc.BeginDrawing()
             dc.SetPen(wxPen('MEDIUM FOREST GREEN', 4))
-            coords = (self.x, self.y) + self.ConvertEventCoords(event)
+            coords = ((self.x, self.y),  self.ConvertEventCoords(event))
             self.curLine.append(coords)
-            apply(dc.DrawLine, coords)
+            dc.DrawLine( *coords)
             self.SetXY(event)
             dc.EndDrawing()
 
@@ -178,7 +188,7 @@ class MyCanvas(wxScrolledWindow):
             self.lines.append(self.curLine)
             self.curLine = []
             self.ReleaseMouse()
-            self.drawing = false
+            self.drawing = False
 
 
 ## This is an example of what to do for the EVT_MOUSEWHEEL event,