diff -r 0d1adf67ec1b -r 12f60d9a73b3 csxhelp/AiwHelpProvider/src/AiwHelpProvider.cpp --- a/csxhelp/AiwHelpProvider/src/AiwHelpProvider.cpp Thu Aug 19 09:42:56 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,236 +0,0 @@ -/* -* 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: source file. -* Write all source code here, all the implementations -* -*/ - - -#include -#include "AiwHelpProvider.h" -#include -#include -#include -#include -#include -#include "AiwHelpProvider.rh" -#include -#include -#include -#include -#include - - -_LIT(KResFileName, "\\resource\\apps\\AiwHelpProviderPlugin.rsc"); - -#define KImplementationId 0x10207465 - - - -/****************************************************************** -=================================================================== - NewL of the Provider -=================================================================== -*******************************************************************/ -CAiwHelpProvider* CAiwHelpProvider::NewL() - { - return new (ELeave) CAiwHelpProvider(); - } - - - -/****************************************************************** -=================================================================== - Constructor of the Provider -=================================================================== -*******************************************************************/ -CAiwHelpProvider::CAiwHelpProvider() - { - } - - - -/****************************************************************** -=================================================================== - Destructor of the Provider -=================================================================== -*******************************************************************/ -CAiwHelpProvider::~CAiwHelpProvider() - { - } - - - -/** - * Called by the Handler framework to initialise provider with - * necessary information from Handler. - * @param aFrameworkCallback Framework provided callback for - * provider to send events to framework - * @param aInterest List of criteria items which invoked the provider. - * @exception Symbian OS error code - */ -void CAiwHelpProvider::InitialiseL(MAiwNotifyCallback& /*aFrameworkCallback*/, - const RCriteriaArray& /*aInterest*/) - { - - } - - -/** - * Executes generic service commands included in criteria. - * @param aCmdId Command to be executed - * @param aInParamList Input parameters, can be an empty list - * @param aOutParamList Output parameters, can be an empty list - * @param aCmdOptions Options for the command, see KAiwOpt* constants in AiwCommon.hrh. - * @param aCallback callback for asynchronous command handling, parameter checking, etc. - * @see enum TAiwServiceCmdOptions in AiwCommon.hrh - * @exception KErrArgument if callback is missing when required. - * @exception KErrNotSupported if no provider support service - */ -void CAiwHelpProvider::HandleServiceCmdL(const TInt& /*aCmdId*/, - const CAiwGenericParamList& /*aInParamList*/, - CAiwGenericParamList& /*aOutParamList*/, - TUint aCmdOptions, - const MAiwNotifyCallback* /*aCallback*/) - { - // Cancel bit must always be checked. - if(aCmdOptions & KAiwOptCancel) - { - return; - } - } -/** - * Initialises menu pane by adding provider specific menu items. - * The AIW Framework gives the parameters to be used in addition. - * @param aMenuPane Menu pane handle - * @param aIndex position of item where to add menu items. - * @param aCascadeId ID of cascade menu item. - * @param aInParamList input parameter list for provider's parameters checking - */ - -void CAiwHelpProvider::InitializeMenuPaneL(CAiwMenuPane& aMenuPane, - TInt aIndex, - TInt /*aCascadeId*/, - const CAiwGenericParamList& /*aInParamList*/) - { - TFileName resFile(KResFileName); - TFileName dllName; - Dll::FileName(dllName); - TBuf<2> drive = dllName.Left(2); - resFile.Insert(0, drive); - aMenuPane.AddMenuItemsL(resFile, R_AIWHELPPROVIDER_MENU, KAiwCmdHelp, aIndex); - } - -/** - * Handle a menu command invoked by the Handler. - * @param aMenuCmdId Command ID for the menu command, - * defined by the provider when adding the menu commands. - * @param aInParamList Input parameters, could be empty list - * @param aOutParamList Output parameters, could be empty list - * @param aCmdOptions Options for the command, see KAiwCmdOpt* constants. - * @param aCallback callback if asynchronous command handling is wanted by consumer. - * The provider may or may not support this, leaves with KErrNotSupported, it not. - */ -void CAiwHelpProvider::HandleMenuCmdL(TInt aMenuCmdId, - const CAiwGenericParamList& aInParamList, - CAiwGenericParamList& /*aOutParamList*/, - TUint aCmdOptions, - const MAiwNotifyCallback* /*aCallback*/) - { - // Cancel bit must always be checked. - if(aCmdOptions & KAiwOptCancel) - { - return; - } - - switch (aMenuCmdId) - { - case EAiwShowHelpCmd: - case EAknCmdHelp: - { - TCoeHelpContext helpContext; - TInt index; - - // Get the UID of the Help context i.e. the UID of the CS Help file containing - // the topic information. - - index = 0; - const TAiwGenericParam* uidParam = aInParamList.FindFirst(index, EGenericParamHelpItem, - EVariantTypeTUid); - - if(index >= 0) - { - // Get the data. - const TAiwVariant& val = uidParam->Value(); - helpContext.iMajor = val.AsTUid(); - } - else - { - // UID param not found. Error handling could be added here. - } - - // Get the context of Help i.e. the name of the help context. This is the literal - // descriptor generated from a context string by the CSHelp compiler. - - index = 0; - const TAiwGenericParam* contextParam = aInParamList.FindFirst(index, EGenericParamHelpItem, - EVariantTypeDesC); - - if(index >= 0) - { - // Get the data. - const TAiwVariant& val = contextParam->Value(); - helpContext.iContext = val.AsDes(); - } - else - { - // Context param not found. Error handling could be added here. - } - - CArrayFix* contextList = new (ELeave) CArrayFixFlat(1); - contextList->AppendL(helpContext); - - //Get the Window server session - RWsSession wsSession; - User::LeaveIfError(wsSession.Connect()); - CleanupClosePushL(wsSession); - HlpLauncher::LaunchHelpApplicationL(wsSession,contextList); - CleanupStack::PopAndDestroy(); - break; - } - default: - break; - } - } - -// -// Rest of the file is for ECom initialization. -// - -// Map the interface UIDs to implementation factory functions -const TImplementationProxy ImplementationTable[] = - { - IMPLEMENTATION_PROXY_ENTRY(KImplementationId, CAiwHelpProvider::NewL) - }; - -// --------------------------------------------------------- -// Exported proxy for instantiation method resolution -// --------------------------------------------------------- -// -EXPORT_C const TImplementationProxy* ImplementationGroupProxy(TInt& aTableCount) - { - aTableCount = sizeof(ImplementationTable) / sizeof(TImplementationProxy); - return ImplementationTable; - } -