Hi John/Victor, I think I tried this method a while ago, but I couldn't make the forth tab to form a square: if you split it RIGHT, it would take its own column and if you split it BOTTOM, it would take its own row. It's possible to position them manually, but I couldn't find a way to do this programmatically (and there is no SavePerspective in wxAuiNotebook), so I put it on the back burner.
I've seen suggested patches (like this one: http://www.kirix.com/forums/viewtopic.php?f=15&t=542#p1479), but they have never made it into the library. It *may* be possible to reproduce the same logic that is used when this is done manually, but unfortunately, I don't see a way to get access to wxAuiTabCtrl that is needed for this manipulation. John, a side note; it's a shame that there doesn't seem to be a way to get wxAuiTabCtrl from wxAuiNotebook. The only way I found was through capturing TAB events like wxEVT_COMMAND_AUINOTEBOOK_TAB_RIGHT_UP and then using event:GetEventObject():DynamicCast("wxAuiTabCtrl"), but this doesn't work in all other normal cases. I think I got close by using this sequence: nbmgr = notebook:GetAuiManager() -- note that wxAuiNotebook has its own AuiManager that manages its tabs as panes; you can actually save/restore its perspective this way, but it doesn't work in all cases. panes = nbmgr:GetAllPanes() tabframe = panes:Item(1).window:DynamicCast("wxTabFrame") -- this should work, but fails with "Cannot cast a wxLua type 'wxWindow' with wxClassInfo 'wxWindow' to a 'wxTabFrame'". It would be great to have access to FindTab, which returns both the tab control and tab index for the page in that control, but it's marked as protected: protected: bool FindTab(wxWindow* page, wxAuiTabCtrl** ctrl, int* idx); What are your thoughts on exposing protected classes in the wxlua API? There are two more in that category wxStat and wxLstat that I'd love to have in wxlua. FWIW, you can actually play with this quite easily from Local console in ZBS; open four tabs and then try: > notebook = ide.frame.notebook > notebook:Split(0, wx.wxRIGHT) > notebook:Split(1, wx.wxBOTTOM) > notebook:Split(3, wx.wxRIGHT) You can also get access to AuiManager: mgr = ide.frame.uimgr. Paul. ------------------------------------------------------------------------------ October Webinars: Code for Performance Free Intel webinars can help you accelerate application performance. Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from the latest Intel processors and coprocessors. See abstracts and register > http://pubads.g.doubleclick.net/gampad/clk?id=60135991&iu=/4140/ostg.clktrk _______________________________________________ wxlua-users mailing list wxlua-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wxlua-users