]> git.saurik.com Git - wxWidgets.git/blobdiff - wxPython/demo/wxNotebook.py
removed second parameter from GetFirstChild calls
[wxWidgets.git] / wxPython / demo / wxNotebook.py
index df761009353be026e9ae258db4fb37c7f0c6ba37..1f46c2c6e87fa352ff4a092a47e32b97fb6e6c9e 100644 (file)
@@ -5,6 +5,7 @@ import ColorPanel
 import GridSimple
 import wxListCtrl
 import wxScrolledWindow
 import GridSimple
 import wxListCtrl
 import wxScrolledWindow
+import images
 
 import sys
 
 
 import sys
 
@@ -12,12 +13,17 @@ import sys
 
 class TestNB(wxNotebook):
     def __init__(self, parent, id, log):
 
 class TestNB(wxNotebook):
     def __init__(self, parent, id, log):
-        wxNotebook.__init__(self, parent, id, style=wxNB_BOTTOM)
+        wxNotebook.__init__(self, parent, id, style=
+                            #wxNB_TOP
+                            wxNB_BOTTOM
+                            #wxNB_LEFT
+                            #wxNB_RIGHT
+                            )
         self.log = log
 
         self.log = log
 
-        win = ColorPanel.ColoredPanel(self, wxBLUE)
+        win = self.makeColorPanel(wxBLUE)
         self.AddPage(win, "Blue")
         self.AddPage(win, "Blue")
-        st = wxStaticText(win, -1,
+        st = wxStaticText(win.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.",
                           "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.",
@@ -25,13 +31,23 @@ class TestNB(wxNotebook):
         st.SetForegroundColour(wxWHITE)
         st.SetBackgroundColour(wxBLUE)
 
         st.SetForegroundColour(wxWHITE)
         st.SetBackgroundColour(wxBLUE)
 
-        win = ColorPanel.ColoredPanel(self, wxRED)
+        # Show how to put an image on one of the notebook tabs,
+        # first make the image list:
+        il = wxImageList(16, 16)
+        idx1 = il.Add(images.getSmilesBitmap())
+        self.AssignImageList(il)
+
+        # now put an image on the first tab we just created:
+        self.SetPageImage(0, idx1)
+
+
+        win = self.makeColorPanel(wxRED)
         self.AddPage(win, "Red")
 
         win = wxScrolledWindow.MyCanvas(self)
         self.AddPage(win, 'ScrolledWindow')
 
         self.AddPage(win, "Red")
 
         win = wxScrolledWindow.MyCanvas(self)
         self.AddPage(win, 'ScrolledWindow')
 
-        win = ColorPanel.ColoredPanel(self, wxGREEN)
+        win = self.makeColorPanel(wxGREEN)
         self.AddPage(win, "Green")
 
         win = GridSimple.SimpleGrid(self, log)
         self.AddPage(win, "Green")
 
         win = GridSimple.SimpleGrid(self, log)
@@ -40,38 +56,49 @@ class TestNB(wxNotebook):
         win = wxListCtrl.TestListCtrlPanel(self, log)
         self.AddPage(win, 'List')
 
         win = wxListCtrl.TestListCtrlPanel(self, log)
         self.AddPage(win, 'List')
 
-        win = ColorPanel.ColoredPanel(self, wxCYAN)
+        win = self.makeColorPanel(wxCYAN)
         self.AddPage(win, "Cyan")
 
         self.AddPage(win, "Cyan")
 
-        win = ColorPanel.ColoredPanel(self, wxWHITE)
-        self.AddPage(win, "White")
+##         win = self.makeColorPanel(wxWHITE)
+##         self.AddPage(win, "White")
 
 
-        win = ColorPanel.ColoredPanel(self, wxBLACK)
-        self.AddPage(win, "Black")
+##         win = self.makeColorPanel(wxBLACK)
+##         self.AddPage(win, "Black")
 
 
-        win = ColorPanel.ColoredPanel(self, wxNamedColour('MIDNIGHT BLUE'))
+        win = self.makeColorPanel(wxNamedColour('MIDNIGHT BLUE'))
         self.AddPage(win, "MIDNIGHT BLUE")
 
         self.AddPage(win, "MIDNIGHT BLUE")
 
-        win = ColorPanel.ColoredPanel(self, wxNamedColour('INDIAN RED'))
+        win = self.makeColorPanel(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)
 
 
         self.AddPage(win, "INDIAN RED")
 
         EVT_NOTEBOOK_PAGE_CHANGED(self, self.GetId(), self.OnPageChanged)
         EVT_NOTEBOOK_PAGE_CHANGING(self, self.GetId(), self.OnPageChanging)
 
 
+    def makeColorPanel(self, color):
+        p = wxPanel(self, -1)
+        win = ColorPanel.ColoredPanel(p, color)
+        p.win = win
+        def OnCPSize(evt, win=win):
+            win.SetSize(evt.GetSize())
+        EVT_SIZE(p, OnCPSize)
+        return p
+
+
     def OnPageChanged(self, event):
         old = event.GetOldSelection()
         new = event.GetSelection()
     def OnPageChanged(self, event):
         old = event.GetOldSelection()
         new = event.GetSelection()
-        self.log.write('OnPageChanged, old:%d, new:%d\n' % (old, new))
+        sel = self.GetSelection()
+        self.log.write('OnPageChanged,  old:%d, new:%d, sel:%d\n' % (old, new, sel))
         event.Skip()
 
     def OnPageChanging(self, event):
         old = event.GetOldSelection()
         new = event.GetSelection()
         event.Skip()
 
     def OnPageChanging(self, event):
         old = event.GetOldSelection()
         new = event.GetSelection()
-        self.log.write('OnPageChanging, old:%d, new:%d\n' % (old, new))
+        sel = self.GetSelection()
+        self.log.write('OnPageChanging, old:%d, new:%d, sel:%d\n' % (old, new, sel))
         event.Skip()
 
         event.Skip()
 
-
 #----------------------------------------------------------------------------
 
 def runTest(frame, nb, log):
 #----------------------------------------------------------------------------
 
 def runTest(frame, nb, log):
@@ -83,28 +110,27 @@ def runTest(frame, nb, log):
 
 
 
 
 
 
+overview = """\
+<html><body>
+<h2>wxNotebook</h2>
+<p>
+This class represents a notebook control, which manages multiple
+windows with associated tabs.
+<p>
+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__':
+    import sys,os
+    import run
+    run.main(['', os.path.basename(sys.argv[0])])
 
 
 
 
 
 
 
 
-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()
-
-