Assign contact images with Symbian AIW
hamishwillee
(Talk | contribs) m (Hamishwillee - Bot update - Merge KB into wiki) |
hamishwillee
(Talk | contribs) |
Latest revision as of 05:02, 14 June 2012
Article Metadata
Tested with
Compatibility
Article
Contents |
Overview
This code snipped shows how to assign images to contacts using the AIW handler.
This snippet can be self-signed.
Preconditions
MMP file
The following library is required:
LIBRARY servicehandler.lib
In the resource file
Add the following headers:
#include <AiwCommon.hrh>
#include <AiwCommon.rh>
Then define a submenu item as follows in the MENU_PANE resource:
MENU_ITEM
{
command=EAssignSub;
cascade=r_Assign_menu;
txt = "Assign";
}
Then define the actual submenu item as follows:
RESOURCE MENU_PANE r_Assign_menu
{
items =
{
MENU_ITEM
{
command=EAIWPlaceHolder2;
txt = "";
}
};
}
After which you can define the AIW menu interest item as follows:
RESOURCE AIW_INTEREST r_aiwmenutst_ASSIGN
{
items =
{
AIW_CRITERIA_ITEM
{
id = EAIWPlaceHolder2;
serviceCmd = KAiwCmdAssign;
contentType = "*";
serviceClass = KAiwClassMenu;
}
};
}
Source file
Add the following header:
#include <AiwServiceHandler.h>Construct the CAiwServiceHandler and attach the menu:
iServiceHandler = CAiwServiceHandler::NewL();
iServiceHandler->AttachMenuL(R_ASSIGN_MENU, R_AIWMENUTST_ASSIGN);
Because the menu items for rotating were defined as submenus, you can handle adding the menu with the following code inside DynInitMenuPaneL:
if ( iServiceHandler->HandleSubmenuL( *aMenuPane ) )
{
return;
}
if(iImageFileName.Length()
&& BaflUtils::Parse(iImageFileName) == KErrNone)
{
CAiwGenericParamList& paramList = iServiceHandler->InParamListL();
TAiwVariant varFile(iImageFileName);
TAiwGenericParam paramFile( EGenericParamFile, varFile );
paramList.AppendL( paramFile );
TAiwVariant varMime(_L("image/jpeg"));
TAiwGenericParam paramMime( EGenericParamMIMEType, varMime );
paramList.AppendL( paramMime );
iServiceHandler->InitializeMenuPaneL(
*aMenuPane,
aResourceId,
EAIWExampleCmdLast1,
paramList);
}
else if(aResourceId == your Menu id goes here)
{
// Use aMenuPane->SetItemDimmed to dim out the menu item.
}
When the user selects the menu item, you just need to forward the command to CAiwServiceHandler in your command handler’s default block as follows:
CAiwGenericParamList* paramList = CAiwGenericParamList::NewLC();
TAiwGenericParam filePath( EGenericParamFile, iImageFileName );
paramList->AppendL( filePath );
TAiwVariant varMime(_L("image/jpeg"));
TAiwGenericParam paramMime( EGenericParamMIMEType, varMime );
paramList->AppendL( paramMime );
iServiceHandler->ExecuteMenuCmdL(
aCommand,
*paramList,
NULL,
0,
this);
CleanupStack::PopAndDestroy(paramList);

