]> git.saurik.com Git - wxWidgets.git/blobdiff - wxPython/demo/DynamicSashWindow.py
move wxPython to new trunk
[wxWidgets.git] / wxPython / demo / DynamicSashWindow.py
diff --git a/wxPython/demo/DynamicSashWindow.py b/wxPython/demo/DynamicSashWindow.py
deleted file mode 100644 (file)
index bd1ccbc..0000000
+++ /dev/null
@@ -1,166 +0,0 @@
-
-import  wx
-import  wx.gizmos   as  gizmos
-import  wx.stc      as  stc
-
-#----------------------------------------------------------------------
-# This is an example of the complex view that manages its own scrollbars
-# as described in the overview below.
-
-class TestView(stc.StyledTextCtrl):
-    def __init__(self, parent, ID, log):
-        stc.StyledTextCtrl.__init__(self, parent, ID, style=wx.NO_BORDER)
-        self.dyn_sash = parent
-        self.log = log
-        self.SetupScrollBars()
-        self.SetMarginWidth(1,0)
-
-        self.StyleSetFont(stc.STC_STYLE_DEFAULT,
-                          wx.Font(10, wx.MODERN, wx.NORMAL, wx.NORMAL))
-
-        self.Bind(gizmos.EVT_DYNAMIC_SASH_SPLIT, self.OnSplit)
-        self.Bind(gizmos.EVT_DYNAMIC_SASH_UNIFY, self.OnUnify)
-        #self.SetScrollWidth(500)
-
-    def SetupScrollBars(self):
-        # hook the scrollbars provided by the wxDynamicSashWindow
-        # to this view
-        v_bar = self.dyn_sash.GetVScrollBar(self)
-        h_bar = self.dyn_sash.GetHScrollBar(self)
-        v_bar.Bind(wx.EVT_SCROLL, self.OnSBScroll)
-        h_bar.Bind(wx.EVT_SCROLL, self.OnSBScroll)
-        v_bar.Bind(wx.EVT_SET_FOCUS, self.OnSBFocus)
-        h_bar.Bind(wx.EVT_SET_FOCUS, self.OnSBFocus)
-
-        # And set the wxStyledText to use these scrollbars instead
-        # of its built-in ones.
-        self.SetVScrollBar(v_bar)
-        self.SetHScrollBar(h_bar)
-
-
-    def __del__(self):
-        self.log.write("TestView.__del__\n")
-
-    def OnSplit(self, evt):
-        self.log.write("TestView.OnSplit\n");
-        newview = TestView(self.dyn_sash, -1, self.log)
-        newview.SetDocPointer(self.GetDocPointer())     # use the same document
-        self.SetupScrollBars()
-
-
-    def OnUnify(self, evt):
-        self.log.write("TestView.OnUnify\n");
-        self.SetupScrollBars()
-
-
-    def OnSBScroll(self, evt):
-        # redirect the scroll events from the dyn_sash's scrollbars to the STC
-        self.GetEventHandler().ProcessEvent(evt)
-
-    def OnSBFocus(self, evt):
-        # when the scrollbar gets the focus move it back to the STC
-        self.SetFocus()
-
-
-sampleText="""\
-You can drag the little tabs above the vertical scrollbar, or to the
-left of the horizontal scrollbar to split this view, and you can
-continue splitting the new views as much as you like.  Try it and see.
-
-In this case the views also share the same document so changes in one
-are instantly seen in the others.  This is a feature of the
-StyledTextCtrl that is used for the view class in this sample.
-"""
-
-#----------------------------------------------------------------------
-# This one is simpler, but doesn't do anything with the scrollbars
-# except the default wxDynamicSashWindow behaviour
-
-class SimpleView(wx.Panel):
-    def __init__(self, parent, ID, log):
-        wx.Panel.__init__(self, parent, ID)
-        self.dyn_sash = parent
-        self.log = log
-        self.SetBackgroundColour("LIGHT BLUE")
-        self.Bind(gizmos.EVT_DYNAMIC_SASH_SPLIT, self.OnSplit)
-
-    def OnSplit(self, evt):
-        v = SimpleView(self.dyn_sash, -1, self.log)
-
-
-#----------------------------------------------------------------------
-
-def runTest(frame, nb, log):
-##     if wx.Platform == "__WXMAC__":
-##         from Main import MessagePanel
-##         win = MessagePanel(nb, 'This demo currently fails on the Mac. The problem is being looked into...',
-##                            'Sorry', wx.ICON_WARNING)
-##         return win
-
-    if 1:
-        win = gizmos.DynamicSashWindow(nb, -1, style =  wx.CLIP_CHILDREN
-                                  #| wxDS_MANAGE_SCROLLBARS
-                                  #| wxDS_DRAG_CORNER
-                                  )
-
-        win.SetFont(wx.Font(10, wx.MODERN, wx.NORMAL, wx.NORMAL))
-        view = TestView(win, -1, log)
-        view.SetText(sampleText)
-    else:
-        win = wx.DynamicSashWindow(nb, -1)
-        view = SimpleView(win, -1, log)
-    return win
-
-#----------------------------------------------------------------------
-
-overview = """\
-<html><body>
-<h2>DynamicSashWindow</h2>
-<p>
-wxDynamicSashWindow widgets manages the way other widgets are viewed.
-When a wxDynamicSashWindow is first shown, it will contain one child
-view, a viewport for that child, and a pair of scrollbars to allow the
-user to navigate the child view area.  Next to each scrollbar is a small
-tab.  By clicking on either tab and dragging to the appropriate spot, a
-user can split the view area into two smaller views separated by a
-draggable sash.  Later, when the user wishes to reunify the two subviews,
-the user simply drags the sash to the side of the window.
-wxDynamicSashWindow will automatically reparent the appropriate child
-view back up the window hierarchy, and the wxDynamicSashWindow will have
-only one child view once again.
-<p>
-As an application developer, you will simply create a wxDynamicSashWindow
-using either the Create() function or the more complex constructor
-provided below, and then create a view window whose parent is the
-wxDynamicSashWindow.  The child should respond to
-wxDynamicSashSplitEvents -- perhaps with an OnSplit() event handler -- by
-constructing a new view window whose parent is also the
-wxDynamicSashWindow.  That's it!  Now your users can dynamically split
-and reunify the view you provided.
-<p>
-If you wish to handle the scrollbar events for your view, rather than
-allowing wxDynamicSashWindow to do it for you, things are a bit more
-complex.  (You might want to handle scrollbar events yourself, if,
-for instance, you wish to scroll a subwindow of the view you add to
-your wxDynamicSashWindow object, rather than scrolling the whole view.)
-In this case, you will need to construct your wxDynamicSashWindow without
-the wxDS_MANAGE_SCROLLBARS style and  you will need to use the
-GetHScrollBar() and GetVScrollBar() methods to retrieve the scrollbar
-controls and call SetEventHanler() on them to redirect the scrolling
-events whenever your window is reparented by wxDyanmicSashWindow.
-You will need to set the scrollbars' event handler at three times:
-<p>
-<ul>
-<li>  When your view is created
-<li>  When your view receives a wxDynamicSashSplitEvent
-<li>  When your view receives a wxDynamicSashUnifyEvent
-</ul>
-</body></html>
-"""
-
-
-if __name__ == '__main__':
-    import sys,os
-    import run
-    run.main(['', os.path.basename(sys.argv[0])] + sys.argv[1:])
-