Merge commit.
authorstechong
Fri, 13 Nov 2009 13:34:34 -0600
changeset 580 41edc8c123d6
parent 579 22956bdb436e (current diff)
parent 577 b46382ab04d2 (diff)
child 582 098f2660c357
Merge commit.
--- a/uidesigner/com.nokia.sdt.component.symbian/src/com/nokia/sdt/component/symbian/sourcegen/macrohelp/MacroHelpGenerator.java	Fri Nov 13 13:34:02 2009 -0600
+++ b/uidesigner/com.nokia.sdt.component.symbian/src/com/nokia/sdt/component/symbian/sourcegen/macrohelp/MacroHelpGenerator.java	Fri Nov 13 13:34:34 2009 -0600
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of the License "Eclipse Public License v1.0"
@@ -25,16 +25,14 @@
 import com.nokia.sdt.emf.component.loader.Loader;
 import com.nokia.cpp.internal.api.utils.core.FileUtils;
 import com.nokia.cpp.internal.api.utils.core.MessageLocation;
-import com.sun.org.apache.html.internal.dom.HTMLDOMImplementationImpl;
 
 import org.eclipse.core.runtime.Path;
 import org.eclipse.emf.common.util.TreeIterator;
 import org.eclipse.emf.common.util.URI;
 import org.eclipse.emf.ecore.EObject;
+import org.w3c.dom.Document;
 import org.w3c.dom.Element;
 import org.w3c.dom.Node;
-import org.w3c.dom.html.HTMLDOMImplementation;
-import org.w3c.dom.html.HTMLDocument;
 
 import java.io.File;
 import java.io.FileOutputStream;
@@ -46,6 +44,7 @@
 import java.util.List;
 import java.util.Map;
 
+import javax.xml.parsers.DocumentBuilderFactory;
 import javax.xml.transform.Result;
 import javax.xml.transform.Transformer;
 import javax.xml.transform.TransformerFactory;
@@ -62,6 +61,7 @@
 public class MacroHelpGenerator {
 	private SourceGenMacroSupport macroSupport; 
 	private Map<String, List<ResolvedMacro>> macroMap;
+	private Document document;
 
 	public static void main(String[] args) {
 		MacroHelpGenerator generator = new MacroHelpGenerator();
@@ -130,22 +130,29 @@
 
 	}
 	private void generate(String fName) throws Exception {
-		HTMLDOMImplementation domImpl = HTMLDOMImplementationImpl.getHTMLDOMImplementation();
-		HTMLDocument document = domImpl.createHTMLDocument(
-				"Help for Macros in " + new File(fName).getName());
+		document = DocumentBuilderFactory.newInstance().newDocumentBuilder().newDocument();
+		Element html = document.createElement("html");
+		document.appendChild(html);
+		html.setAttribute("xmlns", "http://www.w3.org/1999/xhtml");
+		Element head = document.createElement("head");
+		html.appendChild(head);
+		Element title = document.createElement("title");
+		head.appendChild(title);
+		title.setTextContent("Help for Macros in " + new File(fName).getName());
 		
+		Element body = document.createElement("body");
+		html.appendChild(body);
 		Element tocParent = document.createElement("p");
-		document.getBody().appendChild(tocParent);
+		body.appendChild(tocParent);
 		Element tocTitle = document.createElement("h1");
 		tocTitle.setTextContent("Table of contents");
 		tocParent.appendChild(tocTitle);
 		
 		Element helpParent = document.createElement("p");
-		document.getBody().appendChild(helpParent);
+		body.appendChild(helpParent);
 
 		for (ResolvedMacro macro : macroMap.get(fName)) {
-			generateMacroHelp(document,
-					tocParent,
+			generateMacroHelp(tocParent,
 					helpParent,
 					macro);
 			tocParent.appendChild(document.createTextNode("\n"));
@@ -173,9 +180,8 @@
 	
 
 	private void generateMacroHelp(
-			HTMLDocument document,
 			Element tocParent,
-			Element helpParent, 
+			Element helpParent,
 			ResolvedMacro macro) {
 		
 		String id = macro.macro.getId();
@@ -201,11 +207,11 @@
 		helpEntry.setTextContent(id);
 		helpParent.appendChild(helpEntry);
 		
-		generateMacroDescription(document, helpParent, macro);
+		generateMacroDescription(helpParent, macro);
 	}
 
-	private void generateMacroDescription(HTMLDocument document,
-			Element helpEntry, ResolvedMacro macro) {
+	private void generateMacroDescription(Element helpEntry,
+			ResolvedMacro macro) {
 		DefineMacroType dmt = macro.macro;
 		String help = dmt.getHelp();
 		
@@ -215,7 +221,7 @@
 			helpEntry.appendChild(para);
 		}
 		else {
-			helpEntry.appendChild(encodeHTML(document, help));
+			helpEntry.appendChild(encodeHTML(help));
 		}
 		
 		Element header = document.createElement("h3");
@@ -223,12 +229,12 @@
 		helpEntry.appendChild(header);
 		
 		//Element ul = document.createElement("ul");
-		generateMacroArgumentsHelp(document, helpEntry, macro);
+		generateMacroArgumentsHelp(helpEntry, macro);
 		//helpEntry.appendChild(ul);
 	}
 
-	private void generateMacroArgumentsHelp(HTMLDocument document,
-			Element ul, ResolvedMacro macro) {
+	private void generateMacroArgumentsHelp(Element ul,
+			ResolvedMacro macro) {
 
 		// organize arguments by their origin: 
 		// these are already ordered as <imported arguments>
@@ -269,7 +275,7 @@
 		}
 	}
 	
-	private void emitArgumentGroup(HTMLDocument document,
+	private void emitArgumentGroup(Document document,
 			Element parent,
 			boolean isInherited,
 			ResolvedMacro fromMacro,
@@ -321,13 +327,13 @@
 			
 		});
 		for (MacroArgumentType argument : arguments) {
-			generateMacroArgumentHelp(document, table, fromMacro, argument);
+			generateMacroArgumentHelp(table, fromMacro, argument);
 		}
 
 		
 	}
-	private void generateMacroArgumentHelp(HTMLDocument document,
-			Element table, ResolvedMacro macro, MacroArgumentType argument) {
+	private void generateMacroArgumentHelp(Element table,
+			ResolvedMacro macro, MacroArgumentType argument) {
 		Element tr = document.createElement("tr");
 		table.appendChild(tr);
 
@@ -349,7 +355,7 @@
 
 		td = document.createElement("td");
 		if (argument.getHelp() != null && argument.getHelp().length() > 0)
-			td.appendChild(encodeHTML(document, argument.getHelp()));
+			td.appendChild(encodeHTML(argument.getHelp()));
 		else
 			td.setTextContent("\u00A0");
 		tr.appendChild(td);
@@ -357,7 +363,7 @@
 	
 	//static Pattern PARAGRAPH_PATTERN = Pattern.compile("(.*)(\r?\n)\\s*(\r?\n)", Pattern.MULTILINE);
 	
-	private Node encodeHTML(HTMLDocument document, String help) {
+	private Node encodeHTML(String help) {
 		Node el = document.createTextNode("");
 		boolean hadParagraphs = false;
 		int idx = 0;
--- a/uidesigner/com.nokia.sdt.series60.componentlibrary/components/CommonMacros.inc.html	Fri Nov 13 13:34:02 2009 -0600
+++ b/uidesigner/com.nokia.sdt.series60.componentlibrary/components/CommonMacros.inc.html	Fri Nov 13 13:34:34 2009 -0600
@@ -1,1393 +1,19 @@
-<HTML>
-<HEAD>
-<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<TITLE>Help for Macros in CommonMacros.inc</TITLE>
-</HEAD>
-<BODY>
-<P>
-<H1>Table of contents</H1>
-<P>
-<A href="#DeclareMethod">DeclareMethod</A>
-</P>
-
-<P>
-<A href="#GenerateDefaultFunctionBody">GenerateDefaultFunctionBody</A>
-</P>
-
-<P>
-<A href="#DefineMethod">DefineMethod</A>
-</P>
-
-<P>
-<A href="#GenerateMethod">GenerateMethod</A>
-</P>
-
-<P>
-<A href="#DefineMethodWithOwnedBody">DefineMethodWithOwnedBody</A>
-</P>
-
-<P>
-<A href="#GenerateMethodWithOwnedBody">GenerateMethodWithOwnedBody</A>
-</P>
-
-<P>
-<A href="#GenerateMethodWithVariantArguments">GenerateMethodWithVariantArguments</A>
-</P>
-
-<P>
-<A href="#GenerateVirtualMethodOverrideForEventHandler">GenerateVirtualMethodOverrideForEventHandler</A>
-</P>
-
-<P>
-<A href="#GenerateUserEventHandlerFunction">GenerateUserEventHandlerFunction</A>
-</P>
-
-</P>
-<P>
-<A name="DeclareMethod"></A>
-<H2>DeclareMethod</H2>
-<P>
-<P>Declares a method, e.g., the prototype.</P>
-</P>
-<H3>Arguments</H3>
-<TABLE border="1" cellpadding="3">
-<TH>Argument</TH><TH>Req'd?</TH><TH>Default</TH><TH>Description</TH>
-<TR>
-<TD>FunctionName</TD><TD>yes</TD><TD>&nbsp;</TD><TD>
-<P>
-<P>name of function</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>FunctionArgs</TD><TD>yes</TD><TD>&nbsp;</TD><TD>
-<P>
-<P>canonical argument list (e.g. "const TInt&amp; aArg, TInt aFoo = 3")</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>FunctionName</TD><TD>yes</TD><TD>&nbsp;</TD><TD>
-<P>
-<P>name of function</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>FunctionArgs</TD><TD>yes</TD><TD>&nbsp;</TD><TD>
-<P>
-<P>canonical argument list (e.g. "const TInt&amp; aArg, TInt aFoo = 3")</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>DeclLocation</TD><TD>no</TD><TD>&nbsp;</TD><TD>
-<P>
-<P>name of location into which to add the prototype (either this or DeclPhase must be defined)</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>DeclPhase</TD><TD>no</TD><TD>&nbsp;</TD><TD>
-<P>
-<P>name of phase into which to add the prototype (either this or DeclLocation must be defined)</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>ReturnType</TD><TD>no</TD><TD>void</TD><TD>
-<P>
-<P>return type for function</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>IsStatic</TD><TD>no</TD><TD>false</TD><TD>
-<P>
-<P>is the function static?</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>IsVirtual</TD><TD>no</TD><TD>false</TD><TD>
-<P>
-<P>is the function virtual? (ignored if IsStatic)</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>IsConst</TD><TD>no</TD><TD>false</TD><TD>
-<P>
-<P>add 'const' modifier to function?</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>DeclLocation</TD><TD>no</TD><TD>&nbsp;</TD><TD>
-<P>
-<P>name of location into which to add the prototype (either this or DeclPhase must be defined)</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>DeclPhase</TD><TD>no</TD><TD>&nbsp;</TD><TD>
-<P>
-<P>name of phase into which to add the prototype (either this or DeclLocation must be defined)</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>ReturnType</TD><TD>no</TD><TD>void</TD><TD>
-<P>
-<P>return type for function</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>IsStatic</TD><TD>no</TD><TD>false</TD><TD>
-<P>
-<P>is the function static?</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>IsVirtual</TD><TD>no</TD><TD>false</TD><TD>
-<P>
-<P>is the function virtual? (ignored if IsStatic)</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>IsConst</TD><TD>no</TD><TD>false</TD><TD>
-<P>
-<P>add 'const' modifier to function?</P>
-</P>
-</TD>
-</TR>
-</TABLE>
-
-<A name="GenerateDefaultFunctionBody"></A>
-<H2>GenerateDefaultFunctionBody</H2>
-<P>
-<P>Create the default body for a function.  If FunctionBody is set,  emits that.  If ReturnType is not void and DefaultReturn is set,  create a return statement using its value.</P>
-</P>
-<H3>Arguments</H3>
-<TABLE border="1" cellpadding="3">
-<TH>Argument</TH><TH>Req'd?</TH><TH>Default</TH><TH>Description</TH>
-<TR>
-<TD>FunctionLocationId</TD><TD>yes</TD><TD>&nbsp;</TD><TD>
-<P>
-<P>name of the function location to define; body is named id+_BODY</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>FunctionLocationId</TD><TD>yes</TD><TD>&nbsp;</TD><TD>
-<P>
-<P>name of the function location to define; body is named id+_BODY</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>DefaultReturn</TD><TD>no</TD><TD>&nbsp;</TD><TD>
-<P>
-<P>default value to return; overridden if FunctionBody is specified</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>ReturnType</TD><TD>no</TD><TD>void</TD><TD>
-<P>
-<P>return type for function</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>FunctionBody</TD><TD>no</TD><TD>&nbsp;</TD><TD>
-<P>
-<P>text inside function body (comment and/or code)</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>DefaultReturn</TD><TD>no</TD><TD>&nbsp;</TD><TD>
-<P>
-<P>default value to return; overridden if FunctionBody is specified</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>ReturnType</TD><TD>no</TD><TD>void</TD><TD>
-<P>
-<P>return type for function</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>FunctionBody</TD><TD>no</TD><TD>&nbsp;</TD><TD>
-<P>
-<P>text inside function body (comment and/or code)</P>
-</P>
-</TD>
-</TR>
-</TABLE>
-
-<A name="DefineMethod"></A>
-<H2>DefineMethod</H2>
-<P>
-<P>Defines a method to one location, optionally generating body text, or a default return statement. The generated function is owned by default.</P>
-</P>
-<H3>Arguments</H3>
-<TABLE border="1" cellpadding="3">
-<TH>Argument</TH><TH>Req'd?</TH><TH>Default</TH><TH>Description</TH>
-<TR>
-<TD>DefnLocation</TD><TD>yes</TD><TD>&nbsp;</TD><TD>
-<P>
-<P>name of location into which to add the function</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>FunctionName</TD><TD>yes</TD><TD>&nbsp;</TD><TD>
-<P>
-<P>name of function</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>FunctionArgs</TD><TD>yes</TD><TD>&nbsp;</TD><TD>
-<P>
-<P>canonical argument list (e.g. "const TInt&amp; aArg, TInt aFoo = 3")</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>DefnLocation</TD><TD>yes</TD><TD>&nbsp;</TD><TD>
-<P>
-<P>name of location into which to add the function</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>FunctionName</TD><TD>yes</TD><TD>&nbsp;</TD><TD>
-<P>
-<P>name of function</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>FunctionArgs</TD><TD>yes</TD><TD>&nbsp;</TD><TD>
-<P>
-<P>canonical argument list (e.g. "const TInt&amp; aArg, TInt aFoo = 3")</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>IsOwned</TD><TD>no</TD><TD>true</TD><TD>
-<P>
-<P>is the function body owned?</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>IsConst</TD><TD>no</TD><TD>false</TD><TD>
-<P>
-<P>add 'const' modifier to function?</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>ClassName</TD><TD>no</TD><TD>${className}</TD><TD>
-<P>
-<P>the class name</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>FunctionComment</TD><TD>no</TD><TD>&nbsp;</TD><TD>
-<P>
-<P>comment appearing before function defn</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>IsEventHandler</TD><TD>no</TD><TD>false</TD><TD>
-<P>
-<P>is the function body the user event handler?</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>Initializers</TD><TD>no</TD><TD>&nbsp;</TD><TD>
-<P>
-<P>provide any initializer expressions, e.g. for constructors, appearing   on a separate line after the argument list and before the function body.   Do not provide the leading colon (':') as this is added automatically</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>IsOwned</TD><TD>no</TD><TD>true</TD><TD>
-<P>
-<P>is the function body owned?</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>IsConst</TD><TD>no</TD><TD>false</TD><TD>
-<P>
-<P>add 'const' modifier to function?</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>ClassName</TD><TD>no</TD><TD>${className}</TD><TD>
-<P>
-<P>the class name</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>FunctionComment</TD><TD>no</TD><TD>&nbsp;</TD><TD>
-<P>
-<P>comment appearing before function defn</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>IsEventHandler</TD><TD>no</TD><TD>false</TD><TD>
-<P>
-<P>is the function body the user event handler?</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>Initializers</TD><TD>no</TD><TD>&nbsp;</TD><TD>
-<P>
-<P>provide any initializer expressions, e.g. for constructors, appearing   on a separate line after the argument list and before the function body.   Do not provide the leading colon (':') as this is added automatically</P>
-</P>
-</TD>
-</TR>
-</TABLE>
-<P>Inherited from <A href="#GenerateDefaultFunctionBody">GenerateDefaultFunctionBody</A>:</P>
-<TABLE border="1" cellpadding="3">
-<TH>Argument</TH><TH>Req'd?</TH><TH>Default</TH><TH>Description</TH>
-<TR>
-<TD>FunctionLocationId</TD><TD>yes</TD><TD>&nbsp;</TD><TD>
-<P>
-<P>name of the function location to define; body is named id+_BODY</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>DefaultReturn</TD><TD>no</TD><TD>&nbsp;</TD><TD>
-<P>
-<P>default value to return; overridden if FunctionBody is specified</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>ReturnType</TD><TD>no</TD><TD>void</TD><TD>
-<P>
-<P>return type for function</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>FunctionBody</TD><TD>no</TD><TD>&nbsp;</TD><TD>
-<P>
-<P>text inside function body (comment and/or code)</P>
-</P>
-</TD>
-</TR>
-</TABLE>
-
-<A name="GenerateMethod"></A>
-<H2>GenerateMethod</H2>
-<P>
-<P>Declares and defines a method to one location and adds the prototype to another location.</P>
-</P>
-<H3>Arguments</H3>
-<TABLE border="1" cellpadding="3">
-<TH>Argument</TH><TH>Req'd?</TH><TH>Default</TH><TH>Description</TH>
-</TABLE>
-<P>Inherited from <A href="#DeclareMethod">DeclareMethod</A>:</P>
-<TABLE border="1" cellpadding="3">
-<TH>Argument</TH><TH>Req'd?</TH><TH>Default</TH><TH>Description</TH>
-<TR>
-<TD>FunctionName</TD><TD>yes</TD><TD>&nbsp;</TD><TD>
-<P>
-<P>name of function</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>FunctionArgs</TD><TD>yes</TD><TD>&nbsp;</TD><TD>
-<P>
-<P>canonical argument list (e.g. "const TInt&amp; aArg, TInt aFoo = 3")</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>DeclLocation</TD><TD>no</TD><TD>&nbsp;</TD><TD>
-<P>
-<P>name of location into which to add the prototype (either this or DeclPhase must be defined)</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>DeclPhase</TD><TD>no</TD><TD>&nbsp;</TD><TD>
-<P>
-<P>name of phase into which to add the prototype (either this or DeclLocation must be defined)</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>ReturnType</TD><TD>no</TD><TD>void</TD><TD>
-<P>
-<P>return type for function</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>IsStatic</TD><TD>no</TD><TD>false</TD><TD>
-<P>
-<P>is the function static?</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>IsVirtual</TD><TD>no</TD><TD>false</TD><TD>
-<P>
-<P>is the function virtual? (ignored if IsStatic)</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>IsConst</TD><TD>no</TD><TD>false</TD><TD>
-<P>
-<P>add 'const' modifier to function?</P>
-</P>
-</TD>
-</TR>
-</TABLE>
-<P>Inherited from <A href="#DefineMethod">DefineMethod</A>:</P>
-<TABLE border="1" cellpadding="3">
-<TH>Argument</TH><TH>Req'd?</TH><TH>Default</TH><TH>Description</TH>
-<TR>
-<TD>FunctionLocationId</TD><TD>yes</TD><TD>&nbsp;</TD><TD>
-<P>
-<P>name of the function location to define; body is named id+_BODY</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>DefnLocation</TD><TD>yes</TD><TD>&nbsp;</TD><TD>
-<P>
-<P>name of location into which to add the function</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>DefaultReturn</TD><TD>no</TD><TD>&nbsp;</TD><TD>
-<P>
-<P>default value to return; overridden if FunctionBody is specified</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>FunctionBody</TD><TD>no</TD><TD>&nbsp;</TD><TD>
-<P>
-<P>text inside function body (comment and/or code)</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>IsOwned</TD><TD>no</TD><TD>true</TD><TD>
-<P>
-<P>is the function body owned?</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>ClassName</TD><TD>no</TD><TD>${className}</TD><TD>
-<P>
-<P>the class name</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>FunctionComment</TD><TD>no</TD><TD>&nbsp;</TD><TD>
-<P>
-<P>comment appearing before function defn</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>IsEventHandler</TD><TD>no</TD><TD>false</TD><TD>
-<P>
-<P>is the function body the user event handler?</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>Initializers</TD><TD>no</TD><TD>&nbsp;</TD><TD>
-<P>
-<P>provide any initializer expressions, e.g. for constructors, appearing   on a separate line after the argument list and before the function body.   Do not provide the leading colon (':') as this is added automatically</P>
-</P>
-</TD>
-</TR>
-</TABLE>
-
-<A name="DefineMethodWithOwnedBody"></A>
-<H2>DefineMethodWithOwnedBody</H2>
-<P>
-<P>Defines a method with an owned body section. </P>
-<P> The generated function is not owned by default, unlike Method. There may be uses for an owned function with a named owned region, though. </P>
-<P>  Also, no default function code is generated, so the provided  StartFunctionBody, FunctionBody, and EndFunctionBody must account for any return statements.</P>
-</P>
-<H3>Arguments</H3>
-<TABLE border="1" cellpadding="3">
-<TH>Argument</TH><TH>Req'd?</TH><TH>Default</TH><TH>Description</TH>
-<TR>
-<TD>FunctionBody</TD><TD>no</TD><TD>&nbsp;</TD><TD>
-<P>
-<P>text inside owned part of function body</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>OwnedRegionLocationId</TD><TD>no</TD><TD>$(FunctionLocationId)_BODY</TD><TD>
-<P>
-<P>location id for enclosed body</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>OwnedRegionName</TD><TD>no</TD><TD>Generated Contents</TD><TD>
-<P>
-<P>region name for enclosed body</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>StartFunctionBody</TD><TD>no</TD><TD>&nbsp;</TD><TD>
-<P>
-<P>text inside function body (comment and/or code) before the owned section</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>EndFunctionBody</TD><TD>no</TD><TD>&nbsp;</TD><TD>
-<P>
-<P>text inside function body (comment and/or code) after the owned section</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>FunctionBody</TD><TD>no</TD><TD>&nbsp;</TD><TD>
-<P>
-<P>text inside owned part of function body</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>OwnedRegionLocationId</TD><TD>no</TD><TD>$(FunctionLocationId)_BODY</TD><TD>
-<P>
-<P>location id for enclosed body</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>OwnedRegionName</TD><TD>no</TD><TD>Generated Contents</TD><TD>
-<P>
-<P>region name for enclosed body</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>StartFunctionBody</TD><TD>no</TD><TD>&nbsp;</TD><TD>
-<P>
-<P>text inside function body (comment and/or code) before the owned section</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>EndFunctionBody</TD><TD>no</TD><TD>&nbsp;</TD><TD>
-<P>
-<P>text inside function body (comment and/or code) after the owned section</P>
-</P>
-</TD>
-</TR>
-</TABLE>
-<P>Inherited from <A href="#DefineMethod">DefineMethod</A>:</P>
-<TABLE border="1" cellpadding="3">
-<TH>Argument</TH><TH>Req'd?</TH><TH>Default</TH><TH>Description</TH>
-<TR>
-<TD>FunctionLocationId</TD><TD>yes</TD><TD>&nbsp;</TD><TD>
-<P>
-<P>name of the function location to define; body is named id+_BODY</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>DefnLocation</TD><TD>yes</TD><TD>&nbsp;</TD><TD>
-<P>
-<P>name of location into which to add the function</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>FunctionName</TD><TD>yes</TD><TD>&nbsp;</TD><TD>
-<P>
-<P>name of function</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>FunctionArgs</TD><TD>yes</TD><TD>&nbsp;</TD><TD>
-<P>
-<P>canonical argument list (e.g. "const TInt&amp; aArg, TInt aFoo = 3")</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>DefaultReturn</TD><TD>no</TD><TD>&nbsp;</TD><TD>
-<P>
-<P>default value to return; overridden if FunctionBody is specified</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>ReturnType</TD><TD>no</TD><TD>void</TD><TD>
-<P>
-<P>return type for function</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>IsOwned</TD><TD>no</TD><TD>true</TD><TD>
-<P>
-<P>is the function body owned?</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>IsConst</TD><TD>no</TD><TD>false</TD><TD>
-<P>
-<P>add 'const' modifier to function?</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>ClassName</TD><TD>no</TD><TD>${className}</TD><TD>
-<P>
-<P>the class name</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>FunctionComment</TD><TD>no</TD><TD>&nbsp;</TD><TD>
-<P>
-<P>comment appearing before function defn</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>IsEventHandler</TD><TD>no</TD><TD>false</TD><TD>
-<P>
-<P>is the function body the user event handler?</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>Initializers</TD><TD>no</TD><TD>&nbsp;</TD><TD>
-<P>
-<P>provide any initializer expressions, e.g. for constructors, appearing   on a separate line after the argument list and before the function body.   Do not provide the leading colon (':') as this is added automatically</P>
-</P>
-</TD>
-</TR>
-</TABLE>
-
-<A name="GenerateMethodWithOwnedBody"></A>
-<H2>GenerateMethodWithOwnedBody</H2>
-<P>
-<P>Declares and defines a method with an owned body section to one location and adds the prototype to another location.  </P>
-<P> The generated function is not owned by default, unlike Method. There may be uses for an owned function with a named owned region, though.</P>
-</P>
-<H3>Arguments</H3>
-<TABLE border="1" cellpadding="3">
-<TH>Argument</TH><TH>Req'd?</TH><TH>Default</TH><TH>Description</TH>
-</TABLE>
-<P>Inherited from <A href="#DefineMethodWithOwnedBody">DefineMethodWithOwnedBody</A>:</P>
-<TABLE border="1" cellpadding="3">
-<TH>Argument</TH><TH>Req'd?</TH><TH>Default</TH><TH>Description</TH>
-<TR>
-<TD>FunctionLocationId</TD><TD>yes</TD><TD>&nbsp;</TD><TD>
-<P>
-<P>name of the function location to define; body is named id+_BODY</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>DefnLocation</TD><TD>yes</TD><TD>&nbsp;</TD><TD>
-<P>
-<P>name of location into which to add the function</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>FunctionName</TD><TD>yes</TD><TD>&nbsp;</TD><TD>
-<P>
-<P>name of function</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>FunctionArgs</TD><TD>yes</TD><TD>&nbsp;</TD><TD>
-<P>
-<P>canonical argument list (e.g. "const TInt&amp; aArg, TInt aFoo = 3")</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>DefaultReturn</TD><TD>no</TD><TD>&nbsp;</TD><TD>
-<P>
-<P>default value to return; overridden if FunctionBody is specified</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>ReturnType</TD><TD>no</TD><TD>void</TD><TD>
-<P>
-<P>return type for function</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>FunctionBody</TD><TD>no</TD><TD>&nbsp;</TD><TD>
-<P>
-<P>text inside owned part of function body</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>IsOwned</TD><TD>no</TD><TD>true</TD><TD>
-<P>
-<P>is the function body owned?</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>IsConst</TD><TD>no</TD><TD>false</TD><TD>
-<P>
-<P>add 'const' modifier to function?</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>ClassName</TD><TD>no</TD><TD>${className}</TD><TD>
-<P>
-<P>the class name</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>FunctionComment</TD><TD>no</TD><TD>&nbsp;</TD><TD>
-<P>
-<P>comment appearing before function defn</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>IsEventHandler</TD><TD>no</TD><TD>false</TD><TD>
-<P>
-<P>is the function body the user event handler?</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>Initializers</TD><TD>no</TD><TD>&nbsp;</TD><TD>
-<P>
-<P>provide any initializer expressions, e.g. for constructors, appearing   on a separate line after the argument list and before the function body.   Do not provide the leading colon (':') as this is added automatically</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>OwnedRegionLocationId</TD><TD>no</TD><TD>$(FunctionLocationId)_BODY</TD><TD>
-<P>
-<P>location id for enclosed body</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>OwnedRegionName</TD><TD>no</TD><TD>Generated Contents</TD><TD>
-<P>
-<P>region name for enclosed body</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>StartFunctionBody</TD><TD>no</TD><TD>&nbsp;</TD><TD>
-<P>
-<P>text inside function body (comment and/or code) before the owned section</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>EndFunctionBody</TD><TD>no</TD><TD>&nbsp;</TD><TD>
-<P>
-<P>text inside function body (comment and/or code) after the owned section</P>
-</P>
-</TD>
-</TR>
-</TABLE>
-<P>Inherited from <A href="#DeclareMethod">DeclareMethod</A>:</P>
-<TABLE border="1" cellpadding="3">
-<TH>Argument</TH><TH>Req'd?</TH><TH>Default</TH><TH>Description</TH>
-<TR>
-<TD>DeclLocation</TD><TD>no</TD><TD>&nbsp;</TD><TD>
-<P>
-<P>name of location into which to add the prototype (either this or DeclPhase must be defined)</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>DeclPhase</TD><TD>no</TD><TD>&nbsp;</TD><TD>
-<P>
-<P>name of phase into which to add the prototype (either this or DeclLocation must be defined)</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>IsStatic</TD><TD>no</TD><TD>false</TD><TD>
-<P>
-<P>is the function static?</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>IsVirtual</TD><TD>no</TD><TD>false</TD><TD>
-<P>
-<P>is the function virtual? (ignored if IsStatic)</P>
-</P>
-</TD>
-</TR>
-</TABLE>
-
-<A name="GenerateMethodWithVariantArguments"></A>
-<H2>GenerateMethodWithVariantArguments</H2>
-<P>
-<P>  Declares and defines an owned method with variant arguments to one location and adds the prototype to another location.   </P>
-<P> Variant arguments means design-time variable (not C varargs). The function has a non-empty list of fixed arguments followed by a  non-empty list of variable arguments which are generated by a Javascript expression. </P>
-<P> The generated function is owned by default.  It doesn't make sense to use  this non-owned, since this will introduce compile errors when the prototype changes and the old body remains behind.  </P>
-</P>
-<H3>Arguments</H3>
-<TABLE border="1" cellpadding="3">
-<TH>Argument</TH><TH>Req'd?</TH><TH>Default</TH><TH>Description</TH>
-<TR>
-<TD>FunctionArgs</TD><TD>yes</TD><TD>&nbsp;</TD><TD>
-<P>
-<P>canonical leading static argument list (e.g. "const TInt&amp; aArg, TInt aFoo = 3")    Do not include a trailing comma</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>FunctionVarArgsAllowEmpty</TD><TD>yes</TD><TD>&nbsp;</TD><TD>
-<P>
-<P>tell whether the varargs may be empty</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>FunctionVarArgsDeclExpr</TD><TD>yes</TD><TD>&nbsp;</TD><TD>
-<P>
-<P>generator for the variable arguments as appearing in the declaration   (a Javascript expression);    if FunctionVarArgsAllowEmpty==false, do not generate a leading comma</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>FunctionVarArgsDefnExpr</TD><TD>yes</TD><TD>&nbsp;</TD><TD>
-<P>
-<P>generator for the variable arguments as appearing in the definition   (a Javascript expression);   if FunctionVarArgsAllowEmpty==false, do not generate a leading comma</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>FunctionArgs</TD><TD>yes</TD><TD>&nbsp;</TD><TD>
-<P>
-<P>canonical leading static argument list (e.g. "const TInt&amp; aArg, TInt aFoo = 3")    Do not include a trailing comma</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>FunctionVarArgsAllowEmpty</TD><TD>yes</TD><TD>&nbsp;</TD><TD>
-<P>
-<P>tell whether the varargs may be empty</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>FunctionVarArgsDeclExpr</TD><TD>yes</TD><TD>&nbsp;</TD><TD>
-<P>
-<P>generator for the variable arguments as appearing in the declaration   (a Javascript expression);    if FunctionVarArgsAllowEmpty==false, do not generate a leading comma</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>FunctionVarArgsDefnExpr</TD><TD>yes</TD><TD>&nbsp;</TD><TD>
-<P>
-<P>generator for the variable arguments as appearing in the definition   (a Javascript expression);   if FunctionVarArgsAllowEmpty==false, do not generate a leading comma</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>IsOwned</TD><TD>no</TD><TD>true</TD><TD>
-<P>
-<P>tell whether the function is owned.  In general, it should be,   otherwise compile errors will be introduced when the    method's signature changes and the old version is left behind.</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>IsOwned</TD><TD>no</TD><TD>true</TD><TD>
-<P>
-<P>tell whether the function is owned.  In general, it should be,   otherwise compile errors will be introduced when the    method's signature changes and the old version is left behind.</P>
-</P>
-</TD>
-</TR>
-</TABLE>
-<P>Inherited from <A href="#GenerateMethod">GenerateMethod</A>:</P>
-<TABLE border="1" cellpadding="3">
-<TH>Argument</TH><TH>Req'd?</TH><TH>Default</TH><TH>Description</TH>
-<TR>
-<TD>FunctionName</TD><TD>yes</TD><TD>&nbsp;</TD><TD>
-<P>
-<P>name of function</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>FunctionLocationId</TD><TD>yes</TD><TD>&nbsp;</TD><TD>
-<P>
-<P>name of the function location to define; body is named id+_BODY</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>DefnLocation</TD><TD>yes</TD><TD>&nbsp;</TD><TD>
-<P>
-<P>name of location into which to add the function</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>DeclLocation</TD><TD>no</TD><TD>&nbsp;</TD><TD>
-<P>
-<P>name of location into which to add the prototype (either this or DeclPhase must be defined)</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>DeclPhase</TD><TD>no</TD><TD>&nbsp;</TD><TD>
-<P>
-<P>name of phase into which to add the prototype (either this or DeclLocation must be defined)</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>ReturnType</TD><TD>no</TD><TD>void</TD><TD>
-<P>
-<P>return type for function</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>IsStatic</TD><TD>no</TD><TD>false</TD><TD>
-<P>
-<P>is the function static?</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>IsVirtual</TD><TD>no</TD><TD>false</TD><TD>
-<P>
-<P>is the function virtual? (ignored if IsStatic)</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>IsConst</TD><TD>no</TD><TD>false</TD><TD>
-<P>
-<P>add 'const' modifier to function?</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>DefaultReturn</TD><TD>no</TD><TD>&nbsp;</TD><TD>
-<P>
-<P>default value to return; overridden if FunctionBody is specified</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>FunctionBody</TD><TD>no</TD><TD>&nbsp;</TD><TD>
-<P>
-<P>text inside function body (comment and/or code)</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>ClassName</TD><TD>no</TD><TD>${className}</TD><TD>
-<P>
-<P>the class name</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>FunctionComment</TD><TD>no</TD><TD>&nbsp;</TD><TD>
-<P>
-<P>comment appearing before function defn</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>IsEventHandler</TD><TD>no</TD><TD>false</TD><TD>
-<P>
-<P>is the function body the user event handler?</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>Initializers</TD><TD>no</TD><TD>&nbsp;</TD><TD>
-<P>
-<P>provide any initializer expressions, e.g. for constructors, appearing   on a separate line after the argument list and before the function body.   Do not provide the leading colon (':') as this is added automatically</P>
-</P>
-</TD>
-</TR>
-</TABLE>
-
-<A name="GenerateVirtualMethodOverrideForEventHandler"></A>
-<H2>GenerateVirtualMethodOverrideForEventHandler</H2>
-<P>
-<P>Override a virtual method with a non-owned function with an owned body.   This must be invoked in a templateGroup that has an ifEvents="..." attribute, so the 'event' variable is available. </P>
-</P>
-<H3>Arguments</H3>
-<TABLE border="1" cellpadding="3">
-<TH>Argument</TH><TH>Req'd?</TH><TH>Default</TH><TH>Description</TH>
-<TR>
-<TD>ClassName</TD><TD>no</TD><TD>${handlerClassName}</TD><TD>
-<P>
-<P>the name of the class</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>UserHandlerFunctionArgs</TD><TD>no</TD><TD>&nbsp;</TD><TD>
-<P>
-<P>the arguments passed to the user handler function (== FunctionArgs by default)</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>ClassName</TD><TD>no</TD><TD>${handlerClassName}</TD><TD>
-<P>
-<P>the name of the class</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>UserHandlerFunctionArgs</TD><TD>no</TD><TD>&nbsp;</TD><TD>
-<P>
-<P>the arguments passed to the user handler function (== FunctionArgs by default)</P>
-</P>
-</TD>
-</TR>
-</TABLE>
-<P>Inherited from <A href="#GenerateMethodWithOwnedBody">GenerateMethodWithOwnedBody</A>:</P>
-<TABLE border="1" cellpadding="3">
-<TH>Argument</TH><TH>Req'd?</TH><TH>Default</TH><TH>Description</TH>
-<TR>
-<TD>FunctionLocationId</TD><TD>yes</TD><TD>&nbsp;</TD><TD>
-<P>
-<P>name of the function location to define; body is named id+_BODY</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>DefnLocation</TD><TD>yes</TD><TD>&nbsp;</TD><TD>
-<P>
-<P>name of location into which to add the function</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>FunctionName</TD><TD>yes</TD><TD>&nbsp;</TD><TD>
-<P>
-<P>name of function</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>FunctionArgs</TD><TD>yes</TD><TD>&nbsp;</TD><TD>
-<P>
-<P>canonical argument list (e.g. "const TInt&amp; aArg, TInt aFoo = 3")</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>DefaultReturn</TD><TD>no</TD><TD>&nbsp;</TD><TD>
-<P>
-<P>default value to return; overridden if FunctionBody is specified</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>ReturnType</TD><TD>no</TD><TD>void</TD><TD>
-<P>
-<P>return type for function</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>FunctionBody</TD><TD>no</TD><TD>&nbsp;</TD><TD>
-<P>
-<P>text inside owned part of function body</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>IsOwned</TD><TD>no</TD><TD>true</TD><TD>
-<P>
-<P>is the function body owned?</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>IsConst</TD><TD>no</TD><TD>false</TD><TD>
-<P>
-<P>add 'const' modifier to function?</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>FunctionComment</TD><TD>no</TD><TD>&nbsp;</TD><TD>
-<P>
-<P>comment appearing before function defn</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>IsEventHandler</TD><TD>no</TD><TD>false</TD><TD>
-<P>
-<P>is the function body the user event handler?</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>Initializers</TD><TD>no</TD><TD>&nbsp;</TD><TD>
-<P>
-<P>provide any initializer expressions, e.g. for constructors, appearing   on a separate line after the argument list and before the function body.   Do not provide the leading colon (':') as this is added automatically</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>OwnedRegionLocationId</TD><TD>no</TD><TD>$(FunctionLocationId)_BODY</TD><TD>
-<P>
-<P>location id for enclosed body</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>OwnedRegionName</TD><TD>no</TD><TD>Generated Contents</TD><TD>
-<P>
-<P>region name for enclosed body</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>StartFunctionBody</TD><TD>no</TD><TD>&nbsp;</TD><TD>
-<P>
-<P>text inside function body (comment and/or code) before the owned section</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>EndFunctionBody</TD><TD>no</TD><TD>&nbsp;</TD><TD>
-<P>
-<P>text inside function body (comment and/or code) after the owned section</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>DeclLocation</TD><TD>no</TD><TD>&nbsp;</TD><TD>
-<P>
-<P>name of location into which to add the prototype (either this or DeclPhase must be defined)</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>DeclPhase</TD><TD>no</TD><TD>&nbsp;</TD><TD>
-<P>
-<P>name of phase into which to add the prototype (either this or DeclLocation must be defined)</P>
-</P>
-</TD>
-</TR>
-</TABLE>
-
-<A name="GenerateUserEventHandlerFunction"></A>
-<H2>GenerateUserEventHandlerFunction</H2>
-<P>
-<P> Define a user handler declaration and function.  </P>
-<P> Provides a default header comment and body comment.  </P>
-<P> This is NOT conditional, so include it in a &lt;templateGroup ifEvents="..." /&gt;  </P>
-</P>
-<H3>Arguments</H3>
-<TABLE border="1" cellpadding="3">
-<TH>Argument</TH><TH>Req'd?</TH><TH>Default</TH><TH>Description</TH>
-<TR>
-<TD>FunctionLocationId</TD><TD>yes</TD><TD>&nbsp;</TD><TD>
-<P>
-<P>the id for the event handler function</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>FunctionLocationId</TD><TD>yes</TD><TD>&nbsp;</TD><TD>
-<P>
-<P>the id for the event handler function</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>FunctionName</TD><TD>no</TD><TD>${event.handlerName}</TD><TD>
-<P>
-<P>the name of the function/method for the handler;     generally the default should be used (the name specified in the Events view)</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>FunctionBody</TD><TD>no</TD><TD>&nbsp;</TD><TD>
-<P>
-<P>the body of the function, which by default is a TODO comment</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>ClassName</TD><TD>no</TD><TD>${handlerClassName}</TD><TD>
-<P>
-<P>the name of the class that receives the handler</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>FunctionComment</TD><TD>no</TD><TD>&nbsp;</TD><TD>
-<P>
-<P>the comment for the function</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>FunctionName</TD><TD>no</TD><TD>${event.handlerName}</TD><TD>
-<P>
-<P>the name of the function/method for the handler;     generally the default should be used (the name specified in the Events view)</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>FunctionBody</TD><TD>no</TD><TD>&nbsp;</TD><TD>
-<P>
-<P>the body of the function, which by default is a TODO comment</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>ClassName</TD><TD>no</TD><TD>${handlerClassName}</TD><TD>
-<P>
-<P>the name of the class that receives the handler</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>FunctionComment</TD><TD>no</TD><TD>&nbsp;</TD><TD>
-<P>
-<P>the comment for the function</P>
-</P>
-</TD>
-</TR>
-</TABLE>
-<P>Inherited from <A href="#GenerateMethod">GenerateMethod</A>:</P>
-<TABLE border="1" cellpadding="3">
-<TH>Argument</TH><TH>Req'd?</TH><TH>Default</TH><TH>Description</TH>
-<TR>
-<TD>FunctionArgs</TD><TD>yes</TD><TD>&nbsp;</TD><TD>
-<P>
-<P>canonical argument list (e.g. "const TInt&amp; aArg, TInt aFoo = 3")</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>DefnLocation</TD><TD>yes</TD><TD>&nbsp;</TD><TD>
-<P>
-<P>name of location into which to add the function</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>DeclLocation</TD><TD>no</TD><TD>&nbsp;</TD><TD>
-<P>
-<P>name of location into which to add the prototype (either this or DeclPhase must be defined)</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>DeclPhase</TD><TD>no</TD><TD>&nbsp;</TD><TD>
-<P>
-<P>name of phase into which to add the prototype (either this or DeclLocation must be defined)</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>ReturnType</TD><TD>no</TD><TD>void</TD><TD>
-<P>
-<P>return type for function</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>IsConst</TD><TD>no</TD><TD>false</TD><TD>
-<P>
-<P>add 'const' modifier to function?</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>DefaultReturn</TD><TD>no</TD><TD>&nbsp;</TD><TD>
-<P>
-<P>default value to return; overridden if FunctionBody is specified</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>IsOwned</TD><TD>no</TD><TD>true</TD><TD>
-<P>
-<P>is the function body owned?</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>IsEventHandler</TD><TD>no</TD><TD>false</TD><TD>
-<P>
-<P>is the function body the user event handler?</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>Initializers</TD><TD>no</TD><TD>&nbsp;</TD><TD>
-<P>
-<P>provide any initializer expressions, e.g. for constructors, appearing   on a separate line after the argument list and before the function body.   Do not provide the leading colon (':') as this is added automatically</P>
-</P>
-</TD>
-</TR>
-</TABLE>
-
-</P>
-</BODY>
-</HTML>
+<?xml version="1.0" encoding="UTF-8" standalone="no"?><html xmlns="http://www.w3.org/1999/xhtml"><head><title>Help for Macros in CommonMacros.inc</title></head><body><p><h1>Table of contents</h1><p><a href="#DeclareMethod">DeclareMethod</a></p>
+<p><a href="#GenerateDefaultFunctionBody">GenerateDefaultFunctionBody</a></p>
+<p><a href="#DefineMethod">DefineMethod</a></p>
+<p><a href="#GenerateMethod">GenerateMethod</a></p>
+<p><a href="#DefineMethodWithOwnedBody">DefineMethodWithOwnedBody</a></p>
+<p><a href="#GenerateMethodWithOwnedBody">GenerateMethodWithOwnedBody</a></p>
+<p><a href="#GenerateMethodWithVariantArguments">GenerateMethodWithVariantArguments</a></p>
+<p><a href="#GenerateVirtualMethodOverrideForEventHandler">GenerateVirtualMethodOverrideForEventHandler</a></p>
+<p><a href="#GenerateUserEventHandlerFunction">GenerateUserEventHandlerFunction</a></p>
+</p><p><a name="DeclareMethod"/><h2>DeclareMethod</h2><p><p>Declares a method, e.g., the prototype.</p></p><h3>Arguments</h3><table border="1" cellpadding="3"><th>Argument</th><th>Req'd?</th><th>Default</th><th>Description</th><tr><td>FunctionName</td><td>yes</td><td> </td><td><p><p>name of function</p></p></td></tr><tr><td>FunctionArgs</td><td>yes</td><td> </td><td><p><p>canonical argument list (e.g. "const TInt&amp; aArg, TInt aFoo = 3")</p></p></td></tr><tr><td>FunctionName</td><td>yes</td><td> </td><td><p><p>name of function</p></p></td></tr><tr><td>FunctionArgs</td><td>yes</td><td> </td><td><p><p>canonical argument list (e.g. "const TInt&amp; aArg, TInt aFoo = 3")</p></p></td></tr><tr><td>DeclLocation</td><td>no</td><td> </td><td><p><p>name of location into which to add the prototype (either this or DeclPhase must be defined)</p></p></td></tr><tr><td>DeclPhase</td><td>no</td><td> </td><td><p><p>name of phase into which to add the prototype (either this or DeclLocation must be defined)</p></p></td></tr><tr><td>ReturnType</td><td>no</td><td>void</td><td><p><p>return type for function</p></p></td></tr><tr><td>IsStatic</td><td>no</td><td>false</td><td><p><p>is the function static?</p></p></td></tr><tr><td>IsVirtual</td><td>no</td><td>false</td><td><p><p>is the function virtual? (ignored if IsStatic)</p></p></td></tr><tr><td>IsConst</td><td>no</td><td>false</td><td><p><p>add 'const' modifier to function?</p></p></td></tr><tr><td>DeclLocation</td><td>no</td><td> </td><td><p><p>name of location into which to add the prototype (either this or DeclPhase must be defined)</p></p></td></tr><tr><td>DeclPhase</td><td>no</td><td> </td><td><p><p>name of phase into which to add the prototype (either this or DeclLocation must be defined)</p></p></td></tr><tr><td>ReturnType</td><td>no</td><td>void</td><td><p><p>return type for function</p></p></td></tr><tr><td>IsStatic</td><td>no</td><td>false</td><td><p><p>is the function static?</p></p></td></tr><tr><td>IsVirtual</td><td>no</td><td>false</td><td><p><p>is the function virtual? (ignored if IsStatic)</p></p></td></tr><tr><td>IsConst</td><td>no</td><td>false</td><td><p><p>add 'const' modifier to function?</p></p></td></tr></table>
+<a name="GenerateDefaultFunctionBody"/><h2>GenerateDefaultFunctionBody</h2><p><p>Create the default body for a function.  If FunctionBody is set,  emits that.  If ReturnType is not void and DefaultReturn is set,  create a return statement using its value.</p></p><h3>Arguments</h3><table border="1" cellpadding="3"><th>Argument</th><th>Req'd?</th><th>Default</th><th>Description</th><tr><td>FunctionLocationId</td><td>yes</td><td> </td><td><p><p>name of the function location to define; body is named id+_BODY</p></p></td></tr><tr><td>FunctionLocationId</td><td>yes</td><td> </td><td><p><p>name of the function location to define; body is named id+_BODY</p></p></td></tr><tr><td>DefaultReturn</td><td>no</td><td> </td><td><p><p>default value to return; overridden if FunctionBody is specified</p></p></td></tr><tr><td>ReturnType</td><td>no</td><td>void</td><td><p><p>return type for function</p></p></td></tr><tr><td>FunctionBody</td><td>no</td><td> </td><td><p><p>text inside function body (comment and/or code)</p></p></td></tr><tr><td>DefaultReturn</td><td>no</td><td> </td><td><p><p>default value to return; overridden if FunctionBody is specified</p></p></td></tr><tr><td>ReturnType</td><td>no</td><td>void</td><td><p><p>return type for function</p></p></td></tr><tr><td>FunctionBody</td><td>no</td><td> </td><td><p><p>text inside function body (comment and/or code)</p></p></td></tr></table>
+<a name="DefineMethod"/><h2>DefineMethod</h2><p><p>Defines a method to one location, optionally generating body text, or a default return statement. The generated function is owned by default.</p></p><h3>Arguments</h3><table border="1" cellpadding="3"><th>Argument</th><th>Req'd?</th><th>Default</th><th>Description</th><tr><td>DefnLocation</td><td>yes</td><td> </td><td><p><p>name of location into which to add the function</p></p></td></tr><tr><td>FunctionName</td><td>yes</td><td> </td><td><p><p>name of function</p></p></td></tr><tr><td>FunctionArgs</td><td>yes</td><td> </td><td><p><p>canonical argument list (e.g. "const TInt&amp; aArg, TInt aFoo = 3")</p></p></td></tr><tr><td>DefnLocation</td><td>yes</td><td> </td><td><p><p>name of location into which to add the function</p></p></td></tr><tr><td>FunctionName</td><td>yes</td><td> </td><td><p><p>name of function</p></p></td></tr><tr><td>FunctionArgs</td><td>yes</td><td> </td><td><p><p>canonical argument list (e.g. "const TInt&amp; aArg, TInt aFoo = 3")</p></p></td></tr><tr><td>IsOwned</td><td>no</td><td>true</td><td><p><p>is the function body owned?</p></p></td></tr><tr><td>IsConst</td><td>no</td><td>false</td><td><p><p>add 'const' modifier to function?</p></p></td></tr><tr><td>ClassName</td><td>no</td><td>${className}</td><td><p><p>the class name</p></p></td></tr><tr><td>FunctionComment</td><td>no</td><td> </td><td><p><p>comment appearing before function defn</p></p></td></tr><tr><td>IsEventHandler</td><td>no</td><td>false</td><td><p><p>is the function body the user event handler?</p></p></td></tr><tr><td>Initializers</td><td>no</td><td> </td><td><p><p>provide any initializer expressions, e.g. for constructors, appearing   on a separate line after the argument list and before the function body.   Do not provide the leading colon (':') as this is added automatically</p></p></td></tr><tr><td>Realize</td><td>no</td><td>false</td><td><p><p>If true, force the function to be generated.  Otherwise, the   function is generated only if the FunctionBody is non-empty or if   another template contributions to the FunctionLocationId.</p></p></td></tr><tr><td>IsOwned</td><td>no</td><td>true</td><td><p><p>is the function body owned?</p></p></td></tr><tr><td>IsConst</td><td>no</td><td>false</td><td><p><p>add 'const' modifier to function?</p></p></td></tr><tr><td>ClassName</td><td>no</td><td>${className}</td><td><p><p>the class name</p></p></td></tr><tr><td>FunctionComment</td><td>no</td><td> </td><td><p><p>comment appearing before function defn</p></p></td></tr><tr><td>IsEventHandler</td><td>no</td><td>false</td><td><p><p>is the function body the user event handler?</p></p></td></tr><tr><td>Initializers</td><td>no</td><td> </td><td><p><p>provide any initializer expressions, e.g. for constructors, appearing   on a separate line after the argument list and before the function body.   Do not provide the leading colon (':') as this is added automatically</p></p></td></tr><tr><td>Realize</td><td>no</td><td>false</td><td><p><p>If true, force the function to be generated.  Otherwise, the   function is generated only if the FunctionBody is non-empty or if   another template contributions to the FunctionLocationId.</p></p></td></tr></table><p>Inherited from <a href="#GenerateDefaultFunctionBody">GenerateDefaultFunctionBody</a>:</p><table border="1" cellpadding="3"><th>Argument</th><th>Req'd?</th><th>Default</th><th>Description</th><tr><td>FunctionLocationId</td><td>yes</td><td> </td><td><p><p>name of the function location to define; body is named id+_BODY</p></p></td></tr><tr><td>DefaultReturn</td><td>no</td><td> </td><td><p><p>default value to return; overridden if FunctionBody is specified</p></p></td></tr><tr><td>ReturnType</td><td>no</td><td>void</td><td><p><p>return type for function</p></p></td></tr><tr><td>FunctionBody</td><td>no</td><td> </td><td><p><p>text inside function body (comment and/or code)</p></p></td></tr></table>
+<a name="GenerateMethod"/><h2>GenerateMethod</h2><p><p>Declares and defines a method to one location and adds the prototype to another location.</p></p><h3>Arguments</h3><table border="1" cellpadding="3"><th>Argument</th><th>Req'd?</th><th>Default</th><th>Description</th></table><p>Inherited from <a href="#DeclareMethod">DeclareMethod</a>:</p><table border="1" cellpadding="3"><th>Argument</th><th>Req'd?</th><th>Default</th><th>Description</th><tr><td>FunctionName</td><td>yes</td><td> </td><td><p><p>name of function</p></p></td></tr><tr><td>FunctionArgs</td><td>yes</td><td> </td><td><p><p>canonical argument list (e.g. "const TInt&amp; aArg, TInt aFoo = 3")</p></p></td></tr><tr><td>DeclLocation</td><td>no</td><td> </td><td><p><p>name of location into which to add the prototype (either this or DeclPhase must be defined)</p></p></td></tr><tr><td>DeclPhase</td><td>no</td><td> </td><td><p><p>name of phase into which to add the prototype (either this or DeclLocation must be defined)</p></p></td></tr><tr><td>ReturnType</td><td>no</td><td>void</td><td><p><p>return type for function</p></p></td></tr><tr><td>IsStatic</td><td>no</td><td>false</td><td><p><p>is the function static?</p></p></td></tr><tr><td>IsVirtual</td><td>no</td><td>false</td><td><p><p>is the function virtual? (ignored if IsStatic)</p></p></td></tr><tr><td>IsConst</td><td>no</td><td>false</td><td><p><p>add 'const' modifier to function?</p></p></td></tr></table><p>Inherited from <a href="#DefineMethod">DefineMethod</a>:</p><table border="1" cellpadding="3"><th>Argument</th><th>Req'd?</th><th>Default</th><th>Description</th><tr><td>FunctionLocationId</td><td>yes</td><td> </td><td><p><p>name of the function location to define; body is named id+_BODY</p></p></td></tr><tr><td>DefnLocation</td><td>yes</td><td> </td><td><p><p>name of location into which to add the function</p></p></td></tr><tr><td>DefaultReturn</td><td>no</td><td> </td><td><p><p>default value to return; overridden if FunctionBody is specified</p></p></td></tr><tr><td>FunctionBody</td><td>no</td><td> </td><td><p><p>text inside function body (comment and/or code)</p></p></td></tr><tr><td>IsOwned</td><td>no</td><td>true</td><td><p><p>is the function body owned?</p></p></td></tr><tr><td>ClassName</td><td>no</td><td>${className}</td><td><p><p>the class name</p></p></td></tr><tr><td>FunctionComment</td><td>no</td><td> </td><td><p><p>comment appearing before function defn</p></p></td></tr><tr><td>IsEventHandler</td><td>no</td><td>false</td><td><p><p>is the function body the user event handler?</p></p></td></tr><tr><td>Initializers</td><td>no</td><td> </td><td><p><p>provide any initializer expressions, e.g. for constructors, appearing   on a separate line after the argument list and before the function body.   Do not provide the leading colon (':') as this is added automatically</p></p></td></tr><tr><td>Realize</td><td>no</td><td>false</td><td><p><p>If true, force the function to be generated.  Otherwise, the   function is generated only if the FunctionBody is non-empty or if   another template contributions to the FunctionLocationId.</p></p></td></tr></table>
+<a name="DefineMethodWithOwnedBody"/><h2>DefineMethodWithOwnedBody</h2><p><p>Defines a method with an owned body section. </p><p> The generated function is not owned by default, unlike Method. There may be uses for an owned function with a named owned region, though. </p><p>  Also, no default function code is generated, so the provided  StartFunctionBody, FunctionBody, and EndFunctionBody must account for any return statements.</p></p><h3>Arguments</h3><table border="1" cellpadding="3"><th>Argument</th><th>Req'd?</th><th>Default</th><th>Description</th><tr><td>FunctionBody</td><td>no</td><td> </td><td><p><p>text inside owned part of function body</p></p></td></tr><tr><td>OwnedRegionLocationId</td><td>no</td><td>$(FunctionLocationId)_BODY</td><td><p><p>location id for enclosed body</p></p></td></tr><tr><td>OwnedRegionName</td><td>no</td><td>Generated Contents</td><td><p><p>region name for enclosed body</p></p></td></tr><tr><td>StartFunctionBody</td><td>no</td><td> </td><td><p><p>text inside function body (comment and/or code) before the owned section</p></p></td></tr><tr><td>EndFunctionBody</td><td>no</td><td> </td><td><p><p>text inside function body (comment and/or code) after the owned section</p></p></td></tr><tr><td>FunctionBody</td><td>no</td><td> </td><td><p><p>text inside owned part of function body</p></p></td></tr><tr><td>OwnedRegionLocationId</td><td>no</td><td>$(FunctionLocationId)_BODY</td><td><p><p>location id for enclosed body</p></p></td></tr><tr><td>OwnedRegionName</td><td>no</td><td>Generated Contents</td><td><p><p>region name for enclosed body</p></p></td></tr><tr><td>StartFunctionBody</td><td>no</td><td> </td><td><p><p>text inside function body (comment and/or code) before the owned section</p></p></td></tr><tr><td>EndFunctionBody</td><td>no</td><td> </td><td><p><p>text inside function body (comment and/or code) after the owned section</p></p></td></tr></table><p>Inherited from <a href="#DefineMethod">DefineMethod</a>:</p><table border="1" cellpadding="3"><th>Argument</th><th>Req'd?</th><th>Default</th><th>Description</th><tr><td>FunctionLocationId</td><td>yes</td><td> </td><td><p><p>name of the function location to define; body is named id+_BODY</p></p></td></tr><tr><td>DefnLocation</td><td>yes</td><td> </td><td><p><p>name of location into which to add the function</p></p></td></tr><tr><td>FunctionName</td><td>yes</td><td> </td><td><p><p>name of function</p></p></td></tr><tr><td>FunctionArgs</td><td>yes</td><td> </td><td><p><p>canonical argument list (e.g. "const TInt&amp; aArg, TInt aFoo = 3")</p></p></td></tr><tr><td>DefaultReturn</td><td>no</td><td> </td><td><p><p>default value to return; overridden if FunctionBody is specified</p></p></td></tr><tr><td>ReturnType</td><td>no</td><td>void</td><td><p><p>return type for function</p></p></td></tr><tr><td>IsOwned</td><td>no</td><td>true</td><td><p><p>is the function body owned?</p></p></td></tr><tr><td>IsConst</td><td>no</td><td>false</td><td><p><p>add 'const' modifier to function?</p></p></td></tr><tr><td>ClassName</td><td>no</td><td>${className}</td><td><p><p>the class name</p></p></td></tr><tr><td>FunctionComment</td><td>no</td><td> </td><td><p><p>comment appearing before function defn</p></p></td></tr><tr><td>IsEventHandler</td><td>no</td><td>false</td><td><p><p>is the function body the user event handler?</p></p></td></tr><tr><td>Initializers</td><td>no</td><td> </td><td><p><p>provide any initializer expressions, e.g. for constructors, appearing   on a separate line after the argument list and before the function body.   Do not provide the leading colon (':') as this is added automatically</p></p></td></tr><tr><td>Realize</td><td>no</td><td>false</td><td><p><p>If true, force the function to be generated.  Otherwise, the   function is generated only if the FunctionBody is non-empty or if   another template contributions to the FunctionLocationId.</p></p></td></tr></table>
+<a name="GenerateMethodWithOwnedBody"/><h2>GenerateMethodWithOwnedBody</h2><p><p>Declares and defines a method with an owned body section to one location and adds the prototype to another location.  </p><p> The generated function is not owned by default, unlike Method. There may be uses for an owned function with a named owned region, though.</p></p><h3>Arguments</h3><table border="1" cellpadding="3"><th>Argument</th><th>Req'd?</th><th>Default</th><th>Description</th></table><p>Inherited from <a href="#DefineMethodWithOwnedBody">DefineMethodWithOwnedBody</a>:</p><table border="1" cellpadding="3"><th>Argument</th><th>Req'd?</th><th>Default</th><th>Description</th><tr><td>FunctionLocationId</td><td>yes</td><td> </td><td><p><p>name of the function location to define; body is named id+_BODY</p></p></td></tr><tr><td>DefnLocation</td><td>yes</td><td> </td><td><p><p>name of location into which to add the function</p></p></td></tr><tr><td>FunctionName</td><td>yes</td><td> </td><td><p><p>name of function</p></p></td></tr><tr><td>FunctionArgs</td><td>yes</td><td> </td><td><p><p>canonical argument list (e.g. "const TInt&amp; aArg, TInt aFoo = 3")</p></p></td></tr><tr><td>DefaultReturn</td><td>no</td><td> </td><td><p><p>default value to return; overridden if FunctionBody is specified</p></p></td></tr><tr><td>ReturnType</td><td>no</td><td>void</td><td><p><p>return type for function</p></p></td></tr><tr><td>FunctionBody</td><td>no</td><td> </td><td><p><p>text inside owned part of function body</p></p></td></tr><tr><td>IsOwned</td><td>no</td><td>true</td><td><p><p>is the function body owned?</p></p></td></tr><tr><td>IsConst</td><td>no</td><td>false</td><td><p><p>add 'const' modifier to function?</p></p></td></tr><tr><td>ClassName</td><td>no</td><td>${className}</td><td><p><p>the class name</p></p></td></tr><tr><td>FunctionComment</td><td>no</td><td> </td><td><p><p>comment appearing before function defn</p></p></td></tr><tr><td>IsEventHandler</td><td>no</td><td>false</td><td><p><p>is the function body the user event handler?</p></p></td></tr><tr><td>Initializers</td><td>no</td><td> </td><td><p><p>provide any initializer expressions, e.g. for constructors, appearing   on a separate line after the argument list and before the function body.   Do not provide the leading colon (':') as this is added automatically</p></p></td></tr><tr><td>Realize</td><td>no</td><td>false</td><td><p><p>If true, force the function to be generated.  Otherwise, the   function is generated only if the FunctionBody is non-empty or if   another template contributions to the FunctionLocationId.</p></p></td></tr><tr><td>OwnedRegionLocationId</td><td>no</td><td>$(FunctionLocationId)_BODY</td><td><p><p>location id for enclosed body</p></p></td></tr><tr><td>OwnedRegionName</td><td>no</td><td>Generated Contents</td><td><p><p>region name for enclosed body</p></p></td></tr><tr><td>StartFunctionBody</td><td>no</td><td> </td><td><p><p>text inside function body (comment and/or code) before the owned section</p></p></td></tr><tr><td>EndFunctionBody</td><td>no</td><td> </td><td><p><p>text inside function body (comment and/or code) after the owned section</p></p></td></tr></table><p>Inherited from <a href="#DeclareMethod">DeclareMethod</a>:</p><table border="1" cellpadding="3"><th>Argument</th><th>Req'd?</th><th>Default</th><th>Description</th><tr><td>DeclLocation</td><td>no</td><td> </td><td><p><p>name of location into which to add the prototype (either this or DeclPhase must be defined)</p></p></td></tr><tr><td>DeclPhase</td><td>no</td><td> </td><td><p><p>name of phase into which to add the prototype (either this or DeclLocation must be defined)</p></p></td></tr><tr><td>IsStatic</td><td>no</td><td>false</td><td><p><p>is the function static?</p></p></td></tr><tr><td>IsVirtual</td><td>no</td><td>false</td><td><p><p>is the function virtual? (ignored if IsStatic)</p></p></td></tr></table>
+<a name="GenerateMethodWithVariantArguments"/><h2>GenerateMethodWithVariantArguments</h2><p><p>  Declares and defines an owned method with variant arguments to one location and adds the prototype to another location.   </p><p> Variant arguments means design-time variable (not C varargs). The function has a non-empty list of fixed arguments followed by a  non-empty list of variable arguments which are generated by a Javascript expression. </p><p> The generated function is owned by default.  It doesn't make sense to use  this non-owned, since this will introduce compile errors when the prototype changes and the old body remains behind.  </p></p><h3>Arguments</h3><table border="1" cellpadding="3"><th>Argument</th><th>Req'd?</th><th>Default</th><th>Description</th><tr><td>FunctionArgs</td><td>yes</td><td> </td><td><p><p>canonical leading static argument list (e.g. "const TInt&amp; aArg, TInt aFoo = 3")    Do not include a trailing comma</p></p></td></tr><tr><td>FunctionVarArgsAllowEmpty</td><td>yes</td><td> </td><td><p><p>tell whether the varargs may be empty</p></p></td></tr><tr><td>FunctionVarArgsDeclExpr</td><td>yes</td><td> </td><td><p><p>generator for the variable arguments as appearing in the declaration   (a Javascript expression);    if FunctionVarArgsAllowEmpty==false, do not generate a leading comma</p></p></td></tr><tr><td>FunctionVarArgsDefnExpr</td><td>yes</td><td> </td><td><p><p>generator for the variable arguments as appearing in the definition   (a Javascript expression);   if FunctionVarArgsAllowEmpty==false, do not generate a leading comma</p></p></td></tr><tr><td>FunctionArgs</td><td>yes</td><td> </td><td><p><p>canonical leading static argument list (e.g. "const TInt&amp; aArg, TInt aFoo = 3")    Do not include a trailing comma</p></p></td></tr><tr><td>FunctionVarArgsAllowEmpty</td><td>yes</td><td> </td><td><p><p>tell whether the varargs may be empty</p></p></td></tr><tr><td>FunctionVarArgsDeclExpr</td><td>yes</td><td> </td><td><p><p>generator for the variable arguments as appearing in the declaration   (a Javascript expression);    if FunctionVarArgsAllowEmpty==false, do not generate a leading comma</p></p></td></tr><tr><td>FunctionVarArgsDefnExpr</td><td>yes</td><td> </td><td><p><p>generator for the variable arguments as appearing in the definition   (a Javascript expression);   if FunctionVarArgsAllowEmpty==false, do not generate a leading comma</p></p></td></tr><tr><td>IsOwned</td><td>no</td><td>true</td><td><p><p>tell whether the function is owned.  In general, it should be,   otherwise compile errors will be introduced when the    method's signature changes and the old version is left behind.</p></p></td></tr><tr><td>IsOwned</td><td>no</td><td>true</td><td><p><p>tell whether the function is owned.  In general, it should be,   otherwise compile errors will be introduced when the    method's signature changes and the old version is left behind.</p></p></td></tr></table><p>Inherited from <a href="#GenerateMethod">GenerateMethod</a>:</p><table border="1" cellpadding="3"><th>Argument</th><th>Req'd?</th><th>Default</th><th>Description</th><tr><td>FunctionName</td><td>yes</td><td> </td><td><p><p>name of function</p></p></td></tr><tr><td>FunctionLocationId</td><td>yes</td><td> </td><td><p><p>name of the function location to define; body is named id+_BODY</p></p></td></tr><tr><td>DefnLocation</td><td>yes</td><td> </td><td><p><p>name of location into which to add the function</p></p></td></tr><tr><td>DeclLocation</td><td>no</td><td> </td><td><p><p>name of location into which to add the prototype (either this or DeclPhase must be defined)</p></p></td></tr><tr><td>DeclPhase</td><td>no</td><td> </td><td><p><p>name of phase into which to add the prototype (either this or DeclLocation must be defined)</p></p></td></tr><tr><td>ReturnType</td><td>no</td><td>void</td><td><p><p>return type for function</p></p></td></tr><tr><td>IsStatic</td><td>no</td><td>false</td><td><p><p>is the function static?</p></p></td></tr><tr><td>IsVirtual</td><td>no</td><td>false</td><td><p><p>is the function virtual? (ignored if IsStatic)</p></p></td></tr><tr><td>IsConst</td><td>no</td><td>false</td><td><p><p>add 'const' modifier to function?</p></p></td></tr><tr><td>DefaultReturn</td><td>no</td><td> </td><td><p><p>default value to return; overridden if FunctionBody is specified</p></p></td></tr><tr><td>FunctionBody</td><td>no</td><td> </td><td><p><p>text inside function body (comment and/or code)</p></p></td></tr><tr><td>ClassName</td><td>no</td><td>${className}</td><td><p><p>the class name</p></p></td></tr><tr><td>FunctionComment</td><td>no</td><td> </td><td><p><p>comment appearing before function defn</p></p></td></tr><tr><td>IsEventHandler</td><td>no</td><td>false</td><td><p><p>is the function body the user event handler?</p></p></td></tr><tr><td>Initializers</td><td>no</td><td> </td><td><p><p>provide any initializer expressions, e.g. for constructors, appearing   on a separate line after the argument list and before the function body.   Do not provide the leading colon (':') as this is added automatically</p></p></td></tr><tr><td>Realize</td><td>no</td><td>false</td><td><p><p>If true, force the function to be generated.  Otherwise, the   function is generated only if the FunctionBody is non-empty or if   another template contributions to the FunctionLocationId.</p></p></td></tr></table>
+<a name="GenerateVirtualMethodOverrideForEventHandler"/><h2>GenerateVirtualMethodOverrideForEventHandler</h2><p><p>Override a virtual method with a non-owned function with an owned body.   This must be invoked in a templateGroup that has an ifEvents="..." attribute, so the 'event' variable is available. </p></p><h3>Arguments</h3><table border="1" cellpadding="3"><th>Argument</th><th>Req'd?</th><th>Default</th><th>Description</th><tr><td>ClassName</td><td>no</td><td>${handlerClassName}</td><td><p><p>the name of the class</p></p></td></tr><tr><td>UserHandlerFunctionArgs</td><td>no</td><td> </td><td><p><p>the arguments passed to the user handler function (== FunctionArgs by default)</p></p></td></tr><tr><td>ClassName</td><td>no</td><td>${handlerClassName}</td><td><p><p>the name of the class</p></p></td></tr><tr><td>UserHandlerFunctionArgs</td><td>no</td><td> </td><td><p><p>the arguments passed to the user handler function (== FunctionArgs by default)</p></p></td></tr></table><p>Inherited from <a href="#GenerateMethodWithOwnedBody">GenerateMethodWithOwnedBody</a>:</p><table border="1" cellpadding="3"><th>Argument</th><th>Req'd?</th><th>Default</th><th>Description</th><tr><td>FunctionLocationId</td><td>yes</td><td> </td><td><p><p>name of the function location to define; body is named id+_BODY</p></p></td></tr><tr><td>DefnLocation</td><td>yes</td><td> </td><td><p><p>name of location into which to add the function</p></p></td></tr><tr><td>FunctionName</td><td>yes</td><td> </td><td><p><p>name of function</p></p></td></tr><tr><td>FunctionArgs</td><td>yes</td><td> </td><td><p><p>canonical argument list (e.g. "const TInt&amp; aArg, TInt aFoo = 3")</p></p></td></tr><tr><td>DefaultReturn</td><td>no</td><td> </td><td><p><p>default value to return; overridden if FunctionBody is specified</p></p></td></tr><tr><td>ReturnType</td><td>no</td><td>void</td><td><p><p>return type for function</p></p></td></tr><tr><td>FunctionBody</td><td>no</td><td> </td><td><p><p>text inside owned part of function body</p></p></td></tr><tr><td>IsOwned</td><td>no</td><td>true</td><td><p><p>is the function body owned?</p></p></td></tr><tr><td>IsConst</td><td>no</td><td>false</td><td><p><p>add 'const' modifier to function?</p></p></td></tr><tr><td>FunctionComment</td><td>no</td><td> </td><td><p><p>comment appearing before function defn</p></p></td></tr><tr><td>IsEventHandler</td><td>no</td><td>false</td><td><p><p>is the function body the user event handler?</p></p></td></tr><tr><td>Initializers</td><td>no</td><td> </td><td><p><p>provide any initializer expressions, e.g. for constructors, appearing   on a separate line after the argument list and before the function body.   Do not provide the leading colon (':') as this is added automatically</p></p></td></tr><tr><td>Realize</td><td>no</td><td>false</td><td><p><p>If true, force the function to be generated.  Otherwise, the   function is generated only if the FunctionBody is non-empty or if   another template contributions to the FunctionLocationId.</p></p></td></tr><tr><td>OwnedRegionLocationId</td><td>no</td><td>$(FunctionLocationId)_BODY</td><td><p><p>location id for enclosed body</p></p></td></tr><tr><td>OwnedRegionName</td><td>no</td><td>Generated Contents</td><td><p><p>region name for enclosed body</p></p></td></tr><tr><td>StartFunctionBody</td><td>no</td><td> </td><td><p><p>text inside function body (comment and/or code) before the owned section</p></p></td></tr><tr><td>EndFunctionBody</td><td>no</td><td> </td><td><p><p>text inside function body (comment and/or code) after the owned section</p></p></td></tr><tr><td>DeclLocation</td><td>no</td><td> </td><td><p><p>name of location into which to add the prototype (either this or DeclPhase must be defined)</p></p></td></tr><tr><td>DeclPhase</td><td>no</td><td> </td><td><p><p>name of phase into which to add the prototype (either this or DeclLocation must be defined)</p></p></td></tr></table>
+<a name="GenerateUserEventHandlerFunction"/><h2>GenerateUserEventHandlerFunction</h2><p><p> Define a user handler declaration and function.  </p><p> Provides a default header comment and body comment.  </p><p> This is NOT conditional, so include it in a &lt;templateGroup ifEvents="..." /&gt;  </p></p><h3>Arguments</h3><table border="1" cellpadding="3"><th>Argument</th><th>Req'd?</th><th>Default</th><th>Description</th><tr><td>FunctionLocationId</td><td>yes</td><td> </td><td><p><p>the id for the event handler function</p></p></td></tr><tr><td>FunctionLocationId</td><td>yes</td><td> </td><td><p><p>the id for the event handler function</p></p></td></tr><tr><td>FunctionName</td><td>no</td><td>${event.handlerName}</td><td><p><p>the name of the function/method for the handler;     generally the default should be used (the name specified in the Events view)</p></p></td></tr><tr><td>FunctionBody</td><td>no</td><td> </td><td><p><p>the body of the function, which by default is a TODO comment</p></p></td></tr><tr><td>ClassName</td><td>no</td><td>${handlerClassName}</td><td><p><p>the name of the class that receives the handler</p></p></td></tr><tr><td>FunctionComment</td><td>no</td><td> </td><td><p><p>the comment for the function</p></p></td></tr><tr><td>FunctionName</td><td>no</td><td>${event.handlerName}</td><td><p><p>the name of the function/method for the handler;     generally the default should be used (the name specified in the Events view)</p></p></td></tr><tr><td>FunctionBody</td><td>no</td><td> </td><td><p><p>the body of the function, which by default is a TODO comment</p></p></td></tr><tr><td>ClassName</td><td>no</td><td>${handlerClassName}</td><td><p><p>the name of the class that receives the handler</p></p></td></tr><tr><td>FunctionComment</td><td>no</td><td> </td><td><p><p>the comment for the function</p></p></td></tr></table><p>Inherited from <a href="#GenerateMethod">GenerateMethod</a>:</p><table border="1" cellpadding="3"><th>Argument</th><th>Req'd?</th><th>Default</th><th>Description</th><tr><td>FunctionArgs</td><td>yes</td><td> </td><td><p><p>canonical argument list (e.g. "const TInt&amp; aArg, TInt aFoo = 3")</p></p></td></tr><tr><td>DefnLocation</td><td>yes</td><td> </td><td><p><p>name of location into which to add the function</p></p></td></tr><tr><td>DeclLocation</td><td>no</td><td> </td><td><p><p>name of location into which to add the prototype (either this or DeclPhase must be defined)</p></p></td></tr><tr><td>DeclPhase</td><td>no</td><td> </td><td><p><p>name of phase into which to add the prototype (either this or DeclLocation must be defined)</p></p></td></tr><tr><td>ReturnType</td><td>no</td><td>void</td><td><p><p>return type for function</p></p></td></tr><tr><td>IsConst</td><td>no</td><td>false</td><td><p><p>add 'const' modifier to function?</p></p></td></tr><tr><td>DefaultReturn</td><td>no</td><td> </td><td><p><p>default value to return; overridden if FunctionBody is specified</p></p></td></tr><tr><td>IsOwned</td><td>no</td><td>true</td><td><p><p>is the function body owned?</p></p></td></tr><tr><td>IsEventHandler</td><td>no</td><td>false</td><td><p><p>is the function body the user event handler?</p></p></td></tr><tr><td>Initializers</td><td>no</td><td> </td><td><p><p>provide any initializer expressions, e.g. for constructors, appearing   on a separate line after the argument list and before the function body.   Do not provide the leading colon (':') as this is added automatically</p></p></td></tr><tr><td>Realize</td><td>no</td><td>false</td><td><p><p>If true, force the function to be generated.  Otherwise, the   function is generated only if the FunctionBody is non-empty or if   another template contributions to the FunctionLocationId.</p></p></td></tr></table>
+</p></body></html>
\ No newline at end of file
--- a/uidesigner/com.nokia.sdt.series60.componentlibrary/components/FileAndClassMacros.inc.html	Fri Nov 13 13:34:02 2009 -0600
+++ b/uidesigner/com.nokia.sdt.series60.componentlibrary/components/FileAndClassMacros.inc.html	Fri Nov 13 13:34:34 2009 -0600
@@ -1,1097 +1,11 @@
-<HTML>
-<HEAD>
-<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<TITLE>Help for Macros in FileAndClassMacros.inc</TITLE>
-</HEAD>
-<BODY>
-<P>
-<H1>Table of contents</H1>
-<P>
-<A href="#SourceFileTemplate">SourceFileTemplate</A>
-</P>
-
-<P>
-<A href="#HeaderFileTemplate">HeaderFileTemplate</A>
-</P>
-
-<P>
-<A href="#ClassTemplate">ClassTemplate</A>
-</P>
-
-<P>
-<A href="#AddCppIncludes">AddCppIncludes</A>
-</P>
-
-<P>
-<A href="#ResolvePhases">ResolvePhases</A>
-</P>
-
-</P>
-<P>
-<A name="SourceFileTemplate"></A>
-<H2>SourceFileTemplate</H2>
-<P>
-<P>Defines the basic structure for a source file.   This defines a file with system includes, user includes, and constants.</P>
-</P>
-<H3>Arguments</H3>
-<TABLE border="1" cellpadding="3">
-<TH>Argument</TH><TH>Req'd?</TH><TH>Default</TH><TH>Description</TH>
-<TR>
-<TD>Dir</TD><TD>no</TD><TD>${src}</TD><TD>
-<P>
-<P>Project-relative directory for file</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>FileName</TD><TD>no</TD><TD>${instanceName$title}.cpp</TD><TD>
-<P>
-<P>Filename, inside $(Dir), to create</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>HeaderFileName</TD><TD>no</TD><TD>${instanceName$title}.h</TD><TD>
-<P>
-<P>Filename of associated header to #include, or blank for no #include</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>LocationPrefix</TD><TD>no</TD><TD>SOURCE</TD><TD>
-<P>
-<P>String which is prefixed to the location ids defined by this macro.</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>InitialFileHeadContent</TD><TD>no</TD><TD>&nbsp;</TD><TD>
-<P>
-<P>optional stock text for the source file (before system includes, user includes,   constants). </P>
-<P>  NOTE: one-time text, should not depend on modifiable properties </P>
-<P>  NOTE: does not need to specify default source file template (comments), which is automatic.</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>RealizeSystemIncludes</TD><TD>no</TD><TD>true</TD><TD>
-<P>
-<P>flag that can be used to avoid generating the system includes section unless it is used.   </P>
-<P>  NOTE: due to issues with the source generator, this shouldn't be set 'false' unless  you really expect there to be no system includes ever defined, otherwise, the section  will appear out of order when generated.</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>SystemIncludesRegionName</TD><TD>no</TD><TD>Generated System Includes</TD><TD>
-<P>
-<P>name of the generated section for system includes</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>InitialSystemIncludesContent</TD><TD>no</TD><TD>&nbsp;</TD><TD>
-<P>
-<P>optional stock text for the system includes</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>RealizeUserIncludes</TD><TD>no</TD><TD>true</TD><TD>
-<P>
-<P>flag that can be used to avoid generating the user includes section unless it is used.   </P>
-<P>  NOTE: due to issues with the source generator, this shouldn't be set 'false' unless  you really expect there to be no user includes ever defined, otherwise, the section  will appear out of order when generated.</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>UserIncludesRegionName</TD><TD>no</TD><TD>Generated User Includes</TD><TD>
-<P>
-<P>name of the generated section for user includes</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>InitialUserIncludesContent</TD><TD>no</TD><TD>&nbsp;</TD><TD>
-<P>
-<P>optional stock text for the user includes</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>RealizeConstants</TD><TD>no</TD><TD>true</TD><TD>
-<P>
-<P>flag that can be used to avoid generating the constants section unless it is used.   </P>
-<P>  NOTE: due to issues with the source generator, this shouldn't be set 'false' unless  you really expect there to be no constants ever defined, otherwise, the section  will appear out of order when generated.</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>ConstantsRegionName</TD><TD>no</TD><TD>Generated Constants</TD><TD>
-<P>
-<P>name of the generated section for constants</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>InitialConstantsContent</TD><TD>no</TD><TD>&nbsp;</TD><TD>
-<P>
-<P>optional stock text for the constants</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>InitialFileTailContent</TD><TD>no</TD><TD>&nbsp;</TD><TD>
-<P>
-<P>optional stock text for the source file (after system includes, user includes,   constants) which appears at the very end of the file.    </P>
-<P>  NOTE: one-time text, should not depend on modifiable properties    </P>
-<P>  NOTE: this really comes at the very end during initial file generation   (unless you emit other templates with mode="at-end"), so if you simply   want content after these sections but before other templates you add,   just create templates for location="$(LocationPrefix)_FILE". </P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>Dir</TD><TD>no</TD><TD>${src}</TD><TD>
-<P>
-<P>Project-relative directory for file</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>FileName</TD><TD>no</TD><TD>${instanceName$title}.cpp</TD><TD>
-<P>
-<P>Filename, inside $(Dir), to create</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>HeaderFileName</TD><TD>no</TD><TD>${instanceName$title}.h</TD><TD>
-<P>
-<P>Filename of associated header to #include, or blank for no #include</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>LocationPrefix</TD><TD>no</TD><TD>SOURCE</TD><TD>
-<P>
-<P>String which is prefixed to the location ids defined by this macro.</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>InitialFileHeadContent</TD><TD>no</TD><TD>&nbsp;</TD><TD>
-<P>
-<P>optional stock text for the source file (before system includes, user includes,   constants). </P>
-<P>  NOTE: one-time text, should not depend on modifiable properties </P>
-<P>  NOTE: does not need to specify default source file template (comments), which is automatic.</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>RealizeSystemIncludes</TD><TD>no</TD><TD>true</TD><TD>
-<P>
-<P>flag that can be used to avoid generating the system includes section unless it is used.   </P>
-<P>  NOTE: due to issues with the source generator, this shouldn't be set 'false' unless  you really expect there to be no system includes ever defined, otherwise, the section  will appear out of order when generated.</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>SystemIncludesRegionName</TD><TD>no</TD><TD>Generated System Includes</TD><TD>
-<P>
-<P>name of the generated section for system includes</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>InitialSystemIncludesContent</TD><TD>no</TD><TD>&nbsp;</TD><TD>
-<P>
-<P>optional stock text for the system includes</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>RealizeUserIncludes</TD><TD>no</TD><TD>true</TD><TD>
-<P>
-<P>flag that can be used to avoid generating the user includes section unless it is used.   </P>
-<P>  NOTE: due to issues with the source generator, this shouldn't be set 'false' unless  you really expect there to be no user includes ever defined, otherwise, the section  will appear out of order when generated.</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>UserIncludesRegionName</TD><TD>no</TD><TD>Generated User Includes</TD><TD>
-<P>
-<P>name of the generated section for user includes</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>InitialUserIncludesContent</TD><TD>no</TD><TD>&nbsp;</TD><TD>
-<P>
-<P>optional stock text for the user includes</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>RealizeConstants</TD><TD>no</TD><TD>true</TD><TD>
-<P>
-<P>flag that can be used to avoid generating the constants section unless it is used.   </P>
-<P>  NOTE: due to issues with the source generator, this shouldn't be set 'false' unless  you really expect there to be no constants ever defined, otherwise, the section  will appear out of order when generated.</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>ConstantsRegionName</TD><TD>no</TD><TD>Generated Constants</TD><TD>
-<P>
-<P>name of the generated section for constants</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>InitialConstantsContent</TD><TD>no</TD><TD>&nbsp;</TD><TD>
-<P>
-<P>optional stock text for the constants</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>InitialFileTailContent</TD><TD>no</TD><TD>&nbsp;</TD><TD>
-<P>
-<P>optional stock text for the source file (after system includes, user includes,   constants) which appears at the very end of the file.    </P>
-<P>  NOTE: one-time text, should not depend on modifiable properties    </P>
-<P>  NOTE: this really comes at the very end during initial file generation   (unless you emit other templates with mode="at-end"), so if you simply   want content after these sections but before other templates you add,   just create templates for location="$(LocationPrefix)_FILE". </P>
-</P>
-</TD>
-</TR>
-</TABLE>
-
-<A name="HeaderFileTemplate"></A>
-<H2>HeaderFileTemplate</H2>
-<P>
-<P>  Defines the basic structure for a header file.  </P>
-<P> This defines a file with an include guard, system includes, user includes, event handler includes (non-owned but modifiable), constants, and forward declarations. </P>
-</P>
-<H3>Arguments</H3>
-<TABLE border="1" cellpadding="3">
-<TH>Argument</TH><TH>Req'd?</TH><TH>Default</TH><TH>Description</TH>
-<TR>
-<TD>Dir</TD><TD>no</TD><TD>${inc}</TD><TD>
-<P>
-<P>Project-relative directory for file</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>FileName</TD><TD>no</TD><TD>${instanceName$title}.h</TD><TD>
-<P>
-<P>Filename, inside $(Dir), to create</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>IncludeGuardMacro</TD><TD>no</TD><TD>${instanceName$upper}_H</TD><TD>
-<P>
-<P>Include guard macro (#ifndef ...) to use</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>LocationPrefix</TD><TD>no</TD><TD>HEADER</TD><TD>
-<P>
-<P>String which is prefixed to the location ids defined by this macro.</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>InitialFileHeadContent</TD><TD>no</TD><TD>&nbsp;</TD><TD>
-<P>
-<P>optional stock text for the top of the header file.      NOTE: one-time text, should not depend on modifiable properties      NOTE: does not need to specify header file template (comments) or #ifdef guards. </P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>RealizeEventHandlerIncludes</TD><TD>no</TD><TD>true</TD><TD>
-<P>
-<P>flag that can be used to avoid generating the section unless it is used.   </P>
-<P>  NOTE: due to issues with the source generator, this shouldn't be set 'false' unless  you really expect there to be no event handler includes ever defined, otherwise, the section  will appear out of order when generated.</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>InitialEventHandlerIncludesContent</TD><TD>no</TD><TD>&nbsp;</TD><TD>
-<P>
-<P>optional stock text for the event handler includes.   </P>
-<P>   NOTE: one-time text, should not depend on modifiable properties</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>RealizeOwnedSystemIncludes</TD><TD>no</TD><TD>true</TD><TD>
-<P>
-<P>flag that can be used to avoid generating the system includes section unless it is used.   </P>
-<P>  NOTE: due to issues with the source generator, this shouldn't be set 'false' unless  you really expect there to be no system includes ever defined, otherwise, the section  will appear out of order when generated.</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>OwnedSystemIncludesRegionName</TD><TD>no</TD><TD>Generated System Includes</TD><TD>
-<P>
-<P>name of the generated section for system includes</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>RealizeOwnedUserIncludes</TD><TD>no</TD><TD>true</TD><TD>
-<P>
-<P>flag that can be used to avoid generating the user includes section unless it is used.   </P>
-<P>  NOTE: due to issues with the source generator, this shouldn't be set 'false' unless  you really expect there to be no user includes ever defined, otherwise, the section  will appear out of order when generated.</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>OwnedUserIncludesRegionName</TD><TD>no</TD><TD>Generated User Includes</TD><TD>
-<P>
-<P>name of the generated section for user includes</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>InitialOwnedSystemIncludesContent</TD><TD>no</TD><TD>&nbsp;</TD><TD>
-<P>
-<P>optional stock text for the added system includes</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>InitialOwnedUserIncludesContent</TD><TD>no</TD><TD>&nbsp;</TD><TD>
-<P>
-<P>optional stock text for the user includes.</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>RealizeOwnedConstants</TD><TD>no</TD><TD>true</TD><TD>
-<P>
-<P>flag that can be used to avoid generating the constants section unless it is used.   </P>
-<P>  NOTE: due to issues with the source generator, this shouldn't be set 'false' unless  you really expect there to be no constants ever defined, otherwise, the section  will appear out of order when generated.</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>InitialOwnedConstantsContent</TD><TD>no</TD><TD>&nbsp;</TD><TD>
-<P>
-<P>optional stock text for the constants</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>RealizeOwnedForwardDeclarations</TD><TD>no</TD><TD>true</TD><TD>
-<P>
-<P>flag that can be used to avoid generating the forward declarations section unless it is used.   </P>
-<P>  NOTE: due to issues with the source generator, this shouldn't be set 'false' unless  you really expect there to be no forward decls ever defined, otherwise, the section  will appear out of order when generated.</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>InitialOwnedForwardDeclarationsContent</TD><TD>no</TD><TD>&nbsp;</TD><TD>
-<P>
-<P>optional stock text for the forward declarations</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>InitialFileTailContent</TD><TD>no</TD><TD>&nbsp;</TD><TD>
-<P>
-<P>optional stock text for the end of the header file.   </P>
-<P>   NOTE: one-time text, should not depend on modifiable properties    </P>
-<P>   NOTE: this really comes at the very end during initial file generation   (unless you emit other templates with mode="at-end"), so if you simply   want content after these sections but before other templates you add,   just create templates for location="$(LocationPrefix)HEADER_FILE".   </P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>Dir</TD><TD>no</TD><TD>${inc}</TD><TD>
-<P>
-<P>Project-relative directory for file</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>FileName</TD><TD>no</TD><TD>${instanceName$title}.h</TD><TD>
-<P>
-<P>Filename, inside $(Dir), to create</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>IncludeGuardMacro</TD><TD>no</TD><TD>${instanceName$upper}_H</TD><TD>
-<P>
-<P>Include guard macro (#ifndef ...) to use</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>LocationPrefix</TD><TD>no</TD><TD>HEADER</TD><TD>
-<P>
-<P>String which is prefixed to the location ids defined by this macro.</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>InitialFileHeadContent</TD><TD>no</TD><TD>&nbsp;</TD><TD>
-<P>
-<P>optional stock text for the top of the header file.      NOTE: one-time text, should not depend on modifiable properties      NOTE: does not need to specify header file template (comments) or #ifdef guards. </P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>RealizeEventHandlerIncludes</TD><TD>no</TD><TD>true</TD><TD>
-<P>
-<P>flag that can be used to avoid generating the section unless it is used.   </P>
-<P>  NOTE: due to issues with the source generator, this shouldn't be set 'false' unless  you really expect there to be no event handler includes ever defined, otherwise, the section  will appear out of order when generated.</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>InitialEventHandlerIncludesContent</TD><TD>no</TD><TD>&nbsp;</TD><TD>
-<P>
-<P>optional stock text for the event handler includes.   </P>
-<P>   NOTE: one-time text, should not depend on modifiable properties</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>RealizeOwnedSystemIncludes</TD><TD>no</TD><TD>true</TD><TD>
-<P>
-<P>flag that can be used to avoid generating the system includes section unless it is used.   </P>
-<P>  NOTE: due to issues with the source generator, this shouldn't be set 'false' unless  you really expect there to be no system includes ever defined, otherwise, the section  will appear out of order when generated.</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>OwnedSystemIncludesRegionName</TD><TD>no</TD><TD>Generated System Includes</TD><TD>
-<P>
-<P>name of the generated section for system includes</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>RealizeOwnedUserIncludes</TD><TD>no</TD><TD>true</TD><TD>
-<P>
-<P>flag that can be used to avoid generating the user includes section unless it is used.   </P>
-<P>  NOTE: due to issues with the source generator, this shouldn't be set 'false' unless  you really expect there to be no user includes ever defined, otherwise, the section  will appear out of order when generated.</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>OwnedUserIncludesRegionName</TD><TD>no</TD><TD>Generated User Includes</TD><TD>
-<P>
-<P>name of the generated section for user includes</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>InitialOwnedSystemIncludesContent</TD><TD>no</TD><TD>&nbsp;</TD><TD>
-<P>
-<P>optional stock text for the added system includes</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>InitialOwnedUserIncludesContent</TD><TD>no</TD><TD>&nbsp;</TD><TD>
-<P>
-<P>optional stock text for the user includes.</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>RealizeOwnedConstants</TD><TD>no</TD><TD>true</TD><TD>
-<P>
-<P>flag that can be used to avoid generating the constants section unless it is used.   </P>
-<P>  NOTE: due to issues with the source generator, this shouldn't be set 'false' unless  you really expect there to be no constants ever defined, otherwise, the section  will appear out of order when generated.</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>InitialOwnedConstantsContent</TD><TD>no</TD><TD>&nbsp;</TD><TD>
-<P>
-<P>optional stock text for the constants</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>RealizeOwnedForwardDeclarations</TD><TD>no</TD><TD>true</TD><TD>
-<P>
-<P>flag that can be used to avoid generating the forward declarations section unless it is used.   </P>
-<P>  NOTE: due to issues with the source generator, this shouldn't be set 'false' unless  you really expect there to be no forward decls ever defined, otherwise, the section  will appear out of order when generated.</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>InitialOwnedForwardDeclarationsContent</TD><TD>no</TD><TD>&nbsp;</TD><TD>
-<P>
-<P>optional stock text for the forward declarations</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>InitialFileTailContent</TD><TD>no</TD><TD>&nbsp;</TD><TD>
-<P>
-<P>optional stock text for the end of the header file.   </P>
-<P>   NOTE: one-time text, should not depend on modifiable properties    </P>
-<P>   NOTE: this really comes at the very end during initial file generation   (unless you emit other templates with mode="at-end"), so if you simply   want content after these sections but before other templates you add,   just create templates for location="$(LocationPrefix)HEADER_FILE".   </P>
-</P>
-</TD>
-</TR>
-</TABLE>
-
-<A name="ClassTemplate"></A>
-<H2>ClassTemplate</H2>
-<P>
-<P>Defines the basic structure for a class with public, protected, and private regions, with owned sections therein for common purposes. </P>
-</P>
-<H3>Arguments</H3>
-<TABLE border="1" cellpadding="3">
-<TH>Argument</TH><TH>Req'd?</TH><TH>Default</TH><TH>Description</TH>
-<TR>
-<TD>BaseClassName</TD><TD>yes</TD><TD>&nbsp;</TD><TD>
-<P>
-<P>name of the base class, from which this class derives </P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>BaseClassName</TD><TD>yes</TD><TD>&nbsp;</TD><TD>
-<P>
-<P>name of the base class, from which this class derives </P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>LocationPrefix</TD><TD>no</TD><TD>&nbsp;</TD><TD>
-<P>
-<P>String which is prefixed to the location ids defined by this macro.  Useful when one component defines multiple files.</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>BaseLocation</TD><TD>no</TD><TD>HEADER_FILE</TD><TD>
-<P>
-<P>name of the base location in which to place the class, defaults to HEADER_FILE</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>ClassName</TD><TD>no</TD><TD>${className}</TD><TD>
-<P>
-<P>name of the class to generate</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>BaseClassAccessor</TD><TD>no</TD><TD>public</TD><TD>
-<P>
-<P>accessor for the base class, from which this class derives</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>ExtraBaseClasses</TD><TD>no</TD><TD>&nbsp;</TD><TD>
-<P>
-<P>extra interface classes, separated by commas</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>ClassComment</TD><TD>no</TD><TD>&nbsp;</TD><TD>
-<P>
-<P>optional text for the class comment</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>InitialClassHeadContent</TD><TD>no</TD><TD>&nbsp;</TD><TD>
-<P>
-<P>optional text for the start of the class    </P>
-<P>  NOTE: one-time code, should not depend on modifiable properties</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>InitialPublicHeadContent</TD><TD>no</TD><TD>&nbsp;</TD><TD>
-<P>
-<P>optional text for the start of the public section (follows "public:")    </P>
-<P>  NOTE: one-time code, should not depend on modifiable properties</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>RealizePublicOwnedTypes</TD><TD>no</TD><TD>true</TD><TD>
-<P>
-<P>flag that can be used to avoid generating the public types section unless it is used.   </P>
-<P>  NOTE: if InitialPublicOwnedTypesContent is set, this flag is ignored.</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>InitialPublicOwnedTypesContent</TD><TD>no</TD><TD>&nbsp;</TD><TD>
-<P>
-<P>optional text for the public owned types section</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>RealizePublicOwnedMethods</TD><TD>no</TD><TD>true</TD><TD>
-<P>
-<P>flag that can be used to avoid generating the public owned methods section unless it is used.   </P>
-<P>  NOTE: if InitialPublicOwnedMethodsContent is set, this flag is ignored.</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>InitialPublicOwnedMethodsContent</TD><TD>no</TD><TD>&nbsp;</TD><TD>
-<P>
-<P>optional text for the public owned methods section </P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>InitialPublicTailContent</TD><TD>no</TD><TD>&nbsp;</TD><TD>
-<P>
-<P>optional text for the end of the public section (follows "public:")    </P>
-<P>  NOTE: one-time code, should not depend on modifiable properties   </P>
-<P>  NOTE: content appears at the end of all initially generated public content.   </P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>InitialProtectedHeadContent</TD><TD>no</TD><TD>&nbsp;</TD><TD>
-<P>
-<P>optional text for the start of the protected section (follows "protected:")    </P>
-<P>  NOTE: one-time code, should not depend on modifiable properties</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>RealizeProtectedOverriddenMethods</TD><TD>no</TD><TD>true</TD><TD>
-<P>
-<P>flag that can be used to avoid generating the protected overridden methods section unless it is used.</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>InitialProtectedOverriddenMethodsContent</TD><TD>no</TD><TD>&nbsp;</TD><TD>
-<P>
-<P>optional text for the the protected overridden methods section</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>RealizeProtectedUserHandlers</TD><TD>no</TD><TD>true</TD><TD>
-<P>
-<P>flag that can be used to avoid generating the protected user handlers section   unless it is used.  This is used for the prototypes for the user-editable    event handler methods.</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>InitialProtectedUserHandlersContent</TD><TD>no</TD><TD>&nbsp;</TD><TD>
-<P>
-<P>optional text for the protected user handlers section</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>InitialProtectedTailContent</TD><TD>no</TD><TD>&nbsp;</TD><TD>
-<P>
-<P>optional text for the end of the protected section    </P>
-<P>  NOTE: one-time code, should not depend on modifiable properties   </P>
-<P>  NOTE: content appears at the end of all initially generated protected content.</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>InitialPrivateHeadContent</TD><TD>no</TD><TD>&nbsp;</TD><TD>
-<P>
-<P>optional text for the start of the private section (follows "private:")    </P>
-<P>  NOTE: one-time code, should not depend on modifiable properties</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>RealizePrivateOwnedTypes</TD><TD>no</TD><TD>true</TD><TD>
-<P>
-<P>flag that can be used to avoid generating the private owned types section unless it is used.   </P>
-<P>  NOTE: if InitialPrivateOwnedTypesContent is set, this flag is ignored.</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>InitialPrivateOwnedTypesContent</TD><TD>no</TD><TD>&nbsp;</TD><TD>
-<P>
-<P>optional text for the the private types section</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>RealizePrivateOwnedInstanceVariables</TD><TD>no</TD><TD>true</TD><TD>
-<P>
-<P>flag that can be used to avoid generating the private instance variables section unless it is used.</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>InitialPrivateOwnedInstanceVariablesContent</TD><TD>no</TD><TD>&nbsp;</TD><TD>
-<P>
-<P> optional text for the the private instance variables section</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>RealizePrivateOwnedMethods</TD><TD>no</TD><TD>true</TD><TD>
-<P>
-<P>flag that can be used to avoid generating the private owned methods section unless it is used.</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>InitialPrivateOwnedMethodsContent</TD><TD>no</TD><TD>&nbsp;</TD><TD>
-<P>
-<P>optional text for the the private methods section</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>InitialPrivateTailContent</TD><TD>no</TD><TD>&nbsp;</TD><TD>
-<P>
-<P>optional text for the end of the private section    </P>
-<P>  NOTE: one-time code, should not depend on modifiable properties   </P>
-<P>  NOTE: content appears at the end of all initially generated private content.</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>InitialClassTailContent</TD><TD>no</TD><TD>&nbsp;</TD><TD>
-<P>
-<P>optional text for the end of the class    </P>
-<P>  NOTE: one-time code, should not depend on modifiable properties</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>LocationPrefix</TD><TD>no</TD><TD>&nbsp;</TD><TD>
-<P>
-<P>String which is prefixed to the location ids defined by this macro.  Useful when one component defines multiple files.</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>BaseLocation</TD><TD>no</TD><TD>HEADER_FILE</TD><TD>
-<P>
-<P>name of the base location in which to place the class, defaults to HEADER_FILE</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>ClassName</TD><TD>no</TD><TD>${className}</TD><TD>
-<P>
-<P>name of the class to generate</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>BaseClassAccessor</TD><TD>no</TD><TD>public</TD><TD>
-<P>
-<P>accessor for the base class, from which this class derives</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>ExtraBaseClasses</TD><TD>no</TD><TD>&nbsp;</TD><TD>
-<P>
-<P>extra interface classes, separated by commas</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>ClassComment</TD><TD>no</TD><TD>&nbsp;</TD><TD>
-<P>
-<P>optional text for the class comment</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>InitialClassHeadContent</TD><TD>no</TD><TD>&nbsp;</TD><TD>
-<P>
-<P>optional text for the start of the class    </P>
-<P>  NOTE: one-time code, should not depend on modifiable properties</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>InitialPublicHeadContent</TD><TD>no</TD><TD>&nbsp;</TD><TD>
-<P>
-<P>optional text for the start of the public section (follows "public:")    </P>
-<P>  NOTE: one-time code, should not depend on modifiable properties</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>RealizePublicOwnedTypes</TD><TD>no</TD><TD>true</TD><TD>
-<P>
-<P>flag that can be used to avoid generating the public types section unless it is used.   </P>
-<P>  NOTE: if InitialPublicOwnedTypesContent is set, this flag is ignored.</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>InitialPublicOwnedTypesContent</TD><TD>no</TD><TD>&nbsp;</TD><TD>
-<P>
-<P>optional text for the public owned types section</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>RealizePublicOwnedMethods</TD><TD>no</TD><TD>true</TD><TD>
-<P>
-<P>flag that can be used to avoid generating the public owned methods section unless it is used.   </P>
-<P>  NOTE: if InitialPublicOwnedMethodsContent is set, this flag is ignored.</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>InitialPublicOwnedMethodsContent</TD><TD>no</TD><TD>&nbsp;</TD><TD>
-<P>
-<P>optional text for the public owned methods section </P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>InitialPublicTailContent</TD><TD>no</TD><TD>&nbsp;</TD><TD>
-<P>
-<P>optional text for the end of the public section (follows "public:")    </P>
-<P>  NOTE: one-time code, should not depend on modifiable properties   </P>
-<P>  NOTE: content appears at the end of all initially generated public content.   </P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>InitialProtectedHeadContent</TD><TD>no</TD><TD>&nbsp;</TD><TD>
-<P>
-<P>optional text for the start of the protected section (follows "protected:")    </P>
-<P>  NOTE: one-time code, should not depend on modifiable properties</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>RealizeProtectedOverriddenMethods</TD><TD>no</TD><TD>true</TD><TD>
-<P>
-<P>flag that can be used to avoid generating the protected overridden methods section unless it is used.</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>InitialProtectedOverriddenMethodsContent</TD><TD>no</TD><TD>&nbsp;</TD><TD>
-<P>
-<P>optional text for the the protected overridden methods section</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>RealizeProtectedUserHandlers</TD><TD>no</TD><TD>true</TD><TD>
-<P>
-<P>flag that can be used to avoid generating the protected user handlers section   unless it is used.  This is used for the prototypes for the user-editable    event handler methods.</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>InitialProtectedUserHandlersContent</TD><TD>no</TD><TD>&nbsp;</TD><TD>
-<P>
-<P>optional text for the protected user handlers section</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>InitialProtectedTailContent</TD><TD>no</TD><TD>&nbsp;</TD><TD>
-<P>
-<P>optional text for the end of the protected section    </P>
-<P>  NOTE: one-time code, should not depend on modifiable properties   </P>
-<P>  NOTE: content appears at the end of all initially generated protected content.</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>InitialPrivateHeadContent</TD><TD>no</TD><TD>&nbsp;</TD><TD>
-<P>
-<P>optional text for the start of the private section (follows "private:")    </P>
-<P>  NOTE: one-time code, should not depend on modifiable properties</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>RealizePrivateOwnedTypes</TD><TD>no</TD><TD>true</TD><TD>
-<P>
-<P>flag that can be used to avoid generating the private owned types section unless it is used.   </P>
-<P>  NOTE: if InitialPrivateOwnedTypesContent is set, this flag is ignored.</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>InitialPrivateOwnedTypesContent</TD><TD>no</TD><TD>&nbsp;</TD><TD>
-<P>
-<P>optional text for the the private types section</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>RealizePrivateOwnedInstanceVariables</TD><TD>no</TD><TD>true</TD><TD>
-<P>
-<P>flag that can be used to avoid generating the private instance variables section unless it is used.</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>InitialPrivateOwnedInstanceVariablesContent</TD><TD>no</TD><TD>&nbsp;</TD><TD>
-<P>
-<P> optional text for the the private instance variables section</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>RealizePrivateOwnedMethods</TD><TD>no</TD><TD>true</TD><TD>
-<P>
-<P>flag that can be used to avoid generating the private owned methods section unless it is used.</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>InitialPrivateOwnedMethodsContent</TD><TD>no</TD><TD>&nbsp;</TD><TD>
-<P>
-<P>optional text for the the private methods section</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>InitialPrivateTailContent</TD><TD>no</TD><TD>&nbsp;</TD><TD>
-<P>
-<P>optional text for the end of the private section    </P>
-<P>  NOTE: one-time code, should not depend on modifiable properties   </P>
-<P>  NOTE: content appears at the end of all initially generated private content.</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>InitialClassTailContent</TD><TD>no</TD><TD>&nbsp;</TD><TD>
-<P>
-<P>optional text for the end of the class    </P>
-<P>  NOTE: one-time code, should not depend on modifiable properties</P>
-</P>
-</TD>
-</TR>
-</TABLE>
-
-<A name="AddCppIncludes"></A>
-<H2>AddCppIncludes</H2>
-<P>
-<P>Generate #includes for a space-separated list of headers.    </P>
-<P>  Note: you cannot use variable substitution, script escapes, etc. in the list.   Instead, just write explicit contributions for the include, e.g. &lt;template location="MAIN_OWNED_SYSTEM_INCLUDE"&gt; ... </P>
-</P>
-<H3>Arguments</H3>
-<TABLE border="1" cellpadding="3">
-<TH>Argument</TH><TH>Req'd?</TH><TH>Default</TH><TH>Description</TH>
-<TR>
-<TD>Headers</TD><TD>yes</TD><TD>&nbsp;</TD><TD>
-<P>
-<P>a space-separated list of header files </P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>Headers</TD><TD>yes</TD><TD>&nbsp;</TD><TD>
-<P>
-<P>a space-separated list of header files </P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>Location</TD><TD>no</TD><TD>&nbsp;</TD><TD>
-<P>
-<P>location where includes should go (either this or Phase should be set)</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>Phase</TD><TD>no</TD><TD>&nbsp;</TD><TD>
-<P>
-<P>phase where includes should go (either this or Location should be set)</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>IsUser</TD><TD>no</TD><TD>false</TD><TD>
-<P>
-<P>"User" or &lt;system&gt; includes?</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>Location</TD><TD>no</TD><TD>&nbsp;</TD><TD>
-<P>
-<P>location where includes should go (either this or Phase should be set)</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>Phase</TD><TD>no</TD><TD>&nbsp;</TD><TD>
-<P>
-<P>phase where includes should go (either this or Location should be set)</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>IsUser</TD><TD>no</TD><TD>false</TD><TD>
-<P>
-<P>"User" or &lt;system&gt; includes?</P>
-</P>
-</TD>
-</TR>
-</TABLE>
-
-<A name="ResolvePhases"></A>
-<H2>ResolvePhases</H2>
-<P>
-<P>This macro fixes up phase -&gt; location mappings on the current contributions,  or optionally, another list.    </P>
-<P>  The mappings are Phase=Location pairs separated  by spaces.    </P>
-<P>  This may be called multiple times.</P>
-</P>
-<H3>Arguments</H3>
-<TABLE border="1" cellpadding="3">
-<TH>Argument</TH><TH>Req'd?</TH><TH>Default</TH><TH>Description</TH>
-<TR>
-<TD>Mappings</TD><TD>yes</TD><TD>&nbsp;</TD><TD>
-<P>
-<P>A space-separated list of Phase=Location mappings.</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>Mappings</TD><TD>yes</TD><TD>&nbsp;</TD><TD>
-<P>
-<P>A space-separated list of Phase=Location mappings.</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>ContribsList</TD><TD>no</TD><TD>contribs</TD><TD>
-<P>
-<P>The array or list of IContribution upon which to apply the fixups.</P>
-</P>
-</TD>
-</TR>
-<TR>
-<TD>ContribsList</TD><TD>no</TD><TD>contribs</TD><TD>
-<P>
-<P>The array or list of IContribution upon which to apply the fixups.</P>
-</P>
-</TD>
-</TR>
-</TABLE>
-
-</P>
-</BODY>
-</HTML>
+<?xml version="1.0" encoding="UTF-8" standalone="no"?><html xmlns="http://www.w3.org/1999/xhtml"><head><title>Help for Macros in FileAndClassMacros.inc</title></head><body><p><h1>Table of contents</h1><p><a href="#SourceFileTemplate">SourceFileTemplate</a></p>
+<p><a href="#HeaderFileTemplate">HeaderFileTemplate</a></p>
+<p><a href="#ClassTemplate">ClassTemplate</a></p>
+<p><a href="#AddCppIncludes">AddCppIncludes</a></p>
+<p><a href="#ResolvePhases">ResolvePhases</a></p>
+</p><p><a name="SourceFileTemplate"/><h2>SourceFileTemplate</h2><p><p>Defines the basic structure for a source file.   This defines a file with system includes, user includes, and constants.</p></p><h3>Arguments</h3><table border="1" cellpadding="3"><th>Argument</th><th>Req'd?</th><th>Default</th><th>Description</th><tr><td>Dir</td><td>no</td><td>${src}</td><td><p><p>Project-relative directory for file</p></p></td></tr><tr><td>FileName</td><td>no</td><td>${instanceName$title}.cpp</td><td><p><p>Filename, inside $(Dir), to create</p></p></td></tr><tr><td>HeaderFileName</td><td>no</td><td>${instanceName$title}.h</td><td><p><p>Filename of associated header to #include, or blank for no #include</p></p></td></tr><tr><td>LocationPrefix</td><td>no</td><td>SOURCE</td><td><p><p>String which is prefixed to the location ids defined by this macro.</p></p></td></tr><tr><td>InitialFileHeadContent</td><td>no</td><td> </td><td><p><p>optional stock text for the source file (before system includes, user includes,   constants). </p><p>  NOTE: one-time text, should not depend on modifiable properties </p><p>  NOTE: does not need to specify default source file template (comments), which is automatic.</p></p></td></tr><tr><td>RealizeSystemIncludes</td><td>no</td><td>true</td><td><p><p>flag that can be used to avoid generating the system includes section unless it is used.   </p><p>  NOTE: due to issues with the source generator, this shouldn't be set 'false' unless  you really expect there to be no system includes ever defined, otherwise, the section  will appear out of order when generated.</p></p></td></tr><tr><td>SystemIncludesRegionName</td><td>no</td><td>Generated System Includes</td><td><p><p>name of the generated section for system includes</p></p></td></tr><tr><td>InitialSystemIncludesContent</td><td>no</td><td> </td><td><p><p>optional stock text for the system includes</p></p></td></tr><tr><td>RealizeUserIncludes</td><td>no</td><td>true</td><td><p><p>flag that can be used to avoid generating the user includes section unless it is used.   </p><p>  NOTE: due to issues with the source generator, this shouldn't be set 'false' unless  you really expect there to be no user includes ever defined, otherwise, the section  will appear out of order when generated.</p></p></td></tr><tr><td>UserIncludesRegionName</td><td>no</td><td>Generated User Includes</td><td><p><p>name of the generated section for user includes</p></p></td></tr><tr><td>InitialUserIncludesContent</td><td>no</td><td> </td><td><p><p>optional stock text for the user includes</p></p></td></tr><tr><td>RealizeConstants</td><td>no</td><td>true</td><td><p><p>flag that can be used to avoid generating the constants section unless it is used.   </p><p>  NOTE: due to issues with the source generator, this shouldn't be set 'false' unless  you really expect there to be no constants ever defined, otherwise, the section  will appear out of order when generated.</p></p></td></tr><tr><td>ConstantsRegionName</td><td>no</td><td>Generated Constants</td><td><p><p>name of the generated section for constants</p></p></td></tr><tr><td>InitialConstantsContent</td><td>no</td><td> </td><td><p><p>optional stock text for the constants</p></p></td></tr><tr><td>InitialFileTailContent</td><td>no</td><td> </td><td><p><p>optional stock text for the source file (after system includes, user includes,   constants) which appears at the very end of the file.    </p><p>  NOTE: one-time text, should not depend on modifiable properties    </p><p>  NOTE: this really comes at the very end during initial file generation   (unless you emit other templates with mode="at-end"), so if you simply   want content after these sections but before other templates you add,   just create templates for location="$(LocationPrefix)_FILE". </p></p></td></tr><tr><td>Dir</td><td>no</td><td>${src}</td><td><p><p>Project-relative directory for file</p></p></td></tr><tr><td>FileName</td><td>no</td><td>${instanceName$title}.cpp</td><td><p><p>Filename, inside $(Dir), to create</p></p></td></tr><tr><td>HeaderFileName</td><td>no</td><td>${instanceName$title}.h</td><td><p><p>Filename of associated header to #include, or blank for no #include</p></p></td></tr><tr><td>LocationPrefix</td><td>no</td><td>SOURCE</td><td><p><p>String which is prefixed to the location ids defined by this macro.</p></p></td></tr><tr><td>InitialFileHeadContent</td><td>no</td><td> </td><td><p><p>optional stock text for the source file (before system includes, user includes,   constants). </p><p>  NOTE: one-time text, should not depend on modifiable properties </p><p>  NOTE: does not need to specify default source file template (comments), which is automatic.</p></p></td></tr><tr><td>RealizeSystemIncludes</td><td>no</td><td>true</td><td><p><p>flag that can be used to avoid generating the system includes section unless it is used.   </p><p>  NOTE: due to issues with the source generator, this shouldn't be set 'false' unless  you really expect there to be no system includes ever defined, otherwise, the section  will appear out of order when generated.</p></p></td></tr><tr><td>SystemIncludesRegionName</td><td>no</td><td>Generated System Includes</td><td><p><p>name of the generated section for system includes</p></p></td></tr><tr><td>InitialSystemIncludesContent</td><td>no</td><td> </td><td><p><p>optional stock text for the system includes</p></p></td></tr><tr><td>RealizeUserIncludes</td><td>no</td><td>true</td><td><p><p>flag that can be used to avoid generating the user includes section unless it is used.   </p><p>  NOTE: due to issues with the source generator, this shouldn't be set 'false' unless  you really expect there to be no user includes ever defined, otherwise, the section  will appear out of order when generated.</p></p></td></tr><tr><td>UserIncludesRegionName</td><td>no</td><td>Generated User Includes</td><td><p><p>name of the generated section for user includes</p></p></td></tr><tr><td>InitialUserIncludesContent</td><td>no</td><td> </td><td><p><p>optional stock text for the user includes</p></p></td></tr><tr><td>RealizeConstants</td><td>no</td><td>true</td><td><p><p>flag that can be used to avoid generating the constants section unless it is used.   </p><p>  NOTE: due to issues with the source generator, this shouldn't be set 'false' unless  you really expect there to be no constants ever defined, otherwise, the section  will appear out of order when generated.</p></p></td></tr><tr><td>ConstantsRegionName</td><td>no</td><td>Generated Constants</td><td><p><p>name of the generated section for constants</p></p></td></tr><tr><td>InitialConstantsContent</td><td>no</td><td> </td><td><p><p>optional stock text for the constants</p></p></td></tr><tr><td>InitialFileTailContent</td><td>no</td><td> </td><td><p><p>optional stock text for the source file (after system includes, user includes,   constants) which appears at the very end of the file.    </p><p>  NOTE: one-time text, should not depend on modifiable properties    </p><p>  NOTE: this really comes at the very end during initial file generation   (unless you emit other templates with mode="at-end"), so if you simply   want content after these sections but before other templates you add,   just create templates for location="$(LocationPrefix)_FILE". </p></p></td></tr></table>
+<a name="HeaderFileTemplate"/><h2>HeaderFileTemplate</h2><p><p>  Defines the basic structure for a header file.  </p><p> This defines a file with an include guard, system includes, user includes, event handler includes (non-owned but modifiable), constants, and forward declarations. </p></p><h3>Arguments</h3><table border="1" cellpadding="3"><th>Argument</th><th>Req'd?</th><th>Default</th><th>Description</th><tr><td>Dir</td><td>no</td><td>${inc}</td><td><p><p>Project-relative directory for file</p></p></td></tr><tr><td>FileName</td><td>no</td><td>${instanceName$title}.h</td><td><p><p>Filename, inside $(Dir), to create</p></p></td></tr><tr><td>IncludeGuardMacro</td><td>no</td><td>${instanceName$upper}_H</td><td><p><p>Include guard macro (#ifndef ...) to use</p></p></td></tr><tr><td>LocationPrefix</td><td>no</td><td>HEADER</td><td><p><p>String which is prefixed to the location ids defined by this macro.</p></p></td></tr><tr><td>InitialFileHeadContent</td><td>no</td><td> </td><td><p><p>optional stock text for the top of the header file.      NOTE: one-time text, should not depend on modifiable properties      NOTE: does not need to specify header file template (comments) or #ifdef guards. </p></p></td></tr><tr><td>RealizeEventHandlerIncludes</td><td>no</td><td>true</td><td><p><p>flag that can be used to avoid generating the section unless it is used.   </p><p>  NOTE: due to issues with the source generator, this shouldn't be set 'false' unless  you really expect there to be no event handler includes ever defined, otherwise, the section  will appear out of order when generated.</p></p></td></tr><tr><td>InitialEventHandlerIncludesContent</td><td>no</td><td> </td><td><p><p>optional stock text for the event handler includes.   </p><p>   NOTE: one-time text, should not depend on modifiable properties</p></p></td></tr><tr><td>RealizeOwnedSystemIncludes</td><td>no</td><td>true</td><td><p><p>flag that can be used to avoid generating the system includes section unless it is used.   </p><p>  NOTE: due to issues with the source generator, this shouldn't be set 'false' unless  you really expect there to be no system includes ever defined, otherwise, the section  will appear out of order when generated.</p></p></td></tr><tr><td>OwnedSystemIncludesRegionName</td><td>no</td><td>Generated System Includes</td><td><p><p>name of the generated section for system includes</p></p></td></tr><tr><td>RealizeOwnedUserIncludes</td><td>no</td><td>true</td><td><p><p>flag that can be used to avoid generating the user includes section unless it is used.   </p><p>  NOTE: due to issues with the source generator, this shouldn't be set 'false' unless  you really expect there to be no user includes ever defined, otherwise, the section  will appear out of order when generated.</p></p></td></tr><tr><td>OwnedUserIncludesRegionName</td><td>no</td><td>Generated User Includes</td><td><p><p>name of the generated section for user includes</p></p></td></tr><tr><td>InitialOwnedSystemIncludesContent</td><td>no</td><td> </td><td><p><p>optional stock text for the added system includes</p></p></td></tr><tr><td>InitialOwnedUserIncludesContent</td><td>no</td><td> </td><td><p><p>optional stock text for the user includes.</p></p></td></tr><tr><td>RealizeOwnedConstants</td><td>no</td><td>true</td><td><p><p>flag that can be used to avoid generating the constants section unless it is used.   </p><p>  NOTE: due to issues with the source generator, this shouldn't be set 'false' unless  you really expect there to be no constants ever defined, otherwise, the section  will appear out of order when generated.</p></p></td></tr><tr><td>InitialOwnedConstantsContent</td><td>no</td><td> </td><td><p><p>optional stock text for the constants</p></p></td></tr><tr><td>RealizeOwnedForwardDeclarations</td><td>no</td><td>true</td><td><p><p>flag that can be used to avoid generating the forward declarations section unless it is used.   </p><p>  NOTE: due to issues with the source generator, this shouldn't be set 'false' unless  you really expect there to be no forward decls ever defined, otherwise, the section  will appear out of order when generated.</p></p></td></tr><tr><td>InitialOwnedForwardDeclarationsContent</td><td>no</td><td> </td><td><p><p>optional stock text for the forward declarations</p></p></td></tr><tr><td>RealizeOwnedTypedefs</td><td>no</td><td>true</td><td><p><p>flag that can be used to avoid generating the typedefs section unless it is used.   </p><p>   NOTE: due to issues with the source generator, this should't be set 'false' unless   you really expect there to be no typedefs ever defined, otherwise, the section   will appear out of order when generated.</p></p></td></tr><tr><td>OwnedTypedefsRegionName</td><td>no</td><td>Generated Typedefs</td><td><p><p>name of the generated section for owned typedefs</p></p></td></tr><tr><td>InitialOwnedTypedefsContent</td><td>no</td><td> </td><td><p><p>optional stock text for the initial typedefs</p></p></td></tr><tr><td>InitialFileTailContent</td><td>no</td><td> </td><td><p><p>optional stock text for the end of the header file.   </p><p>   NOTE: one-time text, should not depend on modifiable properties    </p><p>   NOTE: this really comes at the very end during initial file generation   (unless you emit other templates with mode="at-end"), so if you simply   want content after these sections but before other templates you add,   just create templates for location="$(LocationPrefix)HEADER_FILE".   </p></p></td></tr><tr><td>Dir</td><td>no</td><td>${inc}</td><td><p><p>Project-relative directory for file</p></p></td></tr><tr><td>FileName</td><td>no</td><td>${instanceName$title}.h</td><td><p><p>Filename, inside $(Dir), to create</p></p></td></tr><tr><td>IncludeGuardMacro</td><td>no</td><td>${instanceName$upper}_H</td><td><p><p>Include guard macro (#ifndef ...) to use</p></p></td></tr><tr><td>LocationPrefix</td><td>no</td><td>HEADER</td><td><p><p>String which is prefixed to the location ids defined by this macro.</p></p></td></tr><tr><td>InitialFileHeadContent</td><td>no</td><td> </td><td><p><p>optional stock text for the top of the header file.      NOTE: one-time text, should not depend on modifiable properties      NOTE: does not need to specify header file template (comments) or #ifdef guards. </p></p></td></tr><tr><td>RealizeEventHandlerIncludes</td><td>no</td><td>true</td><td><p><p>flag that can be used to avoid generating the section unless it is used.   </p><p>  NOTE: due to issues with the source generator, this shouldn't be set 'false' unless  you really expect there to be no event handler includes ever defined, otherwise, the section  will appear out of order when generated.</p></p></td></tr><tr><td>InitialEventHandlerIncludesContent</td><td>no</td><td> </td><td><p><p>optional stock text for the event handler includes.   </p><p>   NOTE: one-time text, should not depend on modifiable properties</p></p></td></tr><tr><td>RealizeOwnedSystemIncludes</td><td>no</td><td>true</td><td><p><p>flag that can be used to avoid generating the system includes section unless it is used.   </p><p>  NOTE: due to issues with the source generator, this shouldn't be set 'false' unless  you really expect there to be no system includes ever defined, otherwise, the section  will appear out of order when generated.</p></p></td></tr><tr><td>OwnedSystemIncludesRegionName</td><td>no</td><td>Generated System Includes</td><td><p><p>name of the generated section for system includes</p></p></td></tr><tr><td>RealizeOwnedUserIncludes</td><td>no</td><td>true</td><td><p><p>flag that can be used to avoid generating the user includes section unless it is used.   </p><p>  NOTE: due to issues with the source generator, this shouldn't be set 'false' unless  you really expect there to be no user includes ever defined, otherwise, the section  will appear out of order when generated.</p></p></td></tr><tr><td>OwnedUserIncludesRegionName</td><td>no</td><td>Generated User Includes</td><td><p><p>name of the generated section for user includes</p></p></td></tr><tr><td>InitialOwnedSystemIncludesContent</td><td>no</td><td> </td><td><p><p>optional stock text for the added system includes</p></p></td></tr><tr><td>InitialOwnedUserIncludesContent</td><td>no</td><td> </td><td><p><p>optional stock text for the user includes.</p></p></td></tr><tr><td>RealizeOwnedConstants</td><td>no</td><td>true</td><td><p><p>flag that can be used to avoid generating the constants section unless it is used.   </p><p>  NOTE: due to issues with the source generator, this shouldn't be set 'false' unless  you really expect there to be no constants ever defined, otherwise, the section  will appear out of order when generated.</p></p></td></tr><tr><td>InitialOwnedConstantsContent</td><td>no</td><td> </td><td><p><p>optional stock text for the constants</p></p></td></tr><tr><td>RealizeOwnedForwardDeclarations</td><td>no</td><td>true</td><td><p><p>flag that can be used to avoid generating the forward declarations section unless it is used.   </p><p>  NOTE: due to issues with the source generator, this shouldn't be set 'false' unless  you really expect there to be no forward decls ever defined, otherwise, the section  will appear out of order when generated.</p></p></td></tr><tr><td>InitialOwnedForwardDeclarationsContent</td><td>no</td><td> </td><td><p><p>optional stock text for the forward declarations</p></p></td></tr><tr><td>RealizeOwnedTypedefs</td><td>no</td><td>true</td><td><p><p>flag that can be used to avoid generating the typedefs section unless it is used.   </p><p>   NOTE: due to issues with the source generator, this should't be set 'false' unless   you really expect there to be no typedefs ever defined, otherwise, the section   will appear out of order when generated.</p></p></td></tr><tr><td>OwnedTypedefsRegionName</td><td>no</td><td>Generated Typedefs</td><td><p><p>name of the generated section for owned typedefs</p></p></td></tr><tr><td>InitialOwnedTypedefsContent</td><td>no</td><td> </td><td><p><p>optional stock text for the initial typedefs</p></p></td></tr><tr><td>InitialFileTailContent</td><td>no</td><td> </td><td><p><p>optional stock text for the end of the header file.   </p><p>   NOTE: one-time text, should not depend on modifiable properties    </p><p>   NOTE: this really comes at the very end during initial file generation   (unless you emit other templates with mode="at-end"), so if you simply   want content after these sections but before other templates you add,   just create templates for location="$(LocationPrefix)HEADER_FILE".   </p></p></td></tr></table>
+<a name="ClassTemplate"/><h2>ClassTemplate</h2><p><p>Defines the basic structure for a class with public, protected, and private regions, with owned sections therein for common purposes. </p></p><h3>Arguments</h3><table border="1" cellpadding="3"><th>Argument</th><th>Req'd?</th><th>Default</th><th>Description</th><tr><td>BaseClassName</td><td>yes</td><td> </td><td><p><p>name of the base class, from which this class derives </p></p></td></tr><tr><td>BaseClassName</td><td>yes</td><td> </td><td><p><p>name of the base class, from which this class derives </p></p></td></tr><tr><td>LocationPrefix</td><td>no</td><td> </td><td><p><p>String which is prefixed to the location ids defined by this macro.  Useful when one component defines multiple files.</p></p></td></tr><tr><td>BaseLocation</td><td>no</td><td>HEADER_FILE</td><td><p><p>name of the base location in which to place the class, defaults to HEADER_FILE</p></p></td></tr><tr><td>ClassName</td><td>no</td><td>${className}</td><td><p><p>name of the class to generate</p></p></td></tr><tr><td>BaseClassAccessor</td><td>no</td><td>public</td><td><p><p>accessor for the base class, from which this class derives</p></p></td></tr><tr><td>ExtraBaseClasses</td><td>no</td><td> </td><td><p><p>extra interface classes, separated by commas</p></p></td></tr><tr><td>ClassComment</td><td>no</td><td> </td><td><p><p>optional text for the class comment</p></p></td></tr><tr><td>InitialClassHeadContent</td><td>no</td><td> </td><td><p><p>optional text for the start of the class    </p><p>  NOTE: one-time code, should not depend on modifiable properties</p></p></td></tr><tr><td>InitialPublicHeadContent</td><td>no</td><td> </td><td><p><p>optional text for the start of the public section (follows "public:")    </p><p>  NOTE: one-time code, should not depend on modifiable properties</p></p></td></tr><tr><td>RealizePublicOwnedTypes</td><td>no</td><td>true</td><td><p><p>flag that can be used to avoid generating the public types section unless it is used.   </p><p>  NOTE: if InitialPublicOwnedTypesContent is set, this flag is ignored.</p></p></td></tr><tr><td>InitialPublicOwnedTypesContent</td><td>no</td><td> </td><td><p><p>optional text for the public owned types section</p></p></td></tr><tr><td>RealizePublicOwnedMethods</td><td>no</td><td>true</td><td><p><p>flag that can be used to avoid generating the public owned methods section unless it is used.   </p><p>  NOTE: if InitialPublicOwnedMethodsContent is set, this flag is ignored.</p></p></td></tr><tr><td>InitialPublicOwnedMethodsContent</td><td>no</td><td> </td><td><p><p>optional text for the public owned methods section </p></p></td></tr><tr><td>InitialPublicTailContent</td><td>no</td><td> </td><td><p><p>optional text for the end of the public section (follows "public:")    </p><p>  NOTE: one-time code, should not depend on modifiable properties   </p><p>  NOTE: content appears at the end of all initially generated public content.   </p></p></td></tr><tr><td>InitialProtectedHeadContent</td><td>no</td><td> </td><td><p><p>optional text for the start of the protected section (follows "protected:")    </p><p>  NOTE: one-time code, should not depend on modifiable properties</p></p></td></tr><tr><td>RealizeProtectedOverriddenMethods</td><td>no</td><td>true</td><td><p><p>flag that can be used to avoid generating the protected overridden methods section unless it is used.</p></p></td></tr><tr><td>InitialProtectedOverriddenMethodsContent</td><td>no</td><td> </td><td><p><p>optional text for the the protected overridden methods section</p></p></td></tr><tr><td>RealizeProtectedUserHandlers</td><td>no</td><td>true</td><td><p><p>flag that can be used to avoid generating the protected user handlers section   unless it is used.  This is used for the prototypes for the user-editable    event handler methods.</p></p></td></tr><tr><td>InitialProtectedUserHandlersContent</td><td>no</td><td> </td><td><p><p>optional text for the protected user handlers section</p></p></td></tr><tr><td>InitialProtectedTailContent</td><td>no</td><td> </td><td><p><p>optional text for the end of the protected section    </p><p>  NOTE: one-time code, should not depend on modifiable properties   </p><p>  NOTE: content appears at the end of all initially generated protected content.</p></p></td></tr><tr><td>InitialPrivateHeadContent</td><td>no</td><td> </td><td><p><p>optional text for the start of the private section (follows "private:")    </p><p>  NOTE: one-time code, should not depend on modifiable properties</p></p></td></tr><tr><td>RealizePrivateOwnedTypes</td><td>no</td><td>true</td><td><p><p>flag that can be used to avoid generating the private owned types section unless it is used.   </p><p>  NOTE: if InitialPrivateOwnedTypesContent is set, this flag is ignored.</p></p></td></tr><tr><td>InitialPrivateOwnedTypesContent</td><td>no</td><td> </td><td><p><p>optional text for the the private types section</p></p></td></tr><tr><td>RealizePrivateOwnedInstanceVariables</td><td>no</td><td>true</td><td><p><p>flag that can be used to avoid generating the private instance variables section unless it is used.</p></p></td></tr><tr><td>InitialPrivateOwnedInstanceVariablesContent</td><td>no</td><td> </td><td><p><p> optional text for the the private instance variables section</p></p></td></tr><tr><td>RealizePrivateOwnedMethods</td><td>no</td><td>true</td><td><p><p>flag that can be used to avoid generating the private owned methods section unless it is used.</p></p></td></tr><tr><td>InitialPrivateOwnedMethodsContent</td><td>no</td><td> </td><td><p><p>optional text for the the private methods section</p></p></td></tr><tr><td>InitialPrivateTailContent</td><td>no</td><td> </td><td><p><p>optional text for the end of the private section    </p><p>  NOTE: one-time code, should not depend on modifiable properties   </p><p>  NOTE: content appears at the end of all initially generated private content.</p></p></td></tr><tr><td>InitialClassTailContent</td><td>no</td><td> </td><td><p><p>optional text for the end of the class    </p><p>  NOTE: one-time code, should not depend on modifiable properties</p></p></td></tr><tr><td>LocationPrefix</td><td>no</td><td> </td><td><p><p>String which is prefixed to the location ids defined by this macro.  Useful when one component defines multiple files.</p></p></td></tr><tr><td>BaseLocation</td><td>no</td><td>HEADER_FILE</td><td><p><p>name of the base location in which to place the class, defaults to HEADER_FILE</p></p></td></tr><tr><td>ClassName</td><td>no</td><td>${className}</td><td><p><p>name of the class to generate</p></p></td></tr><tr><td>BaseClassAccessor</td><td>no</td><td>public</td><td><p><p>accessor for the base class, from which this class derives</p></p></td></tr><tr><td>ExtraBaseClasses</td><td>no</td><td> </td><td><p><p>extra interface classes, separated by commas</p></p></td></tr><tr><td>ClassComment</td><td>no</td><td> </td><td><p><p>optional text for the class comment</p></p></td></tr><tr><td>InitialClassHeadContent</td><td>no</td><td> </td><td><p><p>optional text for the start of the class    </p><p>  NOTE: one-time code, should not depend on modifiable properties</p></p></td></tr><tr><td>InitialPublicHeadContent</td><td>no</td><td> </td><td><p><p>optional text for the start of the public section (follows "public:")    </p><p>  NOTE: one-time code, should not depend on modifiable properties</p></p></td></tr><tr><td>RealizePublicOwnedTypes</td><td>no</td><td>true</td><td><p><p>flag that can be used to avoid generating the public types section unless it is used.   </p><p>  NOTE: if InitialPublicOwnedTypesContent is set, this flag is ignored.</p></p></td></tr><tr><td>InitialPublicOwnedTypesContent</td><td>no</td><td> </td><td><p><p>optional text for the public owned types section</p></p></td></tr><tr><td>RealizePublicOwnedMethods</td><td>no</td><td>true</td><td><p><p>flag that can be used to avoid generating the public owned methods section unless it is used.   </p><p>  NOTE: if InitialPublicOwnedMethodsContent is set, this flag is ignored.</p></p></td></tr><tr><td>InitialPublicOwnedMethodsContent</td><td>no</td><td> </td><td><p><p>optional text for the public owned methods section </p></p></td></tr><tr><td>InitialPublicTailContent</td><td>no</td><td> </td><td><p><p>optional text for the end of the public section (follows "public:")    </p><p>  NOTE: one-time code, should not depend on modifiable properties   </p><p>  NOTE: content appears at the end of all initially generated public content.   </p></p></td></tr><tr><td>InitialProtectedHeadContent</td><td>no</td><td> </td><td><p><p>optional text for the start of the protected section (follows "protected:")    </p><p>  NOTE: one-time code, should not depend on modifiable properties</p></p></td></tr><tr><td>RealizeProtectedOverriddenMethods</td><td>no</td><td>true</td><td><p><p>flag that can be used to avoid generating the protected overridden methods section unless it is used.</p></p></td></tr><tr><td>InitialProtectedOverriddenMethodsContent</td><td>no</td><td> </td><td><p><p>optional text for the the protected overridden methods section</p></p></td></tr><tr><td>RealizeProtectedUserHandlers</td><td>no</td><td>true</td><td><p><p>flag that can be used to avoid generating the protected user handlers section   unless it is used.  This is used for the prototypes for the user-editable    event handler methods.</p></p></td></tr><tr><td>InitialProtectedUserHandlersContent</td><td>no</td><td> </td><td><p><p>optional text for the protected user handlers section</p></p></td></tr><tr><td>InitialProtectedTailContent</td><td>no</td><td> </td><td><p><p>optional text for the end of the protected section    </p><p>  NOTE: one-time code, should not depend on modifiable properties   </p><p>  NOTE: content appears at the end of all initially generated protected content.</p></p></td></tr><tr><td>InitialPrivateHeadContent</td><td>no</td><td> </td><td><p><p>optional text for the start of the private section (follows "private:")    </p><p>  NOTE: one-time code, should not depend on modifiable properties</p></p></td></tr><tr><td>RealizePrivateOwnedTypes</td><td>no</td><td>true</td><td><p><p>flag that can be used to avoid generating the private owned types section unless it is used.   </p><p>  NOTE: if InitialPrivateOwnedTypesContent is set, this flag is ignored.</p></p></td></tr><tr><td>InitialPrivateOwnedTypesContent</td><td>no</td><td> </td><td><p><p>optional text for the the private types section</p></p></td></tr><tr><td>RealizePrivateOwnedInstanceVariables</td><td>no</td><td>true</td><td><p><p>flag that can be used to avoid generating the private instance variables section unless it is used.</p></p></td></tr><tr><td>InitialPrivateOwnedInstanceVariablesContent</td><td>no</td><td> </td><td><p><p> optional text for the the private instance variables section</p></p></td></tr><tr><td>RealizePrivateOwnedMethods</td><td>no</td><td>true</td><td><p><p>flag that can be used to avoid generating the private owned methods section unless it is used.</p></p></td></tr><tr><td>InitialPrivateOwnedMethodsContent</td><td>no</td><td> </td><td><p><p>optional text for the the private methods section</p></p></td></tr><tr><td>InitialPrivateTailContent</td><td>no</td><td> </td><td><p><p>optional text for the end of the private section    </p><p>  NOTE: one-time code, should not depend on modifiable properties   </p><p>  NOTE: content appears at the end of all initially generated private content.</p></p></td></tr><tr><td>InitialClassTailContent</td><td>no</td><td> </td><td><p><p>optional text for the end of the class    </p><p>  NOTE: one-time code, should not depend on modifiable properties</p></p></td></tr></table>
+<a name="AddCppIncludes"/><h2>AddCppIncludes</h2><p><p>Generate #includes for a space-separated list of headers.    </p><p>  Note: you cannot use variable substitution, script escapes, etc. in the list.   Instead, just write explicit contributions for the include, e.g. &lt;template location="MAIN_OWNED_SYSTEM_INCLUDES"&gt; ... </p></p><h3>Arguments</h3><table border="1" cellpadding="3"><th>Argument</th><th>Req'd?</th><th>Default</th><th>Description</th><tr><td>Headers</td><td>yes</td><td> </td><td><p><p>a space-separated list of header files </p></p></td></tr><tr><td>Headers</td><td>yes</td><td> </td><td><p><p>a space-separated list of header files </p></p></td></tr><tr><td>Location</td><td>no</td><td> </td><td><p><p>location where includes should go (either this or Phase should be set)</p></p></td></tr><tr><td>Phase</td><td>no</td><td> </td><td><p><p>phase where includes should go (either this or Location should be set)</p></p></td></tr><tr><td>IsUser</td><td>no</td><td>false</td><td><p><p>"User" or &lt;system&gt; includes?</p></p></td></tr><tr><td>Location</td><td>no</td><td> </td><td><p><p>location where includes should go (either this or Phase should be set)</p></p></td></tr><tr><td>Phase</td><td>no</td><td> </td><td><p><p>phase where includes should go (either this or Location should be set)</p></p></td></tr><tr><td>IsUser</td><td>no</td><td>false</td><td><p><p>"User" or &lt;system&gt; includes?</p></p></td></tr></table>
+<a name="ResolvePhases"/><h2>ResolvePhases</h2><p><p>This macro fixes up phase -&gt; location mappings on the current contributions,  or optionally, another list.    </p><p>  The mappings are Phase=Location pairs separated  by spaces.    </p><p>  This may be called multiple times.</p></p><h3>Arguments</h3><table border="1" cellpadding="3"><th>Argument</th><th>Req'd?</th><th>Default</th><th>Description</th><tr><td>Mappings</td><td>yes</td><td> </td><td><p><p>A space-separated list of Phase=Location mappings.</p></p></td></tr><tr><td>Mappings</td><td>yes</td><td> </td><td><p><p>A space-separated list of Phase=Location mappings.</p></p></td></tr><tr><td>ContribsList</td><td>no</td><td>contribs</td><td><p><p>The array or list of IContribution upon which to apply the fixups.</p></p></td></tr><tr><td>ContribsList</td><td>no</td><td>contribs</td><td><p><p>The array or list of IContribution upon which to apply the fixups.</p></p></td></tr></table>
+</p></body></html>
\ No newline at end of file