From: Robin Dunn Date: Wed, 7 Apr 2004 22:41:34 +0000 (+0000) Subject: Put back wxMSW's wxStaticBitmap::DoGetBestSize because GetBitmap (used X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/9d17ee60a5a7101437baa08b68201879d0504400 Put back wxMSW's wxStaticBitmap::DoGetBestSize because GetBitmap (used in base DoGBS) is not able to be called until the control is fully constructed git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@26662 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- diff --git a/include/wx/msw/statbmp.h b/include/wx/msw/statbmp.h index 49734fd443..e778d2e373 100644 --- a/include/wx/msw/statbmp.h +++ b/include/wx/msw/statbmp.h @@ -78,6 +78,7 @@ public: protected: virtual wxBorder GetDefaultBorder() const; + virtual wxSize DoGetBestSize() const; virtual WXDWORD MSWGetStyle(long style, WXDWORD *exstyle) const; // ctor/dtor helpers diff --git a/src/msw/statbmp.cpp b/src/msw/statbmp.cpp index 14adf39e01..a584ebac96 100644 --- a/src/msw/statbmp.cpp +++ b/src/msw/statbmp.cpp @@ -167,6 +167,9 @@ bool wxStaticBitmap::Create(wxWindow *parent, // no need to delete the new image SetImageNoCopy(image); + // GetBestSize will work properly now, so set the best size if needed + SetBestSize(size); + return TRUE; } @@ -201,6 +204,15 @@ void wxStaticBitmap::Free() m_image = NULL; } +wxSize wxStaticBitmap::DoGetBestSize() const +{ + if ( ImageIsOk() ) + return wxSize(m_image->GetWidth(), m_image->GetHeight()); + + // this is completely arbitrary + return wxSize(16, 16); +} + void wxStaticBitmap::SetImage( const wxGDIImage* image ) { wxGDIImage* convertedImage = ConvertImage( *image );