true/false or TRUE/FALSE to prepare for the new boolean type and constants being added to Python. Added code to wx.py to test for the existence of the new constants and to create suitable values if not present. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19335 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
143 lines
4.3 KiB
Python
143 lines
4.3 KiB
Python
#!/usr/bin/env python
|
|
|
|
from wxPython.wx import *
|
|
from wxScrolledWindow import MyCanvas
|
|
|
|
#----------------------------------------------------------------------
|
|
|
|
class MyParentFrame(wxMDIParentFrame):
|
|
ID_WINDOW_TOP = 5100
|
|
ID_WINDOW_LEFT1 = 5101
|
|
ID_WINDOW_LEFT2 = 5102
|
|
ID_WINDOW_BOTTOM = 5103
|
|
|
|
def __init__(self):
|
|
wxMDIParentFrame.__init__(self, None, -1, "MDI Parent", size=(600,400),
|
|
style = wxDEFAULT_FRAME_STYLE | wxHSCROLL | wxVSCROLL)
|
|
|
|
self.winCount = 0
|
|
menu = wxMenu()
|
|
menu.Append(5000, "&New Window")
|
|
menu.AppendSeparator()
|
|
menu.Append(5001, "E&xit")
|
|
|
|
menubar = wxMenuBar()
|
|
menubar.Append(menu, "&File")
|
|
self.SetMenuBar(menubar)
|
|
|
|
#self.CreateStatusBar()
|
|
|
|
EVT_MENU(self, 5000, self.OnNewWindow)
|
|
EVT_MENU(self, 5001, self.OnExit)
|
|
|
|
|
|
EVT_SASH_DRAGGED_RANGE(self,
|
|
self.ID_WINDOW_TOP, self.ID_WINDOW_BOTTOM,
|
|
self.OnSashDrag)
|
|
EVT_SIZE(self, self.OnSize)
|
|
|
|
|
|
# Create some layout windows
|
|
# A window like a toolbar
|
|
win = wxSashLayoutWindow(self, self.ID_WINDOW_TOP, style = wxNO_BORDER|wxSW_3D)
|
|
win.SetDefaultSize((1000, 30))
|
|
win.SetOrientation(wxLAYOUT_HORIZONTAL)
|
|
win.SetAlignment(wxLAYOUT_TOP)
|
|
win.SetBackgroundColour(wxColour(255, 0, 0))
|
|
win.SetSashVisible(wxSASH_BOTTOM, True)
|
|
|
|
self.topWindow = win
|
|
|
|
|
|
# A window like a statusbar
|
|
win = wxSashLayoutWindow(self, self.ID_WINDOW_BOTTOM, style = wxNO_BORDER|wxSW_3D)
|
|
win.SetDefaultSize((1000, 30))
|
|
win.SetOrientation(wxLAYOUT_HORIZONTAL)
|
|
win.SetAlignment(wxLAYOUT_BOTTOM)
|
|
win.SetBackgroundColour(wxColour(0, 0, 255))
|
|
win.SetSashVisible(wxSASH_TOP, True)
|
|
|
|
self.bottomWindow = win
|
|
|
|
|
|
# A window to the left of the client window
|
|
win = wxSashLayoutWindow(self, self.ID_WINDOW_LEFT1, style = wxNO_BORDER|wxSW_3D)
|
|
win.SetDefaultSize((120, 1000))
|
|
win.SetOrientation(wxLAYOUT_VERTICAL)
|
|
win.SetAlignment(wxLAYOUT_LEFT)
|
|
win.SetBackgroundColour(wxColour(0, 255, 0))
|
|
win.SetSashVisible(wxSASH_RIGHT, True)
|
|
win.SetExtraBorderSize(10)
|
|
textWindow = wxTextCtrl(win, -1, "", wxDefaultPosition, wxDefaultSize,
|
|
wxTE_MULTILINE|wxSUNKEN_BORDER)
|
|
textWindow.SetValue("A sub window")
|
|
|
|
self.leftWindow1 = win
|
|
|
|
|
|
# Another window to the left of the client window
|
|
win = wxSashLayoutWindow(self, self.ID_WINDOW_LEFT2, style = wxNO_BORDER|wxSW_3D)
|
|
win.SetDefaultSize((120, 1000))
|
|
win.SetOrientation(wxLAYOUT_VERTICAL)
|
|
win.SetAlignment(wxLAYOUT_LEFT)
|
|
win.SetBackgroundColour(wxColour(0, 255, 255))
|
|
win.SetSashVisible(wxSASH_RIGHT, True)
|
|
|
|
self.leftWindow2 = win
|
|
|
|
|
|
def OnSashDrag(self, event):
|
|
if event.GetDragStatus() == wxSASH_STATUS_OUT_OF_RANGE:
|
|
return
|
|
|
|
eID = event.GetId()
|
|
if eID == self.ID_WINDOW_TOP:
|
|
self.topWindow.SetDefaultSize(wxSize(1000, event.GetDragRect().height))
|
|
|
|
elif eID == self.ID_WINDOW_LEFT1:
|
|
self.leftWindow1.SetDefaultSize(wxSize(event.GetDragRect().width, 1000))
|
|
|
|
|
|
elif eID == self.ID_WINDOW_LEFT2:
|
|
self.leftWindow2.SetDefaultSize(wxSize(event.GetDragRect().width, 1000))
|
|
|
|
elif eID == self.ID_WINDOW_BOTTOM:
|
|
self.bottomWindow.SetDefaultSize(wxSize(1000, event.GetDragRect().height))
|
|
|
|
wxLayoutAlgorithm().LayoutMDIFrame(self)
|
|
self.GetClientWindow().Refresh()
|
|
|
|
|
|
def OnSize(self, event):
|
|
wxLayoutAlgorithm().LayoutMDIFrame(self)
|
|
|
|
|
|
def OnExit(self, evt):
|
|
self.Close(True)
|
|
|
|
|
|
def OnNewWindow(self, evt):
|
|
self.winCount = self.winCount + 1
|
|
win = wxMDIChildFrame(self, -1, "Child Window: %d" % self.winCount)
|
|
canvas = MyCanvas(win)
|
|
win.Show(True)
|
|
|
|
|
|
#----------------------------------------------------------------------
|
|
|
|
if __name__ == '__main__':
|
|
class MyApp(wxApp):
|
|
def OnInit(self):
|
|
wxInitAllImageHandlers()
|
|
frame = MyParentFrame()
|
|
frame.Show(True)
|
|
self.SetTopWindow(frame)
|
|
return True
|
|
|
|
|
|
app = MyApp(0)
|
|
app.MainLoop()
|
|
|
|
|
|
|