<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> </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& 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& aArg, TInt aFoo = 3")</P></P></TD></TR><TR><TD>DeclLocation</TD><TD>no</TD><TD> </TD><TD><P><P>name of location into which to add the prototype (either this or DeclPhase must be defined)</P></P></TD></TR><TR><TD>DeclPhase</TD><TD>no</TD><TD> </TD><TD><P><P>name of phase into which to add the prototype (either this or DeclLocation must be defined)</P></P></TD></TR><TR><TD>ReturnType</TD><TD>no</TD><TD>void</TD><TD><P><P>return type for function</P></P></TD></TR><TR><TD>IsStatic</TD><TD>no</TD><TD>false</TD><TD><P><P>is the function static?</P></P></TD></TR><TR><TD>IsVirtual</TD><TD>no</TD><TD>false</TD><TD><P><P>is the function virtual? (ignored if IsStatic)</P></P></TD></TR><TR><TD>IsConst</TD><TD>no</TD><TD>false</TD><TD><P><P>add 'const' modifier to function?</P></P></TD></TR><TR><TD>DeclLocation</TD><TD>no</TD><TD> </TD><TD><P><P>name of location into which to add the prototype (either this or DeclPhase must be defined)</P></P></TD></TR><TR><TD>DeclPhase</TD><TD>no</TD><TD> </TD><TD><P><P>name of phase into which to add the prototype (either this or DeclLocation must be defined)</P></P></TD></TR><TR><TD>ReturnType</TD><TD>no</TD><TD>void</TD><TD><P><P>return type for function</P></P></TD></TR><TR><TD>IsStatic</TD><TD>no</TD><TD>false</TD><TD><P><P>is the function static?</P></P></TD></TR><TR><TD>IsVirtual</TD><TD>no</TD><TD>false</TD><TD><P><P>is the function virtual? (ignored if IsStatic)</P></P></TD></TR><TR><TD>IsConst</TD><TD>no</TD><TD>false</TD><TD><P><P>add 'const' modifier to function?</P></P></TD></TR></TABLE><A name="GenerateDefaultFunctionBody"></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> </TD><TD><P><P>name of the function location to define; body is named id+_BODY</P></P></TD></TR><TR><TD>FunctionLocationId</TD><TD>yes</TD><TD> </TD><TD><P><P>name of the function location to define; body is named id+_BODY</P></P></TD></TR><TR><TD>DefaultReturn</TD><TD>no</TD><TD> </TD><TD><P><P>default value to return; overridden if FunctionBody is specified</P></P></TD></TR><TR><TD>ReturnType</TD><TD>no</TD><TD>void</TD><TD><P><P>return type for function</P></P></TD></TR><TR><TD>FunctionBody</TD><TD>no</TD><TD> </TD><TD><P><P>text inside function body (comment and/or code)</P></P></TD></TR><TR><TD>DefaultReturn</TD><TD>no</TD><TD> </TD><TD><P><P>default value to return; overridden if FunctionBody is specified</P></P></TD></TR><TR><TD>ReturnType</TD><TD>no</TD><TD>void</TD><TD><P><P>return type for function</P></P></TD></TR><TR><TD>FunctionBody</TD><TD>no</TD><TD> </TD><TD><P><P>text inside function body (comment and/or code)</P></P></TD></TR></TABLE><A name="DefineMethod"></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> </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& 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& 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>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></TABLE><P>Inherited from <A href="#GenerateDefaultFunctionBody">GenerateDefaultFunctionBody</A>:</P><TABLE border="1" cellpadding="3"><TH>Argument</TH><TH>Req'd?</TH><TH>Default</TH><TH>Description</TH><TR><TD>FunctionLocationId</TD><TD>yes</TD><TD> </TD><TD><P><P>name of the function location to define; body is named id+_BODY</P></P></TD></TR><TR><TD>DefaultReturn</TD><TD>no</TD><TD> </TD><TD><P><P>default value to return; overridden if FunctionBody is specified</P></P></TD></TR><TR><TD>ReturnType</TD><TD>no</TD><TD>void</TD><TD><P><P>return type for function</P></P></TD></TR><TR><TD>FunctionBody</TD><TD>no</TD><TD> </TD><TD><P><P>text inside function body (comment and/or code)</P></P></TD></TR></TABLE><A name="GenerateMethod"></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> </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& 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></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> </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& 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></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> </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& 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>OwnedRegionLocationId</TD><TD>no</TD><TD>$(FunctionLocationId)_BODY</TD><TD><P><P>location id for enclosed body</P></P></TD></TR><TR><TD>OwnedRegionName</TD><TD>no</TD><TD>Generated Contents</TD><TD><P><P>region name for enclosed body</P></P></TD></TR><TR><TD>StartFunctionBody</TD><TD>no</TD><TD> </TD><TD><P><P>text inside function body (comment and/or code) before the owned section</P></P></TD></TR><TR><TD>EndFunctionBody</TD><TD>no</TD><TD> </TD><TD><P><P>text inside function body (comment and/or code) after the owned section</P></P></TD></TR></TABLE><P>Inherited from <A href="#DeclareMethod">DeclareMethod</A>:</P><TABLE border="1" cellpadding="3"><TH>Argument</TH><TH>Req'd?</TH><TH>Default</TH><TH>Description</TH><TR><TD>DeclLocation</TD><TD>no</TD><TD> </TD><TD><P><P>name of location into which to add the prototype (either this or DeclPhase must be defined)</P></P></TD></TR><TR><TD>DeclPhase</TD><TD>no</TD><TD> </TD><TD><P><P>name of phase into which to add the prototype (either this or DeclLocation must be defined)</P></P></TD></TR><TR><TD>IsStatic</TD><TD>no</TD><TD>false</TD><TD><P><P>is the function static?</P></P></TD></TR><TR><TD>IsVirtual</TD><TD>no</TD><TD>false</TD><TD><P><P>is the function virtual? (ignored if IsStatic)</P></P></TD></TR></TABLE><A name="GenerateMethodWithVariantArguments"></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> </TD><TD><P><P>canonical leading static argument list (e.g. "const TInt& 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& 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></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> </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& 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>OwnedRegionLocationId</TD><TD>no</TD><TD>$(FunctionLocationId)_BODY</TD><TD><P><P>location id for enclosed body</P></P></TD></TR><TR><TD>OwnedRegionName</TD><TD>no</TD><TD>Generated Contents</TD><TD><P><P>region name for enclosed body</P></P></TD></TR><TR><TD>StartFunctionBody</TD><TD>no</TD><TD> </TD><TD><P><P>text inside function body (comment and/or code) before the owned section</P></P></TD></TR><TR><TD>EndFunctionBody</TD><TD>no</TD><TD> </TD><TD><P><P>text inside function body (comment and/or code) after the owned section</P></P></TD></TR><TR><TD>DeclLocation</TD><TD>no</TD><TD> </TD><TD><P><P>name of location into which to add the prototype (either this or DeclPhase must be defined)</P></P></TD></TR><TR><TD>DeclPhase</TD><TD>no</TD><TD> </TD><TD><P><P>name of phase into which to add the prototype (either this or DeclLocation must be defined)</P></P></TD></TR></TABLE><A name="GenerateUserEventHandlerFunction"></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 <templateGroup ifEvents="..." /> </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& 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></TABLE></P></BODY></HTML>