uidesigner/com.nokia.sdt.series60.componentlibrary/components/CommonMacros.inc.html
changeset 577 b46382ab04d2
parent 0 fb279309251b
equal deleted inserted replaced
574:7b5e8f6c4370 577:b46382ab04d2
     1 <HTML>
     1 <?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>
     2 <HEAD>
     2 <p><a href="#GenerateDefaultFunctionBody">GenerateDefaultFunctionBody</a></p>
     3 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
     3 <p><a href="#DefineMethod">DefineMethod</a></p>
     4 <TITLE>Help for Macros in CommonMacros.inc</TITLE>
     4 <p><a href="#GenerateMethod">GenerateMethod</a></p>
     5 </HEAD>
     5 <p><a href="#DefineMethodWithOwnedBody">DefineMethodWithOwnedBody</a></p>
     6 <BODY>
     6 <p><a href="#GenerateMethodWithOwnedBody">GenerateMethodWithOwnedBody</a></p>
     7 <P>
     7 <p><a href="#GenerateMethodWithVariantArguments">GenerateMethodWithVariantArguments</a></p>
     8 <H1>Table of contents</H1>
     8 <p><a href="#GenerateVirtualMethodOverrideForEventHandler">GenerateVirtualMethodOverrideForEventHandler</a></p>
     9 <P>
     9 <p><a href="#GenerateUserEventHandlerFunction">GenerateUserEventHandlerFunction</a></p>
    10 <A href="#DeclareMethod">DeclareMethod</A>
    10 </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>
    11 </P>
    11 <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>
    12 
    12 <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>
    13 <P>
    13 <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>
    14 <A href="#GenerateDefaultFunctionBody">GenerateDefaultFunctionBody</A>
    14 <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>
    15 </P>
    15 <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>
    16 
    16 <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>
    17 <P>
    17 <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>
    18 <A href="#DefineMethod">DefineMethod</A>
    18 <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>
    19 </P>
    19 </p></body></html>
    20 
       
    21 <P>
       
    22 <A href="#GenerateMethod">GenerateMethod</A>
       
    23 </P>
       
    24 
       
    25 <P>
       
    26 <A href="#DefineMethodWithOwnedBody">DefineMethodWithOwnedBody</A>
       
    27 </P>
       
    28 
       
    29 <P>
       
    30 <A href="#GenerateMethodWithOwnedBody">GenerateMethodWithOwnedBody</A>
       
    31 </P>
       
    32 
       
    33 <P>
       
    34 <A href="#GenerateMethodWithVariantArguments">GenerateMethodWithVariantArguments</A>
       
    35 </P>
       
    36 
       
    37 <P>
       
    38 <A href="#GenerateVirtualMethodOverrideForEventHandler">GenerateVirtualMethodOverrideForEventHandler</A>
       
    39 </P>
       
    40 
       
    41 <P>
       
    42 <A href="#GenerateUserEventHandlerFunction">GenerateUserEventHandlerFunction</A>
       
    43 </P>
       
    44 
       
    45 </P>
       
    46 <P>
       
    47 <A name="DeclareMethod"></A>
       
    48 <H2>DeclareMethod</H2>
       
    49 <P>
       
    50 <P>Declares a method, e.g., the prototype.</P>
       
    51 </P>
       
    52 <H3>Arguments</H3>
       
    53 <TABLE border="1" cellpadding="3">
       
    54 <TH>Argument</TH><TH>Req'd?</TH><TH>Default</TH><TH>Description</TH>
       
    55 <TR>
       
    56 <TD>FunctionName</TD><TD>yes</TD><TD>&nbsp;</TD><TD>
       
    57 <P>
       
    58 <P>name of function</P>
       
    59 </P>
       
    60 </TD>
       
    61 </TR>
       
    62 <TR>
       
    63 <TD>FunctionArgs</TD><TD>yes</TD><TD>&nbsp;</TD><TD>
       
    64 <P>
       
    65 <P>canonical argument list (e.g. "const TInt&amp; aArg, TInt aFoo = 3")</P>
       
    66 </P>
       
    67 </TD>
       
    68 </TR>
       
    69 <TR>
       
    70 <TD>FunctionName</TD><TD>yes</TD><TD>&nbsp;</TD><TD>
       
    71 <P>
       
    72 <P>name of function</P>
       
    73 </P>
       
    74 </TD>
       
    75 </TR>
       
    76 <TR>
       
    77 <TD>FunctionArgs</TD><TD>yes</TD><TD>&nbsp;</TD><TD>
       
    78 <P>
       
    79 <P>canonical argument list (e.g. "const TInt&amp; aArg, TInt aFoo = 3")</P>
       
    80 </P>
       
    81 </TD>
       
    82 </TR>
       
    83 <TR>
       
    84 <TD>DeclLocation</TD><TD>no</TD><TD>&nbsp;</TD><TD>
       
    85 <P>
       
    86 <P>name of location into which to add the prototype (either this or DeclPhase must be defined)</P>
       
    87 </P>
       
    88 </TD>
       
    89 </TR>
       
    90 <TR>
       
    91 <TD>DeclPhase</TD><TD>no</TD><TD>&nbsp;</TD><TD>
       
    92 <P>
       
    93 <P>name of phase into which to add the prototype (either this or DeclLocation must be defined)</P>
       
    94 </P>
       
    95 </TD>
       
    96 </TR>
       
    97 <TR>
       
    98 <TD>ReturnType</TD><TD>no</TD><TD>void</TD><TD>
       
    99 <P>
       
   100 <P>return type for function</P>
       
   101 </P>
       
   102 </TD>
       
   103 </TR>
       
   104 <TR>
       
   105 <TD>IsStatic</TD><TD>no</TD><TD>false</TD><TD>
       
   106 <P>
       
   107 <P>is the function static?</P>
       
   108 </P>
       
   109 </TD>
       
   110 </TR>
       
   111 <TR>
       
   112 <TD>IsVirtual</TD><TD>no</TD><TD>false</TD><TD>
       
   113 <P>
       
   114 <P>is the function virtual? (ignored if IsStatic)</P>
       
   115 </P>
       
   116 </TD>
       
   117 </TR>
       
   118 <TR>
       
   119 <TD>IsConst</TD><TD>no</TD><TD>false</TD><TD>
       
   120 <P>
       
   121 <P>add 'const' modifier to function?</P>
       
   122 </P>
       
   123 </TD>
       
   124 </TR>
       
   125 <TR>
       
   126 <TD>DeclLocation</TD><TD>no</TD><TD>&nbsp;</TD><TD>
       
   127 <P>
       
   128 <P>name of location into which to add the prototype (either this or DeclPhase must be defined)</P>
       
   129 </P>
       
   130 </TD>
       
   131 </TR>
       
   132 <TR>
       
   133 <TD>DeclPhase</TD><TD>no</TD><TD>&nbsp;</TD><TD>
       
   134 <P>
       
   135 <P>name of phase into which to add the prototype (either this or DeclLocation must be defined)</P>
       
   136 </P>
       
   137 </TD>
       
   138 </TR>
       
   139 <TR>
       
   140 <TD>ReturnType</TD><TD>no</TD><TD>void</TD><TD>
       
   141 <P>
       
   142 <P>return type for function</P>
       
   143 </P>
       
   144 </TD>
       
   145 </TR>
       
   146 <TR>
       
   147 <TD>IsStatic</TD><TD>no</TD><TD>false</TD><TD>
       
   148 <P>
       
   149 <P>is the function static?</P>
       
   150 </P>
       
   151 </TD>
       
   152 </TR>
       
   153 <TR>
       
   154 <TD>IsVirtual</TD><TD>no</TD><TD>false</TD><TD>
       
   155 <P>
       
   156 <P>is the function virtual? (ignored if IsStatic)</P>
       
   157 </P>
       
   158 </TD>
       
   159 </TR>
       
   160 <TR>
       
   161 <TD>IsConst</TD><TD>no</TD><TD>false</TD><TD>
       
   162 <P>
       
   163 <P>add 'const' modifier to function?</P>
       
   164 </P>
       
   165 </TD>
       
   166 </TR>
       
   167 </TABLE>
       
   168 
       
   169 <A name="GenerateDefaultFunctionBody"></A>
       
   170 <H2>GenerateDefaultFunctionBody</H2>
       
   171 <P>
       
   172 <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>
       
   173 </P>
       
   174 <H3>Arguments</H3>
       
   175 <TABLE border="1" cellpadding="3">
       
   176 <TH>Argument</TH><TH>Req'd?</TH><TH>Default</TH><TH>Description</TH>
       
   177 <TR>
       
   178 <TD>FunctionLocationId</TD><TD>yes</TD><TD>&nbsp;</TD><TD>
       
   179 <P>
       
   180 <P>name of the function location to define; body is named id+_BODY</P>
       
   181 </P>
       
   182 </TD>
       
   183 </TR>
       
   184 <TR>
       
   185 <TD>FunctionLocationId</TD><TD>yes</TD><TD>&nbsp;</TD><TD>
       
   186 <P>
       
   187 <P>name of the function location to define; body is named id+_BODY</P>
       
   188 </P>
       
   189 </TD>
       
   190 </TR>
       
   191 <TR>
       
   192 <TD>DefaultReturn</TD><TD>no</TD><TD>&nbsp;</TD><TD>
       
   193 <P>
       
   194 <P>default value to return; overridden if FunctionBody is specified</P>
       
   195 </P>
       
   196 </TD>
       
   197 </TR>
       
   198 <TR>
       
   199 <TD>ReturnType</TD><TD>no</TD><TD>void</TD><TD>
       
   200 <P>
       
   201 <P>return type for function</P>
       
   202 </P>
       
   203 </TD>
       
   204 </TR>
       
   205 <TR>
       
   206 <TD>FunctionBody</TD><TD>no</TD><TD>&nbsp;</TD><TD>
       
   207 <P>
       
   208 <P>text inside function body (comment and/or code)</P>
       
   209 </P>
       
   210 </TD>
       
   211 </TR>
       
   212 <TR>
       
   213 <TD>DefaultReturn</TD><TD>no</TD><TD>&nbsp;</TD><TD>
       
   214 <P>
       
   215 <P>default value to return; overridden if FunctionBody is specified</P>
       
   216 </P>
       
   217 </TD>
       
   218 </TR>
       
   219 <TR>
       
   220 <TD>ReturnType</TD><TD>no</TD><TD>void</TD><TD>
       
   221 <P>
       
   222 <P>return type for function</P>
       
   223 </P>
       
   224 </TD>
       
   225 </TR>
       
   226 <TR>
       
   227 <TD>FunctionBody</TD><TD>no</TD><TD>&nbsp;</TD><TD>
       
   228 <P>
       
   229 <P>text inside function body (comment and/or code)</P>
       
   230 </P>
       
   231 </TD>
       
   232 </TR>
       
   233 </TABLE>
       
   234 
       
   235 <A name="DefineMethod"></A>
       
   236 <H2>DefineMethod</H2>
       
   237 <P>
       
   238 <P>Defines a method to one location, optionally generating body text, or a default return statement. The generated function is owned by default.</P>
       
   239 </P>
       
   240 <H3>Arguments</H3>
       
   241 <TABLE border="1" cellpadding="3">
       
   242 <TH>Argument</TH><TH>Req'd?</TH><TH>Default</TH><TH>Description</TH>
       
   243 <TR>
       
   244 <TD>DefnLocation</TD><TD>yes</TD><TD>&nbsp;</TD><TD>
       
   245 <P>
       
   246 <P>name of location into which to add the function</P>
       
   247 </P>
       
   248 </TD>
       
   249 </TR>
       
   250 <TR>
       
   251 <TD>FunctionName</TD><TD>yes</TD><TD>&nbsp;</TD><TD>
       
   252 <P>
       
   253 <P>name of function</P>
       
   254 </P>
       
   255 </TD>
       
   256 </TR>
       
   257 <TR>
       
   258 <TD>FunctionArgs</TD><TD>yes</TD><TD>&nbsp;</TD><TD>
       
   259 <P>
       
   260 <P>canonical argument list (e.g. "const TInt&amp; aArg, TInt aFoo = 3")</P>
       
   261 </P>
       
   262 </TD>
       
   263 </TR>
       
   264 <TR>
       
   265 <TD>DefnLocation</TD><TD>yes</TD><TD>&nbsp;</TD><TD>
       
   266 <P>
       
   267 <P>name of location into which to add the function</P>
       
   268 </P>
       
   269 </TD>
       
   270 </TR>
       
   271 <TR>
       
   272 <TD>FunctionName</TD><TD>yes</TD><TD>&nbsp;</TD><TD>
       
   273 <P>
       
   274 <P>name of function</P>
       
   275 </P>
       
   276 </TD>
       
   277 </TR>
       
   278 <TR>
       
   279 <TD>FunctionArgs</TD><TD>yes</TD><TD>&nbsp;</TD><TD>
       
   280 <P>
       
   281 <P>canonical argument list (e.g. "const TInt&amp; aArg, TInt aFoo = 3")</P>
       
   282 </P>
       
   283 </TD>
       
   284 </TR>
       
   285 <TR>
       
   286 <TD>IsOwned</TD><TD>no</TD><TD>true</TD><TD>
       
   287 <P>
       
   288 <P>is the function body owned?</P>
       
   289 </P>
       
   290 </TD>
       
   291 </TR>
       
   292 <TR>
       
   293 <TD>IsConst</TD><TD>no</TD><TD>false</TD><TD>
       
   294 <P>
       
   295 <P>add 'const' modifier to function?</P>
       
   296 </P>
       
   297 </TD>
       
   298 </TR>
       
   299 <TR>
       
   300 <TD>ClassName</TD><TD>no</TD><TD>${className}</TD><TD>
       
   301 <P>
       
   302 <P>the class name</P>
       
   303 </P>
       
   304 </TD>
       
   305 </TR>
       
   306 <TR>
       
   307 <TD>FunctionComment</TD><TD>no</TD><TD>&nbsp;</TD><TD>
       
   308 <P>
       
   309 <P>comment appearing before function defn</P>
       
   310 </P>
       
   311 </TD>
       
   312 </TR>
       
   313 <TR>
       
   314 <TD>IsEventHandler</TD><TD>no</TD><TD>false</TD><TD>
       
   315 <P>
       
   316 <P>is the function body the user event handler?</P>
       
   317 </P>
       
   318 </TD>
       
   319 </TR>
       
   320 <TR>
       
   321 <TD>Initializers</TD><TD>no</TD><TD>&nbsp;</TD><TD>
       
   322 <P>
       
   323 <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>
       
   324 </P>
       
   325 </TD>
       
   326 </TR>
       
   327 <TR>
       
   328 <TD>IsOwned</TD><TD>no</TD><TD>true</TD><TD>
       
   329 <P>
       
   330 <P>is the function body owned?</P>
       
   331 </P>
       
   332 </TD>
       
   333 </TR>
       
   334 <TR>
       
   335 <TD>IsConst</TD><TD>no</TD><TD>false</TD><TD>
       
   336 <P>
       
   337 <P>add 'const' modifier to function?</P>
       
   338 </P>
       
   339 </TD>
       
   340 </TR>
       
   341 <TR>
       
   342 <TD>ClassName</TD><TD>no</TD><TD>${className}</TD><TD>
       
   343 <P>
       
   344 <P>the class name</P>
       
   345 </P>
       
   346 </TD>
       
   347 </TR>
       
   348 <TR>
       
   349 <TD>FunctionComment</TD><TD>no</TD><TD>&nbsp;</TD><TD>
       
   350 <P>
       
   351 <P>comment appearing before function defn</P>
       
   352 </P>
       
   353 </TD>
       
   354 </TR>
       
   355 <TR>
       
   356 <TD>IsEventHandler</TD><TD>no</TD><TD>false</TD><TD>
       
   357 <P>
       
   358 <P>is the function body the user event handler?</P>
       
   359 </P>
       
   360 </TD>
       
   361 </TR>
       
   362 <TR>
       
   363 <TD>Initializers</TD><TD>no</TD><TD>&nbsp;</TD><TD>
       
   364 <P>
       
   365 <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>
       
   366 </P>
       
   367 </TD>
       
   368 </TR>
       
   369 </TABLE>
       
   370 <P>Inherited from <A href="#GenerateDefaultFunctionBody">GenerateDefaultFunctionBody</A>:</P>
       
   371 <TABLE border="1" cellpadding="3">
       
   372 <TH>Argument</TH><TH>Req'd?</TH><TH>Default</TH><TH>Description</TH>
       
   373 <TR>
       
   374 <TD>FunctionLocationId</TD><TD>yes</TD><TD>&nbsp;</TD><TD>
       
   375 <P>
       
   376 <P>name of the function location to define; body is named id+_BODY</P>
       
   377 </P>
       
   378 </TD>
       
   379 </TR>
       
   380 <TR>
       
   381 <TD>DefaultReturn</TD><TD>no</TD><TD>&nbsp;</TD><TD>
       
   382 <P>
       
   383 <P>default value to return; overridden if FunctionBody is specified</P>
       
   384 </P>
       
   385 </TD>
       
   386 </TR>
       
   387 <TR>
       
   388 <TD>ReturnType</TD><TD>no</TD><TD>void</TD><TD>
       
   389 <P>
       
   390 <P>return type for function</P>
       
   391 </P>
       
   392 </TD>
       
   393 </TR>
       
   394 <TR>
       
   395 <TD>FunctionBody</TD><TD>no</TD><TD>&nbsp;</TD><TD>
       
   396 <P>
       
   397 <P>text inside function body (comment and/or code)</P>
       
   398 </P>
       
   399 </TD>
       
   400 </TR>
       
   401 </TABLE>
       
   402 
       
   403 <A name="GenerateMethod"></A>
       
   404 <H2>GenerateMethod</H2>
       
   405 <P>
       
   406 <P>Declares and defines a method to one location and adds the prototype to another location.</P>
       
   407 </P>
       
   408 <H3>Arguments</H3>
       
   409 <TABLE border="1" cellpadding="3">
       
   410 <TH>Argument</TH><TH>Req'd?</TH><TH>Default</TH><TH>Description</TH>
       
   411 </TABLE>
       
   412 <P>Inherited from <A href="#DeclareMethod">DeclareMethod</A>:</P>
       
   413 <TABLE border="1" cellpadding="3">
       
   414 <TH>Argument</TH><TH>Req'd?</TH><TH>Default</TH><TH>Description</TH>
       
   415 <TR>
       
   416 <TD>FunctionName</TD><TD>yes</TD><TD>&nbsp;</TD><TD>
       
   417 <P>
       
   418 <P>name of function</P>
       
   419 </P>
       
   420 </TD>
       
   421 </TR>
       
   422 <TR>
       
   423 <TD>FunctionArgs</TD><TD>yes</TD><TD>&nbsp;</TD><TD>
       
   424 <P>
       
   425 <P>canonical argument list (e.g. "const TInt&amp; aArg, TInt aFoo = 3")</P>
       
   426 </P>
       
   427 </TD>
       
   428 </TR>
       
   429 <TR>
       
   430 <TD>DeclLocation</TD><TD>no</TD><TD>&nbsp;</TD><TD>
       
   431 <P>
       
   432 <P>name of location into which to add the prototype (either this or DeclPhase must be defined)</P>
       
   433 </P>
       
   434 </TD>
       
   435 </TR>
       
   436 <TR>
       
   437 <TD>DeclPhase</TD><TD>no</TD><TD>&nbsp;</TD><TD>
       
   438 <P>
       
   439 <P>name of phase into which to add the prototype (either this or DeclLocation must be defined)</P>
       
   440 </P>
       
   441 </TD>
       
   442 </TR>
       
   443 <TR>
       
   444 <TD>ReturnType</TD><TD>no</TD><TD>void</TD><TD>
       
   445 <P>
       
   446 <P>return type for function</P>
       
   447 </P>
       
   448 </TD>
       
   449 </TR>
       
   450 <TR>
       
   451 <TD>IsStatic</TD><TD>no</TD><TD>false</TD><TD>
       
   452 <P>
       
   453 <P>is the function static?</P>
       
   454 </P>
       
   455 </TD>
       
   456 </TR>
       
   457 <TR>
       
   458 <TD>IsVirtual</TD><TD>no</TD><TD>false</TD><TD>
       
   459 <P>
       
   460 <P>is the function virtual? (ignored if IsStatic)</P>
       
   461 </P>
       
   462 </TD>
       
   463 </TR>
       
   464 <TR>
       
   465 <TD>IsConst</TD><TD>no</TD><TD>false</TD><TD>
       
   466 <P>
       
   467 <P>add 'const' modifier to function?</P>
       
   468 </P>
       
   469 </TD>
       
   470 </TR>
       
   471 </TABLE>
       
   472 <P>Inherited from <A href="#DefineMethod">DefineMethod</A>:</P>
       
   473 <TABLE border="1" cellpadding="3">
       
   474 <TH>Argument</TH><TH>Req'd?</TH><TH>Default</TH><TH>Description</TH>
       
   475 <TR>
       
   476 <TD>FunctionLocationId</TD><TD>yes</TD><TD>&nbsp;</TD><TD>
       
   477 <P>
       
   478 <P>name of the function location to define; body is named id+_BODY</P>
       
   479 </P>
       
   480 </TD>
       
   481 </TR>
       
   482 <TR>
       
   483 <TD>DefnLocation</TD><TD>yes</TD><TD>&nbsp;</TD><TD>
       
   484 <P>
       
   485 <P>name of location into which to add the function</P>
       
   486 </P>
       
   487 </TD>
       
   488 </TR>
       
   489 <TR>
       
   490 <TD>DefaultReturn</TD><TD>no</TD><TD>&nbsp;</TD><TD>
       
   491 <P>
       
   492 <P>default value to return; overridden if FunctionBody is specified</P>
       
   493 </P>
       
   494 </TD>
       
   495 </TR>
       
   496 <TR>
       
   497 <TD>FunctionBody</TD><TD>no</TD><TD>&nbsp;</TD><TD>
       
   498 <P>
       
   499 <P>text inside function body (comment and/or code)</P>
       
   500 </P>
       
   501 </TD>
       
   502 </TR>
       
   503 <TR>
       
   504 <TD>IsOwned</TD><TD>no</TD><TD>true</TD><TD>
       
   505 <P>
       
   506 <P>is the function body owned?</P>
       
   507 </P>
       
   508 </TD>
       
   509 </TR>
       
   510 <TR>
       
   511 <TD>ClassName</TD><TD>no</TD><TD>${className}</TD><TD>
       
   512 <P>
       
   513 <P>the class name</P>
       
   514 </P>
       
   515 </TD>
       
   516 </TR>
       
   517 <TR>
       
   518 <TD>FunctionComment</TD><TD>no</TD><TD>&nbsp;</TD><TD>
       
   519 <P>
       
   520 <P>comment appearing before function defn</P>
       
   521 </P>
       
   522 </TD>
       
   523 </TR>
       
   524 <TR>
       
   525 <TD>IsEventHandler</TD><TD>no</TD><TD>false</TD><TD>
       
   526 <P>
       
   527 <P>is the function body the user event handler?</P>
       
   528 </P>
       
   529 </TD>
       
   530 </TR>
       
   531 <TR>
       
   532 <TD>Initializers</TD><TD>no</TD><TD>&nbsp;</TD><TD>
       
   533 <P>
       
   534 <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>
       
   535 </P>
       
   536 </TD>
       
   537 </TR>
       
   538 </TABLE>
       
   539 
       
   540 <A name="DefineMethodWithOwnedBody"></A>
       
   541 <H2>DefineMethodWithOwnedBody</H2>
       
   542 <P>
       
   543 <P>Defines a method with an owned body section. </P>
       
   544 <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>
       
   545 <P>  Also, no default function code is generated, so the provided  StartFunctionBody, FunctionBody, and EndFunctionBody must account for any return statements.</P>
       
   546 </P>
       
   547 <H3>Arguments</H3>
       
   548 <TABLE border="1" cellpadding="3">
       
   549 <TH>Argument</TH><TH>Req'd?</TH><TH>Default</TH><TH>Description</TH>
       
   550 <TR>
       
   551 <TD>FunctionBody</TD><TD>no</TD><TD>&nbsp;</TD><TD>
       
   552 <P>
       
   553 <P>text inside owned part of function body</P>
       
   554 </P>
       
   555 </TD>
       
   556 </TR>
       
   557 <TR>
       
   558 <TD>OwnedRegionLocationId</TD><TD>no</TD><TD>$(FunctionLocationId)_BODY</TD><TD>
       
   559 <P>
       
   560 <P>location id for enclosed body</P>
       
   561 </P>
       
   562 </TD>
       
   563 </TR>
       
   564 <TR>
       
   565 <TD>OwnedRegionName</TD><TD>no</TD><TD>Generated Contents</TD><TD>
       
   566 <P>
       
   567 <P>region name for enclosed body</P>
       
   568 </P>
       
   569 </TD>
       
   570 </TR>
       
   571 <TR>
       
   572 <TD>StartFunctionBody</TD><TD>no</TD><TD>&nbsp;</TD><TD>
       
   573 <P>
       
   574 <P>text inside function body (comment and/or code) before the owned section</P>
       
   575 </P>
       
   576 </TD>
       
   577 </TR>
       
   578 <TR>
       
   579 <TD>EndFunctionBody</TD><TD>no</TD><TD>&nbsp;</TD><TD>
       
   580 <P>
       
   581 <P>text inside function body (comment and/or code) after the owned section</P>
       
   582 </P>
       
   583 </TD>
       
   584 </TR>
       
   585 <TR>
       
   586 <TD>FunctionBody</TD><TD>no</TD><TD>&nbsp;</TD><TD>
       
   587 <P>
       
   588 <P>text inside owned part of function body</P>
       
   589 </P>
       
   590 </TD>
       
   591 </TR>
       
   592 <TR>
       
   593 <TD>OwnedRegionLocationId</TD><TD>no</TD><TD>$(FunctionLocationId)_BODY</TD><TD>
       
   594 <P>
       
   595 <P>location id for enclosed body</P>
       
   596 </P>
       
   597 </TD>
       
   598 </TR>
       
   599 <TR>
       
   600 <TD>OwnedRegionName</TD><TD>no</TD><TD>Generated Contents</TD><TD>
       
   601 <P>
       
   602 <P>region name for enclosed body</P>
       
   603 </P>
       
   604 </TD>
       
   605 </TR>
       
   606 <TR>
       
   607 <TD>StartFunctionBody</TD><TD>no</TD><TD>&nbsp;</TD><TD>
       
   608 <P>
       
   609 <P>text inside function body (comment and/or code) before the owned section</P>
       
   610 </P>
       
   611 </TD>
       
   612 </TR>
       
   613 <TR>
       
   614 <TD>EndFunctionBody</TD><TD>no</TD><TD>&nbsp;</TD><TD>
       
   615 <P>
       
   616 <P>text inside function body (comment and/or code) after the owned section</P>
       
   617 </P>
       
   618 </TD>
       
   619 </TR>
       
   620 </TABLE>
       
   621 <P>Inherited from <A href="#DefineMethod">DefineMethod</A>:</P>
       
   622 <TABLE border="1" cellpadding="3">
       
   623 <TH>Argument</TH><TH>Req'd?</TH><TH>Default</TH><TH>Description</TH>
       
   624 <TR>
       
   625 <TD>FunctionLocationId</TD><TD>yes</TD><TD>&nbsp;</TD><TD>
       
   626 <P>
       
   627 <P>name of the function location to define; body is named id+_BODY</P>
       
   628 </P>
       
   629 </TD>
       
   630 </TR>
       
   631 <TR>
       
   632 <TD>DefnLocation</TD><TD>yes</TD><TD>&nbsp;</TD><TD>
       
   633 <P>
       
   634 <P>name of location into which to add the function</P>
       
   635 </P>
       
   636 </TD>
       
   637 </TR>
       
   638 <TR>
       
   639 <TD>FunctionName</TD><TD>yes</TD><TD>&nbsp;</TD><TD>
       
   640 <P>
       
   641 <P>name of function</P>
       
   642 </P>
       
   643 </TD>
       
   644 </TR>
       
   645 <TR>
       
   646 <TD>FunctionArgs</TD><TD>yes</TD><TD>&nbsp;</TD><TD>
       
   647 <P>
       
   648 <P>canonical argument list (e.g. "const TInt&amp; aArg, TInt aFoo = 3")</P>
       
   649 </P>
       
   650 </TD>
       
   651 </TR>
       
   652 <TR>
       
   653 <TD>DefaultReturn</TD><TD>no</TD><TD>&nbsp;</TD><TD>
       
   654 <P>
       
   655 <P>default value to return; overridden if FunctionBody is specified</P>
       
   656 </P>
       
   657 </TD>
       
   658 </TR>
       
   659 <TR>
       
   660 <TD>ReturnType</TD><TD>no</TD><TD>void</TD><TD>
       
   661 <P>
       
   662 <P>return type for function</P>
       
   663 </P>
       
   664 </TD>
       
   665 </TR>
       
   666 <TR>
       
   667 <TD>IsOwned</TD><TD>no</TD><TD>true</TD><TD>
       
   668 <P>
       
   669 <P>is the function body owned?</P>
       
   670 </P>
       
   671 </TD>
       
   672 </TR>
       
   673 <TR>
       
   674 <TD>IsConst</TD><TD>no</TD><TD>false</TD><TD>
       
   675 <P>
       
   676 <P>add 'const' modifier to function?</P>
       
   677 </P>
       
   678 </TD>
       
   679 </TR>
       
   680 <TR>
       
   681 <TD>ClassName</TD><TD>no</TD><TD>${className}</TD><TD>
       
   682 <P>
       
   683 <P>the class name</P>
       
   684 </P>
       
   685 </TD>
       
   686 </TR>
       
   687 <TR>
       
   688 <TD>FunctionComment</TD><TD>no</TD><TD>&nbsp;</TD><TD>
       
   689 <P>
       
   690 <P>comment appearing before function defn</P>
       
   691 </P>
       
   692 </TD>
       
   693 </TR>
       
   694 <TR>
       
   695 <TD>IsEventHandler</TD><TD>no</TD><TD>false</TD><TD>
       
   696 <P>
       
   697 <P>is the function body the user event handler?</P>
       
   698 </P>
       
   699 </TD>
       
   700 </TR>
       
   701 <TR>
       
   702 <TD>Initializers</TD><TD>no</TD><TD>&nbsp;</TD><TD>
       
   703 <P>
       
   704 <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>
       
   705 </P>
       
   706 </TD>
       
   707 </TR>
       
   708 </TABLE>
       
   709 
       
   710 <A name="GenerateMethodWithOwnedBody"></A>
       
   711 <H2>GenerateMethodWithOwnedBody</H2>
       
   712 <P>
       
   713 <P>Declares and defines a method with an owned body section to one location and adds the prototype to another location.  </P>
       
   714 <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>
       
   715 </P>
       
   716 <H3>Arguments</H3>
       
   717 <TABLE border="1" cellpadding="3">
       
   718 <TH>Argument</TH><TH>Req'd?</TH><TH>Default</TH><TH>Description</TH>
       
   719 </TABLE>
       
   720 <P>Inherited from <A href="#DefineMethodWithOwnedBody">DefineMethodWithOwnedBody</A>:</P>
       
   721 <TABLE border="1" cellpadding="3">
       
   722 <TH>Argument</TH><TH>Req'd?</TH><TH>Default</TH><TH>Description</TH>
       
   723 <TR>
       
   724 <TD>FunctionLocationId</TD><TD>yes</TD><TD>&nbsp;</TD><TD>
       
   725 <P>
       
   726 <P>name of the function location to define; body is named id+_BODY</P>
       
   727 </P>
       
   728 </TD>
       
   729 </TR>
       
   730 <TR>
       
   731 <TD>DefnLocation</TD><TD>yes</TD><TD>&nbsp;</TD><TD>
       
   732 <P>
       
   733 <P>name of location into which to add the function</P>
       
   734 </P>
       
   735 </TD>
       
   736 </TR>
       
   737 <TR>
       
   738 <TD>FunctionName</TD><TD>yes</TD><TD>&nbsp;</TD><TD>
       
   739 <P>
       
   740 <P>name of function</P>
       
   741 </P>
       
   742 </TD>
       
   743 </TR>
       
   744 <TR>
       
   745 <TD>FunctionArgs</TD><TD>yes</TD><TD>&nbsp;</TD><TD>
       
   746 <P>
       
   747 <P>canonical argument list (e.g. "const TInt&amp; aArg, TInt aFoo = 3")</P>
       
   748 </P>
       
   749 </TD>
       
   750 </TR>
       
   751 <TR>
       
   752 <TD>DefaultReturn</TD><TD>no</TD><TD>&nbsp;</TD><TD>
       
   753 <P>
       
   754 <P>default value to return; overridden if FunctionBody is specified</P>
       
   755 </P>
       
   756 </TD>
       
   757 </TR>
       
   758 <TR>
       
   759 <TD>ReturnType</TD><TD>no</TD><TD>void</TD><TD>
       
   760 <P>
       
   761 <P>return type for function</P>
       
   762 </P>
       
   763 </TD>
       
   764 </TR>
       
   765 <TR>
       
   766 <TD>FunctionBody</TD><TD>no</TD><TD>&nbsp;</TD><TD>
       
   767 <P>
       
   768 <P>text inside owned part of function body</P>
       
   769 </P>
       
   770 </TD>
       
   771 </TR>
       
   772 <TR>
       
   773 <TD>IsOwned</TD><TD>no</TD><TD>true</TD><TD>
       
   774 <P>
       
   775 <P>is the function body owned?</P>
       
   776 </P>
       
   777 </TD>
       
   778 </TR>
       
   779 <TR>
       
   780 <TD>IsConst</TD><TD>no</TD><TD>false</TD><TD>
       
   781 <P>
       
   782 <P>add 'const' modifier to function?</P>
       
   783 </P>
       
   784 </TD>
       
   785 </TR>
       
   786 <TR>
       
   787 <TD>ClassName</TD><TD>no</TD><TD>${className}</TD><TD>
       
   788 <P>
       
   789 <P>the class name</P>
       
   790 </P>
       
   791 </TD>
       
   792 </TR>
       
   793 <TR>
       
   794 <TD>FunctionComment</TD><TD>no</TD><TD>&nbsp;</TD><TD>
       
   795 <P>
       
   796 <P>comment appearing before function defn</P>
       
   797 </P>
       
   798 </TD>
       
   799 </TR>
       
   800 <TR>
       
   801 <TD>IsEventHandler</TD><TD>no</TD><TD>false</TD><TD>
       
   802 <P>
       
   803 <P>is the function body the user event handler?</P>
       
   804 </P>
       
   805 </TD>
       
   806 </TR>
       
   807 <TR>
       
   808 <TD>Initializers</TD><TD>no</TD><TD>&nbsp;</TD><TD>
       
   809 <P>
       
   810 <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>
       
   811 </P>
       
   812 </TD>
       
   813 </TR>
       
   814 <TR>
       
   815 <TD>OwnedRegionLocationId</TD><TD>no</TD><TD>$(FunctionLocationId)_BODY</TD><TD>
       
   816 <P>
       
   817 <P>location id for enclosed body</P>
       
   818 </P>
       
   819 </TD>
       
   820 </TR>
       
   821 <TR>
       
   822 <TD>OwnedRegionName</TD><TD>no</TD><TD>Generated Contents</TD><TD>
       
   823 <P>
       
   824 <P>region name for enclosed body</P>
       
   825 </P>
       
   826 </TD>
       
   827 </TR>
       
   828 <TR>
       
   829 <TD>StartFunctionBody</TD><TD>no</TD><TD>&nbsp;</TD><TD>
       
   830 <P>
       
   831 <P>text inside function body (comment and/or code) before the owned section</P>
       
   832 </P>
       
   833 </TD>
       
   834 </TR>
       
   835 <TR>
       
   836 <TD>EndFunctionBody</TD><TD>no</TD><TD>&nbsp;</TD><TD>
       
   837 <P>
       
   838 <P>text inside function body (comment and/or code) after the owned section</P>
       
   839 </P>
       
   840 </TD>
       
   841 </TR>
       
   842 </TABLE>
       
   843 <P>Inherited from <A href="#DeclareMethod">DeclareMethod</A>:</P>
       
   844 <TABLE border="1" cellpadding="3">
       
   845 <TH>Argument</TH><TH>Req'd?</TH><TH>Default</TH><TH>Description</TH>
       
   846 <TR>
       
   847 <TD>DeclLocation</TD><TD>no</TD><TD>&nbsp;</TD><TD>
       
   848 <P>
       
   849 <P>name of location into which to add the prototype (either this or DeclPhase must be defined)</P>
       
   850 </P>
       
   851 </TD>
       
   852 </TR>
       
   853 <TR>
       
   854 <TD>DeclPhase</TD><TD>no</TD><TD>&nbsp;</TD><TD>
       
   855 <P>
       
   856 <P>name of phase into which to add the prototype (either this or DeclLocation must be defined)</P>
       
   857 </P>
       
   858 </TD>
       
   859 </TR>
       
   860 <TR>
       
   861 <TD>IsStatic</TD><TD>no</TD><TD>false</TD><TD>
       
   862 <P>
       
   863 <P>is the function static?</P>
       
   864 </P>
       
   865 </TD>
       
   866 </TR>
       
   867 <TR>
       
   868 <TD>IsVirtual</TD><TD>no</TD><TD>false</TD><TD>
       
   869 <P>
       
   870 <P>is the function virtual? (ignored if IsStatic)</P>
       
   871 </P>
       
   872 </TD>
       
   873 </TR>
       
   874 </TABLE>
       
   875 
       
   876 <A name="GenerateMethodWithVariantArguments"></A>
       
   877 <H2>GenerateMethodWithVariantArguments</H2>
       
   878 <P>
       
   879 <P>  Declares and defines an owned method with variant arguments to one location and adds the prototype to another location.   </P>
       
   880 <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>
       
   881 <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>
       
   882 </P>
       
   883 <H3>Arguments</H3>
       
   884 <TABLE border="1" cellpadding="3">
       
   885 <TH>Argument</TH><TH>Req'd?</TH><TH>Default</TH><TH>Description</TH>
       
   886 <TR>
       
   887 <TD>FunctionArgs</TD><TD>yes</TD><TD>&nbsp;</TD><TD>
       
   888 <P>
       
   889 <P>canonical leading static argument list (e.g. "const TInt&amp; aArg, TInt aFoo = 3")    Do not include a trailing comma</P>
       
   890 </P>
       
   891 </TD>
       
   892 </TR>
       
   893 <TR>
       
   894 <TD>FunctionVarArgsAllowEmpty</TD><TD>yes</TD><TD>&nbsp;</TD><TD>
       
   895 <P>
       
   896 <P>tell whether the varargs may be empty</P>
       
   897 </P>
       
   898 </TD>
       
   899 </TR>
       
   900 <TR>
       
   901 <TD>FunctionVarArgsDeclExpr</TD><TD>yes</TD><TD>&nbsp;</TD><TD>
       
   902 <P>
       
   903 <P>generator for the variable arguments as appearing in the declaration   (a Javascript expression);    if FunctionVarArgsAllowEmpty==false, do not generate a leading comma</P>
       
   904 </P>
       
   905 </TD>
       
   906 </TR>
       
   907 <TR>
       
   908 <TD>FunctionVarArgsDefnExpr</TD><TD>yes</TD><TD>&nbsp;</TD><TD>
       
   909 <P>
       
   910 <P>generator for the variable arguments as appearing in the definition   (a Javascript expression);   if FunctionVarArgsAllowEmpty==false, do not generate a leading comma</P>
       
   911 </P>
       
   912 </TD>
       
   913 </TR>
       
   914 <TR>
       
   915 <TD>FunctionArgs</TD><TD>yes</TD><TD>&nbsp;</TD><TD>
       
   916 <P>
       
   917 <P>canonical leading static argument list (e.g. "const TInt&amp; aArg, TInt aFoo = 3")    Do not include a trailing comma</P>
       
   918 </P>
       
   919 </TD>
       
   920 </TR>
       
   921 <TR>
       
   922 <TD>FunctionVarArgsAllowEmpty</TD><TD>yes</TD><TD>&nbsp;</TD><TD>
       
   923 <P>
       
   924 <P>tell whether the varargs may be empty</P>
       
   925 </P>
       
   926 </TD>
       
   927 </TR>
       
   928 <TR>
       
   929 <TD>FunctionVarArgsDeclExpr</TD><TD>yes</TD><TD>&nbsp;</TD><TD>
       
   930 <P>
       
   931 <P>generator for the variable arguments as appearing in the declaration   (a Javascript expression);    if FunctionVarArgsAllowEmpty==false, do not generate a leading comma</P>
       
   932 </P>
       
   933 </TD>
       
   934 </TR>
       
   935 <TR>
       
   936 <TD>FunctionVarArgsDefnExpr</TD><TD>yes</TD><TD>&nbsp;</TD><TD>
       
   937 <P>
       
   938 <P>generator for the variable arguments as appearing in the definition   (a Javascript expression);   if FunctionVarArgsAllowEmpty==false, do not generate a leading comma</P>
       
   939 </P>
       
   940 </TD>
       
   941 </TR>
       
   942 <TR>
       
   943 <TD>IsOwned</TD><TD>no</TD><TD>true</TD><TD>
       
   944 <P>
       
   945 <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>
       
   946 </P>
       
   947 </TD>
       
   948 </TR>
       
   949 <TR>
       
   950 <TD>IsOwned</TD><TD>no</TD><TD>true</TD><TD>
       
   951 <P>
       
   952 <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>
       
   953 </P>
       
   954 </TD>
       
   955 </TR>
       
   956 </TABLE>
       
   957 <P>Inherited from <A href="#GenerateMethod">GenerateMethod</A>:</P>
       
   958 <TABLE border="1" cellpadding="3">
       
   959 <TH>Argument</TH><TH>Req'd?</TH><TH>Default</TH><TH>Description</TH>
       
   960 <TR>
       
   961 <TD>FunctionName</TD><TD>yes</TD><TD>&nbsp;</TD><TD>
       
   962 <P>
       
   963 <P>name of function</P>
       
   964 </P>
       
   965 </TD>
       
   966 </TR>
       
   967 <TR>
       
   968 <TD>FunctionLocationId</TD><TD>yes</TD><TD>&nbsp;</TD><TD>
       
   969 <P>
       
   970 <P>name of the function location to define; body is named id+_BODY</P>
       
   971 </P>
       
   972 </TD>
       
   973 </TR>
       
   974 <TR>
       
   975 <TD>DefnLocation</TD><TD>yes</TD><TD>&nbsp;</TD><TD>
       
   976 <P>
       
   977 <P>name of location into which to add the function</P>
       
   978 </P>
       
   979 </TD>
       
   980 </TR>
       
   981 <TR>
       
   982 <TD>DeclLocation</TD><TD>no</TD><TD>&nbsp;</TD><TD>
       
   983 <P>
       
   984 <P>name of location into which to add the prototype (either this or DeclPhase must be defined)</P>
       
   985 </P>
       
   986 </TD>
       
   987 </TR>
       
   988 <TR>
       
   989 <TD>DeclPhase</TD><TD>no</TD><TD>&nbsp;</TD><TD>
       
   990 <P>
       
   991 <P>name of phase into which to add the prototype (either this or DeclLocation must be defined)</P>
       
   992 </P>
       
   993 </TD>
       
   994 </TR>
       
   995 <TR>
       
   996 <TD>ReturnType</TD><TD>no</TD><TD>void</TD><TD>
       
   997 <P>
       
   998 <P>return type for function</P>
       
   999 </P>
       
  1000 </TD>
       
  1001 </TR>
       
  1002 <TR>
       
  1003 <TD>IsStatic</TD><TD>no</TD><TD>false</TD><TD>
       
  1004 <P>
       
  1005 <P>is the function static?</P>
       
  1006 </P>
       
  1007 </TD>
       
  1008 </TR>
       
  1009 <TR>
       
  1010 <TD>IsVirtual</TD><TD>no</TD><TD>false</TD><TD>
       
  1011 <P>
       
  1012 <P>is the function virtual? (ignored if IsStatic)</P>
       
  1013 </P>
       
  1014 </TD>
       
  1015 </TR>
       
  1016 <TR>
       
  1017 <TD>IsConst</TD><TD>no</TD><TD>false</TD><TD>
       
  1018 <P>
       
  1019 <P>add 'const' modifier to function?</P>
       
  1020 </P>
       
  1021 </TD>
       
  1022 </TR>
       
  1023 <TR>
       
  1024 <TD>DefaultReturn</TD><TD>no</TD><TD>&nbsp;</TD><TD>
       
  1025 <P>
       
  1026 <P>default value to return; overridden if FunctionBody is specified</P>
       
  1027 </P>
       
  1028 </TD>
       
  1029 </TR>
       
  1030 <TR>
       
  1031 <TD>FunctionBody</TD><TD>no</TD><TD>&nbsp;</TD><TD>
       
  1032 <P>
       
  1033 <P>text inside function body (comment and/or code)</P>
       
  1034 </P>
       
  1035 </TD>
       
  1036 </TR>
       
  1037 <TR>
       
  1038 <TD>ClassName</TD><TD>no</TD><TD>${className}</TD><TD>
       
  1039 <P>
       
  1040 <P>the class name</P>
       
  1041 </P>
       
  1042 </TD>
       
  1043 </TR>
       
  1044 <TR>
       
  1045 <TD>FunctionComment</TD><TD>no</TD><TD>&nbsp;</TD><TD>
       
  1046 <P>
       
  1047 <P>comment appearing before function defn</P>
       
  1048 </P>
       
  1049 </TD>
       
  1050 </TR>
       
  1051 <TR>
       
  1052 <TD>IsEventHandler</TD><TD>no</TD><TD>false</TD><TD>
       
  1053 <P>
       
  1054 <P>is the function body the user event handler?</P>
       
  1055 </P>
       
  1056 </TD>
       
  1057 </TR>
       
  1058 <TR>
       
  1059 <TD>Initializers</TD><TD>no</TD><TD>&nbsp;</TD><TD>
       
  1060 <P>
       
  1061 <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>
       
  1062 </P>
       
  1063 </TD>
       
  1064 </TR>
       
  1065 </TABLE>
       
  1066 
       
  1067 <A name="GenerateVirtualMethodOverrideForEventHandler"></A>
       
  1068 <H2>GenerateVirtualMethodOverrideForEventHandler</H2>
       
  1069 <P>
       
  1070 <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>
       
  1071 </P>
       
  1072 <H3>Arguments</H3>
       
  1073 <TABLE border="1" cellpadding="3">
       
  1074 <TH>Argument</TH><TH>Req'd?</TH><TH>Default</TH><TH>Description</TH>
       
  1075 <TR>
       
  1076 <TD>ClassName</TD><TD>no</TD><TD>${handlerClassName}</TD><TD>
       
  1077 <P>
       
  1078 <P>the name of the class</P>
       
  1079 </P>
       
  1080 </TD>
       
  1081 </TR>
       
  1082 <TR>
       
  1083 <TD>UserHandlerFunctionArgs</TD><TD>no</TD><TD>&nbsp;</TD><TD>
       
  1084 <P>
       
  1085 <P>the arguments passed to the user handler function (== FunctionArgs by default)</P>
       
  1086 </P>
       
  1087 </TD>
       
  1088 </TR>
       
  1089 <TR>
       
  1090 <TD>ClassName</TD><TD>no</TD><TD>${handlerClassName}</TD><TD>
       
  1091 <P>
       
  1092 <P>the name of the class</P>
       
  1093 </P>
       
  1094 </TD>
       
  1095 </TR>
       
  1096 <TR>
       
  1097 <TD>UserHandlerFunctionArgs</TD><TD>no</TD><TD>&nbsp;</TD><TD>
       
  1098 <P>
       
  1099 <P>the arguments passed to the user handler function (== FunctionArgs by default)</P>
       
  1100 </P>
       
  1101 </TD>
       
  1102 </TR>
       
  1103 </TABLE>
       
  1104 <P>Inherited from <A href="#GenerateMethodWithOwnedBody">GenerateMethodWithOwnedBody</A>:</P>
       
  1105 <TABLE border="1" cellpadding="3">
       
  1106 <TH>Argument</TH><TH>Req'd?</TH><TH>Default</TH><TH>Description</TH>
       
  1107 <TR>
       
  1108 <TD>FunctionLocationId</TD><TD>yes</TD><TD>&nbsp;</TD><TD>
       
  1109 <P>
       
  1110 <P>name of the function location to define; body is named id+_BODY</P>
       
  1111 </P>
       
  1112 </TD>
       
  1113 </TR>
       
  1114 <TR>
       
  1115 <TD>DefnLocation</TD><TD>yes</TD><TD>&nbsp;</TD><TD>
       
  1116 <P>
       
  1117 <P>name of location into which to add the function</P>
       
  1118 </P>
       
  1119 </TD>
       
  1120 </TR>
       
  1121 <TR>
       
  1122 <TD>FunctionName</TD><TD>yes</TD><TD>&nbsp;</TD><TD>
       
  1123 <P>
       
  1124 <P>name of function</P>
       
  1125 </P>
       
  1126 </TD>
       
  1127 </TR>
       
  1128 <TR>
       
  1129 <TD>FunctionArgs</TD><TD>yes</TD><TD>&nbsp;</TD><TD>
       
  1130 <P>
       
  1131 <P>canonical argument list (e.g. "const TInt&amp; aArg, TInt aFoo = 3")</P>
       
  1132 </P>
       
  1133 </TD>
       
  1134 </TR>
       
  1135 <TR>
       
  1136 <TD>DefaultReturn</TD><TD>no</TD><TD>&nbsp;</TD><TD>
       
  1137 <P>
       
  1138 <P>default value to return; overridden if FunctionBody is specified</P>
       
  1139 </P>
       
  1140 </TD>
       
  1141 </TR>
       
  1142 <TR>
       
  1143 <TD>ReturnType</TD><TD>no</TD><TD>void</TD><TD>
       
  1144 <P>
       
  1145 <P>return type for function</P>
       
  1146 </P>
       
  1147 </TD>
       
  1148 </TR>
       
  1149 <TR>
       
  1150 <TD>FunctionBody</TD><TD>no</TD><TD>&nbsp;</TD><TD>
       
  1151 <P>
       
  1152 <P>text inside owned part of function body</P>
       
  1153 </P>
       
  1154 </TD>
       
  1155 </TR>
       
  1156 <TR>
       
  1157 <TD>IsOwned</TD><TD>no</TD><TD>true</TD><TD>
       
  1158 <P>
       
  1159 <P>is the function body owned?</P>
       
  1160 </P>
       
  1161 </TD>
       
  1162 </TR>
       
  1163 <TR>
       
  1164 <TD>IsConst</TD><TD>no</TD><TD>false</TD><TD>
       
  1165 <P>
       
  1166 <P>add 'const' modifier to function?</P>
       
  1167 </P>
       
  1168 </TD>
       
  1169 </TR>
       
  1170 <TR>
       
  1171 <TD>FunctionComment</TD><TD>no</TD><TD>&nbsp;</TD><TD>
       
  1172 <P>
       
  1173 <P>comment appearing before function defn</P>
       
  1174 </P>
       
  1175 </TD>
       
  1176 </TR>
       
  1177 <TR>
       
  1178 <TD>IsEventHandler</TD><TD>no</TD><TD>false</TD><TD>
       
  1179 <P>
       
  1180 <P>is the function body the user event handler?</P>
       
  1181 </P>
       
  1182 </TD>
       
  1183 </TR>
       
  1184 <TR>
       
  1185 <TD>Initializers</TD><TD>no</TD><TD>&nbsp;</TD><TD>
       
  1186 <P>
       
  1187 <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>
       
  1188 </P>
       
  1189 </TD>
       
  1190 </TR>
       
  1191 <TR>
       
  1192 <TD>OwnedRegionLocationId</TD><TD>no</TD><TD>$(FunctionLocationId)_BODY</TD><TD>
       
  1193 <P>
       
  1194 <P>location id for enclosed body</P>
       
  1195 </P>
       
  1196 </TD>
       
  1197 </TR>
       
  1198 <TR>
       
  1199 <TD>OwnedRegionName</TD><TD>no</TD><TD>Generated Contents</TD><TD>
       
  1200 <P>
       
  1201 <P>region name for enclosed body</P>
       
  1202 </P>
       
  1203 </TD>
       
  1204 </TR>
       
  1205 <TR>
       
  1206 <TD>StartFunctionBody</TD><TD>no</TD><TD>&nbsp;</TD><TD>
       
  1207 <P>
       
  1208 <P>text inside function body (comment and/or code) before the owned section</P>
       
  1209 </P>
       
  1210 </TD>
       
  1211 </TR>
       
  1212 <TR>
       
  1213 <TD>EndFunctionBody</TD><TD>no</TD><TD>&nbsp;</TD><TD>
       
  1214 <P>
       
  1215 <P>text inside function body (comment and/or code) after the owned section</P>
       
  1216 </P>
       
  1217 </TD>
       
  1218 </TR>
       
  1219 <TR>
       
  1220 <TD>DeclLocation</TD><TD>no</TD><TD>&nbsp;</TD><TD>
       
  1221 <P>
       
  1222 <P>name of location into which to add the prototype (either this or DeclPhase must be defined)</P>
       
  1223 </P>
       
  1224 </TD>
       
  1225 </TR>
       
  1226 <TR>
       
  1227 <TD>DeclPhase</TD><TD>no</TD><TD>&nbsp;</TD><TD>
       
  1228 <P>
       
  1229 <P>name of phase into which to add the prototype (either this or DeclLocation must be defined)</P>
       
  1230 </P>
       
  1231 </TD>
       
  1232 </TR>
       
  1233 </TABLE>
       
  1234 
       
  1235 <A name="GenerateUserEventHandlerFunction"></A>
       
  1236 <H2>GenerateUserEventHandlerFunction</H2>
       
  1237 <P>
       
  1238 <P> Define a user handler declaration and function.  </P>
       
  1239 <P> Provides a default header comment and body comment.  </P>
       
  1240 <P> This is NOT conditional, so include it in a &lt;templateGroup ifEvents="..." /&gt;  </P>
       
  1241 </P>
       
  1242 <H3>Arguments</H3>
       
  1243 <TABLE border="1" cellpadding="3">
       
  1244 <TH>Argument</TH><TH>Req'd?</TH><TH>Default</TH><TH>Description</TH>
       
  1245 <TR>
       
  1246 <TD>FunctionLocationId</TD><TD>yes</TD><TD>&nbsp;</TD><TD>
       
  1247 <P>
       
  1248 <P>the id for the event handler function</P>
       
  1249 </P>
       
  1250 </TD>
       
  1251 </TR>
       
  1252 <TR>
       
  1253 <TD>FunctionLocationId</TD><TD>yes</TD><TD>&nbsp;</TD><TD>
       
  1254 <P>
       
  1255 <P>the id for the event handler function</P>
       
  1256 </P>
       
  1257 </TD>
       
  1258 </TR>
       
  1259 <TR>
       
  1260 <TD>FunctionName</TD><TD>no</TD><TD>${event.handlerName}</TD><TD>
       
  1261 <P>
       
  1262 <P>the name of the function/method for the handler;     generally the default should be used (the name specified in the Events view)</P>
       
  1263 </P>
       
  1264 </TD>
       
  1265 </TR>
       
  1266 <TR>
       
  1267 <TD>FunctionBody</TD><TD>no</TD><TD>&nbsp;</TD><TD>
       
  1268 <P>
       
  1269 <P>the body of the function, which by default is a TODO comment</P>
       
  1270 </P>
       
  1271 </TD>
       
  1272 </TR>
       
  1273 <TR>
       
  1274 <TD>ClassName</TD><TD>no</TD><TD>${handlerClassName}</TD><TD>
       
  1275 <P>
       
  1276 <P>the name of the class that receives the handler</P>
       
  1277 </P>
       
  1278 </TD>
       
  1279 </TR>
       
  1280 <TR>
       
  1281 <TD>FunctionComment</TD><TD>no</TD><TD>&nbsp;</TD><TD>
       
  1282 <P>
       
  1283 <P>the comment for the function</P>
       
  1284 </P>
       
  1285 </TD>
       
  1286 </TR>
       
  1287 <TR>
       
  1288 <TD>FunctionName</TD><TD>no</TD><TD>${event.handlerName}</TD><TD>
       
  1289 <P>
       
  1290 <P>the name of the function/method for the handler;     generally the default should be used (the name specified in the Events view)</P>
       
  1291 </P>
       
  1292 </TD>
       
  1293 </TR>
       
  1294 <TR>
       
  1295 <TD>FunctionBody</TD><TD>no</TD><TD>&nbsp;</TD><TD>
       
  1296 <P>
       
  1297 <P>the body of the function, which by default is a TODO comment</P>
       
  1298 </P>
       
  1299 </TD>
       
  1300 </TR>
       
  1301 <TR>
       
  1302 <TD>ClassName</TD><TD>no</TD><TD>${handlerClassName}</TD><TD>
       
  1303 <P>
       
  1304 <P>the name of the class that receives the handler</P>
       
  1305 </P>
       
  1306 </TD>
       
  1307 </TR>
       
  1308 <TR>
       
  1309 <TD>FunctionComment</TD><TD>no</TD><TD>&nbsp;</TD><TD>
       
  1310 <P>
       
  1311 <P>the comment for the function</P>
       
  1312 </P>
       
  1313 </TD>
       
  1314 </TR>
       
  1315 </TABLE>
       
  1316 <P>Inherited from <A href="#GenerateMethod">GenerateMethod</A>:</P>
       
  1317 <TABLE border="1" cellpadding="3">
       
  1318 <TH>Argument</TH><TH>Req'd?</TH><TH>Default</TH><TH>Description</TH>
       
  1319 <TR>
       
  1320 <TD>FunctionArgs</TD><TD>yes</TD><TD>&nbsp;</TD><TD>
       
  1321 <P>
       
  1322 <P>canonical argument list (e.g. "const TInt&amp; aArg, TInt aFoo = 3")</P>
       
  1323 </P>
       
  1324 </TD>
       
  1325 </TR>
       
  1326 <TR>
       
  1327 <TD>DefnLocation</TD><TD>yes</TD><TD>&nbsp;</TD><TD>
       
  1328 <P>
       
  1329 <P>name of location into which to add the function</P>
       
  1330 </P>
       
  1331 </TD>
       
  1332 </TR>
       
  1333 <TR>
       
  1334 <TD>DeclLocation</TD><TD>no</TD><TD>&nbsp;</TD><TD>
       
  1335 <P>
       
  1336 <P>name of location into which to add the prototype (either this or DeclPhase must be defined)</P>
       
  1337 </P>
       
  1338 </TD>
       
  1339 </TR>
       
  1340 <TR>
       
  1341 <TD>DeclPhase</TD><TD>no</TD><TD>&nbsp;</TD><TD>
       
  1342 <P>
       
  1343 <P>name of phase into which to add the prototype (either this or DeclLocation must be defined)</P>
       
  1344 </P>
       
  1345 </TD>
       
  1346 </TR>
       
  1347 <TR>
       
  1348 <TD>ReturnType</TD><TD>no</TD><TD>void</TD><TD>
       
  1349 <P>
       
  1350 <P>return type for function</P>
       
  1351 </P>
       
  1352 </TD>
       
  1353 </TR>
       
  1354 <TR>
       
  1355 <TD>IsConst</TD><TD>no</TD><TD>false</TD><TD>
       
  1356 <P>
       
  1357 <P>add 'const' modifier to function?</P>
       
  1358 </P>
       
  1359 </TD>
       
  1360 </TR>
       
  1361 <TR>
       
  1362 <TD>DefaultReturn</TD><TD>no</TD><TD>&nbsp;</TD><TD>
       
  1363 <P>
       
  1364 <P>default value to return; overridden if FunctionBody is specified</P>
       
  1365 </P>
       
  1366 </TD>
       
  1367 </TR>
       
  1368 <TR>
       
  1369 <TD>IsOwned</TD><TD>no</TD><TD>true</TD><TD>
       
  1370 <P>
       
  1371 <P>is the function body owned?</P>
       
  1372 </P>
       
  1373 </TD>
       
  1374 </TR>
       
  1375 <TR>
       
  1376 <TD>IsEventHandler</TD><TD>no</TD><TD>false</TD><TD>
       
  1377 <P>
       
  1378 <P>is the function body the user event handler?</P>
       
  1379 </P>
       
  1380 </TD>
       
  1381 </TR>
       
  1382 <TR>
       
  1383 <TD>Initializers</TD><TD>no</TD><TD>&nbsp;</TD><TD>
       
  1384 <P>
       
  1385 <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>
       
  1386 </P>
       
  1387 </TD>
       
  1388 </TR>
       
  1389 </TABLE>
       
  1390 
       
  1391 </P>
       
  1392 </BODY>
       
  1393 </HTML>