b8b8dda730
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. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@1205 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
176 lines
5.2 KiB
Python
176 lines
5.2 KiB
Python
#!/bin/env python
|
|
#----------------------------------------------------------------------------
|
|
# Name: test3.py
|
|
# Purpose: Testing menus and status lines
|
|
#
|
|
# Author: Robin Dunn
|
|
#
|
|
# Created:
|
|
# RCS-ID: $Id$
|
|
# Copyright: (c) 1998 by Total Control Software
|
|
# Licence: wxWindows license
|
|
#----------------------------------------------------------------------------
|
|
|
|
|
|
from wxPython.wx import *
|
|
|
|
|
|
#---------------------------------------------------------------------------
|
|
|
|
class MyCanvas(wxWindow):
|
|
def __init__(self, parent, ID):
|
|
wxWindow.__init__(self, parent, ID)
|
|
self.SetBackgroundColour(wxNamedColor("WHITE"))
|
|
|
|
def OnPaint(self, event):
|
|
dc = wxPaintDC(self)
|
|
dc.BeginDrawing()
|
|
size = self.GetClientSize()
|
|
font = wxFont(42, wxSWISS, wxNORMAL, wxNORMAL)
|
|
dc.SetFont(font)
|
|
st = "Python Rules!"
|
|
tw,th, d,e = dc.GetTextExtent(st)
|
|
dc.DrawText(st, (size.width-tw)/2, (size.height-th)/2)
|
|
dc.EndDrawing()
|
|
|
|
#---------------------------------------------------------------------------
|
|
|
|
if wxPlatform == '__WXMSW__':
|
|
class MyMiniFrame(wxMiniFrame):
|
|
def __init__(self, parent, ID, title, pos, size, style):
|
|
wxMiniFrame.__init__(self, parent, ID, title, pos, size, style)
|
|
panel = wxPanel(self, -1)
|
|
ID = NewId()
|
|
button = wxButton(panel, ID, "Close Me")
|
|
button.SetPosition(wxPoint(15, 15))
|
|
self.Connect(ID, -1, wxEVT_COMMAND_BUTTON_CLICKED, self.OnCloseMe)
|
|
|
|
def OnCloseMe(self, event):
|
|
self.Close(true)
|
|
|
|
def OnCloseWindow(self, event):
|
|
self.Destroy()
|
|
|
|
#---------------------------------------------------------------------------
|
|
|
|
class MyFrame(wxFrame):
|
|
def __init__(self, parent, id, title):
|
|
wxFrame.__init__(self, parent, id, title, wxPyDefaultPosition,
|
|
wxSize(420, 200))
|
|
self.canvas = MyCanvas(self, -1)
|
|
self.CreateStatusBar(2)
|
|
mainmenu = wxMenuBar()
|
|
menu = wxMenu()
|
|
menu.Append(100, 'A &Menu Item', 'the help text')
|
|
menu.Append(101, '&Another', 'Grok!')
|
|
menu.AppendSeparator()
|
|
menu.Append(200, 'E&xit', 'Get the heck outta here!')
|
|
mainmenu.Append(menu, "&It's a menu!")
|
|
self.SetMenuBar(mainmenu)
|
|
if wxPlatform == '__WXMSW__':
|
|
print menu.GetHelpString(100)
|
|
print mainmenu.GetHelpString(101)
|
|
print mainmenu.GetHelpString(200)
|
|
self.DragAcceptFiles(true)
|
|
|
|
self.Connect(-1, -1, wxEVT_COMMAND_MENU_SELECTED, self.OnMenuCommand)
|
|
self.Connect(-1, -1, wxEVT_DROP_FILES, self.OnDropFiles)
|
|
|
|
|
|
|
|
def OnCloseWindow(self, event):
|
|
print 'OnCloseWindow'
|
|
self.Destroy()
|
|
|
|
|
|
def OnSize(self, event):
|
|
size = self.GetClientSize()
|
|
self.canvas.SetSize(size)
|
|
self.SetStatusText("hello, this is a test: (%d, %d)" % (size.width, size.height), 1)
|
|
|
|
## def OnMenuHighlight(self, event):
|
|
## mainmenu = self.GetMenuBar()
|
|
## st = mainmenu.GetHelpString(event.GetMenuId())
|
|
## self.SetStatusText('['+st+']', 0)
|
|
|
|
def OnMenuCommand(self, event):
|
|
# why isn't this a wxMenuEvent???
|
|
print event, event.GetInt()
|
|
if event.GetInt() == 200:
|
|
self.Close()
|
|
elif event.GetInt() == 101:
|
|
if wxPlatform == '__WXMSW__':
|
|
win = MyMiniFrame(self, -1, "This is a Mini...",
|
|
wxPoint(-1, -1), #wxPyDefaultPosition,
|
|
wxSize(150, 150),
|
|
wxMINIMIZE_BOX | wxMAXIMIZE_BOX |
|
|
wxTHICK_FRAME | wxSYSTEM_MENU |
|
|
wxTINY_CAPTION_HORIZ)
|
|
win.Show(true)
|
|
else:
|
|
print 'Sorry, can\'t do mini\'s...'
|
|
|
|
|
|
|
|
def OnDropFiles(self, event):
|
|
fileList = event.GetFiles()
|
|
for file in fileList:
|
|
print file
|
|
|
|
|
|
#---------------------------------------------------------------------------
|
|
|
|
|
|
class MyApp(wxApp):
|
|
def OnInit(self):
|
|
frame = MyFrame(NULL, -1, "Test 3")
|
|
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 1998/12/15 20:44:35 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.2 1998/08/22 19:51:17 RD
|
|
# some tweaks for wxGTK
|
|
#
|
|
# Revision 1.1 1998/08/09 08:28:05 RD
|
|
# Initial version
|
|
#
|
|
#
|