uidesigner/com.nokia.sdt.series60.componentlibrary/components/CommonMacros.inc.html
changeset 0 fb279309251b
child 577 b46382ab04d2
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/uidesigner/com.nokia.sdt.series60.componentlibrary/components/CommonMacros.inc.html	Fri Apr 03 23:33:03 2009 +0100
@@ -0,0 +1,1393 @@
+<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>