X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/259c43f679ca655362b5a439e11c87fc0666d663..b41b09e28513f8b30065914eeb1051a0a32e6e1b:/src/common/sizer.cpp diff --git a/src/common/sizer.cpp b/src/common/sizer.cpp index 892ae3ebcf..b250c0c048 100644 --- a/src/common/sizer.cpp +++ b/src/common/sizer.cpp @@ -20,6 +20,7 @@ #ifndef WX_PRECOMP #include "wx/string.h" #include "wx/intl.h" + #include "wx/math.h" #endif // WX_PRECOMP #include "wx/sizer.h" @@ -265,7 +266,7 @@ wxSize wxSizerItem::CalcMin() // if we have to preserve aspect ratio _AND_ this is // the first-time calculation, consider ret to be initial size - if ((m_flag & wxSHAPED) && !m_ratio) + if ( (m_flag & wxSHAPED) && wxIsNullDouble(m_ratio) ) SetRatio(m_minSize); } else if ( IsWindow() ) @@ -446,7 +447,20 @@ bool wxSizerItem::IsShown() const return m_window->IsShown(); case Item_Sizer: - return m_sizer->IsShown(); + // arbitrarily decide that if at least one of our elements is + // shown, so are we (this arbitrariness is the reason for + // deprecating this function) + { + for ( wxSizerItemList::compatibility_iterator + node = m_sizer->GetChildren().GetFirst(); + node; + node = node->GetNext() ) + { + if ( node->GetData()->IsShown() ) + return true; + } + } + return false; case Item_Spacer: return m_spacer->IsShown(); @@ -474,11 +488,6 @@ int wxSizerItem::GetOption() const // wxSizer //--------------------------------------------------------------------------- -wxSizer::wxSizer() -{ - m_isShown = true; -} - wxSizer::~wxSizer() { WX_CLEAR_LIST(wxSizerItemList, m_children); @@ -1323,10 +1332,12 @@ void wxFlexGridSizer::AdjustForFlexDirection() wxArrayInt& array = m_flexDirection == wxVERTICAL ? m_colWidths : m_rowHeights; - const int count = array.GetCount(); + const size_t count = array.GetCount(); // find the largest value in this array - int n, largest = 0; + size_t n; + int largest = 0; + for ( n = 0; n < count; ++n ) { if ( array[n] > largest )