- Show ribbon tools help strings in tooltips (John Roberts).
- Improve row/column selection modes in wxGrid (joostn).
- Allow using wxEVT_UPDATE_UI with wxRibbonButtonBar (Emilien Kia).
+- Add wxRibbonButtonBar::InsertXXXButton() methods (Emilien Kia).
GTK:
const wxString& help_string = wxEmptyString,
wxObject* client_data = NULL);
+ 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,
+ wxObject* client_data = NULL);
+
+ virtual size_t GetButtonCount() const;
+
virtual bool Realize();
virtual void ClearButtons();
virtual bool DeleteButton(int button_id);
const wxString& help_string = wxEmptyString,
wxObject* client_data = NULL);
+ /**
+ 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,
+ wxRibbonButtonBarButtonKind kind = wxRIBBON_BUTTONBAR_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.
+ @param client_data
+ Client data 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,
+ wxRibbonButtonBarButtonKind kind = wxRIBBON_BUTTONBAR_BUTTON_NORMAL,
+ const wxString& help_string = wxEmptyString,
+ wxObject* client_data = NULL);
+
+ /**
+ Returns the number of buttons in this button bar.
+
+ @since 2.9.4
+ */
+ virtual size_t GetButtonCount() const;
+
/**
Calculate button layouts and positions.
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())
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)
{
return wxBitmap(img.ConvertToGreyscale());
}
+size_t wxRibbonButtonBar::GetButtonCount() const
+{
+ return m_buttons.GetCount();
+}
+
bool wxRibbonButtonBar::Realize()
{
if(!m_layouts_valid)