uidesigner/com.nokia.sdt.series60.componentlibrary/components/cba/CBA_3.2.component
changeset 0 fb279309251b
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/uidesigner/com.nokia.sdt.series60.componentlibrary/components/cba/CBA_3.2.component	Fri Apr 03 23:33:03 2009 +0100
@@ -0,0 +1,324 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE componentDefinition [
+<!ENTITY common_implementations SYSTEM "CBA_commonImpl.inc">
+<!ENTITY common_source SYSTEM "CBA_commonSrc.inc">
+]>
+<!-- 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:xsi="http://www.w3.org/2001/XMLSchema-instance">
+		
+	<enumPropertyDeclaration qualifiedName="com.nokia.sdt.series60.CBA.Type_MSK">
+		<enumElement value="R_AVKON_SOFTKEYS_EMPTY"/>
+		<enumElement value="R_AVKON_SOFTKEYS_EMPTY_WITH_IDS"/>
+		<enumElement value="R_AVKON_SOFTKEYS_OK_EMPTY"/>
+		<enumElement value="R_AVKON_SOFTKEYS_SELECT_CANCEL"/>
+		<enumElement value="R_AVKON_SOFTKEYS_OK_CANCEL"/>
+		<enumElement value="R_AVKON_SOFTKEYS_OK_DETAILS"/>
+		<enumElement value="R_AVKON_SOFTKEYS_CALL_CANCEL"/>
+		<enumElement value="R_AVKON_SOFTKEYS_OPTIONS_BACK"/>
+		<enumElement value="R_AVKON_SOFTKEYS_OPTIONS_DONE"/>
+		<enumElement value="R_AVKON_SOFTKEYS_OPTIONS_CANCEL"/>
+		<enumElement value="R_AVKON_SOFTKEYS_OPTIONS_EXIT"/>
+		<enumElement value="R_AVKON_SOFTKEYS_OK_BACK"/>
+		<enumElement value="R_AVKON_SOFTKEYS_CANCEL"/>
+		<enumElement value="R_AVKON_SOFTKEYS_BACK"/>
+		<enumElement value="R_AVKON_SOFTKEYS_CLOSE"/>
+		<enumElement value="R_AVKON_SOFTKEYS_DONE_BACK"/>
+		<enumElement value="R_AVKON_SOFTKEYS_DONE_CANCEL"/>
+		<enumElement value="R_AVKON_SOFTKEYS_MARK_BACK"/>
+		<enumElement value="R_AVKON_SOFTKEYS_UNMARK_BACK"/>
+		<enumElement value="R_AVKON_SOFTKEYS_YES_NO"/>
+		<enumElement value="R_AVKON_SOFTKEYS_UNLOCK_EMPTY"/>
+		<enumElement value="R_AVKON_SOFTKEYS_SAVE_BACK"/>
+		<enumElement value="R_AVKON_SOFTKEYS_SHOW_CANCEL"/>
+		<enumElement value="R_AVKON_SOFTKEYS_SHOW_EXIT"/>
+		<enumElement value="R_AVKON_SOFTKEYS_EXIT"/>
+		<enumElement value="R_AVKON_SOFTKEYS_READ_EXIT"/>
+		<enumElement value="R_AVKON_SOFTKEYS_LISTEN_EXIT"/>
+		<enumElement value="R_AVKON_SOFTKEYS_SEARCH_BACK"/>
+		<enumElement value="R_AVKON_SOFTKEYS_AGAIN_QUIT"/>
+		<enumElement value="R_AVKON_SOFTKEYS_QUIT"/>
+		<enumElement value="R_AVKON_SOFTKEYS_INSERT_BACK"/>
+		
+		<enumElement value="R_AVKON_SOFTKEYS_SELECT_CANCEL__SELECT"/>
+		<enumElement value="R_AVKON_SOFTKEYS_SELECT_BACK__SELECT"/>
+		<enumElement value="R_AVKON_SOFTKEYS_OK_CANCEL__MARK"/>
+		<enumElement value="R_AVKON_SOFTKEYS_OK_CANCEL__OK"/>
+		<enumElement value="R_AVKON_SOFTKEYS_OK_EMPTY__OK"/>
+		<enumElement value="R_AVKON_SOFTKEYS_OK_CANCEL__UNMARK"/>
+		<enumElement value="R_AVKON_SOFTKEYS_SEND_CANCEL__SEND"/>
+		<enumElement value="R_AVKON_SOFTKEYS_YES_NO__YES"/>
+		<enumElement value="R_AVKON_SOFTKEYS_SHOW_EXIT__SHOW"/>
+		<enumElement value="R_AVKON_SOFTKEYS_CALL_CANCEL__CALL"/>
+		<enumElement value="R_AVKON_SOFTKEYS_READ_EXIT__READ"/>
+		<enumElement value="R_AVKON_SOFTKEYS_LISTEN_EXIT__LISTEN"/>
+		<enumElement value="R_AVKON_SOFTKEYS_OPTIONS_BACK__SELECT"/>
+		<enumElement value="R_AVKON_SOFTKEYS_OPTIONS_DONE__SELECT"/>
+		<enumElement value="R_AVKON_SOFTKEYS_OPTIONS_CANCEL__SELECT"/>
+		<enumElement value="R_AVKON_SOFTKEYS_OPTIONS_EXIT__SELECT"/>
+		<enumElement value="R_AVKON_SOFTKEYS_OK_CANCEL__SELECT"/>
+		<enumElement value="R_AVKON_SOFTKEYS_OK_BACK__OK"/>
+		<enumElement value="R_AVKON_SOFTKEYS_SELECT_CLOSE__SELECT"/>
+		<enumElement value="R_AVKON_SOFTKEYS_NEXT_EXIT__NEXT"/>
+		<enumElement value="R_AVKON_SOFTKEYS_USSD_ANSWER_EXIT__ANSWER"/>
+		<enumElement value="R_AVKON_SOFTKEYS_HIDE_CANCEL__HIDE"/>
+		<enumElement value="R_AVKON_SOFTKEYS_OPTIONS_BACK__SELECT"/>
+		
+	</enumPropertyDeclaration>
+
+	<enumPropertyDeclaration qualifiedName="com.nokia.sdt.series60.CBA.MSK.Id">
+		<enumElement value="" displayValue="None"/>
+		<enumElement value="UNIQUE"/>
+		<enumElement value="EAknSoftkeyOk"/>
+		<enumElement value="EAknSoftkeyCancel"/>
+		<enumElement value="EAknSoftkeySelect"/>
+		<enumElement value="EAknSoftkeyOptions"/>
+		<enumElement value="EAknSoftkeyContextOptions"/>
+		<enumElement value="EAknSoftkeyBack"/>
+		<enumElement value="EAknSoftkeyMark"/>
+		<enumElement value="EAknSoftkeyUnmark"/>
+		<enumElement value="EAknSoftkeyInsert"/>
+		<enumElement value="EAknSoftkeyYes"/>
+		<enumElement value="EAknSoftkeyNo"/>
+		<enumElement value="EAknSoftkeyDone"/>
+		<enumElement value="EAknSoftkeyClose"/>
+		<enumElement value="EAknSoftkeyExit"/>
+		<enumElement value="EAknSoftkeyClear"/>
+		<enumElement value="EAknSoftkeyUnlock"/>
+		<enumElement value="EAknSoftkeySave"/>
+		<enumElement value="EAknSoftkeyShow"/>
+		<enumElement value="EAknSoftkeyListen"/>
+		<enumElement value="EAknSoftkeyRead"/>
+		<enumElement value="EAknSoftkeySearch"/>
+		<enumElement value="EAknSoftkeyEmpty"/>
+		<enumElement value="EAknSoftkeyLock"/>
+		<enumElement value="EAknSoftkeyCall"/>
+		<enumElement value="EAknSoftkeyAgain"/>
+		<enumElement value="EAknSoftkeyQuit"/>
+		<enumElement value="EAknSoftkeyDetails"/>
+		<enumElement value="EAknSoftkeyNext"/>
+		<enumElement value="EAknSoftkeySend"/>
+		<enumElement value="EAknSoftkeyAnswer"/>
+		<enumElement value="EAknSoftkeyHide"/>
+	</enumPropertyDeclaration>
+	
+	<enumPropertyDeclaration qualifiedName="com.nokia.sdt.series60.CBA.LeftRight.Id">
+		<enumElement value="" displayValue="None"/>
+		<enumElement value="UNIQUE"/>
+		<enumElement value="EAknSoftkeyOk"/>
+		<enumElement value="EAknSoftkeyCancel"/>
+		<enumElement value="EAknSoftkeySelect"/>
+		<enumElement value="EAknSoftkeyOptions"/>
+		<enumElement value="EAknSoftkeyBack"/>
+		<enumElement value="EAknSoftkeyMark"/>
+		<enumElement value="EAknSoftkeyUnmark"/>
+		<enumElement value="EAknSoftkeyInsert"/>
+		<enumElement value="EAknSoftkeyYes"/>
+		<enumElement value="EAknSoftkeyNo"/>
+		<enumElement value="EAknSoftkeyDone"/>
+		<enumElement value="EAknSoftkeyClose"/>
+		<enumElement value="EAknSoftkeyExit"/>
+		<enumElement value="EAknSoftkeyClear"/>
+		<enumElement value="EAknSoftkeyUnlock"/>
+		<enumElement value="EAknSoftkeySave"/>
+		<enumElement value="EAknSoftkeyShow"/>
+		<enumElement value="EAknSoftkeyListen"/>
+		<enumElement value="EAknSoftkeyRead"/>
+		<enumElement value="EAknSoftkeySearch"/>
+		<enumElement value="EAknSoftkeyEmpty"/>
+		<enumElement value="EAknSoftkeyLock"/>
+		<enumElement value="EAknSoftkeyCall"/>
+		<enumElement value="EAknSoftkeyAgain"/>
+		<enumElement value="EAknSoftkeyQuit"/>
+		<enumElement value="EAknSoftkeyDetails"/>
+		<enumElement value="EAknSoftkeyNext"/>
+		<enumElement value="EAknSoftkeySend"/>
+		<enumElement value="EAknSoftkeyAnswer"/>
+		<enumElement value="EAknSoftkeyHide"/>
+	</enumPropertyDeclaration>
+	
+	<compoundPropertyDeclaration editableType="com.nokia.sdt.series60.CBA.Type_MSK"
+									qualifiedName="com.nokia.sdt.series60.CBAProperty_3_2">
+		<property name="leftText" type="localizedString" default="" 
+			descriptionKey="leftTextDescription"
+			editorClass="com.nokia.sdt.symbian.ui.editors.ScalableTextEditorFactory" />
+		<enumProperty name="leftId" type="com.nokia.sdt.series60.CBA.LeftRight.Id" default="EAknSoftkeyOptions"
+			descriptionKey="leftIdDescription" />
+		<property name="rightText" type="localizedString" default="" 
+			descriptionKey="rightTextDescription"
+			editorClass="com.nokia.sdt.symbian.ui.editors.ScalableTextEditorFactory" />
+		<enumProperty name="rightId" type="com.nokia.sdt.series60.CBA.LeftRight.Id" default="EAknSoftkeyExit"
+			descriptionKey="rightIdDescription" />
+		
+		<property name="middleText" type="localizedString" default="" 
+			descriptionKey="middleTextDescription" />
+		<enumProperty name="middleId" type="com.nokia.sdt.series60.CBA.MSK.Id" default="EAknSoftkeyEmpty"
+			descriptionKey="middleIdDescription" />
+		
+		<enumProperty name="type" type="string" category="Hidden" />
+	</compoundPropertyDeclaration>
+		
+	<component friendlyName="%friendlyName" 
+		qualifiedName="com.nokia.sdt.series60.CBA" 
+		baseComponent="com.nokia.sdt.series60.CBABase"
+		category="System"
+		instanceNameRoot="controlPane"
+		version="1.0">
+
+		<symbian sdkName="com.nokia.series60" minSDKVersion="3.2.0"
+			className="CEikButtonGroupContainer" classHelpTopic=""
+			resourceType="CBA" resourceHelpTopic="" />
+
+		<documentation>
+			<information>%information</information>
+		</documentation>
+
+		<designerImages smallIconFile="CBA_sm.png" 
+			largeIconFile="CBA.png"/>
+		
+		<attributes>
+			<attribute key="options-menu-property-name">mskReference</attribute>
+		</attributes>
+		
+		<extensionProperties name="default">
+			<componentReferenceProperty category="Middle Soft Key Menu" scope="model" constraint="com.nokia.sdt.series60.MenuBar" 
+				name="mskReference" descriptionKey="mskReferenceDescription" />
+		</extensionProperties>
+		
+		<properties>
+			<compoundProperty category="Behavior" name="info" type="com.nokia.sdt.series60.CBAProperty_3_2"
+				descriptionKey="infoKey" />			
+		</properties>
+		
+		<implementations>
+			&common_implementations;
+			<implementation>
+				<interface id="com.nokia.sdt.datamodel.adapter.IPropertyExtenders"/>
+				<script file="CBA_PropertyExtender_3.2.js" prototype="CBAPropertyExtender"/>
+			</implementation>
+		</implementations>
+	
+	
+		
+	<events>
+		<event name="leftSoftKeyPressed" category="ControlPane" 
+	    	handlerNameTemplate="Handle{title(name)}LeftSoftKeyPressedL"
+	    	descriptionKey="leftSoftKeyPressedDescription"
+		/>
+		<event name="rightSoftKeyPressed" category="ControlPane" 
+	    	handlerNameTemplate="Handle{title(name)}RightSoftKeyPressedL"
+	    	descriptionKey="rightSoftKeyPressedDescription"
+		/>
+		<event name="middleSoftKeyPressed" category="ControlPane" 
+	    	handlerNameTemplate="Handle{title(name)}MiddleSoftKeyPressedL"
+	    	descriptionKey="middleSoftKeyPressedDescription"
+		/>
+	</events>
+		<sourceMapping>
+ 		  <select property="info">
+ 		  	<!-- only emit something for custom CBAs -->
+		    <choice value="com.nokia.sdt.series60.CBA.Type.CUSTOM">
+		    	<!-- this struct MOVES between uikon.rh and eikon.rh with each release! -->
+		    	<mapResource struct="CBA" headers="uikon.rh eikon.rh">
+			        <mapResourceMember property="info" member="buttons[0]"  struct="CBA_BUTTON" headers="uikon.rh eikon.rh">
+			           <mapEnumMember property="leftId" member="id" 
+			           headers="avkon.rsg"
+						uniqueValue="UNIQUE"
+						nameAlgorithm="com.nokia.sdt.component.symbian.NAME_ALG_COMMANDS"
+			           />
+			           <mapSimpleMember property="leftText" member="txt"/>
+			        </mapResourceMember>
+			        <mapResourceMember property="info" member="buttons[1]"  struct="CBA_BUTTON" headers="uikon.rh eikon.rh">
+			           <mapEnumMember property="rightId" member="id" 
+			           headers="avkon.rsg"
+						uniqueValue="UNIQUE"
+						nameAlgorithm="com.nokia.sdt.component.symbian.NAME_ALG_COMMANDS"
+			           />
+			           <mapSimpleMember property="rightText" member="txt"/>
+			        </mapResourceMember>
+
+			        <mapResourceMember property="info" member="buttons[2]"  struct="CBA_BUTTON" headers="uikon.rh eikon.rh">
+			           <mapEnumMember property="middleId" member="id" 
+			           headers="avkon.rsg"
+						uniqueValue="UNIQUE"
+						nameAlgorithm="com.nokia.sdt.component.symbian.NAME_ALG_COMMANDS"
+			           />
+			           <mapSimpleMember property="middleText" member="txt"/>
+			        </mapResourceMember>
+
+		        </mapResource>
+		    </choice>
+		    <choice/>
+		    
+		  </select>
+		</sourceMapping>
+		
+		<sourceGen forms="AppUi AknView HandleCommandSwitchDispatch">
+			<inline scope="prototype">
+include("cbaLibrary.js")
+			</inline>
+
+			<template form="AknView" phase="MainSystemIncludes"><![CDATA[
+#include <eikbtgpc.h>
+]]>			</template>
+
+			<templateGroup ifEvents="middleSoftKeyPressed">
+			
+			<template phase="UserHandlers">
+TBool ${event.handlerName}( TInt aCommand );
+			</template>
+
+			<defineLocation id="MiddleSoftKeyPressedMethod" baseLocation="MAIN_FILE"
+					owned="false"
+					isEventHandler="true"
+					location="function(${handlerClassName}::${event.handlerName}(TInt))">
+					<template><![CDATA[
+/** 
+ * Handle the ${event.eventName} event.
+ * @return ETrue if the command was handled, EFalse if not
+ */
+TBool ${handlerClassName}::${event.handlerName}( TInt aCommand )
+	{
+	// TODO: implement ${event.eventName} event handler
+	return EFalse;
+	}
+]]>				
+					</template>
+				</defineLocation>
+			
+				<template location="MiddleSoftKeyPressedMethod" />
+	
+				<template form="HandleCommandSwitchDispatch" phase="SwitchContents" 
+					ifEvents="middleSoftKeyPressed"><![CDATA[<%	
+			var middleId = getCbaMiddleId(instance);
+			if (middleId == "EAknSoftkeyOptions") {
+				// S60 explicitly stops further processing when Options is caught by the
+				// AknView::HandleCommandL() or AknAppUi::ProcessCommandL() routines
+				warning(formatString(lookupString("maskedMiddleSoftKeyEventHandler"),
+					instance.name));
+			}
+			if (middleId != null && middleId != "") { %>
+	case ${middleId}:
+		commandHandled = ${event.handlerName}( aCommand );
+		break;
+<% } %>]]>		</template>		
+			</templateGroup>
+			
+			<template form="AknView" phase="DoActivateL"><![CDATA[
+<% 	var contextMenuId = Engine.getGeneratedResource(lookupInstanceByName(properties.mskReference))
+    if (contextMenuId != null) contextMenuId = contextMenuId.toUpperCase() %>			
+<% if (properties.mskReference != "") { %>MenuBar()->SetContextMenuTitleResourceId( ${contextMenuId} );<% } %>
+]]>			</template>
+			
+			&common_source;
+			
+		</sourceGen>	
+		
+	</component>
+</componentDefinition>