git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@48141 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
		
			
				
	
	
		
			56 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			56 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
                         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 $
 | 
						|
 |