]> git.saurik.com Git - wxWidgets.git/blobdiff - wxPython/demo/wxNotebook.py
Applied patch [ 827011 ] Event-based processing of item tooltips in wxTreeCtrl
[wxWidgets.git] / wxPython / demo / wxNotebook.py
index df761009353be026e9ae258db4fb37c7f0c6ba37..2b6b72315b3847749c9b66331fb22cbf69389d93 100644 (file)
@@ -1,37 +1,58 @@
+# 11/20/2003 - Jeff Grimmett (grimmtooth@softhome.net)
+#
+# o Updated for wx namespace
+# 
 
 
-from   wxPython.wx import *
+import  sys
 
 
-import ColorPanel
-import GridSimple
-import wxListCtrl
-import wxScrolledWindow
+import  wx
 
 
-import sys
+import  ColorPanel
+import  GridSimple
+import  wxListCtrl
+import  wxScrolledWindow
+import  images
 
 #----------------------------------------------------------------------------
 
 
 #----------------------------------------------------------------------------
 
-class TestNB(wxNotebook):
+class TestNB(wx.Notebook):
     def __init__(self, parent, id, log):
     def __init__(self, parent, id, log):
-        wxNotebook.__init__(self, parent, id, style=wxNB_BOTTOM)
+        wx.Notebook.__init__(self, parent, id, style=
+                            #wxNB_TOP
+                            wx.NB_BOTTOM
+                            #wxNB_LEFT
+                            #wxNB_RIGHT
+                            )
         self.log = log
 
         self.log = log
 
-        win = ColorPanel.ColoredPanel(self, wxBLUE)
+        win = self.makeColorPanel(wx.BLUE)
         self.AddPage(win, "Blue")
         self.AddPage(win, "Blue")
-        st = wxStaticText(win, -1,
+        st = wx.StaticText(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.",
-                          wxPoint(10, 10))
-        st.SetForegroundColour(wxWHITE)
-        st.SetBackgroundColour(wxBLUE)
+                          (10, 10))
 
 
-        win = ColorPanel.ColoredPanel(self, wxRED)
+        st.SetForegroundColour(wx.WHITE)
+        st.SetBackgroundColour(wx.BLUE)
+
+        # Show how to put an image on one of the notebook tabs,
+        # first make the image list:
+        il = wx.ImageList(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(wx.RED)
         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(wx.GREEN)
         self.AddPage(win, "Green")
 
         win = GridSimple.SimpleGrid(self, log)
         self.AddPage(win, "Green")
 
         win = GridSimple.SimpleGrid(self, log)
@@ -40,38 +61,50 @@ 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(wx.CYAN)
         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(wx.NamedColour('MIDNIGHT BLUE'))
         self.AddPage(win, "MIDNIGHT BLUE")
 
         self.AddPage(win, "MIDNIGHT BLUE")
 
-        win = ColorPanel.ColoredPanel(self, wxNamedColour('INDIAN RED'))
+        win = self.makeColorPanel(wx.NamedColour('INDIAN RED'))
         self.AddPage(win, "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.Bind(wx.EVT_NOTEBOOK_PAGE_CHANGED, self.OnPageChanged)
+        self.Bind(wx.EVT_NOTEBOOK_PAGE_CHANGING, self.OnPageChanging)
+
+
+    def makeColorPanel(self, color):
+        p = wx.Panel(self, -1)
+        win = ColorPanel.ColoredPanel(p, color)
+        p.win = win
 
 
+        def OnCPSize(evt, win=win):
+            win.SetSize(evt.GetSize())
+
+        p.Bind(wx.EVT_SIZE, 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):
@@ -81,30 +114,26 @@ def runTest(frame, nb, log):
 #----------------------------------------------------------------------------
 
 
 #----------------------------------------------------------------------------
 
 
-
-
-
-
-
-
-
-
-
-
 overview = """\
 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.
+<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__":
-    app = wxPySimpleApp()
-    frame = wxFrame(None, -1, "Test Notebook", size=(600, 400))
-    win = TestNB(frame, -1, sys.stdout)
-    frame.Show(true)
-    app.MainLoop()
+if __name__ == '__main__':
+    import sys,os
+    import run
+    run.main(['', os.path.basename(sys.argv[0])])
+
+