From 1c976bff2daa9a91ea20cf082bef0190f7453477 Mon Sep 17 00:00:00 2001 From: Robin Dunn Date: Sat, 22 Jul 2006 23:02:47 +0000 Subject: [PATCH] Added support for the wxAUI Notebook git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@40243 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- .../demo/{AUI.py => AUI_DockingWindowMgr.py} | 14 ++--- wxPython/demo/AUI_Notebook.py | 60 +++++++++++++++++++ wxPython/demo/Main.py | 6 +- wxPython/setup.py | 1 + wxPython/src/aui.i | 15 ++++- 5 files changed, 85 insertions(+), 11 deletions(-) rename wxPython/demo/{AUI.py => AUI_DockingWindowMgr.py} (99%) mode change 100755 => 100644 create mode 100644 wxPython/demo/AUI_Notebook.py diff --git a/wxPython/demo/AUI.py b/wxPython/demo/AUI_DockingWindowMgr.py old mode 100755 new mode 100644 similarity index 99% rename from wxPython/demo/AUI.py rename to wxPython/demo/AUI_DockingWindowMgr.py index 44d05a7145..7fd8ab604c --- a/wxPython/demo/AUI.py +++ b/wxPython/demo/AUI_DockingWindowMgr.py @@ -67,7 +67,7 @@ class PyAUIFrame(wx.Frame): # tell FrameManager to manage this frame self._mgr = wx.aui.FrameManager() - self._mgr.SetFrame(self) + self._mgr.SetManagedWindow(self) self._perspectives = [] self.n = 0 @@ -477,13 +477,13 @@ class PyAUIFrame(wx.Frame): flag = 0 - if wx.Platform != "__WXMSW__" and wx.Platform != '__WXMAC__': - if event.GetId() == ID_TransparentDrag or \ - event.GetId() == ID_TransparentHint or \ - event.GetId() == ID_TransparentHintFade: +## if wx.Platform != "__WXMSW__" and wx.Platform != '__WXMAC__': +## if event.GetId() == ID_TransparentDrag or \ +## event.GetId() == ID_TransparentHint or \ +## event.GetId() == ID_TransparentHintFade: - wx.MessageBox("This option is presently only available on wxMSW and wxMac") - return +## wx.MessageBox("This option is presently only available on wxMSW and wxMac") +## return if event.GetId() == ID_AllowFloating: flag = wx.aui.AUI_MGR_ALLOW_FLOATING diff --git a/wxPython/demo/AUI_Notebook.py b/wxPython/demo/AUI_Notebook.py new file mode 100644 index 0000000000..458e143960 --- /dev/null +++ b/wxPython/demo/AUI_Notebook.py @@ -0,0 +1,60 @@ + +import wx +import wx.aui + + +text = """\ +Hello! + +Welcome to this little demo of draggable tabs using the wx.aui module. + +To try it out, drag a tab from the top of the window all the way to +the bottom. After releasing the mouse, the tab will dock at the +hinted position. Then try it again with the remaining tabs in various +other positions. Finally, try dragging a tab to an existing tab ctrl. +You'll soon see that very complex tab layouts may be achieved. +""" + +#---------------------------------------------------------------------- + +class TestPanel(wx.Panel): + def __init__(self, parent, log): + self.log = log + wx.Panel.__init__(self, parent, -1) + + self.nb = wx.aui.AuiMultiNotebook(self) + page = wx.TextCtrl(self.nb, -1, text, style=wx.TE_MULTILINE) + self.nb.AddPage(page, "Welcome") + + for num in range(1, 5): + page = wx.TextCtrl(self.nb, -1, "This is page %d" % num , + style=wx.TE_MULTILINE) + self.nb.AddPage(page, "Tab Number %d" % num) + + sizer = wx.BoxSizer() + sizer.Add(self.nb, 1, wx.EXPAND) + self.SetSizer(sizer) + +#---------------------------------------------------------------------- + +def runTest(frame, nb, log): + win = TestPanel(nb, log) + return win + +#---------------------------------------------------------------------- + + + +overview = """ +

Say something nice here

+ + +""" + + + +if __name__ == '__main__': + import sys,os + import run + run.main(['', os.path.basename(sys.argv[0])] + sys.argv[1:]) + diff --git a/wxPython/demo/Main.py b/wxPython/demo/Main.py index c89232c979..041678483a 100644 --- a/wxPython/demo/Main.py +++ b/wxPython/demo/Main.py @@ -48,7 +48,8 @@ _treeList = [ # new stuff ('Recent Additions/Updates', [ 'AnalogClock', - 'AUI', + 'AUI_DockingWindowMgr', + 'AUI_Notebook', 'CheckListCtrlMixin', 'Pickers', 'PseudoDC', @@ -59,7 +60,7 @@ _treeList = [ # managed windows == things with a (optional) caption you can close ('Frames and Dialogs', [ - 'AUI', + 'AUI_DockingWindowMgr', 'Dialog', 'Frame', 'MDIWindows', @@ -128,6 +129,7 @@ _treeList = [ ]), ('"Book" Controls', [ + 'AUI_Notebook', 'Choicebook', 'Listbook', 'Notebook', diff --git a/wxPython/setup.py b/wxPython/setup.py index 26a6096556..7710b73271 100755 --- a/wxPython/setup.py +++ b/wxPython/setup.py @@ -495,6 +495,7 @@ swig_sources = run_swig(['aui.i'], 'src', GENDIR, PKGDIR, opj(WXDIR, 'include/wx/aui/framemanager.h'), opj(WXDIR, 'include/wx/aui/floatpane.h'), opj(WXDIR, 'include/wx/aui/dockart.h'), + opj(WXDIR, 'include/wx/aui/auibook.h'), ]) if not MONOLITHIC: auiLib = makeLibName('aui') diff --git a/wxPython/src/aui.i b/wxPython/src/aui.i index e5047351e1..2c5857c6f4 100755 --- a/wxPython/src/aui.i +++ b/wxPython/src/aui.i @@ -139,7 +139,8 @@ The following example shows a simple implementation that utilizes #define wxDEPRECATED(decl) -// We'll let SWIG handle the function overloading for these +// We'll skip making wrappers for these, they have overloads that take a +// wxSize or wxPoint %ignore wxPaneInfo::MaxSize(int x, int y); %ignore wxPaneInfo::MinSize(int x, int y); %ignore wxPaneInfo::BestSize(int x, int y); @@ -169,12 +170,21 @@ The following example shows a simple implementation that utilizes } +%nokwargs wxAuiTabContainer::SetActivePage; + +%pythonAppend wxAuiTabCtrl::wxAuiTabCtrl "self._setOORInfo(self)"; + +%pythonAppend wxAuiMultiNotebook::wxAuiMultiNotebook "self._setOORInfo(self)"; +%pythonAppend wxAuiMultiNotebook::wxAuiMultiNotebook() "self._setOORInfo(self)"; +%ignore wxAuiMultiNotebook::~wxAuiMultiNotebook; +%rename(PreAuiMultiNotebook) wxAuiMultiNotebook::wxAuiMultiNotebook(); + //--------------------------------------------------------------------------- // Get all our defs from the REAL header files. %include framemanager.h %include dockart.h %include floatpane.h - +%include auibook.h //--------------------------------------------------------------------------- // Methods to inject into the FrameManager class that will sort out calls to @@ -241,6 +251,7 @@ The following example shows a simple implementation that utilizes //--------------------------------------------------------------------------- %{ +// A wxDocArt lcass that knows how to forward virtuals to Python methods class wxPyDockArt : public wxDefaultDockArt { wxPyDockArt() : wxDefaultDockArt() {} -- 2.47.2