X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/2f5b93fb9f2691f059643400ab3ff7b362b17aac..72c5855f5c9e6b5747dc9571d64e217eff26561d:/src/xrc/xh_split.cpp diff --git a/src/xrc/xh_split.cpp b/src/xrc/xh_split.cpp index 4b23f9ff60..7e3175c657 100644 --- a/src/xrc/xh_split.cpp +++ b/src/xrc/xh_split.cpp @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////////// -// Name: xh_split.cpp +// Name: src/xrc/xh_split.cpp // Purpose: XRC resource for wxSplitterWindow // Author: panga@freemail.hu, Vaclav Slavik // Created: 2003/01/26 @@ -7,10 +7,6 @@ // Copyright: (c) 2003 panga@freemail.hu, Vaclav Slavik // Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "xh_split.h" -#endif // For compilers that support precompilation, includes "wx.h". #include "wx/wxprec.h" @@ -19,20 +15,33 @@ #pragma hdrstop #endif +#if wxUSE_XRC && wxUSE_SPLITTER + #include "wx/xrc/xh_split.h" + +#ifndef WX_PRECOMP + #include "wx/log.h" +#endif + #include "wx/splitter.h" -#include "wx/log.h" + +#include "wx/xml/xml.h" + +IMPLEMENT_DYNAMIC_CLASS(wxSplitterWindowXmlHandler, wxXmlResourceHandler) wxSplitterWindowXmlHandler::wxSplitterWindowXmlHandler() : wxXmlResourceHandler() { XRC_ADD_STYLE(wxSP_3D); XRC_ADD_STYLE(wxSP_3DSASH); XRC_ADD_STYLE(wxSP_3DBORDER); +#if WXWIN_COMPATIBILITY_2_6 XRC_ADD_STYLE(wxSP_FULLSASH); +#endif // WXWIN_COMPATIBILITY_2_6 XRC_ADD_STYLE(wxSP_BORDER); XRC_ADD_STYLE(wxSP_NOBORDER); XRC_ADD_STYLE(wxSP_PERMIT_UNSPLIT); XRC_ADD_STYLE(wxSP_LIVE_UPDATE); + XRC_ADD_STYLE(wxSP_NO_XP_THEME); AddWindowStyles(); } @@ -50,14 +59,17 @@ wxObject *wxSplitterWindowXmlHandler::DoCreateResource() long sashpos = GetLong(wxT("sashpos"), 0); long minpanesize = GetLong(wxT("minsize"), -1); + float gravity = GetFloat(wxT("gravity"), 0.0); if (minpanesize != -1) - splitter->SetMinimumPaneSize(minpanesize); + splitter->SetMinimumPaneSize(minpanesize); + if (gravity != 0.0) + splitter->SetSashGravity(gravity); wxWindow *win1 = NULL, *win2 = NULL; wxXmlNode *n = m_node->GetChildren(); while (n) { - if ((n->GetType() == wxXML_ELEMENT_NODE) && + if ((n->GetType() == wxXML_ELEMENT_NODE) && (n->GetName() == wxT("object") || n->GetName() == wxT("object_ref"))) { @@ -71,13 +83,13 @@ wxObject *wxSplitterWindowXmlHandler::DoCreateResource() { win2 = win; break; - } + } } n = n->GetNext(); } if (win1 == NULL) - wxLogError(wxT("wxSplitterWindow node must contain at least one window.")); + ReportError("wxSplitterWindow node must contain at least one window"); bool horizontal = (GetParamValue(wxT("orientation")) != wxT("vertical")); if (win1 && win2) @@ -100,4 +112,4 @@ bool wxSplitterWindowXmlHandler::CanHandle(wxXmlNode *node) return IsOfClass(node, wxT("wxSplitterWindow")); } - +#endif // wxUSE_XRC && wxUSE_SPLITTER