| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561 | 
							- ///////////////////////////////////////////////////////////////////////////////
 
- // Name:        ribbon/buttonbar.h
 
- // Purpose:     interface of wxRibbonButtonBar
 
- // Author:      Peter Cawley
 
- // Licence:     wxWindows licence
 
- ///////////////////////////////////////////////////////////////////////////////
 
- /**
 
-     Flags for button bar button size and state.
 
-     
 
-     Buttons on a ribbon button bar can each come in three sizes: small, medium,
 
-     and large. In some places this is called the size class, and the term size
 
-     used for the pixel width and height associated with a particular size
 
-     class.
 
-     
 
-     A button can also be in zero or more hovered or active states, or in the
 
-     disabled state.
 
- */
 
- enum wxRibbonButtonBarButtonState
 
- {
 
-     /**
 
-         Button is small (the interpretation of small is dependent upon the art
 
-         provider, but it will be smaller than medium).
 
-     */
 
-     wxRIBBON_BUTTONBAR_BUTTON_SMALL     = 0 << 0,
 
-     
 
-     /**
 
-         Button is medium sized (the interpretation of medium is dependent upon
 
-         the art provider, but it will be between small and large).
 
-     */
 
-     wxRIBBON_BUTTONBAR_BUTTON_MEDIUM    = 1 << 0,
 
-     
 
-     /**
 
-         Button is large (the interpretation of large is dependent upon the art
 
-         provider, but it will be larger than medium).
 
-     */
 
-     wxRIBBON_BUTTONBAR_BUTTON_LARGE     = 2 << 0,
 
-     
 
-     /**
 
-         A mask to extract button size from a combination of flags.
 
-     */
 
-     wxRIBBON_BUTTONBAR_BUTTON_SIZE_MASK = 3 << 0,
 
-     /**
 
-         The normal (non-dropdown) region of the button is being hovered over by
 
-         the mouse cursor. Only applicable to normal and hybrid buttons.
 
-     */
 
-     wxRIBBON_BUTTONBAR_BUTTON_NORMAL_HOVERED    = 1 << 3,
 
-     
 
-     /**
 
-         The dropdown region of the button is being hovered over by the mouse
 
-         cursor. Only applicable to dropdown and hybrid buttons.
 
-     */
 
-     wxRIBBON_BUTTONBAR_BUTTON_DROPDOWN_HOVERED  = 1 << 4,
 
-     
 
-     /**
 
-         A mask to extract button hover state from a combination of flags.
 
-     */
 
-     wxRIBBON_BUTTONBAR_BUTTON_HOVER_MASK        = wxRIBBON_BUTTONBAR_BUTTON_NORMAL_HOVERED | wxRIBBON_BUTTONBAR_BUTTON_DROPDOWN_HOVERED,
 
-     
 
-     /**
 
-         The normal (non-dropdown) region of the button is being pressed.
 
-         Only applicable to normal and hybrid buttons.
 
-     */
 
-     wxRIBBON_BUTTONBAR_BUTTON_NORMAL_ACTIVE     = 1 << 5,
 
-     
 
-     /**
 
-         The dropdown region of the button is being pressed.
 
-         Only applicable to dropdown and hybrid buttons.
 
-     */
 
-     wxRIBBON_BUTTONBAR_BUTTON_DROPDOWN_ACTIVE   = 1 << 6,
 
-     
 
-     /**
 
-         The button is disabled. Hover flags may still be set when a button
 
-         is disabled, but should be ignored during drawing if the button is
 
-         disabled.
 
-     */
 
-     wxRIBBON_BUTTONBAR_BUTTON_DISABLED          = 1 << 7,
 
-     
 
-     /**
 
-         The button is a toggle button which is currently in the toggled state.
 
-     */
 
-     wxRIBBON_BUTTONBAR_BUTTON_TOGGLED           = 1 << 8,
 
-     
 
-     /**
 
-         A mask to extract button state from a combination of flags.
 
-     */
 
-     wxRIBBON_BUTTONBAR_BUTTON_STATE_MASK        = 0x1F8,
 
- };
 
- /**
 
-     @class wxRibbonButtonBar
 
-     
 
-     A ribbon button bar is similar to a traditional toolbar. It contains one or
 
-     more buttons (button bar buttons, not wxButtons), each of which has a label
 
-     and an icon. It differs from a wxRibbonToolBar in several ways:
 
-       @li Individual buttons can grow and contract.
 
-       @li Buttons have labels as well as bitmaps.
 
-       @li Bitmaps are typically larger (at least 32x32 pixels) on a button bar
 
-         compared to a tool bar (which typically has 16x15).
 
-       @li There is no grouping of buttons on a button bar
 
-       @li A button bar typically has a border around each individual button,
 
-         whereas a tool bar typically has a border around each group of buttons.
 
-     
 
-     @beginEventEmissionTable{wxRibbonButtonBarEvent}
 
-     @event{EVT_RIBBONBUTTONBAR_CLICKED(id, func)}
 
-         Triggered when the normal (non-dropdown) region of a button on the
 
-         button bar is clicked.
 
-     @event{EVT_RIBBONBUTTONBAR_DROPDOWN_CLICKED(id, func)}
 
-         Triggered when the dropdown region of a button on the button bar is
 
-         clicked. wxRibbonButtonBarEvent::PopupMenu() should be called by the
 
-         event handler if it wants to display a popup menu (which is what most
 
-         dropdown buttons should be doing).
 
-     @endEventTable
 
-     
 
-     @library{wxribbon}
 
-     @category{ribbon}
 
- */
 
- class wxRibbonButtonBar : public wxRibbonControl
 
- {
 
- public:
 
-     /**
 
-         Default constructor.
 
-         With this constructor, Create() should be called in order to create
 
-         the button bar.
 
-     */
 
-     wxRibbonButtonBar();
 
-     /**
 
-         Construct a ribbon button bar with the given parameters.
 
-         
 
-         @param parent
 
-             Parent window for the button bar (typically a wxRibbonPanel).
 
-         @param id
 
-             An identifier for the button bar. @c wxID_ANY is taken to mean a default.
 
-         @param pos
 
-             Initial position of the button bar.
 
-         @param size
 
-             Initial size of the button bar.
 
-         @param style
 
-             Button bar style, currently unused.
 
-     */
 
-     wxRibbonButtonBar(wxWindow* parent,
 
-                   wxWindowID id = wxID_ANY,
 
-                   const wxPoint& pos = wxDefaultPosition,
 
-                   const wxSize& size = wxDefaultSize,
 
-                   long style = 0);
 
-     /**
 
-         Destructor.
 
-     */
 
-     virtual ~wxRibbonButtonBar();
 
-     /**
 
-         Create a button bar in two-step button 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 = 0);
 
-     /**
 
-         Add a button to the button bar (simple version).
 
-     */
 
-     virtual wxRibbonButtonBarButtonBase* AddButton(
 
-                 int button_id,
 
-                 const wxString& label,
 
-                 const wxBitmap& bitmap,
 
-                 const wxString& help_string,
 
-                 wxRibbonButtonKind kind = wxRIBBON_BUTTON_NORMAL);
 
-     /**
 
-         Add a dropdown button to the button bar (simple version).
 
-         
 
-         @see AddButton()
 
-     */
 
-     virtual wxRibbonButtonBarButtonBase* AddDropdownButton(
 
-                 int button_id,
 
-                 const wxString& label,
 
-                 const wxBitmap& bitmap,
 
-                 const wxString& help_string = wxEmptyString);
 
-     /**
 
-         Add a hybrid button to the button bar (simple version).
 
-         
 
-         @see AddButton()
 
-     */
 
-     virtual wxRibbonButtonBarButtonBase* AddHybridButton(
 
-                 int button_id,
 
-                 const wxString& label,
 
-                 const wxBitmap& bitmap,
 
-                 const wxString& help_string = wxEmptyString);
 
-     
 
-     /**
 
-         Add a toggle button to the button bar (simple version).
 
-         
 
-         @see AddButton()
 
-     */
 
-     virtual wxRibbonButtonBarButtonBase* AddToggleButton(
 
-                 int button_id,
 
-                 const wxString& label,
 
-                 const wxBitmap& bitmap,
 
-                 const wxString& help_string = wxEmptyString);
 
-     
 
-     /**
 
-         Add a button to the button bar.
 
-         
 
-         @param button_id
 
-             ID of the new button (used for event callbacks).
 
-         @param label
 
-             Label of the new button.
 
-         @param bitmap
 
-             Large bitmap of the new button. Must be the same size as all other
 
-             large bitmaps used on the button bar.
 
-         @param bitmap_small
 
-             Small bitmap of the new button. If left as null, then a small
 
-             bitmap will be automatically generated. Must be the same size as
 
-             all other small bitmaps used on the button bar.
 
-         @param bitmap_disabled
 
-             Large bitmap of the new button when it is disabled. If left as
 
-             null, then a bitmap will be automatically generated from @a bitmap.
 
-         @param bitmap_small_disabled
 
-             Small bitmap of the new button when it is disabled. If left as
 
-             null, then a bitmap will be automatically generated from @a
 
-             bitmap_small.
 
-         @param kind
 
-             The kind of button to add.
 
-         @param help_string
 
-             The UI help string to associate with the new button.
 
-         
 
-         @return An opaque pointer which can be used only with other button bar
 
-             methods.
 
-             
 
-         @see AddDropdownButton()
 
-         @see AddHybridButton()
 
-         @see AddToggleButton()
 
-     */
 
-     virtual wxRibbonButtonBarButtonBase* AddButton(
 
-                 int button_id,
 
-                 const wxString& label,
 
-                 const wxBitmap& bitmap,
 
-                 const wxBitmap& bitmap_small = wxNullBitmap,
 
-                 const wxBitmap& bitmap_disabled = wxNullBitmap,
 
-                 const wxBitmap& bitmap_small_disabled = wxNullBitmap,
 
-                 wxRibbonButtonKind kind = wxRIBBON_BUTTON_NORMAL,
 
-                 const wxString& help_string = wxEmptyString);
 
-     /**
 
-         Inserts a button to the button bar (simple version) at the given position.
 
-         @see AddButton()
 
-         @since 2.9.4
 
-     */
 
-     virtual wxRibbonButtonBarButtonBase* InsertButton(
 
-                 size_t pos,
 
-                 int button_id,
 
-                 const wxString& label,
 
-                 const wxBitmap& bitmap,
 
-                 const wxString& help_string,
 
-                 wxRibbonButtonKind kind = wxRIBBON_BUTTON_NORMAL);
 
-     /**
 
-         Inserts a dropdown button to the button bar (simple version) at the
 
-             given position.
 
-         @see InsertButton()
 
-         @see AddDropdownButton()
 
-         @see AddButton()
 
-         @since 2.9.4
 
-     */
 
-     virtual wxRibbonButtonBarButtonBase* InsertDropdownButton(
 
-                 size_t pos,
 
-                 int button_id,
 
-                 const wxString& label,
 
-                 const wxBitmap& bitmap,
 
-                 const wxString& help_string = wxEmptyString);
 
-     /**
 
-         Inserts a hybrid button to the button bar (simple version) at the given
 
-             position.
 
-         @see InsertButton()
 
-         @see AddHybridButton()
 
-         @see AddButton()
 
-         @since 2.9.4
 
-     */
 
-     virtual wxRibbonButtonBarButtonBase* InsertHybridButton(
 
-                 size_t pos,
 
-                 int button_id,
 
-                 const wxString& label,
 
-                 const wxBitmap& bitmap,
 
-                 const wxString& help_string = wxEmptyString);
 
-     /**
 
-         Inserts a toggle button to the button bar (simple version) at the given
 
-             position.
 
-         @see InsertButton()
 
-         @see AddToggleButton()
 
-         @see AddButton()
 
-         @since 2.9.4
 
-     */
 
-     virtual wxRibbonButtonBarButtonBase* InsertToggleButton(
 
-                 size_t pos,
 
-                 int button_id,
 
-                 const wxString& label,
 
-                 const wxBitmap& bitmap,
 
-                 const wxString& help_string = wxEmptyString);
 
-     /**
 
-         Insert a button to the button bar at the given position.
 
-         @param pos
 
-             Position of the new button in the button bar.
 
-         @param button_id
 
-             ID of the new button (used for event callbacks).
 
-         @param label
 
-             Label of the new button.
 
-         @param bitmap
 
-             Large bitmap of the new button. Must be the same size as all other
 
-             large bitmaps used on the button bar.
 
-         @param bitmap_small
 
-             Small bitmap of the new button. If left as null, then a small
 
-             bitmap will be automatically generated. Must be the same size as
 
-             all other small bitmaps used on the button bar.
 
-         @param bitmap_disabled
 
-             Large bitmap of the new button when it is disabled. If left as
 
-             null, then a bitmap will be automatically generated from @a bitmap.
 
-         @param bitmap_small_disabled
 
-             Small bitmap of the new button when it is disabled. If left as
 
-             null, then a bitmap will be automatically generated from @a
 
-             bitmap_small.
 
-         @param kind
 
-             The kind of button to add.
 
-         @param help_string
 
-             The UI help string to associate with the new button.
 
-         @return An opaque pointer which can be used only with other button bar
 
-             methods.
 
-         @see InsertDropdownButton()
 
-         @see InsertHybridButton()
 
-         @see InsertToggleButton()
 
-         @see AddButton()
 
-         @since 2.9.4
 
-     */
 
-     virtual wxRibbonButtonBarButtonBase* InsertButton(
 
-                 size_t pos,
 
-                 int button_id,
 
-                 const wxString& label,
 
-                 const wxBitmap& bitmap,
 
-                 const wxBitmap& bitmap_small = wxNullBitmap,
 
-                 const wxBitmap& bitmap_disabled = wxNullBitmap,
 
-                 const wxBitmap& bitmap_small_disabled = wxNullBitmap,
 
-                 wxRibbonButtonKind kind = wxRIBBON_BUTTON_NORMAL,
 
-                 const wxString& help_string = wxEmptyString);
 
-     /**
 
-         Returns the number of buttons in this button bar.
 
-         @since 2.9.4
 
-     */
 
-     virtual size_t GetButtonCount() const;
 
-     /**
 
-         Set the client object associated with a button. The button bar
 
-         owns the given object and takes care of its deletion.
 
-         Please, note that you cannot use both client object and client data.
 
-         @since 2.9.5
 
-     */
 
-     void SetItemClientObject(wxRibbonButtonBarButtonBase* item, wxClientData* data);
 
-     /**
 
-         Get the client object associated with a button.
 
-         @since 2.9.5
 
-     */
 
-     wxClientData* GetItemClientObject(const wxRibbonButtonBarButtonBase* item) const;
 
-     /**
 
-         Set the client data associated with a button.
 
-         Please, note that you cannot use both client object and client data.
 
-         @since 2.9.5
 
-     */
 
-     void SetItemClientData(wxRibbonButtonBarButtonBase* item, void* data);
 
-     /**
 
-         Get the client data associated with a button.
 
-         @since 2.9.5
 
-     */
 
-     void* GetItemClientData(const wxRibbonButtonBarButtonBase* item) const;
 
-     /**
 
-         Returns the N-th button of the bar.
 
-         @see GetButtonCount()
 
-         @since 2.9.5
 
-     */
 
-     virtual wxRibbonButtonBarButtonBase *GetItem(size_t n) const;
 
-     /**
 
-         Returns the first button having a given id or NULL if none matches.
 
-         @since 2.9.5
 
-     */
 
-     virtual wxRibbonButtonBarButtonBase *GetItemById(int id) const;
 
-     /**
 
-         Returns the id of a button.
 
-         @since 2.9.5
 
-     */
 
-     virtual int GetItemId(wxRibbonButtonBarButtonBase *) const;
 
-     /**
 
-         Calculate button layouts and positions.
 
-         
 
-         Must be called after buttons are added to the button bar, as otherwise
 
-         the newly added buttons will not be displayed. In normal situations, it
 
-         will be called automatically when wxRibbonBar::Realize() is called.
 
-     */
 
-     virtual bool Realize();
 
-     
 
-     /**
 
-         Delete all buttons from the button bar.
 
-         
 
-         @see DeleteButton()
 
-     */
 
-     virtual void ClearButtons();
 
-     
 
-     /**
 
-         Delete a single button from the button bar.
 
-         
 
-         @see ClearButtons()
 
-     */
 
-     virtual bool DeleteButton(int button_id);
 
-     
 
-     /**
 
-         Enable or disable a single button on the bar.
 
-         
 
-         @param button_id
 
-             ID of the button to enable or disable.
 
-         @param enable
 
-             @true to enable the button, @false to disable it.
 
-     */
 
-     virtual void EnableButton(int button_id, bool enable = true);
 
-     
 
-     /**
 
-         Set a toggle button to the checked or unchecked state.
 
-         
 
-         @param button_id
 
-             ID of the toggle button to manipulate.
 
-         @param checked
 
-             @true to set the button to the toggled/pressed/checked state,
 
-             @false to set it to the untoggled/unpressed/unchecked state.
 
-     */
 
-     virtual void ToggleButton(int button_id, bool checked);
 
-     /**
 
-         Returns the active item of the button bar or NULL if there is none.
 
-         The active button is the one being clicked.
 
-         @since 2.9.5
 
-     */
 
-     virtual wxRibbonButtonBarButtonBase *GetActiveItem() const;
 
-     /**
 
-         Returns the hovered item of the button bar or NULL if there is none.
 
-         The hovered button is the one the mouse is over.
 
-         @since 2.9.5
 
-     */
 
-     virtual wxRibbonButtonBarButtonBase *GetHoveredItem() const;
 
-     /**
 
-         Indicates whether tooltips are shown for disabled buttons.
 
-         By default they are not shown.
 
-         @since 2.9.5
 
-     */
 
-     void SetShowToolTipsForDisabled(bool show);
 
-     /**
 
-         Sets whether tooltips should be shown for disabled buttons or not.
 
-         You may wish to show it to explain why a button is disabled or
 
-         what it normally does when enabled.
 
-         @since 2.9.5
 
-     */
 
-     bool GetShowToolTipsForDisabled() const;
 
- };
 
- /**
 
-     @class wxRibbonButtonBarEvent
 
-     Event used to indicate various actions relating to a button on a
 
-     wxRibbonButtonBar. For toggle buttons, IsChecked() can be used to test
 
-     the state of the button.
 
-     See wxRibbonButtonBar for available event types.
 
-     @library{wxribbon}
 
-     @category{events,ribbon}
 
-     @see wxRibbonBar
 
- */
 
- class wxRibbonButtonBarEvent : public wxCommandEvent
 
- {
 
- public:
 
-     /**
 
-         Constructor.
 
-     */
 
-     wxRibbonButtonBarEvent(wxEventType command_type = wxEVT_NULL,
 
-                        int win_id = 0,
 
-                        wxRibbonButtonBar* bar = NULL,
 
-                        wxRibbonButtonBarButtonBase* button = NULL);
 
-     /**
 
-         Returns the bar which contains the button which the event relates to.
 
-     */
 
-     wxRibbonButtonBar* GetBar();
 
-         
 
-     /**
 
-         Sets the button bar relating to this event.
 
-     */
 
-     void SetBar(wxRibbonButtonBar* bar);
 
-     
 
-     /**
 
-         Returns the button which the event relates to.
 
-         @since 2.9.5
 
-     */
 
-     wxRibbonButtonBarButtonBase* GetButton();
 
-     /**
 
-         Sets the button relating to this event.
 
-         @since 2.9.5
 
-     */
 
-     void SetButton(wxRibbonButtonBarButtonBase* bar);
 
-     /**
 
-         Display a popup menu as a result of this (dropdown clicked) event.
 
-     */
 
-     bool PopupMenu(wxMenu* menu);
 
- };
 
 
  |