uidesigner/com.nokia.sdt.series60.componentlibrary/components/navipane/NaviBase.component
changeset 0 fb279309251b
equal deleted inserted replaced
-1:000000000000 0:fb279309251b
       
     1 <?xml version="1.0" encoding="UTF-8"?>
       
     2 <!-- Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies). -->
       
     3 <!-- All rights reserved. -->
       
     4 <!-- This component and the accompanying materials are made available -->
       
     5 <!-- under the terms of the License "Eclipse Public License v1.0" -->
       
     6 <!-- which accompanies this distribution, and is available -->
       
     7 <!-- at the URL "http://www.eclipse.org/legal/epl-v10.html". -->
       
     8 
       
     9 <componentDefinition xmlns="http://www.nokia.com/sdt/emf/component" 
       
    10 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
       
    11 	<component baseComponent="com.nokia.sdt.series60.ControlBase" 
       
    12 		friendlyName="%friendlyName" 
       
    13 		qualifiedName="com.nokia.sdt.series60.NaviBase" 
       
    14 		abstract="true"
       
    15 		version="1.0">
       
    16 		<symbian sdkName="com.nokia.series60" minSDKVersion="2.0" 
       
    17 			 />
       
    18 		<attributes>
       
    19 			<attribute key="is-navipane-content">true</attribute>
       
    20 			<attribute key="is-status-pane-content">true</attribute>
       
    21 			<attribute key="is-non-resizable-or-moveable-layout-object">true</attribute>
       
    22 			
       
    23 			<attribute key="never-add-component">true</attribute>
       
    24 			<attribute key="is-system-component">true</attribute>
       
    25 			
       
    26 			<attribute key="status-pane-id">EEikStatusPaneUidNavi</attribute>
       
    27 			
       
    28 		</attributes>
       
    29 		<propertyOverrides>
       
    30 			<propertyOverride name="location" category="Hidden"/>
       
    31 			<propertyOverride name="size" category="Hidden"/>
       
    32 		</propertyOverrides>
       
    33 		
       
    34 		<sourceGen>
       
    35 
       
    36 			<templateGroup id="NaviBaseSetup">
       
    37 			
       
    38 				<template phase="ForwardDeclarations" id="0">
       
    39 class CAknNavigationDecorator;
       
    40 				</template>
       
    41 				<template phase="InstanceVariables" id="0b">
       
    42 // any current navi decorator
       
    43 CAknNavigationDecorator* iNaviDecorator_;
       
    44 				</template>
       
    45 				<template phase="MainSystemIncludes" id="1a"><![CDATA[
       
    46 #include <aknnavide.h>
       
    47 ]]>				</template>
       
    48 				<template phase="Construct" id="1">
       
    49 iNaviDecorator_ = NULL;
       
    50 				</template>
       
    51 				<template phase="Destroy" id="2">
       
    52 if ( iNaviDecorator_ != NULL )
       
    53 	{
       
    54 	delete iNaviDecorator_;
       
    55 	iNaviDecorator_ = NULL;
       
    56 	}
       
    57 				</template>
       
    58 				<template phase="MainSystemIncludes" id="3"><![CDATA[
       
    59 #include <aknnavi.h>
       
    60 ]]>				</template>
       
    61 
       
    62 			</templateGroup>
       
    63 			
       
    64 			<template phase="SetupStatusPane" id="SetupPrelude"><![CDATA[
       
    65 // set the navi pane content
       
    66 TUid naviPaneUid = TUid::Uid( EEikStatusPaneUidNavi );
       
    67 CEikStatusPaneBase::TPaneCapabilities subPaneNavi = 
       
    68 	StatusPane()->PaneCapabilities( naviPaneUid );
       
    69 if ( subPaneNavi.IsPresent() && subPaneNavi.IsAppOwned() )
       
    70 	{
       
    71 	CAknNavigationControlContainer* naviPane = 
       
    72 		static_cast< CAknNavigationControlContainer* >( 
       
    73 			StatusPane()->ControlL( naviPaneUid ) );
       
    74 	if ( iNaviDecorator_ != NULL )
       
    75 		{
       
    76 		delete iNaviDecorator_;
       
    77 		iNaviDecorator_ = NULL;
       
    78 		}
       
    79 ]]>			
       
    80 			</template>
       
    81 
       
    82 			<!-- navi content must set iNaviDecorator_ -->
       
    83 			
       
    84 			<template phase="SetupStatusPane" id="SetupPostlude"><![CDATA[
       
    85 	naviPane->PushL( *iNaviDecorator_ );
       
    86 	}
       
    87 ]]>			
       
    88 			</template>
       
    89 
       
    90 			<template phase="CleanupStatusPane" id="CleanupPostlude"><![CDATA[
       
    91 // reset the navi pane 
       
    92 TUid naviPaneUid = TUid::Uid( EEikStatusPaneUidNavi );
       
    93 CEikStatusPaneBase::TPaneCapabilities subPaneNavi = 
       
    94 	StatusPane()->PaneCapabilities( naviPaneUid );
       
    95 if ( subPaneNavi.IsPresent() && subPaneNavi.IsAppOwned() )
       
    96 	{
       
    97 	CAknNavigationControlContainer* naviPane = 
       
    98 		static_cast< CAknNavigationControlContainer* >( 
       
    99 			StatusPane()->ControlL( naviPaneUid ) );
       
   100 	if ( iNaviDecorator_ != NULL )
       
   101 		{
       
   102 		naviPane->Pop( iNaviDecorator_ );
       
   103 		delete iNaviDecorator_;
       
   104 		iNaviDecorator_ = NULL;
       
   105 		}
       
   106 	}
       
   107 ]]>
       
   108 			</template>
       
   109 			
       
   110 		</sourceGen>
       
   111 	</component>
       
   112 </componentDefinition>