]> git.saurik.com Git - wxWidgets.git/blobdiff - contrib/src/xml/xh_sizer.cpp
Fixed buffer overrun in call to wxStripMenuCodes()
[wxWidgets.git] / contrib / src / xml / xh_sizer.cpp
index 5b9bd3d4364cff180f904b4c9b219ed83dd722d9..ae7cda12f1c4d567faa68a4300e9145488db22db 100644 (file)
@@ -24,6 +24,7 @@
 #include "wx/log.h"
 #include "wx/statbox.h"
 #include "wx/notebook.h"
+#include "wx/tokenzr.h"
 
 bool wxSizerXmlHandler::IsSizerNode(wxXmlNode *node)
 {
@@ -152,14 +153,35 @@ wxObject *wxSizerXmlHandler::DoCreateResource()
                                     GetDimension(_T("vgap")), GetDimension(_T("hgap")));
                                     
         else if (m_Class == _T("wxFlexGridSizer"))
-            sizer = new wxFlexGridSizer(GetLong(_T("rows")), GetLong(_T("cols")),
-                                    GetDimension(_T("vgap")), GetDimension(_T("hgap")));
+        {
+            wxFlexGridSizer *fsizer = 
+                  new wxFlexGridSizer(GetLong(_T("rows")), GetLong(_T("cols")),
+                      GetDimension(_T("vgap")), GetDimension(_T("hgap")));
+            sizer = fsizer;
+            wxStringTokenizer tkn;
+            unsigned long l;
+            tkn.SetString(GetParamValue(_T("growablerows")), _T(","));
+            while (tkn.HasMoreTokens())
+            {
+                if (!tkn.GetNextToken().ToULong(&l))
+                    wxLogError(_T("growablerows must be comma-separated list of row numbers"));
+                else
+                    fsizer->AddGrowableRow(l);
+            }
+            tkn.SetString(GetParamValue(_T("growablecols")), _T(","));
+            while (tkn.HasMoreTokens())
+            {
+                if (!tkn.GetNextToken().ToULong(&l))
+                    wxLogError(_T("growablecols must be comma-separated list of column numbers"));
+                else
+                    fsizer->AddGrowableCol(l);
+            }
+        }
 
         wxSize minsize = GetSize(_T("minsize"));
         if (!(minsize == wxDefaultSize))
             sizer->SetMinSize(minsize);
 
-
         wxSizer *old_par = m_ParentSizer;
         m_ParentSizer = sizer;
         bool old_ins = m_IsInside;