7bf854050f
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@485 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
145 lines
4.1 KiB
Python
145 lines
4.1 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 import *
|
|
|
|
|
|
#---------------------------------------------------------------------------
|
|
|
|
class MyCanvas(wxWindow):
|
|
def OnPaint(self, event):
|
|
dc = wxPaintDC(self)
|
|
dc.BeginDrawing()
|
|
w, h = self.GetClientSize()
|
|
font = wxFont(42, wxSWISS, wxNORMAL, wxNORMAL)
|
|
dc.SetFont(font)
|
|
st = "Python Rules!"
|
|
tw,th, d,e = dc.GetTextExtent(st)
|
|
dc.DrawText(st, (w-tw)/2, (h-th)/2)
|
|
dc.EndDrawing()
|
|
|
|
#---------------------------------------------------------------------------
|
|
|
|
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(3)
|
|
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)
|
|
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):
|
|
w,h = self.GetClientSize()
|
|
self.canvas.SetSize(wxSize(w, h))
|
|
self.SetStatusText("hello, this is a test: (%d, %d)" % (w,h))
|
|
|
|
## 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:
|
|
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)
|
|
|
|
|
|
|
|
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.1 1998/08/09 08:28:05 RD
|
|
# Initial version
|
|
#
|
|
#
|