]> git.saurik.com Git - wxWidgets.git/blobdiff - wxPython/demo/MultiSash.py
Renamed demo modules to be wx-less.
[wxWidgets.git] / wxPython / demo / MultiSash.py
diff --git a/wxPython/demo/MultiSash.py b/wxPython/demo/MultiSash.py
new file mode 100644 (file)
index 0000000..ce95868
--- /dev/null
@@ -0,0 +1,112 @@
+# 11/20/2003 - Jeff Grimmett (grimmtooth@softhome.net)
+#
+# o Updated for wx namespace
+# 
+# 11/30/2003 - Jeff Grimmett (grimmtooth@softhome.net)
+#
+# o wx renamer needs to be applied to multisash lib.
+# o There appears to be a problem with the image that
+#   the library is trying to use for the alternate cursor
+# 
+# 12/09/2003 - Jeff Grimmett (grimmtooth@softhome.net)
+#
+# o renamer issue shelved.
+#
+# 12/20/2003 - Jeff Grimmett (grimmtooth@softhome.net)
+#
+# o wxMultiSash -> MultiSash
+#
+
+import  wx
+import  wx.lib.multisash    as  sash
+import  wx.stc              as  stc
+
+#---------------------------------------------------------------------------
+
+sampleText="""\
+You can drag the little tab on the vertical sash left to create another view,
+or you can drag the tab on the horizontal sash to the top to create another
+horizontal view.
+
+The red blocks on the sashes will destroy the view (bottom,left) this block
+belongs to.
+
+A yellow rectangle also highlights the current selected view.
+
+By calling GetSaveData on the multiSash control the control will return its
+contents and the positions of each sash as a dictionary.
+Calling SetSaveData with such a dictionary will restore the control to the
+state it was in when it was saved.
+
+If the class, that is used as a view, has GetSaveData/SetSaveData implemented,
+these will also be called to save/restore their state. Any object can be
+returned by GetSaveData, as it is just another object in the dictionary.
+"""
+
+#---------------------------------------------------------------------------
+
+class TestWindow(stc.StyledTextCtrl):
+
+    # shared document reference
+    doc = None
+    
+    def __init__(self, parent):
+        stc.StyledTextCtrl.__init__(self, parent, -1, style=wx.NO_BORDER)
+        self.SetMarginWidth(1,0)
+
+        if wx.Platform == '__WXMSW__':
+            fSize = 10
+        else:
+            fSize = 12
+
+        self.StyleSetFont(
+            stc.STC_STYLE_DEFAULT,
+            wx.Font(fSize, wx.MODERN, wx.NORMAL, wx.NORMAL)
+            )
+
+        if self.doc:
+            self.SetDocPointer(self.doc)
+        else:
+            self.SetText(sampleText)
+            TestWindow.doc = self.GetDocPointer()
+            
+
+    def SutdownDemo(self):
+        # Reset doc reference in case this demo is run again
+        TestWindow.doc = None
+
+        
+#---------------------------------------------------------------------------
+
+
+def runTest(frame, nb, log):
+    multi = sash.MultiSash(nb, -1, pos = (0,0), size = (640,480))
+
+    # Use this method to set the default class that will be created when
+    # a new sash is created. The class's constructor needs 1 parameter
+    # which is the parent of the window
+    multi.SetDefaultChildClass(TestWindow)
+
+    return multi
+
+#----------------------------------------------------------------------
+
+
+
+overview = """<html><body>
+<h2><center>MultiSash</center></h2>
+
+MultiSash allows the user to split a window any number of times
+either horizontally or vertically, and to close the split off windows
+when desired.
+
+</body></html>
+"""
+
+
+
+if __name__ == '__main__':
+    import sys,os
+    import run
+    run.main(['', os.path.basename(sys.argv[0])])
+