git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@57519
c3d73ce0-8a6f-49c7-b76d-
6d57e0e08775
#include "wx/sizer.h"
#include "wx/gbsizer.h"
#include "wx/sizer.h"
#include "wx/gbsizer.h"
-class WXDLLIMPEXP_FWD_CORE wxSizer;
-
class WXDLLIMPEXP_XRC wxSizerXmlHandler : public wxXmlResourceHandler
{
DECLARE_DYNAMIC_CLASS(wxSizerXmlHandler)
class WXDLLIMPEXP_XRC wxSizerXmlHandler : public wxXmlResourceHandler
{
DECLARE_DYNAMIC_CLASS(wxSizerXmlHandler)
wxSizer* Handle_wxStaticBoxSizer();
#endif
wxSizer* Handle_wxGridSizer();
wxSizer* Handle_wxStaticBoxSizer();
#endif
wxSizer* Handle_wxGridSizer();
- wxSizer* Handle_wxFlexGridSizer();
+ wxFlexGridSizer* Handle_wxFlexGridSizer();
wxSizer* Handle_wxGridBagSizer();
wxSizer* Handle_wxWrapSizer();
wxSizer* Handle_wxGridBagSizer();
wxSizer* Handle_wxWrapSizer();
wxObject* wxSizerXmlHandler::Handle_sizer()
{
wxSizer *sizer = NULL;
wxObject* wxSizerXmlHandler::Handle_sizer()
{
wxSizer *sizer = NULL;
+ wxFlexGridSizer *flexsizer = NULL;
wxXmlNode *parentNode = m_node->GetParent();
wxXmlNode *parentNode = m_node->GetParent();
if (m_class == wxT("wxBoxSizer"))
sizer = Handle_wxBoxSizer();
if (m_class == wxT("wxBoxSizer"))
sizer = Handle_wxBoxSizer();
#if wxUSE_STATBOX
else if (m_class == wxT("wxStaticBoxSizer"))
sizer = Handle_wxStaticBoxSizer();
#endif
#if wxUSE_STATBOX
else if (m_class == wxT("wxStaticBoxSizer"))
sizer = Handle_wxStaticBoxSizer();
#endif
else if (m_class == wxT("wxGridSizer"))
sizer = Handle_wxGridSizer();
else if (m_class == wxT("wxGridSizer"))
sizer = Handle_wxGridSizer();
else if (m_class == wxT("wxFlexGridSizer"))
else if (m_class == wxT("wxFlexGridSizer"))
- sizer = Handle_wxFlexGridSizer();
-
+ {
+ flexsizer = Handle_wxFlexGridSizer();
+ sizer = flexsizer;
+ }
else if (m_class == wxT("wxGridBagSizer"))
sizer = Handle_wxGridBagSizer();
else if (m_class == wxT("wxGridBagSizer"))
sizer = Handle_wxGridBagSizer();
else if (m_class == wxT("wxWrapSizer"))
sizer = Handle_wxWrapSizer();
else if (m_class == wxT("wxWrapSizer"))
sizer = Handle_wxWrapSizer();
CreateChildren(m_parent, true/*only this handler*/);
CreateChildren(m_parent, true/*only this handler*/);
+ // set growable rows and cols for sizers which support this
+ if ( flexsizer )
+ {
+ SetGrowables(flexsizer, wxT("growablerows"), true);
+ SetGrowables(flexsizer, wxT("growablecols"), false);
+ }
+
// restore state
m_isInside = old_ins;
m_parentSizer = old_par;
// restore state
m_isInside = old_ins;
m_parentSizer = old_par;
-wxSizer* wxSizerXmlHandler::Handle_wxFlexGridSizer()
+wxFlexGridSizer* wxSizerXmlHandler::Handle_wxFlexGridSizer()
- wxFlexGridSizer *sizer =
- new wxFlexGridSizer(GetLong(wxT("rows")), GetLong(wxT("cols")),
- GetDimension(wxT("vgap")), GetDimension(wxT("hgap")));
- SetGrowables(sizer, wxT("growablerows"), true);
- SetGrowables(sizer, wxT("growablecols"), false);
- return sizer;
+ return new wxFlexGridSizer(GetLong(wxT("rows")), GetLong(wxT("cols")),
+ GetDimension(wxT("vgap")), GetDimension(wxT("hgap")));
}
wxSizer* wxSizerXmlHandler::Handle_wxGridBagSizer()
{
}
wxSizer* wxSizerXmlHandler::Handle_wxGridBagSizer()
{
- wxGridBagSizer *sizer =
- new wxGridBagSizer(GetDimension(wxT("vgap")), GetDimension(wxT("hgap")));
- SetGrowables(sizer, wxT("growablerows"), true);
- SetGrowables(sizer, wxT("growablecols"), false);
- return sizer;
+ return new wxGridBagSizer(GetDimension(wxT("vgap")), GetDimension(wxT("hgap")));
}
wxSizer* wxSizerXmlHandler::Handle_wxWrapSizer()
}
wxSizer* wxSizerXmlHandler::Handle_wxWrapSizer()
while (tkn.HasMoreTokens())
{
if (!tkn.GetNextToken().ToULong(&l))
while (tkn.HasMoreTokens())
{
if (!tkn.GetNextToken().ToULong(&l))
wxLogError(wxT("growable[rows|cols] must be comma-separated list of row numbers"));
wxLogError(wxT("growable[rows|cols] must be comma-separated list of row numbers"));
- else {
- if (rows)
- sizer->AddGrowableRow(l);
- else
- sizer->AddGrowableCol(l);
+
+ if (rows)
+ sizer->AddGrowableRow(l);
+ else
+ sizer->AddGrowableCol(l);