From: Vadim Zeitlin Date: Mon, 14 Feb 2011 22:11:58 +0000 (+0000) Subject: Clarify wxButton::AdjustForBitmapSize() semantics in wxMSW. X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/65034d07ed264018024570904f6ad18312339a3f?hp=026e7dcba01e53e4adfbc4d3156be4325d7aeefb 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 --- diff --git a/include/wx/msw/button.h b/include/wx/msw/button.h index 1f5ad27c9b..ee1d197e9d 100644 --- a/include/wx/msw/button.h +++ b/include/wx/msw/button.h @@ -88,8 +88,10 @@ protected: virtual void DoSetBitmapMargins(wxCoord x, wxCoord y); virtual void DoSetBitmapPosition(wxDirection dir); - // Increases the passed in size if necessary to account for the - // button image, if any + // Increases the passed in size to account for the button image. + // + // Should only be called if we do have a button, i.e. if m_imageData is + // non-NULL. void AdjustForBitmapSize(wxSize& size) const; class wxButtonImageData *m_imageData; diff --git a/src/msw/button.cpp b/src/msw/button.cpp index 240e2e9813..cabac36506 100644 --- a/src/msw/button.cpp +++ b/src/msw/button.cpp @@ -531,8 +531,7 @@ void wxButton::SetLabel(const wxString& label) void wxButton::AdjustForBitmapSize(wxSize &size) const { - if ( !m_imageData ) - return; + wxCHECK_RET( m_imageData, wxT("shouldn't be called if no image") ); // account for the bitmap size const wxSize sizeBmp = m_imageData->GetBitmap(State_Normal).GetSize(); @@ -614,6 +613,8 @@ wxSize wxButton::DoGetBestSize() const { 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); }