Ignore initially specified labels for buttons with wxBU_NOTEXT

It doesn't make much sense to specify a non-empty label and wxBU_NOTEXT style
together, but if this happens, the label should be ignored, as it was already
done by wxGTK, but not wxMSW and wxOSX -- so add the missing checks for
wxBU_NOTEXT to these ports too.

Closes #17152.
This commit is contained in:
Vadim Zeitlin
2016-02-01 01:29:03 +01:00
parent a0548db9f5
commit 9b39ffc0cb
2 changed files with 22 additions and 15 deletions

View File

@@ -82,7 +82,10 @@ bool wxButton::Create(wxWindow *parent,
const wxValidator& validator, const wxValidator& validator,
const wxString& name) const wxString& name)
{ {
wxString label(lbl); wxString label;
if ( !(style & wxBU_NOTEXT) )
{
label = lbl;
if (label.empty() && wxIsStockID(id)) if (label.empty() && wxIsStockID(id))
{ {
// On Windows, some buttons aren't supposed to have mnemonics // On Windows, some buttons aren't supposed to have mnemonics
@@ -94,6 +97,7 @@ bool wxButton::Create(wxWindow *parent,
: wxSTOCK_WITH_MNEMONIC : wxSTOCK_WITH_MNEMONIC
); );
} }
}
if ( !CreateControl(parent, id, pos, size, style, validator, name) ) if ( !CreateControl(parent, id, pos, size, style, validator, name) )
return false; return false;

View File

@@ -69,6 +69,8 @@ bool wxButton::Create(wxWindow *parent,
wxString label; wxString label;
if ( !(style & wxBU_NOTEXT) )
{
// Ignore the standard label for help buttons if possible, they use "?" // Ignore the standard label for help buttons if possible, they use "?"
// label under Mac which looks better. // label under Mac which looks better.
if ( !IsHelpButtonWithStandardLabel(id, labelOrig) ) if ( !IsHelpButtonWithStandardLabel(id, labelOrig) )
@@ -76,6 +78,7 @@ bool wxButton::Create(wxWindow *parent,
label = labelOrig.empty() && wxIsStockID(id) ? wxGetStockLabel(id) label = labelOrig.empty() && wxIsStockID(id) ? wxGetStockLabel(id)
: labelOrig; : labelOrig;
} }
}
if ( !wxButtonBase::Create(parent, id, pos, size, style, validator, name) ) if ( !wxButtonBase::Create(parent, id, pos, size, style, validator, name) )