uidesigner/com.nokia.sdt.series60.componentlibrary/components/view/CAknView_common.inc
Remove makefile dependency checks on SBSv2 builder since they don't apply.
Remove SBSv2BuilderInfo.java and functionality. That has been used for loading the SBSv2 tab, which no longer exists.
Now the SBSv2 data in the .cproject is loaded directly by the build configuration loading mechanism.
<!-- This component must have a child of type CBA -->
<sourceMapping>
<mapResource struct="AVKON_VIEW" headers="avkon.rsg avkon.rh">
<select property="[com.nokia.sdt.series60.CAknForm]">
<choice value="">
<select property="[com.nokia.sdt.series60.CBA]">
<choice value="">
<!-- no CBA -->
</choice>
<choice>
<select property="[com.nokia.sdt.series60.CBA].info">
<choice value="com.nokia.sdt.series60.CBA.Type.CUSTOM">
<!-- emit a reference to the resource generated -->
<mapReferenceMember property="[com.nokia.sdt.series60.CBA]" member="cba"/>
</choice>
<choice>
<!-- else, emit the builtin -->
<mapIdentifierMember property="[com.nokia.sdt.series60.CBA].info" member="cba" />
</choice>
</select>
</choice>
</select>
<!-- only emit menubar if child is not CAknForm -->
<mapReferenceMember property="optionsMenu" member="menubar" />
<select property="[com.nokia.sdt.series60.Toolbar]">
<choice value="">
<!-- no tool bar, default value is 0 -->
<mapFixedMember member="toolbar" value="0" />
</choice>
<choice>
<!-- emit a reference to the resource generated -->
<mapReferenceMember property="[com.nokia.sdt.series60.Toolbar]" member="toolbar"/>
</choice>
</select>
</choice>
<choice/> <!-- don't emit the CBA reference to the view resource, if child is CAknForm -->
</select>
</mapResource>
</sourceMapping>
<sourceGen forms="RootAppUi">
<inline scope="prototype">
include("../containers/containerLibrary.js")
include("../cba/cbaLibrary.js")
</inline>
<!-- HEADER FILE -->
<expandMacro name="HeaderFileTemplate"
LocationPrefix="HEADER"
OwnedSystemIncludesRegionName="Generated Includes"
RealizeOwnedUserIncludes="false"
RealizeOwnedTypedefs="false" />
<expandMacro name="AddCppIncludes"
Location="HEADER_OWNED_SYSTEM_INCLUDES"
Headers="aknview.h" />
<!-- we don't make custom types here -->
<expandMacro name="ClassTemplate"
BaseClassName="CAknView"
RealizePublicOwnedTypes="false"
RealizePrivateOwnedTypes="false">
<expandArgument name="ClassComment"><![CDATA[
/**
* Avkon view class for ${instanceName}. It is register with the view server
* by the AppUi. It owns the container control.
* @class ${className} ${instanceName}.h
*/
]]> </expandArgument>
<expandArgument name="InitialPublicHeadContent"><![CDATA[
// constructors and destructor
${className}();
static ${className}* NewL();
static ${className}* NewLC();
void ConstructL();
virtual ~${className}();
// from base class CAknView
TUid Id() const;
void HandleCommandL( TInt aCommand );
]]> </expandArgument>
<expandArgument name="InitialProtectedHeadContent"><![CDATA[
// from base class CAknView
void DoActivateL(
const TVwsViewId& aPrevViewId,
TUid aCustomMessageId,
const TDesC8& aCustomMessage );
void DoDeactivate();
void HandleStatusPaneSizeChange();
]]> </expandArgument>
<expandArgument name="InitialPrivateHeadContent"><![CDATA[
void SetupStatusPaneL();
void CleanupStatusPane();
]]> </expandArgument>
</expandMacro>
<!-- MAIN FILE -->
<!-- make the source file -->
<!-- don't automatically generate header #include since we need
to inject .hrh first -->
<expandMacro name="SourceFileTemplate"
LocationPrefix="MAIN"
HeaderFileName="" />
<expandMacro name="AddCppIncludes"
Location="MAIN_OWNED_SYSTEM_INCLUDES"
Headers="aknviewappui.h eikmenub.h avkon.hrh" />
<!-- forcibly include the app's hrh file since the ::Id() method is not owned -->
<template location="MAIN_OWNED_USER_INCLUDES">
#include "${getProjectName()}.hrh"
</template>
<template location="MAIN_OWNED_USER_INCLUDES">
#include "${instanceName}.h"
</template>
<!-- only define; declared above -->
<expandMacro name="DefineMethodWithOwnedBody"
DefnLocation="MAIN_FILE"
IsOwned="false"
FunctionLocationId="CONSTRUCTOR"
FunctionName="${className}"
ReturnType=""
FunctionArgs="">
<expandArgument name="FunctionComment">
/**
* First phase of Symbian two-phase construction. Should not contain any
* code that could leave.
*/
</expandArgument>
</expandMacro>
<!-- only define; declared above -->
<expandMacro name="DefineMethodWithOwnedBody"
DefnLocation="MAIN_FILE"
IsOwned="false"
FunctionLocationId="DESTRUCTOR"
FunctionName="~${className}"
ReturnType=""
FunctionArgs="">
<expandArgument name="FunctionComment">
/**
* The view's destructor removes the container from the control
* stack and destroys it.
*/
</expandArgument>
</expandMacro>
<!-- stock template code for one-time non-owned functions -->
<template location="MAIN_FILE"><![CDATA[
/**
* Symbian two-phase constructor.
* This creates an instance then calls the second-phase constructor
* without leaving the instance on the cleanup stack.
* @return new instance of ${className}
*/
${className}* ${className}::NewL()
{
${className}* self = ${className}::NewLC();
CleanupStack::Pop( self );
return self;
}
/**
* Symbian two-phase constructor.
* This creates an instance, pushes it on the cleanup stack,
* then calls the second-phase constructor.
* @return new instance of ${className}
*/
${className}* ${className}::NewLC()
{
${className}* self = new ( ELeave ) ${className}();
CleanupStack::PushL( self );
self->ConstructL();
return self;
}
]]>
</template>
<!-- only define; declared above -->
<expandMacro name="DefineMethodWithOwnedBody"
DefnLocation="MAIN_FILE"
IsOwned="false"
FunctionLocationId="CONSTRUCTL_METHOD"
FunctionName="ConstructL"
ReturnType="void"
FunctionArgs=""
OwnedRegionName="Generated Code">
<expandArgument name="FunctionComment">
/**
* Second-phase constructor for view.
* Initialize contents from resource.
*/
</expandArgument>
<expandArgument name="FunctionBody">
BaseConstructL( ${resourceName$upper} );
</expandArgument>
<expandArgument name="EndFunctionBody">
// add your own initialization code here
</expandArgument>
</expandMacro>
<!-- only define; declared above -->
<expandMacro name="DefineMethod"
DefnLocation="MAIN_FILE"
IsOwned="false"
FunctionLocationId="ID_METHOD"
FunctionName="Id"
ReturnType="TUid"
IsConst="true"
FunctionArgs="">
<expandArgument name="FunctionComment">
/**
* @return The UID for this view
*/
</expandArgument>
<expandArgument name="FunctionBody">
return TUid::Uid( ${getViewUidConstant(instance, contribs)} );
</expandArgument>
</expandMacro>
<!-- only define; declared above -->
<expandMacro name="DefineMethodWithOwnedBody"
DefnLocation="MAIN_FILE"
IsOwned="false"
FunctionLocationId="HANDLECOMMANDL"
FunctionName="HandleCommandL"
ReturnType="void"
FunctionArgs="TInt aCommand"
OwnedRegionName="Generated Code">
<expandArgument name="FunctionComment">
/**
* Handle a command for this view (override)
* @param aCommand command id to be handled
*/
</expandArgument>
<expandArgument name="FunctionBody" />
</expandMacro>
<template location="HANDLECOMMANDL_BODY"><![CDATA[
TBool commandHandled = EFalse;
switch ( aCommand )
{ // code to dispatch to the AknView's menu and CBA commands is generated here
<% var handlerContribs = Engine.generateChildContributions("HandleCommandSwitchDispatch");
// resolve the contents for switch to this method
var switchContribs = Engine.getContributionsForPhase(handlerContribs, "SwitchContents");
Engine.assignLocationsForPhase(switchContribs, "SwitchContents", "HANDLECOMMANDL_BODY")
contribs.addAll(switchContribs);
handlerContribs.removeAll(switchContribs);
%> default:
break;
}
<% // Handle any leftover handler contribs that occur after the switch here.
var postSwitchContribs = Engine.getContributionsForPhase(handlerContribs, "PostSwitchContents");
Engine.assignLocationsForPhase(postSwitchContribs, "PostSwitchContents", "HANDLECOMMANDL_BODY")
contribs.addAll(postSwitchContribs);
handlerContribs.removeAll(postSwitchContribs);
// Remaining ones go into this file
var includeContribs = Engine.getContributionsForPhase(handlerContribs, "MainSystemIncludes");
Engine.assignLocationsForPhase(includeContribs, "MainSystemIncludes", "MAIN_OWNED_SYSTEM_INCLUDES");
contribs.addAll(includeContribs);
%>
if ( !commandHandled )
{
<% // Handle 'handleCommand' event here. This is a special case for handler
// code since the HandleCommandL method is mostly entirely generated.
var event = instance.events['handleCommand'];
var hasFormChild = findAknFormChild(children) != null;
var childWantsExit = childWantsExitBehavior(children);
var id = findCbaRightId(children);
if (event) {
%> // dispatch to ${event.eventName} handler
commandHandled = ${event.handlerName}( aCommand );
<% if (!hasFormChild && childWantsExit && id != null && id != "") { %>
if ( !commandHandled )
{
if ( aCommand == ${id} )
{
AppUi()->HandleCommandL( EEikCmdExit );
}
}<%
}
} else if (!hasFormChild && childWantsExit && id != null && id != "") { %>
if ( aCommand == ${id} )
{
AppUi()->HandleCommandL( EEikCmdExit );
}
<% } %>
}
]]> </template>
<!-- only define; declared above -->
<expandMacro name="DefineMethodWithOwnedBody"
DefnLocation="MAIN_FILE"
IsOwned="false"
FunctionLocationId="DOACTIVATEL_METHOD"
FunctionName="DoActivateL"
ReturnType="void"
FunctionArgs="const TVwsViewId& /*aPrevViewId*/, TUid /*aCustomMessageId*/, const TDesC8& /*aCustomMessage*/">
<expandArgument name="FunctionComment">
/**
* Handles user actions during activation of the view,
* such as initializing the content.
*/
</expandArgument>
<expandArgument name="FunctionBody"><![CDATA[
SetupStatusPaneL();
<% var cba = findImmediateChildByComponentId(children, "com.nokia.sdt.series60.CBABase");
if (cba && getComponentVersions().getMajor() < 3) {%>
CEikButtonGroupContainer* cba = AppUi()->Cba();
if ( cba != NULL )
{
cba->MakeVisible( EFalse );
}
<% } %>
]]> </expandArgument>
</expandMacro>
<!-- only define; declared above -->
<expandMacro name="DefineMethodWithOwnedBody"
DefnLocation="MAIN_FILE"
IsOwned="false"
FunctionLocationId="DODEACTIVATE_METHOD"
FunctionName="DoDeactivate"
ReturnType="void"
FunctionArgs="">
<expandArgument name="FunctionComment">
/**
*/
</expandArgument>
</expandMacro>
<!-- START EVENT deactivated: placed here since it must precede standard code -->
<templateGroup ifEvents="deactivated">
<!-- API impl above -->
<expandMacro name="GenerateUserEventHandlerFunction"
DefnLocation="MAIN_FILE"
DeclLocation="CLASS_PROTECTED_USER_HANDLERS"
ReturnType="void"
FunctionArgs=""
FunctionLocationId="DeactivatedHandlerBody" />
<template location="DODEACTIVATE_METHOD_BODY">
${event.handlerName}();
</template>
<!--
<template phase="UserHandlers">
void ${event.handlerName}();
</template>
<defineLocation id="DeactivatedHandlerBody" 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 location="DeactivatedHandlerBody" />
-->
</templateGroup>
<!-- END EVENT deactivated -->
<template location="DODEACTIVATE_METHOD_BODY"><![CDATA[
CleanupStatusPane();
<% var cba = findImmediateChildByComponentId(children, "com.nokia.sdt.series60.CBABase");
if (cba && getComponentVersions().getMajor() < 3) {%>
CEikButtonGroupContainer* cba = AppUi()->Cba();
if ( cba != NULL )
{
cba->MakeVisible( ETrue );
cba->DrawDeferred();
}
<% } %>
]]> </template>
<!-- only define; declared above -->
<!-- any navi container of StatusPane fills this in -->
<expandMacro name="DefineMethod"
DefnLocation="MAIN_FILE"
IsOwned="true"
FunctionLocationId="SETUPSTATUSPANEL_METHOD"
FunctionName="SetupStatusPaneL"
ReturnType="void"
FunctionArgs="">
<expandArgument name="FunctionComment">
</expandArgument>
</expandMacro>
<!-- only define; declared above -->
<!-- any navi container of StatusPane fills this in -->
<expandMacro name="DefineMethod"
DefnLocation="MAIN_FILE"
IsOwned="true"
FunctionLocationId="CLEANUPSTATUSPANE_METHOD"
FunctionName="CleanupStatusPane"
ReturnType="void"
FunctionArgs="">
<expandArgument name="FunctionComment">
</expandArgument>
</expandMacro>
<!-- only define; declared above -->
<expandMacro name="DefineMethodWithOwnedBody"
DefnLocation="MAIN_FILE"
IsOwned="false"
FunctionLocationId="HANDLESTATUSPANESIZECHANGE_METHOD"
FunctionName="HandleStatusPaneSizeChange"
ReturnType="void"
FunctionArgs=""
OwnedRegionName="Generated Code">
<expandArgument name="FunctionComment">
/**
* Handle status pane size change for this view (override)
*/
</expandArgument>
<expandArgument name="StartFunctionBody">
CAknView::HandleStatusPaneSizeChange();
// this may fail, but we're not able to propagate exceptions here
TVwsViewId view;
AppUi()->GetActiveViewId( view );
if ( view.iViewUid == Id() )
{
TInt result;
TRAP( result, SetupStatusPaneL() );
}
</expandArgument>
</expandMacro>
<template mode="upgrade(1.1,1.2)" location="HANDLESTATUSPANESIZECHANGE_METHOD">
@@@ Remove call to SetupStatusPaneL() from HandleStatusPaneSizeChange()
- TInt result;
- TRAP( result, SetupStatusPaneL() );
+ TVwsViewId view;
+ AppUi()->GetActiveViewId( view );
+ if ( view.iViewUid == Id() )
+ {
+ TInt result;
+ TRAP( result, SetupStatusPaneL() );
+ }
</template>
<!-- event handling code -->
<templateGroup ifEvents="handleCommand">
<!-- API half and invocation in HandleCommandL code above -->
<expandMacro name="GenerateUserEventHandlerFunction"
FunctionLocationId="CommandHandlerMethod"
FunctionArgs="TInt aCommand"
ReturnType="TBool"
DefaultReturn="EFalse"
DeclLocation="CLASS_PROTECTED_USER_HANDLERS"
DefnLocation="MAIN_FILE">
<expandArgument name="FunctionComment">
/**
* Handle the ${event.eventName} event.
* @return ETrue if event was handled, EFalse if not
*/
</expandArgument>
</expandMacro>
</templateGroup>
<!-- START EVENT handleStatusPaneSizeChange -->
<templateGroup ifEvents="handleStatusPaneSizeChange">
<!-- API impl above -->
<expandMacro name="GenerateUserEventHandlerFunction"
FunctionLocationId="StatusPaneSizeChangeHandlerMethod"
FunctionArgs=""
DeclLocation="CLASS_PROTECTED_USER_HANDLERS"
DefnLocation="MAIN_FILE">
</expandMacro>
<template location="HANDLESTATUSPANESIZECHANGE_METHOD_BODY">
${event.handlerName}();
</template>
</templateGroup>
<!-- END EVENT handleStatusPaneSizeChange -->
<inline>
if (!Engine.formMatches(form, ["RootAppUi"])) {
this.getHrhFiles(contribs);
}
</inline>
<!-- child contributions -->
<inline scope="prototype">
include("../srcgenLibrary.js");
</inline>
<inline>
if (!Engine.formMatches(form, ["RootAppUi"])) {
// clear out any image stuff
resetImagePropertyState(instance);
// We expect one container child to supply the contents
// for the phases below.
// gather default and view-specific contributions
contribs.addAll(Engine.generateChildContributions("|AknView"))
}
</inline>
<!-- START EVENT activated: handle here to ensure it's the last call -->
<templateGroup ifEvents="activated">
<!-- API impl above -->
<expandMacro name="GenerateUserEventHandlerFunction"
FunctionLocationId="ActivatedHandlerBody"
FunctionArgs=""
DeclLocation="CLASS_PROTECTED_USER_HANDLERS"
DefnLocation="MAIN_FILE">
</expandMacro>
<template location="DOACTIVATEL_METHOD_BODY">
${event.handlerName}();
</template>
</templateGroup>
<!-- END EVENT activated -->
<inline>
if (!Engine.formMatches(form, ["RootAppUi"])) {
// fix up the phases so they point to real locations
Engine.assignLocationsForPhase(contribs, "ClassSource", "MAIN_FILE");
Engine.assignLocationsForPhase(contribs, "ClassHeader", "HEADER_FILE");
Engine.assignLocationsForPhase(contribs, "MainConstants", "MAIN_OWNED_CONSTANTS");
Engine.assignLocationsForPhase(contribs, "MainSystemIncludes", "MAIN_OWNED_SYSTEM_INCLUDES");
Engine.assignLocationsForPhase(contribs, "MainUserIncludes", "MAIN_OWNED_USER_INCLUDES");
Engine.assignLocationsForPhase(contribs, "Construct", "CONSTRUCTOR_BODY");
Engine.assignLocationsForPhase(contribs, "Initialize", "CONSTRUCTL_METHOD_BODY");
Engine.assignLocationsForPhase(contribs, "Destroy", "DESTRUCTOR_BODY");
Engine.assignLocationsForPhase(contribs, "DoActivateL", "DOACTIVATEL_METHOD_BODY");
Engine.assignLocationsForPhase(contribs, "DoDeactivate", "DODEACTIVATE_METHOD_BODY");
Engine.assignLocationsForPhase(contribs, "HeaderIncludes", "HEADER_OWNED_SYSTEM_INCLUDES");
Engine.assignLocationsForPhase(contribs, "ForwardDeclarations", "HEADER_OWNED_FORWARD_DECLARATIONS");
Engine.assignLocationsForPhase(contribs, "InstanceVariables", "CLASS_PRIVATE_OWNED_INSTANCE_VARIABLES");
Engine.assignLocationsForPhase(contribs, "ClassMethods", "CLASS_PUBLIC_OWNED_METHODS");
Engine.assignLocationsForPhase(contribs, "SetupStatusPane", "SETUPSTATUSPANEL_METHOD");
Engine.assignLocationsForPhase(contribs, "CleanupStatusPane", "CLEANUPSTATUSPANE_METHOD");
Engine.assignLocationsForPhase(contribs, "OverriddenMethods", "CLASS_PROTECTED_OVERRIDDEN_METHODS");
Engine.assignLocationsForPhase(contribs, "UserHandlers", "CLASS_PROTECTED_USER_HANDLERS");
Engine.assignLocationsForPhase(contribs, "EventIncludes", "HEADER_EVENT_HANDLER_INCLUDES");
Engine.assignLocationsForPhase(contribs, "BaseClassList", "CLASS_BASES");
Engine.assignLocationsForPhase(contribs, "ClassPublic", "CLASS_PUBLIC");
Engine.assignLocationsForPhase(contribs, "ClassProtected", "CLASS_PROTECTED");
Engine.assignLocationsForPhase(contribs, "ClassPrivate", "CLASS_PRIVATE");
}
</inline>
<template id="IncludeRsgFile" location="MAIN_OWNED_SYSTEM_INCLUDES"><![CDATA[
#include <${resourceFileNameBase}.rsg>
]]> </template>
<!-- contributions as child -->
<template phase="MainUserIncludes" form="RootAppUi">
#include "${instanceName}.h"
</template>
<template phase="ForwardDeclarations" form="RootAppUi"><![CDATA[
class ${className};
]]> </template>
<template phase="InstanceVariables" form="RootAppUi"><![CDATA[
${className}* ${instanceMemberName};
]]> </template>
<template phase="Initialize" form="RootAppUi"><![CDATA[
${instanceMemberName} = ${className}::NewL();
AddViewL( ${instanceMemberName} );
]]> </template>
<template phase="Initialize" form="RootAppUi_InitialView"><![CDATA[
SetDefaultViewL( *${instanceMemberName} );
]]> </template>
<template phase="Initialize" form="RootAppUi_SetActiveTab"><![CDATA[
SetActiveTabByViewId( ${instanceMemberName}->Id() );
]]> </template>
<!-- patch from Carbide.c++ 1.2 by adding the regions -->
<!-- note: these patches are kind of ugly.
Since we can't unindent the access specifiers, we have to
add the patches to the main file. -->
<template mode="upgrade(1.0,1.1)" location="HEADER_FILE"><![CDATA[
@@@ Update class region comments to include public/protected/private section
- // [[[ begin generated region: do not modify [Generated Methods]
+ // [[[ begin [Public Section]
+ public:
+ // [[[ begin generated region: do not modify [Generated Methods]
- public:
]]> </template>
<template mode="upgrade(1.0,1.1)" location="HEADER_FILE"><![CDATA[
@@@ Update class region comments to include public/protected/private section
- // [[[ begin [Overridden Methods]
+
+ // ]]] end [Public Section]
+
+ // [[[ begin [Protected Section]
+ protected:
+ // [[[ begin [Overridden Methods]
- protected:
]]> </template>
<template mode="upgrade(1.0,1.1)" location="HEADER_FILE"><![CDATA[
@@@ Update class region comments to include public/protected/private section
- // [[[ begin generated region: do not modify [Generated Instance Variables]
+
+ // ]]] end [Protected Section]
+
+ // [[[ begin [Private Section]
+ private:
+ // [[[ begin generated region: do not modify [Generated Instance Variables]
- private:
]]> </template>
<template mode="upgrade(1.0,1.1)" location="HEADER_FILE"><![CDATA[
@@@ Update class region comments to include public/protected/private section
- // ]]] end generated region [Generated Instance Variables]
+ // ]]] end generated region [Generated Instance Variables]
+
+ // ]]] end [Private Section]
]]> </template>
</sourceGen>