for the case when the control is a regular window with no children.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@26583
c3d73ce0-8a6f-49c7-b76d-
6d57e0e08775
#if wxUSE_ACCESSIBILITY
wxAccessible* m_accessible;
#endif
#if wxUSE_ACCESSIBILITY
wxAccessible* m_accessible;
#endif
+ // Best size for controls which fail to implement DoGetBestSize()
+ wxSize m_bestSize;
+
// Virtual size (scrolling)
wxSize m_virtualSize;
// Virtual size (scrolling)
wxSize m_virtualSize;
// 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;
- // 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;