X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/f166217789093525896625609b3f8e7c9f8b33cc..605c2c4ac6ea7312c6e691caaa18f119fdf3020d:/src/common/sizer.cpp diff --git a/src/common/sizer.cpp b/src/common/sizer.cpp index 0ef04619c6..b250c0c048 100644 --- a/src/common/sizer.cpp +++ b/src/common/sizer.cpp @@ -10,10 +10,6 @@ // Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// -#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) -#pragma implementation "sizer.h" -#endif - // For compilers that support precompilation, includes "wx.h". #include "wx/wxprec.h" @@ -24,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" @@ -50,7 +47,7 @@ IMPLEMENT_CLASS(wxStaticBoxSizer, wxBoxSizer) IMPLEMENT_CLASS(wxStdDialogButtonSizer, wxBoxSizer) #endif -WX_DEFINE_EXPORTED_LIST( wxSizerItemList ); +WX_DEFINE_EXPORTED_LIST( wxSizerItemList ) /* TODO PROPERTIES @@ -269,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() ) @@ -299,8 +296,10 @@ wxSize wxSizerItem::GetMinSizeWithBorder() const } -void wxSizerItem::SetDimension( wxPoint pos, wxSize size ) +void wxSizerItem::SetDimension( const wxPoint& pos_, const wxSize& size_ ) { + wxPoint pos = pos_; + wxSize size = size_; if (m_flag & wxSHAPED) { // adjust aspect ratio @@ -448,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(); @@ -476,11 +488,6 @@ int wxSizerItem::GetOption() const // wxSizer //--------------------------------------------------------------------------- -wxSizer::wxSizer() -{ - m_isShown = true; -} - wxSizer::~wxSizer() { WX_CLEAR_LIST(wxSizerItemList, m_children); @@ -1325,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 )