always use wxBU_NOTEXT and wxBU_EXACTFIT for wxBitmapButton under all platforms (which required some refactoring) (hopefully really closes #10927)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@61232 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
parent
79e38eaf2a
commit
8e4c291246
@ -41,6 +41,29 @@ public:
|
|||||||
#endif // wxHAS_BUTTON_BITMAP
|
#endif // wxHAS_BUTTON_BITMAP
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool Create(wxWindow *parent,
|
||||||
|
wxWindowID winid,
|
||||||
|
const wxBitmap& bitmap,
|
||||||
|
const wxPoint& pos,
|
||||||
|
const wxSize& size,
|
||||||
|
long style,
|
||||||
|
const wxValidator& validator,
|
||||||
|
const wxString& name)
|
||||||
|
{
|
||||||
|
// We use wxBU_NOTEXT to let the base class Create() know that we are
|
||||||
|
// not going to show the label: this is a hack needed for wxGTK where
|
||||||
|
// we can show both label and bitmap only with GTK 2.6+ but we always
|
||||||
|
// can show just one of them and this style allows us to choose which
|
||||||
|
// one we need.
|
||||||
|
//
|
||||||
|
// And we also use wxBU_EXACTFIT to avoid being resized up to the
|
||||||
|
// standard button size as this doesn't make sense for bitmap buttons
|
||||||
|
// which are not standard anyhow and should fit their bitmap size.
|
||||||
|
return wxButton::Create(parent, id, pos, size,
|
||||||
|
style | wxBU_NOTEXT | wxBU_EXACTFIT,
|
||||||
|
validator, name);
|
||||||
|
}
|
||||||
|
|
||||||
// set/get the margins around the button
|
// set/get the margins around the button
|
||||||
virtual void SetMargins(int x, int y)
|
virtual void SetMargins(int x, int y)
|
||||||
{
|
{
|
||||||
|
@ -25,9 +25,15 @@ bool wxBitmapButton::Create(wxWindow *parent,
|
|||||||
const wxValidator& validator,
|
const wxValidator& validator,
|
||||||
const wxString& name)
|
const wxString& name)
|
||||||
{
|
{
|
||||||
if ( !wxBitmapButtonBase::Create(parent, id, "",
|
// we use wxBU_NOTEXT to let the base class Create() know that we are not
|
||||||
pos, size,
|
// going to show the label -- this is a hack, but like this it can support
|
||||||
style | wxBU_NOTEXT,
|
// bitmaps with all GTK+ versions, not just 2.6+ which support both labels
|
||||||
|
// and bitmaps
|
||||||
|
//
|
||||||
|
// and we also use wxBU_EXACTFIT to avoid being resized up to the standard
|
||||||
|
// button size as this doesn't make sense for bitmap buttons which are not
|
||||||
|
// standard anyhow
|
||||||
|
if ( !wxBitmapButtonBase::Create(parent, id, pos, size, style,
|
||||||
validator, name) )
|
validator, name) )
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
|
@ -130,9 +130,7 @@ bool wxBitmapButton::Create(wxWindow *parent,
|
|||||||
const wxValidator& wxVALIDATOR_PARAM(validator),
|
const wxValidator& wxVALIDATOR_PARAM(validator),
|
||||||
const wxString& name)
|
const wxString& name)
|
||||||
{
|
{
|
||||||
if ( !wxBitmapButtonBase::Create(parent, id, "",
|
if ( !wxBitmapButtonBase::Create(parent, id, pos, size, style,
|
||||||
pos, size,
|
|
||||||
style | wxBU_NOTEXT,
|
|
||||||
validator, name) )
|
validator, name) )
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
|
@ -37,8 +37,8 @@ bool wxBitmapButton::Create( wxWindow *parent,
|
|||||||
{
|
{
|
||||||
m_macIsUserPane = false;
|
m_macIsUserPane = false;
|
||||||
|
|
||||||
if ( !wxControl::Create( parent, id, pos, size, style | wxBU_NOTEXT,
|
if ( !wxBitmapButtonBase::Create(parent, id, pos, size, style,
|
||||||
validator, name ) )
|
validator, name) )
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
if ( style & wxBU_AUTODRAW )
|
if ( style & wxBU_AUTODRAW )
|
||||||
|
@ -34,6 +34,18 @@ bool wxButton::Create(wxWindow *parent,
|
|||||||
const wxValidator& validator,
|
const wxValidator& validator,
|
||||||
const wxString& name)
|
const wxString& name)
|
||||||
{
|
{
|
||||||
|
// FIXME: this hack is needed because we're called from
|
||||||
|
// wxBitmapButton::Create() with this style and we currently use a
|
||||||
|
// different wxWidgetImpl method (CreateBitmapButton() rather than
|
||||||
|
// CreateButton()) for creating bitmap buttons, but we really ought
|
||||||
|
// to unify the creation of buttons of all kinds and then remove
|
||||||
|
// this check
|
||||||
|
if ( style & wxBU_NOTEXT )
|
||||||
|
{
|
||||||
|
return wxControl::Create(parent, id, lbl, pos, size, style,
|
||||||
|
validator, name);
|
||||||
|
}
|
||||||
|
|
||||||
wxString label(lbl);
|
wxString label(lbl);
|
||||||
if (label.empty() && wxIsStockID(id) && !(id == wxID_HELP))
|
if (label.empty() && wxIsStockID(id) && !(id == wxID_HELP))
|
||||||
label = wxGetStockLabel(id);
|
label = wxGetStockLabel(id);
|
||||||
|
Loading…
Reference in New Issue
Block a user