X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/8a693e6e0460b6b3c32e4b6f114a3ab7b7cd24ea..f6bcfd974ef26faf6f91a62cac09827e09463fd1:/wxPython/tests/test2.py diff --git a/wxPython/tests/test2.py b/wxPython/tests/test2.py new file mode 100644 index 0000000000..3c5bb4d0a7 --- /dev/null +++ b/wxPython/tests/test2.py @@ -0,0 +1,201 @@ +#!/bin/env python +#---------------------------------------------------------------------------- +# Name: test2.py +# Purpose: Testing GDI stuff and events. +# +# Author: Robin Dunn +# +# Created: +# RCS-ID: $Id$ +# Copyright: (c) 1998 by Total Control Software +# Licence: wxWindows license +#---------------------------------------------------------------------------- + + +from wxPython.wx import * + + +#--------------------------------------------------------------------------- + + + +class MyCanvas(wxScrolledWindow): + def __init__(self, parent): + wxScrolledWindow.__init__(self, parent, -1, wxPoint(0, 0), wxPyDefaultSize, wxSUNKEN_BORDER) + + self.SetBackgroundColour(wxNamedColor("WHITE")) + self.Connect(-1, -1, wxEVT_LEFT_DOWN, self.OnLeftButtonEvent) + self.Connect(-1, -1, wxEVT_LEFT_UP, self.OnLeftButtonEvent) + self.Connect(-1, -1, wxEVT_MOTION, self.OnLeftButtonEvent) + + self.SetCursor(wxStockCursor(wxCURSOR_PENCIL)) + bmp = wxBitmap('bitmaps/test2.bmp', wxBITMAP_TYPE_BMP) + self.bmp = bmp + + self.SetScrollbars(20, 20, 50, 50) + + self.lines = [] + + + + def OnPaint(self, event): + dc = wxPaintDC(self) + self.PrepareDC(dc) + self.DoDrawing(dc) + + + + def DoDrawing(self, dc): + dc.BeginDrawing() + #dc.Clear() + pen1 = wxPen(wxNamedColour('RED')) + dc.SetPen(pen1) + dc.DrawRectangle(5, 5, 50, 50) + + dc.SetBrush(wxLIGHT_GREY_BRUSH) + dc.SetPen(wxPen(wxNamedColour('BLUE'), 4)) + dc.DrawRectangle(15, 15, 50, 50) + + font = wxFont(14, wxSWISS, wxNORMAL, wxNORMAL) + dc.SetFont(font) + dc.SetTextForeground(wxColour(0xFF, 0x20, 0xFF)) + te = dc.GetTextExtent("Hello World") + dc.DrawText("Hello World", 60, 65) + + dc.SetPen(wxPen(wxNamedColour('VIOLET'), 4)) + 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) + dc.SetPen(wxGREY_PEN) + dc.DrawPolygon(lst, 75) + dc.SetPen(wxGREEN_PEN) + dc.DrawSpline(lst+[(100,100)]) + + dc.DrawBitmap(self.bmp, 200, 20) + dc.SetTextForeground(wxColour(0, 0xFF, 0x80)) + dc.DrawText("a bitmap", 200, 80) + + self.DrawSavedLines(dc) + dc.EndDrawing() + + + def DrawSavedLines(self, dc): + dc.SetPen(wxPen(wxNamedColour('MEDIUM FOREST GREEN'), 4)) + for line in self.lines: + for coords in line: + apply(dc.DrawLine, coords) + + + + def OnLeftButtonEvent(self, event): + if event.LeftDown(): + self.x, self.y = event.GetX(), event.GetY() + self.curLine = [] + elif event.Dragging(): + dc = wxClientDC(self) + dc.BeginDrawing() + dc.SetPen(wxPen(wxNamedColour('MEDIUM FOREST GREEN'), 4)) + coords = (self.x, self.y, event.GetX(), event.GetY()) + self.curLine.append(coords) + apply(dc.DrawLine, coords) + self.x, self.y = event.GetX(), event.GetY() + dc.EndDrawing() + elif event.LeftUp(): + self.lines.append(self.curLine) + self.curLine = [] + + + + + +#--------------------------------------------------------------------------- + +class MyFrame(wxFrame): + def __init__(self, parent, id, title): + wxFrame.__init__(self, parent, id, title, wxPyDefaultPosition, wxSize(320, 200)) + self.canvas = MyCanvas(self) + + def OnCloseWindow(self, event): + self.Destroy() + + def OnSize(self, event): + size = self.GetClientSize() + self.canvas.SetDimensions(5, 5, size.width-10, size.height-10) + + +#--------------------------------------------------------------------------- + + +class MyApp(wxApp): + def OnInit(self): + frame = MyFrame(NULL, -1, "Test 2") + frame.Show(true) + self.SetTopWindow(frame) + return true + + +#--------------------------------------------------------------------------- + + +def main(): + app = MyApp(0) + app.MainLoop() + + +def t(): + import pdb + pdb.run('main()') + +if __name__ == '__main__': + main() + + +#---------------------------------------------------------------------------- +# +# $Log$ +# Revision 1.2 2000/07/15 19:51:32 cvsuser +# merged 2.2 branch +# +# Revision 1.1.2.1 2000/05/16 02:07:01 RD +# +# Moved and reorganized wxPython directories +# +# Now builds into an intermediate wxPython package directory before +# installing +# +# Revision 1.3 1999/04/30 03:29:53 RD +# +# wxPython 2.0b9, first phase (win32) +# Added gobs of stuff, see wxPython/README.txt for details +# +# Revision 1.2.4.1 1999/03/27 23:30:00 RD +# +# wxPython 2.0b8 +# Python thread support +# various minor additions +# various minor fixes +# +# Revision 1.2 1998/12/15 20:44:34 RD +# Changed the import semantics from "from wxPython import *" to "from +# wxPython.wx import *" This is for people who are worried about +# namespace pollution, they can use "from wxPython import wx" and then +# prefix all the wxPython identifiers with "wx." +# +# Added wxTaskbarIcon for wxMSW. +# +# Made the events work for wxGrid. +# +# Added wxConfig. +# +# Added wxMiniFrame for wxGTK, (untested.) +# +# Changed many of the args and return values that were pointers to gdi +# objects to references to reflect changes in the wxWindows API. +# +# Other assorted fixes and additions. +# +# Revision 1.1 1998/08/09 08:28:05 RD +# Initial version +# +#