diff -r 000000000000 -r dab8a81a92de omads/omadsappui/OmaDsAppUiPlugin/src/OmaDsAppUiPluginInterface.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/omads/omadsappui/OmaDsAppUiPlugin/src/OmaDsAppUiPluginInterface.cpp Mon Nov 23 14:46:41 2009 +0200 @@ -0,0 +1,225 @@ +/* +* Copyright (c) 2002 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: Nsml DS settings Ecom plugin Impln. +* +*/ + + +//System Includes +#include +#include +#include +#include +#include +#include +#include + +// Required only for embedded app +#include +#include + +// User includes +#include "OmaDsAppUiPluginInterface.h" +#include "gsprivatepluginproviderids.h" +#include +#include "NsmlDSGSPluginResource.rsg" + + +_LIT(KNsmlDsIconFileName, "Z:\\resource\\apps\\nsmldssync.mif"); +_LIT(KNsmlDsResFileName, "Z:\\resource\\NsmlDSGSPluginResource.rsc" ); + +// --------------------------------------------------------------------------------------------- +// COmaDsAppUiPluginInterface::NewLC +// returns an object of COmaDsAppUiPluginInterface +// --------------------------------------------------------------------------------------------- +// +CGSPluginInterface* COmaDsAppUiPluginInterface::NewL() + { + COmaDsAppUiPluginInterface* self = new(ELeave) COmaDsAppUiPluginInterface(); + CleanupStack::PushL(self); + self->ConstructL(); + CleanupStack::Pop(self); + return (CGSPluginInterface*) self; + } + +// --------------------------------------------------------------------------------------------- +// COmaDsAppUiPluginInterface::Id() +// returns the view id +// --------------------------------------------------------------------------------------------- +// +TUid COmaDsAppUiPluginInterface::Id() const + { + return TUid::Uid( KUidNsmlDSGSPluginDll ); + } + +// --------------------------------------------------------------------------------------------- +// COmaDsAppUiPluginInterface::ConstructL +// --------------------------------------------------------------------------------------------- +// +void COmaDsAppUiPluginInterface::ConstructL() + { + BaseConstructL(); + + env = CEikonEnv::Static(); + + TFileName fileName(KNsmlDsResFileName); + + BaflUtils::NearestLanguageFile(env->FsSession(), fileName); + + iResId = env->AddResourceFileL(fileName); + } + + +// --------------------------------------------------------------------------------------------- +// COmaDsAppUiPluginInterface::COmaDsAppUiPluginInterface +// --------------------------------------------------------------------------------------------- +// +COmaDsAppUiPluginInterface::COmaDsAppUiPluginInterface() : iNullService( NULL ) + { + // Nothing + } + +// --------------------------------------------------------------------------------------------- +// COmaDsAppUiPluginInterface::~COmaDsAppUiPluginInterface +// --------------------------------------------------------------------------------------------- +// +COmaDsAppUiPluginInterface::~COmaDsAppUiPluginInterface() + { + if (iResId) + { + env->DeleteResourceFile(iResId); + } + if ( iNullService ) + { + delete iNullService; + iNullService = NULL; + } + } + +// --------------------------------------------------------------------------------------------- +// COmaDsAppUiPluginInterface::GetCaptionL +// returns the caption to be shown in GS view +// --------------------------------------------------------------------------------------------- +// +void COmaDsAppUiPluginInterface::GetCaptionL( TDes& aCaption ) const + { + StringLoader::Load( aCaption, R_DS_GS_TITLE); + } + +// --------------------------------------------------------------------------------------------- +// COmaDsAppUiPluginInterface::CreateIconL +// returns the icon to be shown in GS view +// --------------------------------------------------------------------------------------------- +// +CGulIcon* COmaDsAppUiPluginInterface::CreateIconL( const TUid /*aIconType*/ ) + { + CFbsBitmap* bitmap = NULL; + CFbsBitmap* mask = NULL; + + MAknsSkinInstance* instance = AknsUtils::SkinInstance(); + AknsUtils::CreateIconL(instance, KAknsIIDQgnPropCpConnDatasync, bitmap, mask, + KNsmlDsIconFileName, + EMbmNsmldssyncQgn_prop_cp_conn_datasync, + EMbmNsmldssyncQgn_prop_cp_conn_datasync_mask); + + CGulIcon* icon = CGulIcon::NewL( bitmap, mask ); + icon->SetBitmapsOwnedExternally( EFalse ); + bitmap = NULL; + mask = NULL; + return icon; + } + +// ----------------------------------------------------------------------------- +// COmaDsAppUiPluginInterface::HandleSelection() +// ----------------------------------------------------------------------------- +// +void COmaDsAppUiPluginInterface::HandleSelection( + const TGSSelectionTypes /*aSelectionType*/ ) + { + TRAP_IGNORE(LaunchDsAppL()); + } + +// --------------------------------------------------------------------------------------------- +// COmaDsAppUiPluginInterface::LaunchDsAppL +// --------------------------------------------------------------------------------------------- +// +void COmaDsAppUiPluginInterface::LaunchDsAppL() + { + TUid KAppUid( TUid::Uid( KDsAppUid ) ); + + RWsSession ws; + User::LeaveIfError( ws.Connect() ); + CleanupClosePushL( ws ); + + TApaTaskList taskList( ws ); + TApaTask task = taskList.FindApp( KAppUid ); + + if ( task.Exists() ) + { + task.BringToForeground(); + } + else + { + // Launch application as embedded. + if ( iNullService ) + { + delete iNullService; + iNullService = NULL; + } + iNullService = CAknNullService::NewL( KAppUid, this ); + } + + CleanupStack::PopAndDestroy(); + } + +// --------------------------------------------------------------------------------------------- +// COmaDsAppUiPluginInterface::DoActivateL +// --------------------------------------------------------------------------------------------- +// +void COmaDsAppUiPluginInterface::DoActivateL(const TVwsViewId& /*aPrevViewId*/, + TUid /*aCustomMessageId*/, + const TDesC8& /*aCustomMessage*/) + { + // Nothing + } + + +// ----------------------------------------------------------------------------- +// COmaDsAppUiPluginInterface::PluginProviderCategory +// ----------------------------------------------------------------------------- +// +TInt COmaDsAppUiPluginInterface::PluginProviderCategory() const + { + return KGSPluginProviderInternal; + } + +// ----------------------------------------------------------------------------- +// COmaDsAppUiPluginInterface::ItemType() +// ----------------------------------------------------------------------------- +// +TGSListboxItemTypes COmaDsAppUiPluginInterface::ItemType() + { + return EGSItemTypeSettingDialog; + } + +// --------------------------------------------------------------------------------------------- +// COmaDsAppUiPluginInterface::DoDeactivate +// --------------------------------------------------------------------------------------------- +// +void COmaDsAppUiPluginInterface::DoDeactivate() + { + // Nothing + } + +// End of File