diff --git a/wxPython/tests/test_gcText.py b/wxPython/tests/test_gcText.py new file mode 100644 index 0000000000..2508b8c6b6 --- /dev/null +++ b/wxPython/tests/test_gcText.py @@ -0,0 +1,77 @@ + +import wx + +#---------------------------------------------------------------------- + + +class TestPanel(wx.Panel): + def __init__(self, parent): + wx.Panel.__init__(self, parent, -1) + self.Bind(wx.EVT_PAINT, self.OnPaint) + + + def OnPaint(self, evt): + dc = wx.PaintDC(self) + try: + gc = wx.GraphicsContext.Create(dc) + except NotImplementedError: + dc.DrawText("This build of wxPython does not support the wx.GraphicsContext " + "family of classes.", + 25, 25) + return + + font = wx.SystemSettings.GetFont(wx.SYS_DEFAULT_GUI_FONT) + font.SetWeight(wx.BOLD) + gc.SetFont(font) + + gc.Translate(10, 10) + self.DrawText(gc, 'normal') + + gc.Translate(0, 25) + gc.PushState() + gc.Scale(2, 2) + self.DrawText(gc, 'scaled') + gc.PopState() + + gc.Translate(0, 35) + self.DrawText(gc, '\nnewline') + + def DrawText(self, gc, txt): + txt = "This is a test: " + txt + w,h,d,e = gc.GetFullTextExtent(txt) + ##print w,h,d,e + + gc.DrawText(txt, 0, 0) + + pen = wx.Pen("red", 1) + gc.SetPen(pen) + + path = gc.CreatePath() + path.MoveToPoint(-1, -1) + self.MakeCrosshair(path) + gc.StrokePath(path) + + path = gc.CreatePath() + path.MoveToPoint(w+1, h+1) + self.MakeCrosshair(path) + gc.StrokePath(path) + + + + + def MakeCrosshair(self, path): + x, y = path.GetCurrentPoint() + path.MoveToPoint(x-5, y) + path.AddLineToPoint(x+5,y) + path.MoveToPoint(x, y-5) + path.AddLineToPoint(x, y+5) + path.MoveToPoint(x,y) + + + + +app = wx.App(False) +frm = wx.Frame(None, title="Testing GC Text") +pnl = TestPanel(frm) +frm.Show() +app.MainLoop()