diff --git a/docs/tech/tn0014.txt b/docs/tech/tn0014.txt index d8c897fd19..e837e8554d 100644 --- a/docs/tech/tn0014.txt +++ b/docs/tech/tn0014.txt @@ -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 the limited expressive power of DTDs. + 1. Terminology -------------- @@ -43,6 +44,7 @@ of an or node. In the example bellow, , + 2. Elementary description ------------------------- @@ -61,7 +63,7 @@ is 0 for the first incompatible change in given wxWindows release, 1 for the second etc. Differences between versions are described within this document in paragraphs -entitled "Version Note". +entitled "Version Note". The node contains namespace declaration, too: @@ -70,9 +72,58 @@ The node contains namespace declaration, too: The node is only allowed to have and subnodes, all of which must have the "name" property. - - TODO (name, class, subclass) +The 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. - - TODO (name, ref, subclass) +Example: + + + ... + + + 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 +classes (and therefore different 's child nodes). + + node is identical to , 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 + node which is then processed as regular node. If the +node itself has child nodes, then these nodes _override_ any nodes from the referred node. + +Example: + + + hello + 100,-1d + + + bar + + +is identical to: + + + hello + 100,-1d + + + bar + 100,-1d + 3. Common attributes