Kirix Support Forums

suggestions to improving wxAUI

Please post any wxAUI patches or modifications you've created here. Thanks!

suggestions to improving wxAUI

Postby ioni on Sun Mar 12, 2006 10:55 am

Hi,

There are two features missing from wxAUI that I think are essential.
1. There is no possibility for an external of an wxAUI to be made aware of wxAUI internal changes.
2. It would be useful to have more than one window attached to a wxAUI panel.
It just happens that I needed both of these features for a product currently under development.
First came from the need to upate the menu bar (which is not part of wxAui) if a wxAui panel is hidden for multi selection menus.
And the second comes from a data structure that needs dual viewing in the same panel (with possible interaction/communication inside the panel between the two views).
Currently, I have a simple solution for the first. In manager.h add a new event type
Code: Select all
DECLARE_EVENT_TYPE(wxEVT_AUI_PANECLOSED, 1)

then declare its event handler:
Code: Select all
#define EVT_AUI_PANECLOSED(func) \
   wx__DECLARE_EVT0(wxEVT_AUI_PANECLOSED, wxFrameManagerEventHandler(func))

and in the OnPaneButton handler add the following code
Code: Select all

//send the event to the outside world
outEvent.pane = new wxPaneInfo (pane);
if (pane.IsToWindow())
{
   pane.window->ProcessEvent((wxEvent&)outEvent);
}
if (pane.IsToFrame())
{
   m_frame->ProcessEvent((wxEvent&)outEvent);
}
.
Now you can define the new handler and observe outside of the wxAui all the panes closing inside, and accordingly update the menus that open those panels in the first place.

When I'll have a working solution of the second problem, I will post it.
Best regards!
ioni
 

Return to wxAUI Patches & Modifications