X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/f01e56249aac6a4b43b986ddfb8a5c851a5c082e..11716cbe14313011016472f56edb51c55aabe852:/src/ribbon/buttonbar.cpp?ds=inline diff --git a/src/ribbon/buttonbar.cpp b/src/ribbon/buttonbar.cpp index a9f733e950..ad44278f14 100644 --- a/src/ribbon/buttonbar.cpp +++ b/src/ribbon/buttonbar.cpp @@ -279,6 +279,23 @@ wxRibbonButtonBarButtonBase* wxRibbonButtonBar::AddButton( wxRibbonButtonKind kind, const wxString& help_string, wxObject* client_data) +{ + return InsertButton(GetButtonCount(), button_id, label, bitmap, + bitmap_small, bitmap_disabled,bitmap_small_disabled, kind, help_string, + client_data); +} + +wxRibbonButtonBarButtonBase* wxRibbonButtonBar::InsertButton( + size_t pos, + int button_id, + const wxString& label, + const wxBitmap& bitmap, + const wxBitmap& bitmap_small, + const wxBitmap& bitmap_disabled, + const wxBitmap& bitmap_small_disabled, + wxRibbonButtonKind kind, + const wxString& help_string, + wxObject* client_data) { wxASSERT(bitmap.IsOk() || bitmap_small.IsOk()); if(m_buttons.IsEmpty()) @@ -348,12 +365,56 @@ wxRibbonButtonBarButtonBase* wxRibbonButtonBar::AddButton( FetchButtonSizeInfo(base, wxRIBBON_BUTTONBAR_BUTTON_MEDIUM, temp_dc); FetchButtonSizeInfo(base, wxRIBBON_BUTTONBAR_BUTTON_LARGE, temp_dc); - // TODO - m_buttons.Add(base); + m_buttons.Insert(base, pos); m_layouts_valid = false; return base; } +wxRibbonButtonBarButtonBase* wxRibbonButtonBar::InsertButton( + size_t pos, + int button_id, + const wxString& label, + const wxBitmap& bitmap, + const wxString& help_string, + wxRibbonButtonKind kind) +{ + return InsertButton(pos, button_id, label, bitmap, wxNullBitmap, + wxNullBitmap, wxNullBitmap, kind, help_string); +} + +wxRibbonButtonBarButtonBase* wxRibbonButtonBar::InsertDropdownButton( + size_t pos, + int button_id, + const wxString& label, + const wxBitmap& bitmap, + const wxString& help_string) +{ + return InsertButton(pos, button_id, label, bitmap, help_string, + wxRIBBON_BUTTON_DROPDOWN); +} + +wxRibbonButtonBarButtonBase* wxRibbonButtonBar::InsertToggleButton( + size_t pos, + int button_id, + const wxString& label, + const wxBitmap& bitmap, + const wxString& help_string) +{ + return InsertButton(pos, button_id, label, bitmap, help_string, + wxRIBBON_BUTTON_TOGGLE); +} + +wxRibbonButtonBarButtonBase* wxRibbonButtonBar::InsertHybridButton( + size_t pos, + int button_id, + const wxString& label, + const wxBitmap& bitmap, + const wxString& help_string) +{ + return InsertButton(pos, button_id, label, bitmap, help_string, + wxRIBBON_BUTTON_HYBRID); +} + void wxRibbonButtonBar::FetchButtonSizeInfo(wxRibbonButtonBarButtonBase* button, wxRibbonButtonBarButtonState size, wxDC& dc) { @@ -382,6 +443,11 @@ wxBitmap wxRibbonButtonBar::MakeDisabledBitmap(const wxBitmap& original) return wxBitmap(img.ConvertToGreyscale()); } +size_t wxRibbonButtonBar::GetButtonCount() const +{ + return m_buttons.GetCount(); +} + bool wxRibbonButtonBar::Realize() { if(!m_layouts_valid) @@ -911,10 +977,12 @@ void wxRibbonButtonBar::OnMouseMove(wxMouseEvent& evt) } } +#if wxUSE_TOOLTIPS if(new_hovered == NULL && GetToolTip()) { UnsetToolTip(); } +#endif if(new_hovered != m_hovered_button || (m_hovered_button != NULL && new_hovered_state != m_hovered_button->base->state)) @@ -927,7 +995,9 @@ void wxRibbonButtonBar::OnMouseMove(wxMouseEvent& evt) if(m_hovered_button != NULL) { m_hovered_button->base->state = new_hovered_state; +#if wxUSE_TOOLTIPS SetToolTip(m_hovered_button->base->help_string); +#endif } Refresh(false); }