From 0e3c83a73630c16f161c96ca3f8206b611676b59 Mon Sep 17 00:00:00 2001 From: Julian Smart Date: Thu, 24 Nov 2005 17:26:05 +0000 Subject: [PATCH] Applied patch [ 1308152 ] wxGrid XRC handler patch HEAD Start of a wxGrid handler by Agron Selimaj Applied with corrections. Needs further work for retrieving grid properties and styles. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@36242 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- build/bakefiles/files.bkl | 2 ++ include/wx/xrc/xh_all.h | 1 + include/wx/xrc/xh_grid.h | 34 ++++++++++++++++++++++++++ src/xrc/xh_grid.cpp | 51 +++++++++++++++++++++++++++++++++++++++ src/xrc/xmlrsall.cpp | 3 +++ 5 files changed, 91 insertions(+) create mode 100644 include/wx/xrc/xh_grid.h create mode 100644 src/xrc/xh_grid.cpp diff --git a/build/bakefiles/files.bkl b/build/bakefiles/files.bkl index 8a74ab16ce..28ca3a9abd 100644 --- a/build/bakefiles/files.bkl +++ b/build/bakefiles/files.bkl @@ -2631,6 +2631,7 @@ IMPORTANT: please read docs/tech/tn0016.txt before modifying this file! src/xrc/xh_treebk.cpp src/xrc/xh_unkwn.cpp src/xrc/xh_wizrd.cpp + src/xrc/xh_grid.cpp src/xrc/xmlres.cpp src/xrc/xmlrsall.cpp @@ -2678,6 +2679,7 @@ IMPORTANT: please read docs/tech/tn0016.txt before modifying this file! wx/xrc/xh_treebk.h wx/xrc/xh_unkwn.h wx/xrc/xh_wizrd.h + wx/xrc/xh_grid.h wx/xrc/xmlres.h diff --git a/include/wx/xrc/xh_all.h b/include/wx/xrc/xh_all.h index b3f42aa180..14a4b03b5d 100644 --- a/include/wx/xrc/xh_all.h +++ b/include/wx/xrc/xh_all.h @@ -56,5 +56,6 @@ #include "wx/xrc/xh_wizrd.h" #include "wx/xrc/xh_statbar.h" #include "wx/xrc/xh_mdi.h" +#include "wx/xrc/xh_grid.h" #endif // _WX_XH_ALL_H_ diff --git a/include/wx/xrc/xh_grid.h b/include/wx/xrc/xh_grid.h new file mode 100644 index 0000000000..762ae2de1c --- /dev/null +++ b/include/wx/xrc/xh_grid.h @@ -0,0 +1,34 @@ +///////////////////////////////////////////////////////////////////////////// +// Name: xh_grid.h +// Purpose: XML resource handler for the grid control +// Author: Agron Selimaj +// Created: 2005/08/11 +// RCS-ID: $Id$ +// Copyright: (c) 2005 Agron Selimaj, Freepour Controls Inc. +// Licence: wxWindows licence +///////////////////////////////////////////////////////////////////////////// + +#ifndef _WX_XH_GRD_H_ +#define _WX_XH_GRD_H_ + +#if defined(__GNUG__) && !defined(__APPLE__) +#pragma interface "xh_grid.cpp" +#endif + +#include "wx/xrc/xmlres.h" + +#if wxUSE_XRC + +class WXDLLIMPEXP_XRC wxGridXmlHandler : public wxXmlResourceHandler +{ +DECLARE_DYNAMIC_CLASS(wxGridXmlHandler) +public: + wxGridXmlHandler(); + virtual wxObject *DoCreateResource(); + virtual bool CanHandle(wxXmlNode *node); +}; + +#endif // wxUSE_XRC + + +#endif // _WX_XH_GRD_H_ diff --git a/src/xrc/xh_grid.cpp b/src/xrc/xh_grid.cpp new file mode 100644 index 0000000000..a5cea99ad7 --- /dev/null +++ b/src/xrc/xh_grid.cpp @@ -0,0 +1,51 @@ +///////////////////////////////////////////////////////////////////////////// +// Name: xh_grid.h +// Purpose: XML resource handler for the grid control +// Author: Agron Selimaj +// Created: 2005/08/11 +// RCS-ID: $Id$ +// Copyright: (c) 2005 Agron Selimaj, Freepour Controls Inc. +// Licence: wxWindows licence +///////////////////////////////////////////////////////////////////////////// + +// For compilers that support precompilation, includes "wx.h". +#include "wx/wxprec.h" + +#ifdef __BORLANDC__ + #pragma hdrstop +#endif + +#if wxUSE_XRC + +#include "wx/xrc/xh_grid.h" +#include "wx/grid.h" + +IMPLEMENT_DYNAMIC_CLASS(wxGridXmlHandler, wxXmlResourceHandler) + +wxGridXmlHandler::wxGridXmlHandler() +: wxXmlResourceHandler() +{ + AddWindowStyles(); +} + +wxObject *wxGridXmlHandler::DoCreateResource() +{ + XRC_MAKE_INSTANCE(grid, wxGrid) + + grid->Create(m_parentAsWindow, + GetID(), + GetPosition(), GetSize(), + GetStyle(wxT("style")), + GetName()); + + SetupWindow( grid); + + return grid; +} + +bool wxGridXmlHandler::CanHandle(wxXmlNode *node) +{ + return IsOfClass(node, wxT("wxGrid")); +} + +#endif // wxUSE_XRC diff --git a/src/xrc/xmlrsall.cpp b/src/xrc/xmlrsall.cpp index db1d0e9003..df66f1d675 100644 --- a/src/xrc/xmlrsall.cpp +++ b/src/xrc/xmlrsall.cpp @@ -118,6 +118,9 @@ void wxXmlResource::InitAllHandlers() #if wxUSE_MDI AddHandler(new wxMdiXmlHandler); #endif +#if wxUSE_GRID + AddHandler( new wxGridXmlHandler); +#endif } #endif // wxUSE_XRC