]> git.saurik.com Git - wxWidgets.git/blobdiff - src/common/sizer.cpp
Reorganize wxCollapsiblePane event and layout code under GTK+
[wxWidgets.git] / src / common / sizer.cpp
index af8275b478cdfca2183da841937732ba6a3ebe2e..3cd52cb4ae1d5c4c8b2ecdca143aea13d81ceb46 100644 (file)
@@ -480,10 +480,11 @@ void wxSizerItem::SetDimension( const wxPoint& pos_, const wxSize& size_ )
             break;
 
         case Item_Window:
             break;
 
         case Item_Window:
+        {
             m_window->SetSize(pos.x, pos.y, size.x, size.y,
             m_window->SetSize(pos.x, pos.y, size.x, size.y,
-                              wxSIZE_ALLOW_MINUS_ONE);
+                              wxSIZE_ALLOW_MINUS_ONE|wxSIZE_FORCE_EVENT );
             break;
             break;
-
+        }
         case Item_Sizer:
             m_sizer->SetDimension(pos, size);
             break;
         case Item_Sizer:
             m_sizer->SetDimension(pos, size);
             break;
@@ -1328,9 +1329,12 @@ int wxGridSizer::CalcRowsCols(int& nrows, int& ncols) const
     if ( m_cols && m_rows )
     {
         // if both rows and columns are specified by user, use the provided
     if ( m_cols && m_rows )
     {
         // if both rows and columns are specified by user, use the provided
-        // values even if we don't have enough items
+        // values even if we don't have enough items but check that we don't
+        // have too many of them as this is going to result in problems later
         ncols = m_cols;
         nrows = m_rows;
         ncols = m_cols;
         nrows = m_rows;
+
+        wxASSERT_MSG( ncols*nrows >= nitems, "too many items in grid sizer" );
     }
     else if ( m_cols )
     {
     }
     else if ( m_cols )
     {
@@ -1984,7 +1988,7 @@ void wxBoxSizer::RecalcSizes()
         }
         // NB: wxCENTRE is used here only for backwards compatibility,
         //     wxALIGN_CENTRE should be used in new code
         }
         // NB: wxCENTRE is used here only for backwards compatibility,
         //     wxALIGN_CENTRE should be used in new code
-        else if ( flag & (wxCENTER | wxALIGN_CENTRE) )
+        else if ( flag & (wxCENTER | (IsVertical() ? wxALIGN_CENTRE_HORIZONTAL : wxALIGN_CENTRE_VERTICAL)))
         {
             PosInMinorDir(posChild) += (totalMinorSize - minorSize) / 2;
         }
         {
             PosInMinorDir(posChild) += (totalMinorSize - minorSize) / 2;
         }