slowly documenting XRC...

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17471 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Václav Slavík
2002-10-06 22:32:54 +00:00
parent 621b9ba223
commit 62ac23612f

View File

@@ -20,6 +20,7 @@ The XRC format is based on XML 1.0 (please consult W3C's specification). There
is no DTD available since it is not possible to fully describe the format with is no DTD available since it is not possible to fully describe the format with
the limited expressive power of DTDs. the limited expressive power of DTDs.
1. Terminology 1. Terminology
-------------- --------------
@@ -43,6 +44,7 @@ of an <object> or <object_ref> node. In the example bellow, <pos>, <label> and
</object> </object>
</resource> </resource>
2. Elementary description 2. Elementary description
------------------------- -------------------------
@@ -70,9 +72,58 @@ The <resource> node contains namespace declaration, too:
The <resource> node is only allowed to have <object> and <object_ref> The <resource> node is only allowed to have <object> and <object_ref>
subnodes, all of which must have the "name" property. subnodes, all of which must have the "name" property.
<object> - TODO (name, class, subclass) The <object> node represents a single object (GUI element) and it usually maps
directly to a wxWindows class instance. It three properties: "name", "class"
and "subclass". "class" must always be present, it tells XRC what wxWindows
object should be created in this place. The other two are optional.
"name" is ID used to identify the object. It is the value passed to the XRCID() macro
and is also used to construct wxWindow's id and name attributes and must be unique
among all children of the neareset container object (wxDialog, wxFrame, wxPanel,
wxNotebook) upside from the object in XML nodes hiearchy (two distinct containers
may contain objects with same "name", though). "subclass" is
optional name of class whose constructor will be called instead of the constructor
for "class". Subclass must be available in the program that loads the resource,
must be derived from "class" and must be registered within wxWindows' RTTI system.
<object_ref> - TODO (name, ref, subclass) Example:
<object name="MyList1" class="wxListCtrl" subclass="MyListCtrlClass">
...
</object>
<object> node may have arbitrary child nodes. What child nodes and their semantics
are class-dependent and are defined later in this document. The user is allowed
to register new object handlers within XRC and extend it to accept new <object>
classes (and therefore different <object>'s child nodes).
<object_ref> node is identical to <object>, except that it does _not_ have "class"
property and has additonal required property "ref". It's concept is similar to Unix
symlinks: value of the "ref" property is equal to the value of "name" property of
some existing node (called referred node) in the resources (not neccessary top-level).
Referred node's "class" property and all subnodes are copied in place of the referee
<object_ref> node which is then processed as regular <object> node. If the <object_ref>
node itself has child nodes, then these nodes _override_ any nodes from the referred node.
Example:
<object name="foo" class="wxTextCtrl">
<value>hello</value>
<size>100,-1d</size>
</object>
<object_ref name="bar" ref="foo">
<value>bar</value> <!-- override! -->
</object>
is identical to:
<object name="foo" class="wxTextCtrl">
<value>hello</value>
<size>100,-1d</size>
</object>
<object name="bar" class="wxTextCtrl">
<value>bar</value>
<size>100,-1d</size>
</object>
3. Common attributes 3. Common attributes