| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275 | 
							- ///////////////////////////////////////////////////////////////////////////////
 
- // Name:        ribbon/panel.h
 
- // Purpose:     interface of wxRibbonPage
 
- // Author:      Peter Cawley
 
- // Licence:     wxWindows licence
 
- ///////////////////////////////////////////////////////////////////////////////
 
- /**
 
-     @class wxRibbonPanelEvent
 
-     Event used to indicate various actions relating to a wxRibbonPanel.
 
-     See wxRibbonPanel for available event types.
 
-     @since 2.9.4
 
-     @library{wxribbon}
 
-     @category{events,ribbon}
 
-     @see wxRibbonPanel
 
- */
 
- class wxRibbonPanelEvent : public wxCommandEvent
 
- {
 
- public:
 
-     /**
 
-         Constructor.
 
-     */
 
-     wxRibbonPanelEvent(wxEventType command_type = wxEVT_NULL,
 
-                        int win_id = 0,
 
-                        wxRibbonPanel* panel = NULL)
 
-     /**
 
-         Returns the panel relating to this event.
 
-     */
 
-     wxRibbonPanel* GetPanel();
 
-     /**
 
-         Sets the page relating to this event.
 
-     */
 
-     void SetPanel(wxRibbonPanel* page);
 
- };
 
- /**
 
-     @class wxRibbonPanel
 
-     Serves as a container for a group of (ribbon) controls. A wxRibbonPage will
 
-     typically have panels for children, with the controls for that page placed
 
-     on the panels.
 
-     A panel adds a border and label to a group of controls, and can be
 
-     minimised (either automatically to conserve space, or manually by the user).
 
-     Non ribbon controls can be placed on a panel using wxSizers to manage
 
-     layout. Panel size is governed by the sizer's minimum calculated size and
 
-     the parent wxRibbonPage's dimensions. For functional and aesthetic reasons
 
-     it is recommended that ribbon and non ribbon controls are not mixed in one
 
-     panel.
 
-     @sa wxRibbonPage
 
-     @beginStyleTable
 
-     @style{wxRIBBON_PANEL_DEFAULT_STYLE}
 
-         Defined as no other flags set.
 
-     @style{wxRIBBON_PANEL_NO_AUTO_MINIMISE}
 
-         Prevents the panel from automatically minimising to conserve screen
 
-         space.
 
-     @style{wxRIBBON_PANEL_EXT_BUTTON}
 
-         Causes an extension button to be shown in the panel's chrome (if the
 
-         bar in which it is contained has wxRIBBON_BAR_SHOW_PANEL_EXT_BUTTONS
 
-         set). The behaviour of this button is application controlled, but
 
-         typically will show an extended drop-down menu relating to the
 
-         panel.
 
-     @style{wxRIBBON_PANEL_MINIMISE_BUTTON}
 
-         Causes a (de)minimise button to be shown in the panel's chrome (if
 
-         the bar in which it is contained has the
 
-         wxRIBBON_BAR_SHOW_PANEL_MINIMISE_BUTTONS style set). This flag is
 
-         typically combined with wxRIBBON_PANEL_NO_AUTO_MINIMISE to make a
 
-         panel which the user always has manual control over when it
 
-         minimises.
 
-     @style{wxRIBBON_PANEL_STRETCH}
 
-         Stretches a single panel to fit the parent page.
 
-     @style{wxRIBBON_PANEL_FLEXIBLE}
 
-         Allows the panel to size in both directions; currently only useful
 
-         when a single wxRibbonToolBar is the child of the panel, particularly
 
-         in vertical orientation where the number of rows is dependent on the
 
-         amount of horizontal space available. Set the minimum and maximum
 
-         toolbar rows to take full advantage of this wrapping behaviour.
 
-     @endStyleTable
 
-     @beginEventEmissionTable{wxRibbonPanelEvent}
 
-     @event{EVT_RIBBONPANEL_EXTBUTTON_ACTIVATED(id, func)}
 
-         Triggered when the user activate the panel extension button.
 
-     @endEventTable
 
-     @library{wxribbon}
 
-     @category{ribbon}
 
- */
 
- class wxRibbonPanel : public wxRibbonControl
 
- {
 
- public:
 
-     /**
 
-         Default constructor.
 
-         With this constructor, Create() should be called in order to create
 
-         the ribbon panel.
 
-     */
 
-     wxRibbonPanel();
 
-     /**
 
-         Constructs a ribbon panel.
 
-         @param parent
 
-             Pointer to a parent window, which is typically a wxRibbonPage,
 
-             though it can be any window.
 
-         @param id
 
-             Window identifier.
 
-         @param label
 
-             Label to be used in the wxRibbonPanel's chrome.
 
-         @param minimised_icon
 
-             Icon to be used in place of the panel's children when the panel
 
-             is minimised.
 
-         @param pos
 
-             The initial position of the panel. Not relevant when the parent is
 
-             a ribbon page, as the position and size of the panel will be
 
-             dictated by the page.
 
-         @param size
 
-             The initial size of the panel. Not relevant when the parent is a
 
-             ribbon page, as the position and size of the panel will be
 
-             dictated by the page.
 
-         @param style
 
-             Style flags for the panel.
 
-     */
 
-     wxRibbonPanel(wxWindow* parent,
 
-                   wxWindowID id = wxID_ANY,
 
-                   const wxString& label = wxEmptyString,
 
-                   const wxBitmap& minimised_icon = wxNullBitmap,
 
-                   const wxPoint& pos = wxDefaultPosition,
 
-                   const wxSize& size = wxDefaultSize,
 
-                   long style = wxRIBBON_PANEL_DEFAULT_STYLE);
 
-     /**
 
-         Create a ribbon panel in two-step ribbon panel construction.
 
-         Should only be called when the default constructor is used, and
 
-         arguments have the same meaning as in the full constructor.
 
-     */
 
-     bool Create(wxWindow* parent,
 
-                 wxWindowID id = wxID_ANY,
 
-                 const wxString& label = wxEmptyString,
 
-                 const wxBitmap& icon = wxNullBitmap,
 
-                 const wxPoint& pos = wxDefaultPosition,
 
-                 const wxSize& size = wxDefaultSize,
 
-                 long style = wxRIBBON_PANEL_DEFAULT_STYLE);
 
-     /**
 
-         Destructor.
 
-     */
 
-     virtual ~wxRibbonPanel();
 
-     /**
 
-         Get the bitmap to be used in place of the panel children when it is
 
-         minimised.
 
-     */
 
-     wxBitmap& GetMinimisedIcon();
 
-     const wxBitmap& GetMinimisedIcon() const;
 
-     /**
 
-         Test if the panel has an extension button.
 
-         Such button is shown in the top right corner of the panel if
 
-         @c wxRIBBON_PANEL_EXT_BUTTON style is used for it.
 
-         @since 2.9.4
 
-         @return @true if the panel and its wxRibbonBar allow it in their styles.
 
-     */
 
-     virtual bool HasExtButton() const;
 
-     /**
 
-         Query if the panel is currently minimised.
 
-     */
 
-     bool IsMinimised() const;
 
-     /**
 
-         Query if the panel would be minimised at a given size.
 
-     */
 
-     bool IsMinimised(wxSize at_size) const;
 
-     /**
 
-         Query is the mouse is currently hovered over the panel.
 
-         @return @true if the cursor is within the bounds of the panel (i.e.
 
-             hovered over the panel or one of its children), @false otherwise.
 
-     */
 
-     bool IsHovered() const;
 
-     /**
 
-         Query if the mouse is currently hovered over the extension button.
 
-         Extension button is only shown for panels with @c
 
-         wxRIBBON_PANEL_EXT_BUTTON style.
 
-         @since 2.9.4
 
-     */
 
-     bool IsExtButtonHovered() const;
 
-     /**
 
-         Query if the panel can automatically minimise itself at small sizes.
 
-     */
 
-     bool CanAutoMinimise() const;
 
-     /**
 
-         Show the panel externally expanded.
 
-         When a panel is minimised, it can be shown full-size in a pop-out
 
-         window, which is referred to as being (externally) expanded. Note that
 
-         when a panel is expanded, there exist two panels - the original panel
 
-         (which is referred to as the dummy panel) and the expanded panel. The
 
-         original is termed a dummy as it sits in the ribbon bar doing nothing,
 
-         while the expanded panel holds the panel children.
 
-         @return @true if the panel was expanded, @false if it was not (possibly
 
-             due to it not being minimised, or already being expanded).
 
-         @see HideExpanded()
 
-         @see GetExpandedPanel()
 
-     */
 
-     bool ShowExpanded();
 
-     /**
 
-         Hide the panel's external expansion.
 
-         @return @true if the panel was un-expanded, @false if it was not
 
-             (normally due to it not being expanded in the first place).
 
-         @see HideExpanded()
 
-         @see GetExpandedPanel()
 
-     */
 
-     bool HideExpanded();
 
-     /**
 
-         Set the art provider to be used. Normally called automatically by
 
-         wxRibbonPage when the panel is created, or the art provider changed on the
 
-         page.
 
-         The new art provider will be propagated to the children of the panel.
 
-     */
 
-     void SetArtProvider(wxRibbonArtProvider* art);
 
-     /**
 
-         Realize all children of the panel.
 
-     */
 
-     bool Realize();
 
-     /**
 
-         Get the dummy panel of an expanded panel.
 
-         Note that this should be called on an expanded panel to get the dummy
 
-         associated with it - it will return NULL when called on the dummy
 
-         itself.
 
-         @see ShowExpanded()
 
-         @see GetExpandedPanel()
 
-     */
 
-     wxRibbonPanel* GetExpandedDummy();
 
-     /**
 
-         Get the expanded panel of a dummy panel.
 
-         Note that this should be called on a dummy panel to get the expanded
 
-         panel associated with it - it will return NULL when called on the
 
-         expanded panel itself.
 
-         @see ShowExpanded()
 
-         @see GetExpandedDummy()
 
-     */
 
-     wxRibbonPanel* GetExpandedPanel();
 
- };
 
 
  |