X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/ce00f59b5b169752d2f05ce3bb1a88ddc1b38b4c..66c2bf7b1d9326fb650acfaae22ec50528cfbf7c:/include/wx/ribbon/buttonbar.h?ds=sidebyside diff --git a/include/wx/ribbon/buttonbar.h b/include/wx/ribbon/buttonbar.h index 7063326b67..ab637a104e 100644 --- a/include/wx/ribbon/buttonbar.h +++ b/include/wx/ribbon/buttonbar.h @@ -4,7 +4,6 @@ // Author: Peter Cawley // Modified by: // Created: 2009-07-01 -// RCS-ID: $Id$ // Copyright: (C) Peter Cawley // Licence: wxWindows licence /////////////////////////////////////////////////////////////////////////////// @@ -23,8 +22,8 @@ class wxRibbonButtonBarButtonBase; class wxRibbonButtonBarLayout; class wxRibbonButtonBarButtonInstance; -WX_DEFINE_USER_EXPORTED_ARRAY(wxRibbonButtonBarLayout*, wxArrayRibbonButtonBarLayout, class WXDLLIMPEXP_RIBBON); -WX_DEFINE_USER_EXPORTED_ARRAY(wxRibbonButtonBarButtonBase*, wxArrayRibbonButtonBarButtonBase, class WXDLLIMPEXP_RIBBON); +WX_DEFINE_USER_EXPORTED_ARRAY_PTR(wxRibbonButtonBarLayout*, wxArrayRibbonButtonBarLayout, class WXDLLIMPEXP_RIBBON); +WX_DEFINE_USER_EXPORTED_ARRAY_PTR(wxRibbonButtonBarButtonBase*, wxArrayRibbonButtonBarButtonBase, class WXDLLIMPEXP_RIBBON); class WXDLLIMPEXP_RIBBON wxRibbonButtonBar : public wxRibbonControl { @@ -67,6 +66,12 @@ public: const wxBitmap& bitmap, const wxString& help_string = wxEmptyString); + virtual wxRibbonButtonBarButtonBase* AddToggleButton( + int button_id, + const wxString& label, + const wxBitmap& bitmap, + const wxString& help_string = wxEmptyString); + virtual wxRibbonButtonBarButtonBase* AddButton( int button_id, const wxString& label, @@ -75,18 +80,76 @@ public: const wxBitmap& bitmap_disabled = wxNullBitmap, const wxBitmap& bitmap_small_disabled = wxNullBitmap, wxRibbonButtonKind kind = wxRIBBON_BUTTON_NORMAL, - const wxString& help_string = wxEmptyString, - wxObject* client_data = NULL); + const wxString& help_string = wxEmptyString); + + virtual wxRibbonButtonBarButtonBase* InsertButton( + size_t pos, + int button_id, + const wxString& label, + const wxBitmap& bitmap, + const wxString& help_string, + wxRibbonButtonKind kind = wxRIBBON_BUTTON_NORMAL); + + virtual wxRibbonButtonBarButtonBase* InsertDropdownButton( + size_t pos, + int button_id, + const wxString& label, + const wxBitmap& bitmap, + const wxString& help_string = wxEmptyString); + + virtual wxRibbonButtonBarButtonBase* InsertHybridButton( + size_t pos, + int button_id, + const wxString& label, + const wxBitmap& bitmap, + const wxString& help_string = wxEmptyString); + + virtual wxRibbonButtonBarButtonBase* InsertToggleButton( + size_t pos, + int button_id, + const wxString& label, + const wxBitmap& bitmap, + const wxString& help_string = wxEmptyString); + + 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); + + void SetItemClientObject(wxRibbonButtonBarButtonBase* item, wxClientData* data); + wxClientData* GetItemClientObject(const wxRibbonButtonBarButtonBase* item) const; + void SetItemClientData(wxRibbonButtonBarButtonBase* item, void* data); + void* GetItemClientData(const wxRibbonButtonBarButtonBase* item) const; + + virtual size_t GetButtonCount() const; + virtual wxRibbonButtonBarButtonBase *GetItem(size_t n) const; + virtual wxRibbonButtonBarButtonBase *GetItemById(int id) const; + virtual int GetItemId(wxRibbonButtonBarButtonBase *button) const; + virtual bool Realize(); virtual void ClearButtons(); virtual bool DeleteButton(int button_id); virtual void EnableButton(int button_id, bool enable = true); + virtual void ToggleButton(int button_id, bool checked); + + virtual wxRibbonButtonBarButtonBase *GetActiveItem() const; + virtual wxRibbonButtonBarButtonBase *GetHoveredItem() const; virtual void SetArtProvider(wxRibbonArtProvider* art); virtual bool IsSizingContinuous() const; virtual wxSize GetMinSize() const; + + void SetShowToolTipsForDisabled(bool show); + bool GetShowToolTipsForDisabled() const; + protected: friend class wxRibbonButtonBarEvent; virtual wxSize DoGetBestSize() const; @@ -113,6 +176,7 @@ protected: static wxBitmap MakeDisabledBitmap(const wxBitmap& original); void FetchButtonSizeInfo(wxRibbonButtonBarButtonBase* button, wxRibbonButtonBarButtonState size, wxDC& dc); + virtual void UpdateWindowUI(long flags); wxArrayRibbonButtonBarLayout m_layouts; wxArrayRibbonButtonBarButtonBase m_buttons; @@ -125,6 +189,7 @@ protected: int m_current_layout; bool m_layouts_valid; bool m_lock_active_state; + bool m_show_tooltips_for_disabled; #ifndef SWIG DECLARE_CLASS(wxRibbonButtonBar) @@ -137,25 +202,30 @@ class WXDLLIMPEXP_RIBBON wxRibbonButtonBarEvent : public wxCommandEvent public: wxRibbonButtonBarEvent(wxEventType command_type = wxEVT_NULL, int win_id = 0, - wxRibbonButtonBar* bar = NULL) + wxRibbonButtonBar* bar = NULL, + wxRibbonButtonBarButtonBase* button = NULL) : wxCommandEvent(command_type, win_id) - , m_bar(bar) + , m_bar(bar), m_button(button) { } #ifndef SWIG wxRibbonButtonBarEvent(const wxRibbonButtonBarEvent& e) : wxCommandEvent(e) { m_bar = e.m_bar; + m_button = e.m_button; } #endif wxEvent *Clone() const { return new wxRibbonButtonBarEvent(*this); } wxRibbonButtonBar* GetBar() {return m_bar;} + wxRibbonButtonBarButtonBase *GetButton() { return m_button; } void SetBar(wxRibbonButtonBar* bar) {m_bar = bar;} + void SetButton(wxRibbonButtonBarButtonBase* button) { m_button = button; } bool PopupMenu(wxMenu* menu); protected: wxRibbonButtonBar* m_bar; + wxRibbonButtonBarButtonBase *m_button; #ifndef SWIG private: @@ -165,8 +235,8 @@ private: #ifndef SWIG -wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_RIBBON, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, wxRibbonButtonBarEvent); -wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_RIBBON, wxEVT_COMMAND_RIBBONBUTTON_DROPDOWN_CLICKED, wxRibbonButtonBarEvent); +wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_RIBBON, wxEVT_RIBBONBUTTONBAR_CLICKED, wxRibbonButtonBarEvent); +wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_RIBBON, wxEVT_RIBBONBUTTONBAR_DROPDOWN_CLICKED, wxRibbonButtonBarEvent); typedef void (wxEvtHandler::*wxRibbonButtonBarEventFunction)(wxRibbonButtonBarEvent&); @@ -174,21 +244,25 @@ typedef void (wxEvtHandler::*wxRibbonButtonBarEventFunction)(wxRibbonButtonBarEv wxEVENT_HANDLER_CAST(wxRibbonButtonBarEventFunction, func) #define EVT_RIBBONBUTTONBAR_CLICKED(winid, fn) \ - wx__DECLARE_EVT1(wxEVT_COMMAND_RIBBONBUTTON_CLICKED, winid, wxRibbonButtonBarEventHandler(fn)) + wx__DECLARE_EVT1(wxEVT_RIBBONBUTTONBAR_CLICKED, winid, wxRibbonButtonBarEventHandler(fn)) #define EVT_RIBBONBUTTONBAR_DROPDOWN_CLICKED(winid, fn) \ - wx__DECLARE_EVT1(wxEVT_COMMAND_RIBBONBUTTON_DROPDOWN_CLICKED, winid, wxRibbonButtonBarEventHandler(fn)) + wx__DECLARE_EVT1(wxEVT_RIBBONBUTTONBAR_DROPDOWN_CLICKED, winid, wxRibbonButtonBarEventHandler(fn)) #else // wxpython/swig event work -%constant wxEventType wxEVT_COMMAND_RIBBONBUTTON_CLICKED; -%constant wxEventType wxEVT_COMMAND_RIBBONBUTTON_DROPDOWN_CLICKED; +%constant wxEventType wxEVT_RIBBONBUTTONBAR_CLICKED; +%constant wxEventType wxEVT_RIBBONBUTTONBAR_DROPDOWN_CLICKED; %pythoncode { - EVT_RIBBONBUTTONBAR_CLICKED = wx.PyEventBinder( wxEVT_COMMAND_RIBBONBUTTON_CLICKED, 1 ) - EVT_RIBBONBUTTONBAR_DROPDOWN_CLICKED = wx.PyEventBinder( wxEVT_COMMAND_RIBBONBUTTON_DROPDOWN_CLICKED, 1 ) + EVT_RIBBONBUTTONBAR_CLICKED = wx.PyEventBinder( wxEVT_RIBBONBUTTONBAR_CLICKED, 1 ) + EVT_RIBBONBUTTONBAR_DROPDOWN_CLICKED = wx.PyEventBinder( wxEVT_RIBBONBUTTONBAR_DROPDOWN_CLICKED, 1 ) } #endif +// old wxEVT_COMMAND_* constants +#define wxEVT_COMMAND_RIBBONBUTTON_CLICKED wxEVT_RIBBONBUTTONBAR_CLICKED +#define wxEVT_COMMAND_RIBBONBUTTON_DROPDOWN_CLICKED wxEVT_RIBBONBUTTONBAR_DROPDOWN_CLICKED + #endif // wxUSE_RIBBON #endif // _WX_RIBBON_BUTTON_BAR_H_