1999-07-31 03:56:15 -04:00
|
|
|
#!/usr/bin/env python
|
1999-04-29 23:29:54 -04:00
|
|
|
#----------------------------------------------------------------------------
|
|
|
|
# Name: DialogUnits.py
|
|
|
|
# Purpose: A minimal wxPython program that is a bit smarter than test1.
|
|
|
|
#
|
|
|
|
# Author: Robin Dunn
|
|
|
|
#
|
|
|
|
# Created: A long time ago, in a galaxy far, far away...
|
|
|
|
# RCS-ID: $Id$
|
|
|
|
# Copyright: (c) 1998 by Total Control Software
|
|
|
|
# Licence: wxWindows license
|
|
|
|
#----------------------------------------------------------------------------
|
2003-12-08 20:23:28 -05:00
|
|
|
#
|
1999-04-29 23:29:54 -04:00
|
|
|
|
2003-12-08 20:23:28 -05:00
|
|
|
import wx
|
1999-04-29 23:29:54 -04:00
|
|
|
|
|
|
|
#---------------------------------------------------------------------------
|
|
|
|
|
2003-12-08 20:23:28 -05:00
|
|
|
# Create a new frame class, derived from the wxPython Frame.
|
|
|
|
class MyFrame(wx.Frame):
|
1999-04-29 23:29:54 -04:00
|
|
|
|
|
|
|
def __init__(self, parent, id, title):
|
|
|
|
# First, call the base class' __init__ method to create the frame
|
2003-12-08 20:23:28 -05:00
|
|
|
wx.Frame.__init__(self, parent, id, title, (100, 100), (160, 100))
|
1999-04-29 23:29:54 -04:00
|
|
|
|
|
|
|
# Associate some events with methods of this class
|
2003-12-08 20:23:28 -05:00
|
|
|
self.Bind(wx.EVT_SIZE, self.OnSize)
|
|
|
|
self.Bind(wx.EVT_MOVE, self.OnMove)
|
|
|
|
self.Bind(wx.EVT_CLOSE, self.OnCloseWindow)
|
1999-04-29 23:29:54 -04:00
|
|
|
|
|
|
|
# Add a panel and some controls to display the size and position
|
2003-12-08 20:23:28 -05:00
|
|
|
panel = wx.Panel(self, -1)
|
1999-04-29 23:29:54 -04:00
|
|
|
|
2003-12-08 20:23:28 -05:00
|
|
|
wx.StaticText(panel, -1, "Size:",
|
|
|
|
wx.DLG_PNT(panel, (4, 4)), wx.DefaultSize
|
|
|
|
)
|
1999-04-29 23:29:54 -04:00
|
|
|
|
2003-12-08 20:23:28 -05:00
|
|
|
wx.StaticText(panel, -1, "Pos:",
|
|
|
|
wx.DLG_PNT(panel, (4, 16)), wx.DefaultSize
|
|
|
|
)
|
1999-07-31 03:56:15 -04:00
|
|
|
|
2003-12-08 20:23:28 -05:00
|
|
|
self.sizeCtrl = wx.TextCtrl(panel, -1, "",
|
|
|
|
wx.DLG_PNT(panel, (24, 4)),
|
|
|
|
wx.DLG_SZE(panel, (36, -1)),
|
|
|
|
wx.TE_READONLY)
|
|
|
|
|
|
|
|
self.posCtrl = wx.TextCtrl(panel, -1, "",
|
|
|
|
wx.DLG_PNT(panel, (24, 16)),
|
|
|
|
wx.DLG_SZE(panel, (36, -1)),
|
|
|
|
wx.TE_READONLY)
|
|
|
|
|
|
|
|
#print wx.DLG_PNT(panel, (24, 4)), wx.DLG_SZE(panel, (36, -1))
|
|
|
|
#print wx.DLG_PNT(panel, (24, 16)),wx.DLG_SZE(panel, (36, -1))
|
1999-04-29 23:29:54 -04:00
|
|
|
|
|
|
|
# This method is called automatically when the CLOSE event is
|
|
|
|
# sent to this window
|
|
|
|
def OnCloseWindow(self, event):
|
|
|
|
# tell the window to kill itself
|
|
|
|
self.Destroy()
|
|
|
|
|
|
|
|
# This method is called by the System when the window is resized,
|
|
|
|
# because of the association above.
|
|
|
|
def OnSize(self, event):
|
|
|
|
size = event.GetSize()
|
|
|
|
self.sizeCtrl.SetValue("%s, %s" % (size.width, size.height))
|
|
|
|
|
|
|
|
# tell the event system to continue looking for an event handler,
|
|
|
|
# so the default handler will get called.
|
|
|
|
event.Skip()
|
|
|
|
|
|
|
|
# This method is called by the System when the window is moved,
|
|
|
|
# because of the association above.
|
|
|
|
def OnMove(self, event):
|
|
|
|
pos = event.GetPosition()
|
|
|
|
self.posCtrl.SetValue("%s, %s" % (pos.x, pos.y))
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#---------------------------------------------------------------------------
|
|
|
|
# if running standalone
|
|
|
|
|
|
|
|
if __name__ == "__main__":
|
|
|
|
# Every wxWindows application must have a class derived from wxApp
|
2003-12-08 20:23:28 -05:00
|
|
|
class MyApp(wx.App):
|
1999-04-29 23:29:54 -04:00
|
|
|
|
|
|
|
# wxWindows calls this method to initialize the application
|
|
|
|
def OnInit(self):
|
|
|
|
|
|
|
|
# Create an instance of our customized Frame class
|
2001-05-18 17:59:59 -04:00
|
|
|
frame = MyFrame(None, -1, "This is a test")
|
2003-03-25 01:35:27 -05:00
|
|
|
frame.Show(True)
|
1999-04-29 23:29:54 -04:00
|
|
|
|
|
|
|
# Tell wxWindows that this is our main window
|
|
|
|
self.SetTopWindow(frame)
|
|
|
|
|
|
|
|
# Return a success flag
|
2003-03-25 01:35:27 -05:00
|
|
|
return True
|
1999-04-29 23:29:54 -04:00
|
|
|
|
|
|
|
|
|
|
|
app = MyApp(0) # Create an instance of the application class
|
|
|
|
app.MainLoop() # Tell it to start processing events
|
|
|
|
|
|
|
|
|
|
|
|
#---------------------------------------------------------------------------
|
|
|
|
# if running as part of the Demo Framework...
|
|
|
|
|
|
|
|
def runTest(frame, nb, log):
|
|
|
|
win = MyFrame(frame, -1, "This is a test")
|
|
|
|
frame.otherWin = win
|
2003-03-25 01:35:27 -05:00
|
|
|
win.Show(True)
|
1999-04-29 23:29:54 -04:00
|
|
|
|
|
|
|
|
|
|
|
overview = """\
|
|
|
|
A simple example that shows how to use Dialog Units.
|
|
|
|
"""
|
|
|
|
|
|
|
|
#----------------------------------------------------------------------------
|
|
|
|
#
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|