]> git.saurik.com Git - wxWidgets.git/blame - utils/wxPython/tests/test3.py
fixed somebody's poorly done StreamSize-->GetSize transition
[wxWidgets.git] / utils / wxPython / tests / test3.py
CommitLineData
7bf85405
RD
1#!/bin/env python
2#----------------------------------------------------------------------------
3# Name: test3.py
4# Purpose: Testing menus and status lines
5#
6# Author: Robin Dunn
7#
8# Created:
9# RCS-ID: $Id$
10# Copyright: (c) 1998 by Total Control Software
11# Licence: wxWindows license
12#----------------------------------------------------------------------------
13
14
b8b8dda7 15from wxPython.wx import *
7bf85405
RD
16
17
18#---------------------------------------------------------------------------
19
20class MyCanvas(wxWindow):
b8b8dda7
RD
21 def __init__(self, parent, ID):
22 wxWindow.__init__(self, parent, ID)
23 self.SetBackgroundColour(wxNamedColor("WHITE"))
24
7bf85405
RD
25 def OnPaint(self, event):
26 dc = wxPaintDC(self)
27 dc.BeginDrawing()
b8b8dda7 28 size = self.GetClientSize()
7bf85405
RD
29 font = wxFont(42, wxSWISS, wxNORMAL, wxNORMAL)
30 dc.SetFont(font)
31 st = "Python Rules!"
af309447 32 tw,th = dc.GetTextExtent(st)
b8b8dda7 33 dc.DrawText(st, (size.width-tw)/2, (size.height-th)/2)
7bf85405
RD
34 dc.EndDrawing()
35
36#---------------------------------------------------------------------------
37
105e45b9
RD
38#if wxPlatform == '__WXMSW__':
39class MyMiniFrame(wxMiniFrame):
40 def __init__(self, parent, ID, title, pos, size, style):
41 wxMiniFrame.__init__(self, parent, ID, title, pos, size, style)
42 panel = wxPanel(self, -1)
43 ID = NewId()
44 button = wxButton(panel, ID, "Close Me")
45 button.SetPosition(wxPoint(15, 15))
46 self.Connect(ID, -1, wxEVT_COMMAND_BUTTON_CLICKED, self.OnCloseMe)
47
48 def OnCloseMe(self, event):
49 self.Close(true)
50
51 def OnCloseWindow(self, event):
52 self.Destroy()
7bf85405
RD
53#---------------------------------------------------------------------------
54
55class MyFrame(wxFrame):
56 def __init__(self, parent, id, title):
57 wxFrame.__init__(self, parent, id, title, wxPyDefaultPosition,
58 wxSize(420, 200))
59 self.canvas = MyCanvas(self, -1)
b8b8dda7 60 self.CreateStatusBar(2)
7bf85405
RD
61 mainmenu = wxMenuBar()
62 menu = wxMenu()
63 menu.Append(100, 'A &Menu Item', 'the help text')
64 menu.Append(101, '&Another', 'Grok!')
65 menu.AppendSeparator()
66 menu.Append(200, 'E&xit', 'Get the heck outta here!')
67 mainmenu.Append(menu, "&It's a menu!")
68 self.SetMenuBar(mainmenu)
f57d7932
RD
69 if wxPlatform == '__WXMSW__':
70 print menu.GetHelpString(100)
71 print mainmenu.GetHelpString(101)
72 print mainmenu.GetHelpString(200)
73 self.DragAcceptFiles(true)
7bf85405
RD
74
75 self.Connect(-1, -1, wxEVT_COMMAND_MENU_SELECTED, self.OnMenuCommand)
76 self.Connect(-1, -1, wxEVT_DROP_FILES, self.OnDropFiles)
77
78
79
80 def OnCloseWindow(self, event):
81 print 'OnCloseWindow'
82 self.Destroy()
83
84
85 def OnSize(self, event):
b8b8dda7
RD
86 size = self.GetClientSize()
87 self.canvas.SetSize(size)
88 self.SetStatusText("hello, this is a test: (%d, %d)" % (size.width, size.height), 1)
7bf85405
RD
89
90## def OnMenuHighlight(self, event):
91## mainmenu = self.GetMenuBar()
92## st = mainmenu.GetHelpString(event.GetMenuId())
93## self.SetStatusText('['+st+']', 0)
94
95 def OnMenuCommand(self, event):
96 # why isn't this a wxMenuEvent???
97 print event, event.GetInt()
98 if event.GetInt() == 200:
99 self.Close()
100 elif event.GetInt() == 101:
105e45b9 101 #if wxPlatform == '__WXMSW__':
f57d7932 102 win = MyMiniFrame(self, -1, "This is a Mini...",
7bf85405
RD
103 wxPoint(-1, -1), #wxPyDefaultPosition,
104 wxSize(150, 150),
105 wxMINIMIZE_BOX | wxMAXIMIZE_BOX |
106 wxTHICK_FRAME | wxSYSTEM_MENU |
107 wxTINY_CAPTION_HORIZ)
f57d7932 108 win.Show(true)
105e45b9
RD
109 #else:
110 # print 'Sorry, can\'t do mini\'s...'
7bf85405
RD
111
112
113
114 def OnDropFiles(self, event):
115 fileList = event.GetFiles()
116 for file in fileList:
117 print file
118
119
120#---------------------------------------------------------------------------
121
122
123class MyApp(wxApp):
124 def OnInit(self):
125 frame = MyFrame(NULL, -1, "Test 3")
126 frame.Show(true)
127 self.SetTopWindow(frame)
128 return true
129
130#---------------------------------------------------------------------------
131
132
133def main():
134 app = MyApp(0)
135 app.MainLoop()
136
137
138def t():
139 import pdb
140 pdb.run('main()')
141
142if __name__ == '__main__':
143 main()
144
145
146#----------------------------------------------------------------------------
147#
148# $Log$
cf694132
RD
149# Revision 1.6 1999/04/30 03:29:53 RD
150# wxPython 2.0b9, first phase (win32)
151# Added gobs of stuff, see wxPython/README.txt for details
152#
af309447
RD
153# Revision 1.5 1999/02/20 09:04:43 RD
154# Added wxWindow_FromHWND(hWnd) for wxMSW to construct a wxWindow from a
155# window handle. If you can get the window handle into the python code,
156# it should just work... More news on this later.
157#
158# Added wxImageList, wxToolTip.
159#
160# Re-enabled wxConfig.DeleteAll() since it is reportedly fixed for the
161# wxRegConfig class.
162#
163# As usual, some bug fixes, tweaks, etc.
164#
105e45b9 165# Revision 1.4 1998/12/16 22:12:46 RD
af309447 166#
105e45b9
RD
167# Tweaks needed to be able to build wxPython with wxGTK.
168#
b8b8dda7
RD
169# Revision 1.3 1998/12/15 20:44:35 RD
170# Changed the import semantics from "from wxPython import *" to "from
171# wxPython.wx import *" This is for people who are worried about
172# namespace pollution, they can use "from wxPython import wx" and then
173# prefix all the wxPython identifiers with "wx."
174#
175# Added wxTaskbarIcon for wxMSW.
176#
177# Made the events work for wxGrid.
178#
179# Added wxConfig.
180#
181# Added wxMiniFrame for wxGTK, (untested.)
182#
183# Changed many of the args and return values that were pointers to gdi
184# objects to references to reflect changes in the wxWindows API.
185#
186# Other assorted fixes and additions.
187#
f57d7932
RD
188# Revision 1.2 1998/08/22 19:51:17 RD
189# some tweaks for wxGTK
190#
7bf85405
RD
191# Revision 1.1 1998/08/09 08:28:05 RD
192# Initial version
193#
194#