added a tech note explaining how to write a new XRC handler
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@48141 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -24,6 +24,6 @@ tn0020.txt Binary compatibility and wxWidgets
|
|||||||
tn0021.txt How to add a new wxUSE_XXX preprocessor constant
|
tn0021.txt How to add a new wxUSE_XXX preprocessor constant
|
||||||
tn0022.txt Working with the wxWidgets release system
|
tn0022.txt Working with the wxWidgets release system
|
||||||
tn0023.txt Adding a new app/screenshot to the wxWidgets.org front page
|
tn0023.txt Adding a new app/screenshot to the wxWidgets.org front page
|
||||||
|
tn0024.txt How to add a new XRC handler
|
||||||
|
|
||||||
Version: $Id$
|
Version: $Id$
|
||||||
|
55
docs/tech/tn0024.txt
Normal file
55
docs/tech/tn0024.txt
Normal file
@@ -0,0 +1,55 @@
|
|||||||
|
How to add a new XRC handler
|
||||||
|
============================
|
||||||
|
|
||||||
|
0. Purpose
|
||||||
|
----------
|
||||||
|
|
||||||
|
This note describes what needs to be done to add a new XRC handler, i.e. add
|
||||||
|
support for loading the objects of some class wxFoo from XRC.
|
||||||
|
|
||||||
|
|
||||||
|
1. Implement the handler
|
||||||
|
------------------------
|
||||||
|
|
||||||
|
By convention, the XRC handler for a class wxFoo declared in wx/foo.h is called
|
||||||
|
wxFooXmlHandler and is declared in the file wx/xrc/xh_foo.h (this last rule
|
||||||
|
wasn't always respected in the past, however it's not a reason to not respect
|
||||||
|
it in the future). The steps for adding a new handler are:
|
||||||
|
|
||||||
|
a) Add handler declaration in include/wx/xrc/xh_foo.h, it will usually be the
|
||||||
|
same as in the other files so you can get inspiration for your brand new
|
||||||
|
handler from e.g. wx/xrc/xh_srchctrl.h. Notice the use of wxUSE_FOO if wxFoo
|
||||||
|
is guarded by this symbol.
|
||||||
|
|
||||||
|
b) Add implementation in src/xrc/xh_foo.cpp: again, it will be almost always
|
||||||
|
very similar to the existing controls. You will need to add support for
|
||||||
|
the control-specific styles.
|
||||||
|
|
||||||
|
|
||||||
|
2. Update the other files
|
||||||
|
-------------------------
|
||||||
|
|
||||||
|
There are a few other files to update to make wxWidgets aware of the new
|
||||||
|
handler:
|
||||||
|
|
||||||
|
a) Add the new files created above to build/bakefiles/files.bkl: search for
|
||||||
|
"xh_srchctrl" to see where you need to add them
|
||||||
|
|
||||||
|
b) Add #include "wx/xrc/xh_foo.h" to wx/xrc/xh_all.h.
|
||||||
|
|
||||||
|
c) Register the new handler in wxXmlResource::InitAllHandlers() in
|
||||||
|
src/xrc/xmlrsall.cpp
|
||||||
|
|
||||||
|
|
||||||
|
3. Update the sample
|
||||||
|
--------------------
|
||||||
|
|
||||||
|
Demonstrate that the new handler works by adding a control using it to
|
||||||
|
samples/xrc/rc/controls.xrc.
|
||||||
|
|
||||||
|
|
||||||
|
=== EOF ===
|
||||||
|
|
||||||
|
Author: VZ
|
||||||
|
Version: $Id: tn0021.txt 47865 2007-08-03 20:00:32Z VZ $
|
||||||
|
|
Reference in New Issue
Block a user