diff -r 000000000000 -r e686773b3f54 phonebookui/Phonebook2/ccapplication/ccacommlauncherplugin/inc/ccappcommlaunchermenuhandler.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/phonebookui/Phonebook2/ccapplication/ccacommlauncherplugin/inc/ccappcommlaunchermenuhandler.h Tue Feb 02 10:12:17 2010 +0200 @@ -0,0 +1,229 @@ +/* +* Copyright (c) 2007-2007 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: Class implementing ccappcommlauncherplugin menu functionality +* +*/ + + +#ifndef C_CCAPPCOMMLAUNCHERMENUHANDLER_H +#define C_CCAPPCOMMLAUNCHERMENUHANDLER_H + +#include + +class CCCAppCommLauncherPlugin; +class CAiwGenericParamList; +class CAiwServiceHandler; +class CCCAppCommLauncherPbkCmd; + +/** + * Class implementing ccappcommlauncherplugin menu functionality + * + * @code + * ?good_class_usage_example(s) + * @endcode + * + * @lib ccappcommlauncherplugin.dll + * @since S60 v3.2 + */ +class CCCAppCommLauncherMenuHandler: + public CBase, + public MAknInputBlockCancelHandler, + public MAiwNotifyCallback + { +#ifdef __COMMLAUNCHERPLUGINUNITTESTMODE + friend class T_CCCAppCommLauncherMenuHandler; +#endif// __COMMLAUNCHERPLUGINUNITTESTMODE + +public: + + /** + * Two-phased constructor. + */ + static CCCAppCommLauncherMenuHandler* NewL( + CCCAppCommLauncherPlugin& aPlugin ); + + /** + * Destructor. + */ + ~CCCAppCommLauncherMenuHandler(); + +public: // from base classes + + /** + * From CCCAppViewPluginBase + */ + void DynInitMenuPaneL( + TInt aResourceId, + CEikMenuPane* aMenuPane ); + + /** + * From CCCAppViewPluginBase + */ + void HandleCommandL( + TInt aCommand ); + + /** + * From MAiwNotifyCallback + */ + TInt HandleNotifyL( + TInt aCmdId, + TInt aEventId, + CAiwGenericParamList& aEventParamList, + const CAiwGenericParamList& aInParamList); + /** + * From MAknInputBlockCancelHandler + */ + void AknInputBlockCancel(); + +public: // new + + /** + * Set the store from which the contact is from + * + * @since S60 v5.0 + * @param aStore + */ + void SetContactStore( const TCmsContactStore& aStore ); + +private: + + /** + * Prepares plugin for AIW-menu usage + * + * @since S60 v5.0 + */ + void PrepareAiwMenusL(); + + /** + * Avkon-like DynInitMenuPaneL for switching appropriate + * menu-options based on contact store type. + * + * @since S60 v5.0 + * @param aMenuPane as menupane structure + */ + void SelectDynInitMenuPaneL( CEikMenuPane* aMenuPane ); + + /** + * Avkon-like DynInitMenuPaneL for cases when contact is + * found from local contact db + * + * @since S60 v5.0 + * @param aMenuPane as menupane structure + */ + void PbkContactDynInitMenuPaneL( CEikMenuPane* aMenuPane ); + + /** + * Avkon-like DynInitMenuPaneL for cases when contact is + * found from SIM + * + * @since S60 v5.0 + * @param aMenuPane as menupane structure + */ + void SimContactDynInitMenuPaneL( CEikMenuPane* aMenuPane ); + + /** + * Avkon-like DynInitMenuPaneL for cases when contact is SDN contact + * + * @since S60 v5.0 + * @param aMenuPane as menupane structure + */ + void SdnContactDynInitMenuPaneL( CEikMenuPane* aMenuPane ); + + /** + * DynInit for "Select"-menu item + * + * @since S60 v5.0 + * @param aMenuPane as menupane structure + */ + void DynInitSelectMenuItemL( CEikMenuPane* aMenuPane ); + + /** + * DynInit for "Select other"-menu item + * + * @since S60 v5.0 + * @param aMenuPane as menupane structure + */ + void DynInitSelectOtherMenuItemL( CEikMenuPane* aMenuPane ); + + /** + * Commands for Options-menu items + * + * @since S60 v5.0 + */ + void DoSelectCmdL( TBool aUseDefaultAddress ); + void DoEditCmdL(); + void DoSetDefaultCmdL(); + void DoShowOnMapCmdL(); + void DoDeleteCmdL(); + + /** + * Handlers for Aiw-based commands + * + * @since S60 v5.0 + */ + void DoAiwCommandL( TInt aCmdId, TInt aServiceId ); + TInt PackedContactLinkArrayToInParamListLC( + CAiwGenericParamList& aInParamList ); + + /** + * Opens resource files and instanciates CPbk2ApplicationServices + */ + void PreparePbk2ApplicationServicesL(); + + /** + * Avkon-like DynInitMenuPaneL for cases when contact is + * found from xsp contact db + * + * @since S60 v5.0 + * @param aMenuPane as menupane structure + */ + void XspContactDynInitMenuPaneL( CEikMenuPane* aMenuPane ); + + /** + * Cancel Input Block if it exists + * + * @since S60 v5.0 + */ + void StopInputBlock(); +private: // constructors + + CCCAppCommLauncherMenuHandler( CCCAppCommLauncherPlugin& aPlugin ); + void ConstructL(); + +private:// data + + /** + * Pointer to class handling the view + * Not own. + */ + CCCAppCommLauncherPlugin& iPlugin; + + /** + * Pointer to AIW service handler + * Own. + */ + CAiwServiceHandler* iAiwServiceHandler; + + /** + * A store where this contact is stored to + */ + TCmsContactStore iContactStore; + + /// Own: CCCAppCommLauncherPbkCmd + CCCAppCommLauncherPbkCmd* iPbkCmd; + /// Own: CAknInputBlock + CAknInputBlock *iInputBlock; + }; + +#endif // C_CCAPPCOMMLAUNCHERMENUHANDLER_H