| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389 | 
							- ///////////////////////////////////////////////////////////////////////////////
 
- // Name:        ribbon/bar.h
 
- // Purpose:     interface of wxRibbonBar
 
- // Author:      Peter Cawley
 
- // Licence:     wxWindows licence
 
- ///////////////////////////////////////////////////////////////////////////////
 
- /**
 
-     The possible display modes of the panel area of a wxRibbonBar widget.
 
-     @see wxRibbonBar::ShowPanels()
 
-     @see wxRibbonBar::GetDisplayMode()
 
-     @since 2.9.5
 
- */
 
- enum wxRibbonDisplayMode
 
- {
 
-     /**
 
-         The panel area is visible and pinned: it remains visible when the
 
-         ribbon bar loses the focus.
 
-      */
 
-     wxRIBBON_BAR_PINNED,
 
-     /**
 
-         The panel area is hidden: only the pages tabs remain visible.
 
-      */
 
-     wxRIBBON_BAR_MINIMIZED,
 
-     /**
 
-         The panel area is visible, but not pinned: it minimizes as soon as the
 
-         focus is lost.
 
-      */
 
-     wxRIBBON_BAR_EXPANDED
 
- };
 
- /**
 
-     @class wxRibbonBarEvent
 
-     Event used to indicate various actions relating to a wxRibbonBar.
 
-     See wxRibbonBar for available event types.
 
-     @library{wxribbon}
 
-     @category{events,ribbon}
 
-     @see wxRibbonBar
 
- */
 
- class wxRibbonBarEvent : public wxNotifyEvent
 
- {
 
- public:
 
-     /**
 
-         Constructor.
 
-     */
 
-     wxRibbonBarEvent(wxEventType command_type = wxEVT_NULL,
 
-                      int win_id = 0,
 
-                      wxRibbonPage* page = NULL);
 
-     /**
 
-         Returns the page being changed to, or being clicked on.
 
-     */
 
-     wxRibbonPage* GetPage();
 
-     
 
-     /**
 
-         Sets the page relating to this event.
 
-     */
 
-     void SetPage(wxRibbonPage* page);
 
- };
 
- /**
 
-     @class wxRibbonBar
 
-     Top-level control in a ribbon user interface. Serves as a tabbed container
 
-     for wxRibbonPage - a ribbon user interface typically has a ribbon bar,
 
-     which contains one or more wxRibbonPages, which in turn each contain one
 
-     or more wxRibbonPanels, which in turn contain controls.
 
-     
 
-     While a wxRibbonBar has tabs similar to a wxNotebook, it does not follow
 
-     the same API for adding pages. Containers like wxNotebook can contain any
 
-     type of window as a page, hence the normal procedure is to create the
 
-     sub-window and then call wxBookCtrlBase::AddPage(). As wxRibbonBar can only
 
-     have wxRibbonPage as children (and a wxRibbonPage can only have a
 
-     wxRibbonBar as parent), when a page is created, it is automatically added
 
-     to the bar - there is no AddPage equivalent to call.
 
-     
 
-     After all pages have been created, and all controls and panels placed on
 
-     those pages, Realize() must be called.
 
-     
 
-     @sa wxRibbonPage
 
-     @sa wxRibbonPanel
 
-     
 
-     @beginStyleTable
 
-     @style{wxRIBBON_BAR_DEFAULT_STYLE}
 
-         Defined as wxRIBBON_BAR_FLOW_HORIZONTAL |
 
-         wxRIBBON_BAR_SHOW_PAGE_LABELS | wxRIBBON_BAR_SHOW_PANEL_EXT_BUTTONS |
 
-         wxRIBBON_BAR_SHOW_TOGGLE_BUTTON | wxRIBBON_BAR_SHOW_HELP_BUTTON.
 
-     @style{wxRIBBON_BAR_FOLDBAR_STYLE}
 
-         Defined as wxRIBBON_BAR_FLOW_VERTICAL | wxRIBBON_BAR_SHOW_PAGE_ICONS
 
-         | wxRIBBON_BAR_SHOW_PANEL_EXT_BUTTONS |
 
-         wxRIBBON_BAR_SHOW_PANEL_MINIMISE_BUTTONS
 
-     @style{wxRIBBON_BAR_SHOW_PAGE_LABELS}
 
-         Causes labels to be shown on the tabs in the ribbon bar.
 
-     @style{wxRIBBON_BAR_SHOW_PAGE_ICONS}
 
-         Causes icons to be shown on the tabs in the ribbon bar.
 
-     @style{wxRIBBON_BAR_FLOW_HORIZONTAL}
 
-         Causes panels within pages to stack horizontally.
 
-     @style{wxRIBBON_BAR_FLOW_VERTICAL}
 
-         Causes panels within pages to stack vertically.
 
-     @style{wxRIBBON_BAR_SHOW_PANEL_EXT_BUTTONS}
 
-         Causes extension buttons to be shown on panels (where the panel has
 
-         such a button).
 
-     @style{wxRIBBON_BAR_SHOW_PANEL_MINIMISE_BUTTONS}
 
-         Causes minimise buttons to be shown on panels (where the panel has
 
-         such a button).
 
-     @style{wxRIBBON_BAR_SHOW_TOGGLE_BUTTON}
 
-         Causes a toggle button to appear on the ribbon bar at top-right corner.
 
-         This style is new since wxWidgets 2.9.5.
 
-     @style{wxRIBBON_BAR_SHOW_HELP_BUTTON}
 
-         Causes a help button to appear on the ribbon bar at the top-right corner.
 
-         This style is new since wxWidgets 2.9.5.
 
-     @endStyleTable
 
-     @beginEventEmissionTable{wxRibbonBarEvent}
 
-     @event{EVT_RIBBONBAR_PAGE_CHANGED(id, func)}
 
-         Triggered after the transition from one page being active to a different
 
-         page being active.
 
-     @event{EVT_RIBBONBAR_PAGE_CHANGING(id, func)}
 
-         Triggered prior to the transition from one page being active to a
 
-         different page being active, and can veto the change.
 
-     @event{EVT_RIBBONBAR_TAB_MIDDLE_DOWN(id, func)}
 
-         Triggered when the middle mouse button is pressed on a tab.
 
-     @event{EVT_RIBBONBAR_TAB_MIDDLE_UP(id, func)}
 
-         Triggered when the middle mouse button is released on a tab.
 
-     @event{EVT_RIBBONBAR_TAB_RIGHT_DOWN(id, func)}
 
-         Triggered when the right mouse button is pressed on a tab.
 
-     @event{EVT_RIBBONBAR_TAB_RIGHT_UP(id, func)}
 
-         Triggered when the right mouse button is released on a tab.
 
-     @event{EVT_RIBBONBAR_TAB_LEFT_DCLICK(id, func)}
 
-         Triggered when the left mouse button is double clicked on a tab.
 
-     @event{EVT_RIBBONBAR_TOGGLED(id, func)}
 
-         Triggered when the button triggering the ribbon bar is clicked. This
 
-         event is new since wxWidgets 2.9.5.
 
-     @event{EVT_RIBBONBAR_HELP_CLICK(id, func)}
 
-         Triggered when the help button is clicked. This even is new since
 
-         wxWidgets 2.9.5.
 
-     @endEventTable
 
-     @library{wxribbon}
 
-     @category{ribbon}
 
- */
 
- class wxRibbonBar : public wxRibbonControl
 
- {
 
- public:
 
-     /**
 
-         Default constructor.
 
-         With this constructor, Create() should be called in order to create
 
-         the ribbon bar.
 
-     */
 
-     wxRibbonBar();
 
-     /**
 
-         Construct a ribbon bar with the given parameters.
 
-     */
 
-     wxRibbonBar(wxWindow* parent,
 
-                 wxWindowID id = wxID_ANY,
 
-                 const wxPoint& pos = wxDefaultPosition,
 
-                 const wxSize& size = wxDefaultSize,
 
-                 long style = wxRIBBON_BAR_DEFAULT_STYLE);
 
-     
 
-     /**
 
-         Create a ribbon bar in two-step ribbon bar 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 wxPoint& pos = wxDefaultPosition,
 
-                 const wxSize& size = wxDefaultSize,
 
-                 long style = wxRIBBON_BAR_DEFAULT_STYLE);
 
-     /**
 
-         Destructor.
 
-     */
 
-     virtual ~wxRibbonBar();
 
-     /**
 
-         Set the margin widths (in pixels) on the left and right sides of the
 
-         tab bar region of the ribbon bar. These margins will be painted with
 
-         the tab background, but tabs and scroll buttons will never be painted
 
-         in the margins.
 
-         
 
-         The left margin could be used for rendering something equivalent to the
 
-         "Office Button", though this is not currently implemented. The right
 
-         margin could be used for rendering a help button, and/or MDI buttons,
 
-         but again, this is not currently implemented.
 
-     */
 
-     void SetTabCtrlMargins(int left, int right);
 
-     /**
 
-         Set the art provider to be used be the ribbon bar. Also sets the art
 
-         provider on all current wxRibbonPage children, and any wxRibbonPage
 
-         children added in the future.
 
-         
 
-         Note that unlike most other ribbon controls, the ribbon bar creates a
 
-         default art provider when initialised, so an explicit call to
 
-         SetArtProvider() is not required if the default art provider is
 
-         sufficient. Also, unlike other ribbon controls, the ribbon bar takes
 
-         ownership of the given pointer, and will delete it when the art
 
-         provider is changed or the bar is destroyed. If this behaviour is not
 
-         desired, then clone the art provider before setting it.
 
-     */
 
-     void SetArtProvider(wxRibbonArtProvider* art);
 
-     /**
 
-         Set the active page by index, without triggering any events.
 
-         
 
-         @param page
 
-             The zero-based index of the page to activate.
 
-         @return @true if the specified page is now active, @false if it could
 
-             not be activated (for example because the page index is invalid).
 
-     */
 
-     bool SetActivePage(size_t page);
 
-     
 
-     /**
 
-         Set the active page, without triggering any events.
 
-         
 
-         @param page
 
-             The page to activate.
 
-         @return @true if the specified page is now active, @false if it could
 
-             not be activated (for example because the given page is not a child
 
-             of the ribbon bar).
 
-     */
 
-     bool SetActivePage(wxRibbonPage* page);
 
-     
 
-     /**
 
-         Get the index of the active page.
 
-         
 
-         In the rare case of no page being active, -1 is returned.
 
-     */
 
-     int GetActivePage() const;
 
-     
 
-     /**
 
-         Get a page by index.
 
-         
 
-         NULL will be returned if the given index is out of range.
 
-     */
 
-     wxRibbonPage* GetPage(int n);
 
-     
 
-     /**
 
-         Get the number of pages in this bar.
 
-         @since 2.9.4
 
-     */
 
-     size_t GetPageCount() const;
 
-     /**
 
-         Dismiss the expanded panel of the currently active page.
 
-         
 
-         Calls and returns the value from wxRibbonPage::DismissExpandedPanel()
 
-         for the currently active page, or @false if there is no active page.
 
-     */
 
-     bool DismissExpandedPanel();
 
-     /**
 
-         Returns the number for a given ribbon bar page.
 
-         The number can be used in other ribbon bar calls.
 
-         @since 2.9.5
 
-     */
 
-     int GetPageNumber(wxRibbonPage* page) const;
 
-     /**
 
-         Delete a single page from this ribbon bar.
 
-         The user must call wxRibbonBar::Realize() after one (or more) calls to
 
-         this function.
 
-         @since 2.9.4
 
-     */
 
-     void DeletePage(size_t n);
 
-     /**
 
-         Delete all pages from the ribbon bar.
 
-         @since 2.9.4
 
-     */
 
-     void ClearPages();
 
-     /**
 
-         Indicates whether the tab for the given page is shown to the user or
 
-         not.
 
-         By default all page tabs are shown.
 
-         @since 2.9.5
 
-     */
 
-     bool IsPageShown(size_t page) const;
 
-     /**
 
-         Show or hide the tab for a given page.
 
-         After showing or hiding a tab, you need to call wxRibbonBar::Realize().
 
-         If you hide the tab for the currently active page (GetActivePage) then
 
-         you should call SetActivePage to activate a different page.
 
-         @since 2.9.5
 
-     */
 
-     void ShowPage(size_t page, bool show_tab=true);
 
-     /**
 
-         Hides the tab for a given page.
 
-         Equivalent to @c ShowPage(page, false).
 
-         @since 2.9.5
 
-     */
 
-     void HidePage(size_t page);
 
-     /**
 
-         Indicates whether a tab is currently highlighted.
 
-         @see AddPageHighlight()
 
-         @since 2.9.5
 
-     */
 
-     bool IsPageHighlighted(size_t page) const;
 
-     /**
 
-         Highlight the specified tab.
 
-         Highlighted tabs have a colour between that of the active tab
 
-         and a tab over which the mouse is hovering. This can be used
 
-         to make a tab (usually temporarily) more noticeable to the user.
 
-         @since 2.9.5
 
-     */
 
-     void AddPageHighlight(size_t page, bool highlight = true);
 
-     /**
 
-         Changes a tab to not be highlighted.
 
-         @see AddPageHighlight()
 
-         @since 2.9.5
 
-     */
 
-     void RemovePageHighlight(size_t page);
 
-     /**
 
-         Shows or hides the panel area of the ribbon bar.
 
-         If the panel area is hidden, then only the tab of the ribbon bar will
 
-         be shown. This is useful for giving the user more screen space to work
 
-         with when he/she doesn't need to see the ribbon's options.
 
-         @since 2.9.2
 
-     */
 
-     void ShowPanels(bool show = true);
 
-     /**
 
-         Hides the panel area of the ribbon bar.
 
-         This method simply calls ShowPanels() with @false argument.
 
-         @since 2.9.2
 
-     */
 
-     void HidePanels();
 
-     /**
 
-         Indicates whether the panel area of the ribbon bar is shown.
 
-         @see ShowPanels()
 
-         @since 2.9.2
 
-     */
 
-     bool ArePanelsShown() const;
 
-     
 
-     /**
 
-         Perform initial layout and size calculations of the bar and its
 
-         children. This must be called after all of the bar's children have been
 
-         created (and their children created, etc.) - if it is not, then windows
 
-         may not be laid out or sized correctly.
 
-         
 
-         Also calls wxRibbonPage::Realize() on each child page.
 
-     */
 
-     virtual bool Realize();
 
- };
 
 
  |