Clarify wxButton::AdjustForBitmapSize() semantics in wxMSW.

This method should only be called if we do have an image, assert (instead of
silently returning) if it's called when we don't.

Also explain in a comment why do we need to call CacheBestSize() only when we
have an image in DoGetBestSize().

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66890 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
2011-02-14 22:11:58 +00:00
parent 026e7dcba0
commit 65034d07ed
2 changed files with 7 additions and 4 deletions

View File

@@ -88,8 +88,10 @@ protected:
virtual void DoSetBitmapMargins(wxCoord x, wxCoord y); virtual void DoSetBitmapMargins(wxCoord x, wxCoord y);
virtual void DoSetBitmapPosition(wxDirection dir); virtual void DoSetBitmapPosition(wxDirection dir);
// Increases the passed in size if necessary to account for the // Increases the passed in size to account for the button image.
// button image, if any //
// Should only be called if we do have a button, i.e. if m_imageData is
// non-NULL.
void AdjustForBitmapSize(wxSize& size) const; void AdjustForBitmapSize(wxSize& size) const;
class wxButtonImageData *m_imageData; class wxButtonImageData *m_imageData;

View File

@@ -531,8 +531,7 @@ void wxButton::SetLabel(const wxString& label)
void wxButton::AdjustForBitmapSize(wxSize &size) const void wxButton::AdjustForBitmapSize(wxSize &size) const
{ {
if ( !m_imageData ) wxCHECK_RET( m_imageData, wxT("shouldn't be called if no image") );
return;
// account for the bitmap size // account for the bitmap size
const wxSize sizeBmp = m_imageData->GetBitmap(State_Normal).GetSize(); const wxSize sizeBmp = m_imageData->GetBitmap(State_Normal).GetSize();
@@ -614,6 +613,8 @@ wxSize wxButton::DoGetBestSize() const
{ {
AdjustForBitmapSize(size); AdjustForBitmapSize(size);
// The best size has changed so even if it had been already cached by
// ComputeBestSize() call above we still need to update it.
CacheBestSize(size); CacheBestSize(size);
} }