1 How to add a new XRC handler
\r
2 ============================
\r
7 This note describes what needs to be done to add a new XRC handler, i.e. add
\r
8 support for loading the objects of some class wxFoo from XRC.
\r
11 1. Implement the handler
\r
12 ------------------------
\r
14 By convention, the XRC handler for a class wxFoo declared in wx/foo.h is called
\r
15 wxFooXmlHandler and is declared in the file wx/xrc/xh_foo.h (this last rule
\r
16 wasn't always respected in the past, however it's not a reason to not respect
\r
17 it in the future). The steps for adding a new handler are:
\r
19 a) Add handler declaration in include/wx/xrc/xh_foo.h, it will usually be the
\r
20 same as in the other files so you can get inspiration for your brand new
\r
21 handler from e.g. wx/xrc/xh_srchctrl.h. Notice the use of wxUSE_FOO if wxFoo
\r
22 is guarded by this symbol.
\r
24 b) Add implementation in src/xrc/xh_foo.cpp: again, it will be almost always
\r
25 very similar to the existing controls. You will need to add support for
\r
26 the control-specific styles.
\r
29 2. Update the other files
\r
30 -------------------------
\r
32 There are a few other files to update to make wxWidgets aware of the new
\r
35 a) Add the new files created above to build/bakefiles/files.bkl: search for
\r
36 "xh_srchctrl" to see where you need to add them
\r
38 b) Add #include "wx/xrc/xh_foo.h" to wx/xrc/xh_all.h.
\r
40 c) Register the new handler in wxXmlResource::InitAllHandlers() in
\r
41 src/xrc/xmlrsall.cpp
\r
44 3. Update the sample
\r
45 --------------------
\r
47 Demonstrate that the new handler works by adding a control using it to
\r
48 samples/xrc/rc/controls.xrc.
\r
54 Version: $Id: tn0021.txt 47865 2007-08-03 20:00:32Z VZ $
\r