+++ /dev/null
-#!/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.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
-#
-#