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

Reply via email to