| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962 |
- /////////////////////////////////////////////////////////////////////////////
- // Name: aui/aui.h
- // Purpose: interface of wxAuiManager
- // Author: wxWidgets team
- // Licence: wxWindows licence
- /////////////////////////////////////////////////////////////////////////////
- /**
- @todo wxAuiPaneInfo dock direction types used with wxAuiManager.
- */
- enum wxAuiManagerDock
- {
- wxAUI_DOCK_NONE = 0,
- wxAUI_DOCK_TOP = 1,
- wxAUI_DOCK_RIGHT = 2,
- wxAUI_DOCK_BOTTOM = 3,
- wxAUI_DOCK_LEFT = 4,
- wxAUI_DOCK_CENTER = 5,
- wxAUI_DOCK_CENTRE = wxAUI_DOCK_CENTER
- };
- /**
- wxAuiManager behaviour and visual effects style flags.
- */
- enum wxAuiManagerOption
- {
- /// Allow a pane to be undocked to take the form of a wxMiniFrame.
- wxAUI_MGR_ALLOW_FLOATING = 1 << 0,
- /// Change the color of the title bar of the pane when it is activated.
- wxAUI_MGR_ALLOW_ACTIVE_PANE = 1 << 1,
- /// Make the pane transparent during its movement.
- wxAUI_MGR_TRANSPARENT_DRAG = 1 << 2,
- /// The possible location for docking is indicated by a translucent area.
- wxAUI_MGR_TRANSPARENT_HINT = 1 << 3,
- /// The possible location for docking is indicated by a gradually appearing
- /// partially transparent area.
- wxAUI_MGR_VENETIAN_BLINDS_HINT = 1 << 4,
- /// The possible location for docking is indicated by a rectangular outline.
- wxAUI_MGR_RECTANGLE_HINT = 1 << 5,
- /// The translucent area where the pane could be docked appears gradually.
- wxAUI_MGR_HINT_FADE = 1 << 6,
- /// Used in complement of wxAUI_MGR_VENETIAN_BLINDS_HINT to show the hint immediately.
- wxAUI_MGR_NO_VENETIAN_BLINDS_FADE = 1 << 7,
- /// When a docked pane is resized, its content is refreshed in live (instead of moving
- /// the border alone and refreshing the content at the end).
- wxAUI_MGR_LIVE_RESIZE = 1 << 8,
- /// Default behavior.
- wxAUI_MGR_DEFAULT = wxAUI_MGR_ALLOW_FLOATING |
- wxAUI_MGR_TRANSPARENT_HINT |
- wxAUI_MGR_HINT_FADE |
- wxAUI_MGR_NO_VENETIAN_BLINDS_FADE
- };
- /**
- @class wxAuiManager
- wxAuiManager is the central class of the wxAUI class framework.
- wxAuiManager manages the panes associated with it for a particular wxFrame,
- using a pane's wxAuiPaneInfo information to determine each pane's docking
- and floating behaviour.
- wxAuiManager uses wxWidgets' sizer mechanism to plan the layout of each
- frame. It uses a replaceable dock art class to do all drawing, so all
- drawing is localized in one area, and may be customized depending on an
- application's specific needs.
- wxAuiManager works as follows: the programmer adds panes to the class,
- or makes changes to existing pane properties (dock position, floating
- state, show state, etc.). To apply these changes, wxAuiManager's
- Update() function is called. This batch processing can be used to avoid
- flicker, by modifying more than one pane at a time, and then "committing"
- all of the changes at once by calling Update().
- Panes can be added quite easily:
- @code
- wxTextCtrl* text1 = new wxTextCtrl(this, -1);
- wxTextCtrl* text2 = new wxTextCtrl(this, -1);
- m_mgr.AddPane(text1, wxLEFT, "Pane Caption");
- m_mgr.AddPane(text2, wxBOTTOM, "Pane Caption");
- m_mgr.Update();
- @endcode
- Later on, the positions can be modified easily. The following will float
- an existing pane in a tool window:
- @code
- m_mgr.GetPane(text1).Float();
- @endcode
- @section auimanager_layers Layers, Rows and Directions, Positions
- 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:
- @li Direction: Each docked pane has a direction, Top, Bottom, Left, Right,
- or Center. This is fairly self-explanatory. The pane will be placed in
- the location specified by this variable.
- @li Position: More than one pane can be placed inside of a dock. Imagine
- two panes being docked on the left side of a window. One pane can be
- placed over another. In proportionally managed docks, the pane
- position indicates its sequential position, starting with zero. So, in
- 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.
- @li Row: A row can allow for two docks to be placed next to each other.
- One of the most common places for this to happen is in the toolbar.
- Multiple toolbar rows are allowed, the first row being row 0, and the
- 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. Thus, if a pane is in layer 0, it will be closest to the
- center window (also sometimes known as the "content window").
- Increasing layers "swallow up" all layers of a lower value. This can
- look very similar to multiple rows, but is different because all panes
- in a lower level yield to panes in higher levels. The best way to
- understand layers is by running the wxAUI sample.
- @beginStyleTable
- @style{wxAUI_MGR_ALLOW_FLOATING}
- Allow a pane to be undocked to take the form of a wxMiniFrame.
- @style{wxAUI_MGR_ALLOW_ACTIVE_PANE}
- Change the color of the title bar of the pane when it is activated.
- @style{wxAUI_MGR_TRANSPARENT_DRAG}
- Make the pane transparent during its movement.
- @style{wxAUI_MGR_TRANSPARENT_HINT}
- The possible location for docking is indicated by a translucent area.
- @style{wxAUI_MGR_VENETIAN_BLINDS_HINT}
- The possible location for docking is indicated by gradually
- appearing partially transparent hint.
- @style{wxAUI_MGR_RECTANGLE_HINT}
- The possible location for docking is indicated by a rectangular
- outline.
- @style{wxAUI_MGR_HINT_FADE}
- The translucent area where the pane could be docked appears gradually.
- @style{wxAUI_MGR_NO_VENETIAN_BLINDS_FADE}
- Used in complement of wxAUI_MGR_VENETIAN_BLINDS_HINT to show the
- docking hint immediately.
- @style{wxAUI_MGR_LIVE_RESIZE}
- When a docked pane is resized, its content is refreshed in live (instead of moving
- the border alone and refreshing the content at the end).
- @style{wxAUI_MGR_DEFAULT}
- Default behavior, combines: wxAUI_MGR_ALLOW_FLOATING | wxAUI_MGR_TRANSPARENT_HINT |
- wxAUI_MGR_HINT_FADE | wxAUI_MGR_NO_VENETIAN_BLINDS_FADE.
- @endStyleTable
- @beginEventEmissionTable{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_PANE_ACTIVATED(func)}
- Triggered when a pane is made 'active'. This event is new since
- wxWidgets 2.9.4.
- @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{wxaui}
- @category{aui}
- @see @ref overview_aui, wxAuiNotebook, wxAuiDockArt, wxAuiPaneInfo
- */
- class wxAuiManager : public wxEvtHandler
- {
- public:
- /**
- Constructor.
- @param managed_wnd
- Specifies the wxFrame which should be managed.
- @param flags
- Specifies the frame management behaviour and visual effects
- with the ::wxAuiManagerOption's style flags.
- */
- wxAuiManager(wxWindow* managed_wnd = NULL,
- unsigned int flags = wxAUI_MGR_DEFAULT);
- /**
- Dtor.
- */
- virtual ~wxAuiManager();
- //@{
- /**
- AddPane() tells the frame manager to start managing a child window.
- There are several versions of this function. The first version allows
- the full spectrum of pane parameter possibilities. The second version is
- used for simpler user interfaces which do not require as much configuration.
- The last version allows a drop position to be specified, which will determine
- where the pane will be added.
- */
- bool AddPane(wxWindow* window, const wxAuiPaneInfo& pane_info);
- bool AddPane(wxWindow* window, int direction = wxLEFT,
- const wxString& caption = wxEmptyString);
- bool AddPane(wxWindow* window,
- const wxAuiPaneInfo& pane_info,
- const wxPoint& drop_pos);
- //@}
- /**
- Tells the wxAuiManager to stop managing the pane specified by window.
- The window, if in a floated frame, is reparented to the frame managed
- by wxAuiManager.
- */
- bool DetachPane(wxWindow* window);
- /**
- Returns an array of all panes managed by the frame manager.
- */
- wxAuiPaneInfoArray& GetAllPanes();
- /**
- Returns the current art provider being used.
- @see wxAuiDockArt.
- */
- wxAuiDockArt* GetArtProvider() const;
- /**
- Returns the current dock constraint values.
- See SetDockSizeConstraint() for more information.
- */
- void GetDockSizeConstraint(double* widthpct, double* heightpct) const;
- /**
- Returns the current ::wxAuiManagerOption's flags.
- */
- unsigned int GetFlags() const;
- /**
- Returns the frame currently being managed by wxAuiManager.
- */
- wxWindow* GetManagedWindow() const;
- /**
- Calling this method will return the wxAuiManager for a given window.
- The @a window parameter should specify any child window or sub-child
- window of the frame or window managed by wxAuiManager.
- The @a window parameter need not be managed by the manager itself, nor does it
- even need to be a child or sub-child of a managed window. It must however
- be inside the window hierarchy underneath the managed window.
- */
- static wxAuiManager* GetManager(wxWindow* window);
- //@{
- /**
- GetPane() is used to lookup a wxAuiPaneInfo object either by window pointer
- or by pane name, which acts as a unique id for a window pane.
- The returned wxAuiPaneInfo object may then be modified to change a pane's
- look, state or position. After one or more modifications to wxAuiPaneInfo,
- wxAuiManager::Update() should be called to commit the changes to the user
- interface. If the lookup failed (meaning the pane could not be found in the
- manager), a call to the returned wxAuiPaneInfo's IsOk() method will return @false.
- */
- wxAuiPaneInfo& GetPane(wxWindow* window);
- wxAuiPaneInfo& GetPane(const wxString& name);
- //@}
- /**
- HideHint() hides any docking hint that may be visible.
- */
- virtual void HideHint();
- /**
- This method is used to insert either a previously unmanaged pane window
- into the frame manager, or to insert a currently managed pane somewhere
- else. InsertPane() will push all panes, rows, or docks aside and
- insert the window into the position specified by @a insert_location.
- Because @a insert_location can specify either a pane, dock row, or dock
- layer, the @a insert_level parameter is used to disambiguate this.
- The parameter @a insert_level can take a value of wxAUI_INSERT_PANE,
- wxAUI_INSERT_ROW or wxAUI_INSERT_DOCK.
- */
- bool InsertPane(wxWindow* window,
- const wxAuiPaneInfo& insert_location,
- int insert_level = wxAUI_INSERT_PANE);
- /**
- LoadPaneInfo() is similar to LoadPerspective, with the exception that it
- only loads information about a single pane. It is used in combination with
- SavePaneInfo().
- */
- void LoadPaneInfo(wxString pane_part, wxAuiPaneInfo& pane);
- /**
- Loads a saved perspective. If update is @true, wxAuiManager::Update()
- is automatically invoked, thus realizing the saved perspective on screen.
- */
- bool LoadPerspective(const wxString& perspective,
- bool update = true);
- /**
- SavePaneInfo() is similar to SavePerspective, with the exception that it only
- saves information about a single pane. It is used in combination with
- LoadPaneInfo().
- */
- wxString SavePaneInfo(wxAuiPaneInfo& pane);
- /**
- Saves the entire user interface layout into an encoded wxString, which
- can then be stored by the application (probably using wxConfig).
- When a perspective is restored using LoadPerspective(), the entire user
- interface will return to the state it was when the perspective was saved.
- */
- wxString SavePerspective();
- /**
- Instructs wxAuiManager to use art provider specified by parameter
- @a art_provider for all drawing calls.
- This allows plugable look-and-feel features. The previous art provider object,
- if any, will be deleted by wxAuiManager.
- @see wxAuiDockArt.
- */
- void SetArtProvider(wxAuiDockArt* art_provider);
- /**
- When a user creates a new dock by dragging a window into a docked position,
- often times the large size of the window will create a dock that is unwieldly
- large. wxAuiManager by default limits the size of any new dock to 1/3 of the
- window size. For horizontal docks, this would be 1/3 of the window height.
- For vertical docks, 1/3 of the width.
- Calling this function will adjust this constraint value. The numbers must be
- between 0.0 and 1.0. For instance, calling SetDockSizeContraint with
- 0.5, 0.5 will cause new docks to be limited to half of the size of the
- entire managed window.
- */
- void SetDockSizeConstraint(double widthpct, double heightpct);
- /**
- This method is used to specify ::wxAuiManagerOption's flags. @a flags
- specifies options which allow the frame management behaviour to be modified.
- */
- void SetFlags(unsigned int flags);
- /**
- Called to specify the frame or window which is to be managed by wxAuiManager.
- Frame management is not restricted to just frames. Child windows or custom
- controls are also allowed.
- */
- void SetManagedWindow(wxWindow* managed_wnd);
- /**
- This function is used by controls to explicitly show a hint window at the
- specified rectangle. It is rarely called, and is mostly used by controls
- implementing custom pane drag/drop behaviour.
- The specified rectangle should be in screen coordinates.
- */
- virtual void ShowHint(const wxRect& rect);
- /**
- Uninitializes the framework and should be called before a managed frame or
- window is destroyed. UnInit() is usually called in the managed wxFrame's
- destructor. It is necessary to call this function before the managed frame
- or window is destroyed, otherwise the manager cannot remove its custom event
- handlers from a window.
- */
- void UnInit();
- /**
- This method is called after any number of changes are
- made to any of the managed panes. Update() must be invoked after
- AddPane() or InsertPane() are called in order to "realize" or "commit"
- the changes. In addition, any number of changes may be made to
- wxAuiPaneInfo structures (retrieved with wxAuiManager::GetPane), but to
- realize the changes, Update() must be called. This construction allows
- pane flicker to be avoided by updating the whole layout at one time.
- */
- void Update();
- protected:
- /**
- ProcessDockResult() is a protected member of the wxAUI layout manager.
- It can be overridden by derived classes to provide custom docking calculations.
- */
- virtual bool ProcessDockResult(wxAuiPaneInfo& target,
- const wxAuiPaneInfo& new_pos);
- };
- /**
- @class wxAuiPaneInfo
- wxAuiPaneInfo is part of the wxAUI class framework.
- See also @ref overview_aui.
- wxAuiPaneInfo specifies all the parameters for a pane.
- These parameters specify where the pane is on the screen, whether it is docked
- or floating, or hidden.
- In addition, these parameters specify the pane's docked position, floating
- position, preferred size, minimum size, caption text among many other parameters.
- @library{wxaui}
- @category{aui}
- @see wxAuiManager, wxAuiDockArt
- */
- class wxAuiPaneInfo
- {
- public:
- wxAuiPaneInfo();
- /**
- Copy constructor.
- */
- wxAuiPaneInfo(const wxAuiPaneInfo& c);
- //@{
- /**
- BestSize() sets the ideal size for the pane. The docking manager will attempt
- to use this size as much as possible when docking or floating the pane.
- */
- wxAuiPaneInfo& BestSize(const wxSize& size);
- wxAuiPaneInfo& BestSize(int x, int y);
- //@}
- /**
- Bottom() sets the pane dock position to the bottom side of the frame. This is
- the same thing as calling Direction(wxAUI_DOCK_BOTTOM).
- */
- wxAuiPaneInfo& Bottom();
- /**
- BottomDockable() indicates whether a pane can be docked at the bottom of the
- frame.
- */
- wxAuiPaneInfo& BottomDockable(bool b = true);
- /**
- Caption() sets the caption of the pane.
- */
- wxAuiPaneInfo& Caption(const wxString& c);
- /**
- CaptionVisible indicates that a pane caption should be visible. If @false, no
- pane caption is drawn.
- */
- wxAuiPaneInfo& CaptionVisible(bool visible = true);
- //@{
- /**
- Center() sets the pane dock position to the left side of the frame.
- The centre pane is the space in the middle after all border panes (left, top,
- right, bottom) are subtracted from the layout.
- This is the same thing as calling Direction(wxAUI_DOCK_CENTRE).
- */
- wxAuiPaneInfo& Centre();
- wxAuiPaneInfo& Center();
- //@}
- //@{
- /**
- CentrePane() specifies that the pane should adopt the default center pane
- settings. Centre panes usually do not have caption bars.
- This function provides an easy way of preparing a pane to be displayed in
- the center dock position.
- */
- wxAuiPaneInfo& CentrePane();
- wxAuiPaneInfo& CenterPane();
- //@}
- /**
- CloseButton() indicates that a close button should be drawn for the pane.
- */
- wxAuiPaneInfo& CloseButton(bool visible = true);
- /**
- DefaultPane() specifies that the pane should adopt the default pane settings.
- */
- wxAuiPaneInfo& DefaultPane();
- /**
- DestroyOnClose() indicates whether a pane should be destroyed when it is closed.
- Normally a pane is simply hidden when the close button is clicked.
- Setting DestroyOnClose to @true will cause the window to be destroyed when
- the user clicks the pane's close button.
- */
- wxAuiPaneInfo& DestroyOnClose(bool b = true);
- /**
- Direction() determines the direction of the docked pane. It is functionally the
- same as calling Left(), Right(), Top() or Bottom(), except that docking direction
- may be specified programmatically via the parameter.
- */
- wxAuiPaneInfo& Direction(int direction);
- /**
- Dock() indicates that a pane should be docked. It is the opposite of Float().
- */
- wxAuiPaneInfo& Dock();
- /**
- DockFixed() causes the containing dock to have no resize sash. This is useful
- for creating panes that span the entire width or height of a dock, but should
- not be resizable in the other direction.
- */
- wxAuiPaneInfo& DockFixed(bool b = true);
- /**
- Dockable() specifies whether a frame can be docked or not. It is the same as
- specifying TopDockable(b).BottomDockable(b).LeftDockable(b).RightDockable(b).
- */
- wxAuiPaneInfo& Dockable(bool b = true);
- /**
- Fixed() forces a pane to be fixed size so that it cannot be resized. After
- calling Fixed(), IsFixed() will return @true.
- */
- wxAuiPaneInfo& Fixed();
- /**
- Float() indicates that a pane should be floated. It is the opposite of Dock().
- */
- wxAuiPaneInfo& Float();
- /**
- Floatable() sets whether the user will be able to undock a pane and turn it
- into a floating window.
- */
- wxAuiPaneInfo& Floatable(bool b = true);
- //@{
- /**
- FloatingPosition() sets the position of the floating pane.
- */
- wxAuiPaneInfo& FloatingPosition(const wxPoint& pos);
- wxAuiPaneInfo& FloatingPosition(int x, int y);
- //@}
- //@{
- /**
- FloatingSize() sets the size of the floating pane.
- */
- wxAuiPaneInfo& FloatingSize(const wxSize& size);
- wxAuiPaneInfo& FloatingSize(int x, int y);
- //@}
- /**
- Gripper() indicates that a gripper should be drawn for the pane.
- */
- wxAuiPaneInfo& Gripper(bool visible = true);
- /**
- GripperTop() indicates that a gripper should be drawn at the top of the pane.
- */
- wxAuiPaneInfo& GripperTop(bool attop = true);
- /**
- HasBorder() returns @true if the pane displays a border.
- */
- bool HasBorder() const;
- /**
- HasCaption() returns @true if the pane displays a caption.
- */
- bool HasCaption() const;
- /**
- HasCloseButton() returns @true if the pane displays a button to close the pane.
- */
- bool HasCloseButton() const;
- /**
- HasFlag() returns @true if the property specified by flag is active for
- the pane.
- */
- bool HasFlag(int flag) const;
- /**
- HasGripper() returns @true if the pane displays a gripper.
- */
- bool HasGripper() const;
- /**
- HasGripper() returns @true if the pane displays a gripper at the top.
- */
- bool HasGripperTop() const;
- /**
- HasMaximizeButton() returns @true if the pane displays a button to maximize the
- pane.
- */
- bool HasMaximizeButton() const;
- /**
- HasMinimizeButton() returns @true if the pane displays a button to minimize the
- pane.
- */
- bool HasMinimizeButton() const;
- /**
- HasPinButton() returns @true if the pane displays a button to float the pane.
- */
- bool HasPinButton() const;
- /**
- Hide() indicates that a pane should be hidden.
- */
- wxAuiPaneInfo& Hide();
- /**
- Icon() sets the icon of the pane.
- Notice that the height of the icon should be smaller than the value
- returned by wxAuiDockArt::GetMetric(wxAUI_DOCKART_CAPTION_SIZE) to
- ensure that it appears correctly.
- @since 2.9.2
- */
- wxAuiPaneInfo& Icon(const wxBitmap& b);
- /**
- IsBottomDockable() returns @true if the pane can be docked at the bottom of the
- managed frame.
- @see IsDockable()
- */
- bool IsBottomDockable() const;
- /**
- Returns @true if the pane can be docked at any side.
- @see IsTopDockable(), IsBottomDockable(), IsLeftDockable(), IsRightDockable()
- @since 2.9.2
- */
- bool IsDockable() const;
- /**
- IsDocked() returns @true if the pane is currently docked.
- */
- bool IsDocked() const;
- /**
- IsFixed() returns @true if the pane cannot be resized.
- */
- bool IsFixed() const;
- /**
- IsFloatable() returns @true if the pane can be undocked and displayed as a
- floating window.
- */
- bool IsFloatable() const;
- /**
- IsFloating() returns @true if the pane is floating.
- */
- bool IsFloating() const;
- /**
- IsLeftDockable() returns @true if the pane can be docked on the left of the
- managed frame.
- @see IsDockable()
- */
- bool IsLeftDockable() const;
- /**
- IsMoveable() returns @true if the docked frame can be undocked or moved to
- another dock position.
- */
- bool IsMovable() const;
- /**
- IsOk() returns @true if the wxAuiPaneInfo structure is valid. A pane structure
- is valid if it has an associated window.
- */
- bool IsOk() const;
- /**
- IsResizable() returns @true if the pane can be resized.
- */
- bool IsResizable() const;
- /**
- IsRightDockable() returns @true if the pane can be docked on the right of the
- managed frame.
- @see IsDockable()
- */
- bool IsRightDockable() const;
- /**
- IsShown() returns @true if the pane is currently shown.
- */
- bool IsShown() const;
- /**
- IsToolbar() returns @true if the pane contains a toolbar.
- */
- bool IsToolbar() const;
- /**
- IsTopDockable() returns @true if the pane can be docked at the top of the
- managed frame.
- @see IsDockable()
- */
- bool IsTopDockable() const;
- /**
- Layer() determines the layer of the docked pane. The dock layer is similar to
- an onion, the inner-most layer being layer 0. Each shell moving in the outward
- direction has a higher layer number. This allows for more complex docking layout
- formation.
- */
- wxAuiPaneInfo& Layer(int layer);
- /**
- Left() sets the pane dock position to the left side of the frame. This is the
- same thing as calling Direction(wxAUI_DOCK_LEFT).
- */
- wxAuiPaneInfo& Left();
- /**
- LeftDockable() indicates whether a pane can be docked on the left of the frame.
- */
- wxAuiPaneInfo& LeftDockable(bool b = true);
- //@{
- /**
- MaxSize() sets the maximum size of the pane.
- */
- wxAuiPaneInfo& MaxSize(const wxSize& size);
- wxAuiPaneInfo& MaxSize(int x, int y);
- //@}
- /**
- MaximizeButton() indicates that a maximize button should be drawn for the pane.
- */
- wxAuiPaneInfo& MaximizeButton(bool visible = true);
- //@{
- /**
- MinSize() sets the minimum size of the pane. Please note that this is only
- partially supported as of this writing.
- */
- wxAuiPaneInfo& MinSize(const wxSize& size);
- wxAuiPaneInfo& MinSize(int x, int y);
- //@}
- /**
- MinimizeButton() indicates that a minimize button should be drawn for the pane.
- */
- wxAuiPaneInfo& MinimizeButton(bool visible = true);
- /**
- Movable indicates whether a frame can be moved.
- */
- wxAuiPaneInfo& Movable(bool b = true);
- /**
- Name() sets the name of the pane so it can be referenced in lookup functions.
- If a name is not specified by the user, a random name is assigned to the pane
- when it is added to the manager.
- */
- wxAuiPaneInfo& Name(const wxString& n);
- /**
- PaneBorder indicates that a border should be drawn for the pane.
- */
- wxAuiPaneInfo& PaneBorder(bool visible = true);
- /**
- PinButton() indicates that a pin button should be drawn for the pane.
- */
- wxAuiPaneInfo& PinButton(bool visible = true);
- /**
- Position() determines the position of the docked pane.
- */
- wxAuiPaneInfo& Position(int pos);
- /**
- Resizable() allows a pane to be resized if the parameter is @true, and forces it
- to be a fixed size if the parameter is @false. This is simply an antonym for Fixed().
- */
- wxAuiPaneInfo& Resizable(bool resizable = true);
- /**
- Right() sets the pane dock position to the right side of the frame.
- */
- wxAuiPaneInfo& Right();
- /**
- RightDockable() indicates whether a pane can be docked on the right of the
- frame.
- */
- wxAuiPaneInfo& RightDockable(bool b = true);
- /**
- Row() determines the row of the docked pane.
- */
- wxAuiPaneInfo& Row(int row);
- /**
- Write the safe parts of a newly loaded PaneInfo structure "source" into "this"
- used on loading perspectives etc.
- */
- void SafeSet(wxAuiPaneInfo source);
- /**
- SetFlag() turns the property given by flag on or off with the option_state
- parameter.
- */
- wxAuiPaneInfo& SetFlag(int flag, bool option_state);
- /**
- Show() indicates that a pane should be shown.
- */
- wxAuiPaneInfo& Show(bool show = true);
- /**
- ToolbarPane() specifies that the pane should adopt the default toolbar pane
- settings.
- */
- wxAuiPaneInfo& ToolbarPane();
- /**
- Top() sets the pane dock position to the top of the frame.
- */
- wxAuiPaneInfo& Top();
- /**
- TopDockable() indicates whether a pane can be docked at the top of the frame.
- */
- wxAuiPaneInfo& TopDockable(bool b = true);
- /**
- Window() assigns the window pointer that the wxAuiPaneInfo should use.
- This normally does not need to be specified, as the window pointer is
- automatically assigned to the wxAuiPaneInfo structure as soon as it is added
- to the manager.
- */
- wxAuiPaneInfo& Window(wxWindow* w);
- /**
- Makes a copy of the wxAuiPaneInfo object.
- */
- wxAuiPaneInfo& operator=(const wxAuiPaneInfo& c);
- };
- /**
- @class wxAuiManagerEvent
- Event used to indicate various actions taken with wxAuiManager.
- See wxAuiManager for available event types.
- @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_PANE_ACTIVATED(func)}
- Triggered when a pane is made 'active'. This event is new since
- wxWidgets 2.9.4.
- @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{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);
- };
|