From: Václav Slavík Date: Sun, 17 Sep 2000 19:19:18 +0000 (+0000) Subject: added unknown widget support X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/1c8ac192c68b3ac8fb6b8c1bca23d9c735de1727 added unknown widget support git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8391 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- diff --git a/contrib/include/wx/xml/xh_unkwn.h b/contrib/include/wx/xml/xh_unkwn.h new file mode 100644 index 0000000000..e0112369c7 --- /dev/null +++ b/contrib/include/wx/xml/xh_unkwn.h @@ -0,0 +1,30 @@ +///////////////////////////////////////////////////////////////////////////// +// Name: xh_unkwn.h +// Purpose: XML resource handler for unkown widget +// Author: Vaclav Slavik +// Created: 2000/03/05 +// RCS-ID: $Id$ +// Copyright: (c) 2000 Vaclav Slavik +// Licence: wxWindows licence +///////////////////////////////////////////////////////////////////////////// + +#ifndef _WX_XH_UNKWN_H_ +#define _WX_XH_UNKWN_H_ + +#ifdef __GNUG__ +#pragma interface "xh_unkwn.h" +#endif + +#include "wx/xml/xmlres.h" + + +class WXDLLEXPORT wxUnknownWidgetXmlHandler : public wxXmlResourceHandler +{ + public: + wxUnknownWidgetXmlHandler(); + virtual wxObject *DoCreateResource(); + virtual bool CanHandle(wxXmlNode *node); +}; + + +#endif // _WX_XH_UNKWN_H_ diff --git a/contrib/src/xml/xh_unkwn.cpp b/contrib/src/xml/xh_unkwn.cpp new file mode 100644 index 0000000000..d9a05b7c52 --- /dev/null +++ b/contrib/src/xml/xh_unkwn.cpp @@ -0,0 +1,61 @@ +///////////////////////////////////////////////////////////////////////////// +// Name: xh_unkwn.cpp +// Purpose: XML resource for unknown widget +// Author: Vaclav Slavik +// Created: 2000/09/09 +// RCS-ID: $Id$ +// Copyright: (c) 2000 Vaclav Slavik +// Licence: wxWindows licence +///////////////////////////////////////////////////////////////////////////// + +#ifdef __GNUG__ +#pragma implementation "xh_unkwn.h" +#endif + +// For compilers that support precompilation, includes "wx.h". +#include "wx/wxprec.h" + +#ifdef __BORLANDC__ + #pragma hdrstop +#endif + +#include "wx/xml/xh_unkwn.h" +#include "wx/window.h" +#include "wx/log.h" + + +wxUnknownWidgetXmlHandler::wxUnknownWidgetXmlHandler() +: wxXmlResourceHandler() +{ + AddWindowStyles(); +} + +wxObject *wxUnknownWidgetXmlHandler::DoCreateResource() +{ + long id = GetLong(_T("id"), -1); + wxString name = GetParamValue(_T("name")); + + wxWindow *wnd = NULL; + + if (id != -1) + wnd = m_ParentAsWindow->FindWindow(id); + if (wnd == NULL && !name.IsEmpty()) + wnd = m_ParentAsWindow->FindWindow(name); + + if (wnd == NULL) + wxLogError(_T("Cannot find specified window for (id=%li, name='%s')."), id, name.mb_str()); + else + { + if (wnd->GetParent() != m_ParentAsWindow) + wnd->Reparent(m_ParentAsWindow); + SetupWindow(wnd); + } + + return wnd; +} + +bool wxUnknownWidgetXmlHandler::CanHandle(wxXmlNode *node) +{ + return node->GetName() == _T("unknown"); +} + diff --git a/contrib/utils/wxrcedit/df/unknown.df b/contrib/utils/wxrcedit/df/unknown.df new file mode 100644 index 0000000000..ee0021083f --- /dev/null +++ b/contrib/utils/wxrcedit/df/unknown.df @@ -0,0 +1,4 @@ +node unknown +var id of integer +var name of text +derived from control