]> git.saurik.com Git - wxWidgets.git/blobdiff - src/common/wincmn.cpp
Commited slighly modified fix by David Parsons.
[wxWidgets.git] / src / common / wincmn.cpp
index 25a98cc3d20e274ac4c6c61c8f8c087c93a83a05..14d868fdd87abd108a6914befe705649b1c7685f 100644 (file)
@@ -110,6 +110,7 @@ END_EVENT_TABLE()
 
 // the default initialization
 wxWindowBase::wxWindowBase()
 
 // the default initialization
 wxWindowBase::wxWindowBase()
+:   m_bestSize(wxDefaultSize)
 {
     // no window yet, no parent nor children
     m_parent = (wxWindow *)NULL;
 {
     // no window yet, no parent nor children
     m_parent = (wxWindow *)NULL;
@@ -585,9 +586,18 @@ wxSize wxWindowBase::DoGetBestSize() const
     }
     else
     {
     }
     else
     {
-        // for a generic window there is no natural best size - just use the
-        // current one
-        return GetSize();
+        // Windows which don't implement DoGetBestSize and aren't parents.
+        // This emulates the behavior of a wxSizer without wxADJUST_MINSIZE
+
+        // If you get the following message you should do one of two things
+        // 1. Do what it says (best)
+        // 2. m_bestSize = GetSize() at end of Create() (hack)
+        if(m_bestSize == wxDefaultSize)
+        {
+            wxLogDebug(wxT("Class %s (or superclass) should implement DoGetBestSize()"),GetClassInfo()->GetClassName());
+            wxConstCast(this,wxWindowBase)->m_bestSize = GetSize();
+        }
+        return m_bestSize;
     }
 }
 
     }
 }