91 lines
2.8 KiB
Python
91 lines
2.8 KiB
Python
|
from wxPython.wx import *
|
||
|
from wxPython.lib.multisash import wxMultiSash
|
||
|
from wxPython.stc import *
|
||
|
|
||
|
#---------------------------------------------------------------------------
|
||
|
|
||
|
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(wxStyledTextCtrl):
|
||
|
def __init__(self, parent):
|
||
|
wxStyledTextCtrl.__init__(self, parent, -1, style=wxNO_BORDER)
|
||
|
self.SetMarginWidth(1,0)
|
||
|
if wxPlatform == '__WXMSW__':
|
||
|
fSize = 10
|
||
|
else:
|
||
|
fSize = 12
|
||
|
self.StyleSetFont(wxSTC_STYLE_DEFAULT,
|
||
|
wxFont(fSize, wxMODERN, wxNORMAL, wxNORMAL))
|
||
|
self.SetText(sampleText)
|
||
|
|
||
|
class TestFrame(wxFrame):
|
||
|
def __init__(self, parent, log):
|
||
|
wxFrame.__init__(self, parent, -1, "Multi Sash Demo",
|
||
|
size=(640,480))
|
||
|
self.multi = wxMultiSash(self,-1,pos = wxPoint(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
|
||
|
self.multi.SetDefaultChildClass(TestWindow)
|
||
|
|
||
|
|
||
|
#---------------------------------------------------------------------------
|
||
|
|
||
|
|
||
|
def runTest(frame, nb, log):
|
||
|
multi = wxMultiSash(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
|
||
|
|
||
|
# win = TestPanel(nb, log)
|
||
|
# return win
|
||
|
|
||
|
#----------------------------------------------------------------------
|
||
|
|
||
|
|
||
|
|
||
|
overview = """<html><body>
|
||
|
<h2><center>wxMultiSash</center></h2>
|
||
|
|
||
|
wxMultiSash 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])])
|
||
|
|