uidesigner/com.nokia.sdt.series60.componentlibrary/components/containers/DialogBase.component
author timkelly
Mon, 26 Jul 2010 11:32:21 -0500
branchC3_BUILDER_WORK
changeset 1681 6636e8c75e66
parent 0 fb279309251b
permissions -rw-r--r--
Fix problem with sbs config xml parsing. Make sure to trim error message to avoid erroneously adding an error when there is none. Fix problem with adding system includes for variants.

<?xml version="1.0" encoding="UTF-8"?>
<!-- Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies). -->
<!-- All rights reserved. -->
<!-- This component and the accompanying materials are made available -->
<!-- under the terms of the License "Eclipse Public License v1.0" -->
<!-- which accompanies this distribution, and is available -->
<!-- at the URL "http://www.eclipse.org/legal/epl-v10.html". -->

<componentDefinition xmlns="http://www.nokia.com/sdt/emf/component" 
xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" >

	<component baseComponent="com.nokia.sdt.series60.ContainerBase" 
			friendlyName=""
			qualifiedName="com.nokia.sdt.series60.DialogBase" 
			abstract="true"
			version="1.0">
			
		<symbian sdkName="com.nokia.series60" minSDKVersion="2.0"/>
		
		<attributes>
			<attribute key="is-top-level-content-container">true</attribute>
			<attribute key="vertical-scrollable-container">true</attribute>
			<attribute key="layout-type">ordered</attribute>
			<attribute key="ordered-layout-type">vertical-row</attribute>
			<attribute key="allow-cba-in-parent">true</attribute>
			<attribute key="container-background-color-property-name">backColor</attribute>
		</attributes>
	
		<properties>
			<property category="Hidden" name="notifyEsc" type="boolean" default="false"/>
			<property category="Behavior" name="modeless" type="boolean" default="true"
				descriptionKey="EEikDialogFlagModelessDescription" />
			<property category="Behavior" name="wait" type="boolean" default="false"
				descriptionKey="EEikDialogFlagWaitDescription" />
				<!-- corresponds to flag EEikDialogFlagWait 0x001 -->
		</properties>
		
		<implementations>
			<implementation>
				<interface id="com.nokia.sdt.datamodel.adapter.IInitializer"/>
				<script file="DialogBase.js" prototype="DialogBase" />
			</implementation>
		</implementations>
		
		<events>
		<event name="prepareForFocusTransition" category="Dialog" 
		    handlerNameTemplate="Handle{title(name)}PrepareForFocusTransitionL"
		    descriptionKey="prepareForFocusTransitionDescription"
		/>
		<event name="pageChanged" category="Dialog" 
		    handlerNameTemplate="Handle{title(name)}PageChangedL"
		    descriptionKey="pageChangedDescription"
		/>		
		<event name="lineChanged" category="Dialog" 
		    handlerNameTemplate="Handle{title(name)}LineChangedL"
		    descriptionKey="lineChangedDescription"
		/>
		<event name="processCommand" category="Command" 
		    handlerNameTemplate="Handle{title(name)}ProcessCommandL"
		    descriptionKey="processCommandDescription"
		/>
		<event name="dynInitMenuPane" category="Menu" 
		    handlerNameTemplate="Handle{title(name)}DynInitMenuPaneL"
		    descriptionKey="dynInitMenuPaneDescription"
		/>
		<event name="offerKeyToApp" category="Menu" 
		    handlerNameTemplate="Handle{title(name)}OfferKeyToAppL"
		    descriptionKey="offerKeyToAppDescription"
		/>
		</events>
		
	<sourceGen>
		
<!-- BEGIN EVENT prepareForFocusTransition -->
			<templateGroup id="GeneratePrepareForFocusTransition" ifEvents="prepareForFocusTransition">
				<template id="DeclarePrepareForFocusTransitionOverride" phase="OverriddenMethods"><![CDATA[
void PrepareForFocusTransitionL();
]]>				</template>

				<defineLocation id="PrepareForFocusTransitionOverride" baseLocation="MAIN_FILE"
					owned="false"
					location="function(${handlerClassName}::PrepareForFocusTransitionL())">
					<template><![CDATA[
/** 
 * Handle focus transition this dialog (override)
 */
void ${handlerClassName}::PrepareForFocusTransitionL()
	{
	${instance.attributes["base-container-class"]}::PrepareForFocusTransitionL();
	}
]]>				
					</template>
				</defineLocation>
				
			<defineLocation id="PrepareForFocusTransitionMethodBody" baseLocation="PrepareForFocusTransitionOverride"
				location="region(Generated Contents)">
				<template/>
			</defineLocation>
			
			<template id="InvokePrepareForFocusTransitionHandler" location="PrepareForFocusTransitionMethodBody">
${event.handlerName}();
			</template>

			<template id="DeclarePrepareForFocusTransitionHandler" phase="UserHandlers">
void ${event.handlerName}();
			</template>

			<defineLocation id="PrepareForFocusTransitionHandlerMethod" baseLocation="MAIN_FILE"
				owned="false"
				isEventHandler="true"
				location="function(${handlerClassName}::${event.handlerName}())">
			<template><![CDATA[
/** 
 * Handle the ${event.eventName} event.
 */
void ${handlerClassName}::${event.handlerName}()
	{
	// TODO: implement ${event.eventName} event handler
	}
]]>				
				</template>
			</defineLocation>
			
			<template id="RealizePrepareForFocusTransitionHandler" location="PrepareForFocusTransitionHandlerMethod" />
			</templateGroup>
<!-- END EVENT prepareForFocusTransition -->

<!-- BEGIN EVENT pageChanged -->
			<templateGroup id="GeneratePageChanged" ifEvents="pageChanged">
				<template id="DeclarePageChangedOverride" phase="OverriddenMethods"><![CDATA[
void PageChangedL( TInt aPageId );
]]>				</template>

				<defineLocation id="PageChangedOverride" baseLocation="MAIN_FILE"
					owned="false"
					location="function(${handlerClassName}::PageChangedL(TInt))">
					<template><![CDATA[
/** 
 * Handle page changed notifications this dialog (override)
 */
void ${handlerClassName}::PageChangedL( TInt aPageId )
	{
	${instance.attributes["base-container-class"]}::PageChangedL( aPageId );
	}
]]>				
					</template>
				</defineLocation>

			<defineLocation id="PageChangedMethodBody" baseLocation="PageChangedOverride"
				location="region(Generated Contents)">
				<template/>
			</defineLocation>
			
			<template id="InvokePageChangedHandler" location="PageChangedMethodBody">
${event.handlerName}( aPageId );
			</template>

			<template id="DeclarePageChangedHandler" phase="UserHandlers">
void ${event.handlerName}( TInt aPageId );
			</template>

			<defineLocation id="PageChangedHandlerMethod" baseLocation="MAIN_FILE"
				owned="false"
				isEventHandler="true"
				location="function(${handlerClassName}::${event.handlerName}(TInt))">
			<template><![CDATA[
/** 
 * Handle the ${event.eventName} event.
 */
void ${handlerClassName}::${event.handlerName}( TInt aPageId )
	{
	// TODO: implement ${event.eventName} event handler
	}
]]>				
				</template>
			</defineLocation>
			
			<template id="RealizePageChangedHandler" location="PageChangedHandlerMethod" />
			</templateGroup>
<!-- END EVENT pageChanged -->

<!-- BEGIN EVENT lineChanged -->
			<templateGroup id="GenerateLineChanged" ifEvents="lineChanged">
				<template id="DeclareLineChangedOverride" phase="OverriddenMethods"><![CDATA[
void LineChangedL( TInt aPageId );
]]>				</template>

				<defineLocation id="LineChangedOverride" baseLocation="MAIN_FILE"
					owned="false"
					location="function(${handlerClassName}::LineChangedL(TInt))">
					<template><![CDATA[
/** 
 * Handle line change notifications for this dialog (override)
 */
void ${handlerClassName}::LineChangedL( TInt aControlId )
	{
	${instance.attributes["base-container-class"]}::LineChangedL( aControlId );
	}
]]>				
					</template>
				</defineLocation>
		
			<defineLocation id="LineChangedMethodBody" baseLocation="LineChangedOverride"
				location="region(Generated Contents)">
				<template/>
			</defineLocation>
			
			<template id="InvokeLineChangedHandler" location="LineChangedMethodBody">
${event.handlerName}( aControlId );
			</template>

			<template id="DeclareLineChangedHandler" phase="UserHandlers">
void ${event.handlerName}( TInt aControlId );
			</template>

			<defineLocation id="LineChangedHandlerMethod" baseLocation="MAIN_FILE"
				owned="false"
				isEventHandler="true"
				location="function(${handlerClassName}::${event.handlerName}(TInt))">
			<template><![CDATA[
/** 
 * Handle the ${event.eventName} event.
 */
void ${handlerClassName}::${event.handlerName}( TInt aControlId )
	{
	// TODO: implement ${event.eventName} event handler
	}
]]>				
				</template>
			</defineLocation>
			
			<template id="RealizeLineChangedHandlerMethod" location="LineChangedHandlerMethod" />
			</templateGroup>
<!-- END EVENT lineChanged -->

<!-- BEGIN EVENT processCommand -->
			<templateGroup id="GenerateProcessCommand" ifEvents="processCommand">
				<template id="DeclareProcessCommandOverride" phase="OverriddenMethods"><![CDATA[
void ProcessCommandL( TInt aCommandId );
]]>				</template>

				<defineLocation id="ProcessCommandOverride" baseLocation="MAIN_FILE"
					owned="false"
					location="function(${handlerClassName}::ProcessCommandL(TInt))">
					<template><![CDATA[
/** 
 * Handle commands for this dialog. (override)
 */
void ${handlerClassName}::ProcessCommandL( TInt aCommandId )
	{
	${instance.attributes["base-container-class"]}::ProcessCommandL( aCommandId );
	}
]]>				
					</template>
				</defineLocation>
		
			<defineLocation id="ProcessCommandMethodBody" baseLocation="ProcessCommandOverride"
				location="region(Generated Contents)">
				<template/>
			</defineLocation>
			
			<template id="InvokeProcessCommandHandler" location="ProcessCommandMethodBody">
${event.handlerName}( aCommandId );
			</template>

			<template id="DeclareProcessCommandHandler" phase="UserHandlers">
void ${event.handlerName}( TInt aCommandId );
			</template>

			<defineLocation id="ProcessCommandHandlerMethod" baseLocation="MAIN_FILE"
				owned="false"
				isEventHandler="true"
				location="function(${handlerClassName}::${event.handlerName}(TInt))">
			<template><![CDATA[
/** 
 * Handle the ${event.eventName} event.
 */
void ${handlerClassName}::${event.handlerName}( TInt aCommandId )
	{
	// TODO: implement ${event.eventName} event handler
	}
]]>				
				</template>
			</defineLocation>
			
			<template id="RealizeProcessCommandHandler" location="ProcessCommandHandlerMethod" />
			</templateGroup>
<!-- END EVENT processCommand -->

<!-- BEGIN EVENT dynInitMenuPane -->
			<templateGroup id="GenerateDynInitMenuPane" ifEvents="dynInitMenuPane">
				<template id="DeclareDynInitMenuPaneOverride" phase="OverriddenMethods"><![CDATA[
void DynInitMenuPaneL( TInt aResourceId, CEikMenuPane* aMenuPane );
]]>				</template>
				<template id="CEikMenuPaneForwardDecl" phase="ForwardDeclarations">
class CEikMenuPane;
				</template>

				<defineLocation id="DYNINITMENUPANEL" baseLocation="MAIN_FILE"
					owned="false"
					location="function(${handlerClassName}::DynInitMenuPaneL(TInt, CEikMenuPane*))">
					<template><![CDATA[
/** 
 * Handle menu enablement for this dialog. (override)
 */
void ${handlerClassName}::DynInitMenuPaneL( TInt aResourceId, CEikMenuPane* aMenuPane )
	{
	${instance.attributes["base-container-class"]}::DynInitMenuPaneL( aResourceId, aMenuPane );
	}
]]>				
					</template>
				</defineLocation>
		
			<defineLocation id="DynInitMenuPaneMethodBody" baseLocation="DYNINITMENUPANEL"
				location="region(Generated Contents)">
				<template/>
			</defineLocation>
			
			<template id="InvokeDynInitMenuPaneHandler" location="DynInitMenuPaneMethodBody">
${event.handlerName}( aResourceId, aMenuPane );
			</template>

			<template id="DeclareDynInitMenuPaneHandler" phase="UserHandlers">
void ${event.handlerName}( TInt aResourceId, CEikMenuPane* aMenuPane );
			</template>

			<defineLocation id="DynInitMenuPaneHandlerMethod" baseLocation="MAIN_FILE"
				owned="false"
				isEventHandler="true"
				location="function(${handlerClassName}::${event.handlerName}(TInt, CEikMenuPane*))">
			<template><![CDATA[
/** 
 * Handle the ${event.eventName} event.
 */
void ${handlerClassName}::${event.handlerName}( TInt aResourceId, CEikMenuPane* aMenuPane )
	{
	// TODO: implement ${event.eventName} event handler
	}
]]>				
				</template>
			</defineLocation>
			
			<template id="RealizeDynInitMenuPaneHandler" location="DynInitMenuPaneHandlerMethod" />
			</templateGroup>
<!-- END EVENT dynInitMenuPane -->

<!-- BEGIN EVENT offerKeyToApp -->
			<templateGroup id="GenerateOfferKeyToApp" ifEvents="offerKeyToApp">
				<template id="DeclareOfferKeyToAppOverride" phase="OverriddenMethods"><![CDATA[
void OfferKeyToAppL( const TKeyEvent& aKeyEvent, TEventCode aType );
]]>				</template>

				<defineLocation id="OfferKeyToAppOverride" baseLocation="MAIN_FILE"
					owned="false"
					location="function(${handlerClassName}::OfferKeyToAppL(const TKeyEvent&amp;,TEventCode))">
					<template><![CDATA[
/** 
 * Handle special keys during menu selection for this dialog. (override)
 */
void ${handlerClassName}::OfferKeyToAppL( 
		const TKeyEvent& aKeyEvent, 
		TEventCode aType )
	{
	${instance.attributes["base-container-class"]}::OfferKeyToAppL( aKeyEvent, aType );
	}
]]>				
					</template>
				</defineLocation>
		
			<defineLocation id="OfferKeyToAppMethodBody" baseLocation="OfferKeyToAppOverride"
				location="region(Generated Contents)">
				<template/>
			</defineLocation>
			
			<template id="InvokeOfferKeyToAppHandler" location="OfferKeyToAppMethodBody">
${event.handlerName}( aKeyEvent, aType );
			</template>

			<template id="DeclareOfferKeyToAppHandler" phase="UserHandlers"><![CDATA[
void ${event.handlerName}( 
		const TKeyEvent& aKeyEvent, 
		TEventCode aType );
]]>			</template>

			<defineLocation id="OfferKeyToAppHandlerMethod" baseLocation="MAIN_FILE"
				owned="false"
				isEventHandler="true"
				location="function(${handlerClassName}::${event.handlerName}(const TKeyEvent&amp;, TEventCode))">
			<template><![CDATA[
/** 
 * Handle the ${event.eventName} event.
 */
void ${handlerClassName}::${event.handlerName}( 
		const TKeyEvent& aKeyEvent, 
		TEventCode aType )
	{
	// TODO: implement ${event.eventName} event handler
	}
]]>				
				</template>
			</defineLocation>
			
			<template id="RealizeOfferKeyToAppHandler" location="OfferKeyToAppHandlerMethod" />
			</templateGroup>
<!-- END EVENT offerKeyToApp -->

	</sourceGen>

	</component>
</componentDefinition>