2 #----------------------------------------------------------------------------
4 # Purpose: Testing menus and status lines
10 # Copyright: (c) 1998 by Total Control Software
11 # Licence: wxWindows license
12 #----------------------------------------------------------------------------
15 from wxPython
.wx
import *
18 #---------------------------------------------------------------------------
20 class MyCanvas(wxWindow
):
21 def __init__(self
, parent
, ID
):
22 wxWindow
.__init
__(self
, parent
, ID
)
23 self
.SetBackgroundColour(wxNamedColor("WHITE"))
25 def OnPaint(self
, event
):
28 size
= self
.GetClientSize()
29 font
= wxFont(42, wxSWISS
, wxNORMAL
, wxNORMAL
)
32 tw
,th
= dc
.GetTextExtent(st
)
33 dc
.DrawText(st
, (size
.width
-tw
)/2, (size
.height
-th
)/2)
36 #---------------------------------------------------------------------------
38 #if wxPlatform == '__WXMSW__':
39 class 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)
44 button
= wxButton(panel
, ID
, "Close Me")
45 button
.SetPosition(wxPoint(15, 15))
46 self
.Connect(ID
, -1, wxEVT_COMMAND_BUTTON_CLICKED
, self
.OnCloseMe
)
48 def OnCloseMe(self
, event
):
51 def OnCloseWindow(self
, event
):
53 #---------------------------------------------------------------------------
55 class MyFrame(wxFrame
):
56 def __init__(self
, parent
, id, title
):
57 wxFrame
.__init
__(self
, parent
, id, title
, wxPyDefaultPosition
,
59 self
.canvas
= MyCanvas(self
, -1)
60 self
.CreateStatusBar(2)
61 mainmenu
= wxMenuBar()
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
)
69 if wxPlatform
== '__WXMSW__':
70 print menu
.GetHelpString(100)
71 print mainmenu
.GetHelpString(101)
72 print mainmenu
.GetHelpString(200)
73 self
.DragAcceptFiles(true
)
75 self
.Connect(-1, -1, wxEVT_COMMAND_MENU_SELECTED
, self
.OnMenuCommand
)
76 self
.Connect(-1, -1, wxEVT_DROP_FILES
, self
.OnDropFiles
)
80 def OnCloseWindow(self
, event
):
85 def OnSize(self
, event
):
86 size
= self
.GetClientSize()
87 self
.canvas
.SetSize(size
)
88 self
.SetStatusText("hello, this is a test: (%d, %d)" % (size
.width
, size
.height
), 1)
90 ## def OnMenuHighlight(self, event):
91 ## mainmenu = self.GetMenuBar()
92 ## st = mainmenu.GetHelpString(event.GetMenuId())
93 ## self.SetStatusText('['+st+']', 0)
95 def OnMenuCommand(self
, event
):
96 # why isn't this a wxMenuEvent???
97 print event
, event
.GetInt()
98 if event
.GetInt() == 200:
100 elif event
.GetInt() == 101:
101 #if wxPlatform == '__WXMSW__':
102 win
= MyMiniFrame(self
, -1, "This is a Mini...",
103 wxPoint(-1, -1), #wxPyDefaultPosition,
105 wxMINIMIZE_BOX | wxMAXIMIZE_BOX |
106 wxTHICK_FRAME | wxSYSTEM_MENU |
107 wxTINY_CAPTION_HORIZ
)
110 # print 'Sorry, can\'t do mini\'s...'
114 def OnDropFiles(self
, event
):
115 fileList
= event
.GetFiles()
116 for file in fileList
:
120 #---------------------------------------------------------------------------
125 frame
= MyFrame(NULL
, -1, "Test 3")
127 self
.SetTopWindow(frame
)
130 #---------------------------------------------------------------------------
142 if __name__
== '__main__':
146 #----------------------------------------------------------------------------
149 # Revision 1.4 2001/02/16 08:19:38 robind
150 # Copied/merged from the 2.2 branch.
152 # Changes needed to build with new event system
154 # Revision 1.1.2.2 2001/01/30 20:54:16 robind
156 # Gobs of changes move from the main trunk to the 2.2 branch in
157 # preparataion for 2.2.5 release. See CHANGES.txt for details.
159 # Revision 1.3 2000/10/30 21:05:22 robind
161 # Merged wxPython 2.2.2 over to the main branch
163 # Revision 1.1.2.1 2000/05/16 02:07:01 RD
165 # Moved and reorganized wxPython directories
167 # Now builds into an intermediate wxPython package directory before
170 # Revision 1.6 1999/04/30 03:29:53 RD
172 # wxPython 2.0b9, first phase (win32)
173 # Added gobs of stuff, see wxPython/README.txt for details
175 # Revision 1.5 1999/02/20 09:04:43 RD
176 # Added wxWindow_FromHWND(hWnd) for wxMSW to construct a wxWindow from a
177 # window handle. If you can get the window handle into the python code,
178 # it should just work... More news on this later.
180 # Added wxImageList, wxToolTip.
182 # Re-enabled wxConfig.DeleteAll() since it is reportedly fixed for the
185 # As usual, some bug fixes, tweaks, etc.
187 # Revision 1.4 1998/12/16 22:12:46 RD
189 # Tweaks needed to be able to build wxPython with wxGTK.
191 # Revision 1.3 1998/12/15 20:44:35 RD
192 # Changed the import semantics from "from wxPython import *" to "from
193 # wxPython.wx import *" This is for people who are worried about
194 # namespace pollution, they can use "from wxPython import wx" and then
195 # prefix all the wxPython identifiers with "wx."
197 # Added wxTaskbarIcon for wxMSW.
199 # Made the events work for wxGrid.
203 # Added wxMiniFrame for wxGTK, (untested.)
205 # Changed many of the args and return values that were pointers to gdi
206 # objects to references to reflect changes in the wxWindows API.
208 # Other assorted fixes and additions.
210 # Revision 1.2 1998/08/22 19:51:17 RD
211 # some tweaks for wxGTK
213 # Revision 1.1 1998/08/09 08:28:05 RD