uidesigner/com.nokia.sdt.series60.componentlibrary/components/app/CAknDocument.component
changeset 0 fb279309251b
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/uidesigner/com.nokia.sdt.series60.componentlibrary/components/app/CAknDocument.component	Fri Apr 03 23:33:03 2009 +0100
@@ -0,0 +1,178 @@
+<?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:xsi="http://www.w3.org/2001/XMLSchema-instance">
+	<component 
+			friendlyName="Avkon Document" 
+			qualifiedName="com.nokia.sdt.series60.CAknDocument" 
+			instanceNameRoot="document"
+			version="1.0">
+		<documentation>
+			<information>The Series 60 top-level Avkon document class.  
+			This is a class which serves to manage data that can be loaded
+			and saved.</information>
+		</documentation>
+		<symbian sdkName="com.nokia.series60" minSDKVersion="2.0" 
+			className="CAknDocument" classHelpTopic="" />
+		<!-- <designerImages smallIconFile="CAknView_sm.png" largeIconFile="CAknView.png" layoutImageFile="CAknView.png"/> -->
+		<attributes>
+			<attribute key="not-in-toolbox">true</attribute>
+		</attributes>
+		<designerImages smallIconFile="CAknDocument_sm.png" 
+			largeIconFile="CAknDocument.png"/>
+		<properties>
+			<property category="Design" name="className" type="string"/>
+		    <property category="Document" name="name" type="string" />
+			<property category="Document" name="fileMode" type="integer"/>
+			 	<!-- TODO: find out what the integer in CEikDocument::SetAppFileModeL() means -->
+		</properties>
+		
+		<sourceGen>
+
+			<defineLocation id="HEADER_FILE" domain="cpp" dir="${inc}" 
+				file="${instanceName}.h"
+				owned="false"
+				location="">
+			</defineLocation>
+			
+			<template location="HEADER_FILE">
+#ifndef ${instanceName.toUpperCase()}_H
+#define ${instanceName.toUpperCase()}_H
+
+			</template>
+
+			<template location="HEADER_FILE"><![CDATA[
+#include <akndoc.h>
+]]>		
+			</template>				
+			
+			<template location="HEADER_FILE"><![CDATA[
+class CEikAppUi;
+]]>
+			</template>		
+
+			<defineLocation id="CLASS" baseLocation="HEADER_FILE"
+				owned="false"
+				location="class(${className})">
+				<template><![CDATA[
+/**
+* @class	${className} ${instanceName}.h
+* @brief	A CAknDocument-derived class is required by the S60 application 
+*           framework. It is responsible for creating the AppUi object. 
+*/
+class ${className} : public CAknDocument
+	{
+public: 
+	// constructor
+	static ${className}* NewL( CEikApplication& aApp );
+
+private: 
+	// constructors
+	${className}( CEikApplication& aApp );
+	void ConstructL();
+	
+public: 
+	// from base class CEikDocument
+	CEikAppUi* CreateAppUiL();
+	};
+]]>				</template>
+			</defineLocation>
+			
+			<template location="CLASS"/>
+			
+			<template location="HEADER_FILE">
+#endif // ${instanceName.toUpperCase()}_H
+			</template>
+
+			<defineLocation id="MAIN_FILE" domain="cpp" dir="${src}" 
+				file="${instanceName}.cpp"
+				owned="false"
+				location="">
+			</defineLocation>
+			
+			<defineLocation id="MAIN_USER_INCLUDES" baseLocation="MAIN_FILE"
+				location="region(Generated User Includes)"
+				filter="unique-includes">
+				<template ><![CDATA[
+#include "${instanceName}.h"
+]]>				</template>				
+			</defineLocation>
+			
+			<template location="MAIN_USER_INCLUDES"/>
+			
+			<template location="MAIN_FILE"><![CDATA[
+/**
+ * @brief Constructs the document class for the application.
+ * @param anApplication the application instance
+ */
+${className}::${className}( CEikApplication& anApplication )
+	: CAknDocument( anApplication )
+	{
+	}
+
+/**
+ * @brief Completes the second phase of Symbian object construction. 
+ * Put initialization code that could leave here.  
+ */ 
+void ${className}::ConstructL()
+	{
+	}
+	
+/**
+ * Symbian OS two-phase constructor.
+ *
+ * Creates an instance of ${className}, constructs it, and
+ * returns it.
+ *
+ * @param aApp the application instance
+ * @return the new ${className}
+ */
+${className}* ${className}::NewL( CEikApplication& aApp )
+	{
+	${className}* self = new ( ELeave ) ${className}( aApp );
+	CleanupStack::PushL( self );
+	self->ConstructL();
+	CleanupStack::Pop( self );
+	return self;
+	}
+]]>
+			</template>
+
+			<defineLocation id="CREATE_APPUIL" baseLocation="MAIN_FILE"
+				owned="false"
+				location="function(${className}::CreateAppUiL())">
+				<template><![CDATA[
+/**
+ * @brief Creates the application UI object for this document.
+ * @return the new instance
+ */	
+CEikAppUi* ${className}::CreateAppUiL()
+	{
+	}
+]]>				
+				</template>			
+			</defineLocation>
+			
+			<template location="CREATE_APPUIL"/>
+			
+			<!-- child contributions -->	
+			<inline>
+			// iterate children
+			contribs.addAll(Engine.generateChildContributions(form))
+			
+			// fix up the phases so they point to real locations
+			Engine.assignLocationsForPhase(contribs, "MainUserIncludes", "MAIN_USER_INCLUDES");
+			Engine.assignLocationsForPhase(contribs, "CreateAppUiL", "CREATE_APPUIL");
+
+			//Engine.removeDuplicateContributionsForLocation(contribs, "MAIN_USER_INCLUDES");
+			</inline>
+
+		</sourceGen>		
+	</component>
+</componentDefinition>