]> git.saurik.com Git - wxWidgets.git/blobdiff - wxPython/wx/lib/splitter.py
compilation fix after removing wxImage(wxImage *) ctor
[wxWidgets.git] / wxPython / wx / lib / splitter.py
index 2930cbab21b60918b2cfd55d01d6d80234d30979..56c3dafe6018ece4f71e1d277e464eb07d2c4a7b 100644 (file)
@@ -29,7 +29,7 @@ class MultiSplitterWindow(wx.PyPanel):
     allows for more than two windows and more than one sash.  Many of
     the same styles, constants, and methods behave the same as in
     wx.SplitterWindow.  The key differences are seen in the methods
-    that deal with the child windows manage by the splitter, and also
+    that deal with the child windows managed by the splitter, and also
     those that deal with the sash positions.  In most cases you will
     need to pass an index value to tell the class which window or sash
     you are refering to.
@@ -38,7 +38,7 @@ class MultiSplitterWindow(wx.PyPanel):
     wx.SplitterWindow.  Since the wx.Splitterwindow has only one sash
     you can think of it's position as either relative to the whole
     splitter window, or as relative to the first window pane managed
-    by the splitter.  Once there are more than one sash then the
+    by the splitter.  Once there is more than one sash then the
     distinciton between the two concepts needs to be clairified.  I've
     chosen to use the second definition, and sash positions are the
     distance (either horizontally or vertically) from the origin of
@@ -130,13 +130,17 @@ class MultiSplitterWindow(wx.PyPanel):
 
     def AppendWindow(self, window, sashPos=-1):
         """
-        Add a new window to the splitter.  If sashPos is given then it is the 
+        Add a new window to the splitter at the right side or bottom
+        of the window stack.  If sashPos is given then it is used to
+        size the new window.
         """
         self.InsertWindow(sys.maxint, window, sashPos)
 
 
     def InsertWindow(self, idx, window, sashPos=-1):
         """
+        Insert a new window into the splitter at the position given in
+        ``idx``.
         """
         assert window not in self._windows, "A window can only be in the splitter once!"
         self._windows.insert(idx, window)
@@ -688,8 +692,8 @@ class MultiSplitterWindow(wx.PyPanel):
             self._windows[0].SetDimensions(border, border,
                                            cw - 2*border, ch - 2*border)
         else:
-            for win in self._windows:
-                win.Freeze()
+            if 'wxMSW' in wx.PlatformInfo:
+                self.Freeze()
             if self._orient == wx.HORIZONTAL:
                 x = y = border
                 h = ch - 2*border
@@ -712,8 +716,8 @@ class MultiSplitterWindow(wx.PyPanel):
                 self._windows[idx+1].SetDimensions(x, y, w, last)
                 if last > 0:
                     self._sashes[idx+1] = last
-            for win in self._windows:
-                win.Thaw()
+            if 'wxMSW' in wx.PlatformInfo:
+                self.Thaw()
                 
         self._DrawSash(wx.ClientDC(self))
         self._needUpdating = False
@@ -766,62 +770,3 @@ class MultiSplitterEvent(wx.PyCommandEvent):
 
 
 
-
-if __name__ == "__main__":
-
-    def OnChanged(evt):
-        print "Changed:", evt.GetSashIdx(), evt.GetSashPosition()
-    def OnChanging(evt):
-        print "Changing:", evt.GetSashIdx(), evt.GetSashPosition()
-        
-    
-    app = wx.App(0)
-    frm = wx.Frame(None, title="tester", size=(640,480))
-
-    #frm.Bind(wx.EVT_SPLITTER_SASH_POS_CHANGED, OnChanged)
-    #frm.Bind(wx.EVT_SPLITTER_SASH_POS_CHANGING, OnChanging)
-
-    #sty = 0
-    #sty = wx.SP_3DBORDER
-    #sty = wx.SP_NOSASH
-    sty = wx.SP_LIVE_UPDATE
-
-    splitter = MultiSplitterWindow(frm, style=sty)
-    #splitter.SetOrientation(wx.VERTICAL)
-    splitter.SetMinimumPaneSize(25)
-
-    #sty = wx.BORDER_NONE
-    #sty = wx.BORDER_SIMPLE
-    sty = wx.BORDER_SUNKEN
-    
-    p1 = wx.Window(splitter, style=sty)
-    p1.SetBackgroundColour("pink")
-    wx.StaticText(p1, -1, "Panel One", (5,5))
-
-    p2 = wx.Window(splitter, style=sty)
-    p2.SetBackgroundColour("sky blue")
-    wx.StaticText(p2, -1, "Panel Two", (5,5))
-    p2.SetMinSize((50,50))
-    
-    p3 = wx.Window(splitter, style=sty)
-    p3.SetBackgroundColour("yellow")
-    wx.StaticText(p3, -1, "Panel Three", (5,5))
-
-    splitter.AppendWindow(p1, 100)
-    splitter.AppendWindow(p2, 200)
-    splitter.AppendWindow(p3)
-
-    for x in range(3):
-        p = wx.Window(splitter, style=sty)
-        p.SetBackgroundColour("white")
-        wx.StaticText(p, -1, str(4+x), (5,5))
-        splitter.AppendWindow(p, 50)
-
-    #sizer = wx.BoxSizer()
-    #sizer.Add(splitter, 1, wx.EXPAND)
-    #frm.SetSizerAndFit(sizer)
-
-    frm.Show()
-    app.MainLoop()
-
-