Documented wxAuiManagerEvent and it's related event macros.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58672 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Bryan Petty
2009-02-05 01:03:31 +00:00
parent 2fd35de1c3
commit ea6e8ec55d

View File

@@ -8,7 +8,7 @@
/** /**
@todo TOWRITE @todo wxAuiPaneInfo dock direction types used with wxAuiManager.
*/ */
enum wxAuiManagerDock enum wxAuiManagerDock
{ {
@@ -23,7 +23,7 @@ enum wxAuiManagerDock
/** /**
@todo TOWRITE @todo wxAuiManager behavior style flags.
*/ */
enum wxAuiManagerOption enum wxAuiManagerOption
{ {
@@ -47,16 +47,15 @@ enum wxAuiManagerOption
@class wxAuiManager @class wxAuiManager
wxAuiManager is the central class of the wxAUI class framework. wxAuiManager is the central class of the wxAUI class framework.
See also @ref overview_aui.
wxAuiManager manages the panes associated with it for a particular wxFrame, wxAuiManager manages the panes associated with it for a particular wxFrame,
using a pane's wxAuiPaneInfo information to determine each pane's docking using a pane's wxAuiPaneInfo information to determine each pane's docking
and floating behavior. and floating behavior.
wxAuiManager uses wxWidgets' sizer mechanism to plan the layout of each frame. wxAuiManager uses wxWidgets' sizer mechanism to plan the layout of each
It uses a replaceable dock art class to do all drawing, so all drawing is frame. It uses a replaceable dock art class to do all drawing, so all
localized in one area, and may be customized depending on an application's drawing is localized in one area, and may be customized depending on an
specific needs. application's specific needs.
wxAuiManager works as follows: the programmer adds panes to the class, wxAuiManager works as follows: the programmer adds panes to the class,
or makes changes to existing pane properties (dock position, floating or makes changes to existing pane properties (dock position, floating
@@ -86,33 +85,50 @@ enum wxAuiManagerOption
@section auimanager_layers Layers, Rows and Directions, Positions @section auimanager_layers Layers, Rows and Directions, Positions
Inside wxAUI, the docking layout is figured out by checking several pane Inside wxAUI, the docking layout is figured out by checking several pane
parameters. Four of these are important for determining where a pane will end up: parameters. Four of these are important for determining where a pane will
end up:
@li Direction: Each docked pane has a direction, Top, Bottom, Left, Right, or Center. @li Direction: Each docked pane has a direction, Top, Bottom, Left, Right,
This is fairly self-explanatory. The pane will be placed in the location specified or Center. This is fairly self-explanatory. The pane will be placed in
by this variable. the location specified by this variable.
@li Position: More than one pane can be placed inside of a dock. Imagine two panes @li Position: More than one pane can be placed inside of a dock. Imagine
being docked on the left side of a window. One pane can be placed over another. two panes being docked on the left side of a window. One pane can be
In proportionally managed docks, the pane position indicates its sequential position, placed over another. In proportionally managed docks, the pane
starting with zero. So, in our scenario with two panes docked on the left side, position indicates its sequential position, starting with zero. So, in
the top pane in the dock would have position 0, and the second one would occupy our scenario with two panes docked on the left side, the top pane in
the dock would have position 0, and the second one would occupy
position 1. position 1.
@li Row: A row can allow for two docks to be placed next to each other. One of the @li Row: A row can allow for two docks to be placed next to each other.
most common places for this to happen is in the toolbar. Multiple toolbar rows One of the most common places for this to happen is in the toolbar.
are allowed, the first row being row 0, and the second row 1. Rows can also be Multiple toolbar rows are allowed, the first row being row 0, and the
used on vertically docked panes. second row 1. Rows can also be used on vertically docked panes.
@li Layer: A layer is akin to an onion. Layer 0 is the very center of the managed pane. @li Layer: A layer is akin to an onion. Layer 0 is the very center of the
Thus, if a pane is in layer 0, it will be closest to the center window (also managed pane. Thus, if a pane is in layer 0, it will be closest to the
sometimes known as the "content window"). Increasing layers "swallow up" all center window (also sometimes known as the "content window").
layers of a lower value. This can look very similar to multiple rows, but is Increasing layers "swallow up" all layers of a lower value. This can
different because all panes in a lower level yield to panes in higher levels. look very similar to multiple rows, but is different because all panes
The best way to understand layers is by running the wxAUI sample. in a lower level yield to panes in higher levels. The best way to
understand layers is by running the wxAUI sample.
@beginEventTable{wxAuiManagerEvent}
@event{EVT_AUI_PANE_BUTTON(func)}
Triggered when any button is pressed for any docked panes.
@event{EVT_AUI_PANE_CLOSE(func)}
Triggered when a docked or floating pane is closed.
@event{EVT_AUI_PANE_MAXIMIZE(func)}
Triggered when a pane is maximized.
@event{EVT_AUI_PANE_RESTORE(func)}
Triggered when a pane is restored.
@event{EVT_AUI_RENDER(func)}
This event can be caught to override the default renderer in order to
custom draw your wxAuiManager window (not recommended).
@endEventTable
@library{wxbase} @library{wxbase}
@category{aui} @category{aui}
@see wxAuiPaneInfo, wxAuiDockArt @see @ref overview_aui, wxAuiNotebook, wxAuiDockArt, wxAuiPaneInfo
*/ */
class wxAuiManager : public wxEvtHandler class wxAuiManager : public wxEvtHandler
{ {
@@ -768,3 +784,90 @@ public:
wxAuiPaneInfo& operator=(const wxAuiPaneInfo& c); wxAuiPaneInfo& operator=(const wxAuiPaneInfo& c);
}; };
/**
@class wxAuiManagerEvent
Event used to indicate various actions taken with wxAuiManager.
See wxAuiManager for available event types.
@library{wxaui}
@category{events,aui}
@see wxAuiManager, wxAuiPaneInfo
*/
class wxAuiManagerEvent : public wxEvent
{
public:
/**
Constructor.
*/
wxAuiManagerEvent(wxEventType type = wxEVT_NULL);
/**
@return @true if this event can be vetoed.
@see Veto()
*/
bool CanVeto();
/**
@return The ID of the button that was clicked.
*/
int GetButton();
/**
@todo What is this?
*/
wxDC* GetDC();
/**
@return @true if this event was vetoed.
@see Veto()
*/
bool GetVeto();
/**
@return The wxAuiManager this event is associated with.
*/
wxAuiManager* GetManager();
/**
@return The pane this event is associated with.
*/
wxAuiPaneInfo* GetPane();
/**
Sets the ID of the button clicked that triggered this event.
*/
void SetButton(int button);
/**
Sets whether or not this event can be vetoed.
*/
void SetCanVeto(bool can_veto);
/**
@todo What is this?
*/
void SetDC(wxDC* pdc);
/**
Sets the wxAuiManager this event is associated with.
*/
void SetManager(wxAuiManager* manager);
/**
Sets the pane this event is associated with.
*/
void SetPane(wxAuiPaneInfo* pane);
/**
Cancels the action indicated by this event if CanVeto() is @true.
*/
void Veto(bool veto = true);
};