wxWidgets/wxPython/demo/wxNotebook.py
Robin Dunn eb0f373c99 Fixes and other changes to the demo and some library modules so they
work better (or at all) on wxMac


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@16500 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-08-13 23:59:08 +00:00

111 lines
3.0 KiB
Python

from wxPython.wx import *
import ColorPanel
import GridSimple
import wxListCtrl
import wxScrolledWindow
import sys
#----------------------------------------------------------------------------
class TestNB(wxNotebook):
def __init__(self, parent, id, log):
wxNotebook.__init__(self, parent, id, style=wxNB_BOTTOM)
self.log = log
win = ColorPanel.ColoredPanel(self, wxBLUE)
self.AddPage(win, "Blue")
st = wxStaticText(win, -1,
"You can put nearly any type of window here,\n"
"and if the platform supports it then the\n"
"tabs can be on any side of the notebook.",
wxPoint(10, 10))
st.SetForegroundColour(wxWHITE)
st.SetBackgroundColour(wxBLUE)
win = ColorPanel.ColoredPanel(self, wxRED)
self.AddPage(win, "Red")
win = wxScrolledWindow.MyCanvas(self)
self.AddPage(win, 'ScrolledWindow')
win = ColorPanel.ColoredPanel(self, wxGREEN)
self.AddPage(win, "Green")
win = GridSimple.SimpleGrid(self, log)
self.AddPage(win, "Grid")
win = wxListCtrl.TestListCtrlPanel(self, log)
self.AddPage(win, 'List')
win = ColorPanel.ColoredPanel(self, wxCYAN)
self.AddPage(win, "Cyan")
win = ColorPanel.ColoredPanel(self, wxWHITE)
self.AddPage(win, "White")
win = ColorPanel.ColoredPanel(self, wxBLACK)
self.AddPage(win, "Black")
win = ColorPanel.ColoredPanel(self, wxNamedColour('MIDNIGHT BLUE'))
self.AddPage(win, "MIDNIGHT BLUE")
win = ColorPanel.ColoredPanel(self, wxNamedColour('INDIAN RED'))
self.AddPage(win, "INDIAN RED")
EVT_NOTEBOOK_PAGE_CHANGED(self, self.GetId(), self.OnPageChanged)
EVT_NOTEBOOK_PAGE_CHANGING(self, self.GetId(), self.OnPageChanging)
def OnPageChanged(self, event):
old = event.GetOldSelection()
new = event.GetSelection()
self.log.write('OnPageChanged, old:%d, new:%d\n' % (old, new))
event.Skip()
def OnPageChanging(self, event):
old = event.GetOldSelection()
new = event.GetSelection()
self.log.write('OnPageChanging, old:%d, new:%d\n' % (old, new))
event.Skip()
#----------------------------------------------------------------------------
def runTest(frame, nb, log):
testWin = TestNB(nb, -1, log)
return testWin
#----------------------------------------------------------------------------
overview = """\
This class represents a notebook control, which manages multiple windows with associated tabs.
To use the class, create a wxNotebook object and call AddPage or InsertPage, passing a window to be used as the page. Do not explicitly delete the window for a page that is currently managed by wxNotebook.
"""
if __name__ == "__main__":
app = wxPySimpleApp()
frame = wxFrame(None, -1, "Test Notebook", size=(600, 400))
win = TestNB(frame, -1, sys.stdout)
frame.Show(true)
app.MainLoop()