diff -r 000000000000 -r e686773b3f54 logsui/logsserviceextension/inc/clogsviewextension.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/logsui/logsserviceextension/inc/clogsviewextension.h Tue Feb 02 10:12:17 2010 +0200 @@ -0,0 +1,223 @@ +/* +* Copyright (c) 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: The current extension does not provide a view. +* +*/ + +#ifndef C_CLOGSVIEWEXTENSION_H +#define C_CLOGSVIEWEXTENSION_H + + +// INCLUDES +#include "MLogsViewExtension.h" + +// FORWARD DECLARATIONS +class CSendUi; +class CSendingServiceInfo; +class CSPSettings; +class CSPEntry; + +// CLASS DECLARATION + +/** + * View extension . + */ +NONSHARABLE_CLASS(CLogsViewExtension) : public CBase, + public MLogsViewExtension + { +friend class ut_clogsuicontrolextension; + +public: + + /** + * Two-phased constructor. + * + * @since S60 v3.2 + */ + static CLogsViewExtension* NewL(); + + /** + * Two-phased constructor. + * + * @since S60 v3.2 + */ + static CLogsViewExtension* NewLC(); + + /** + * Destructor. + */ + ~CLogsViewExtension(); + + +protected: + +// From MLogsUiExtensionBase + + /** + * Releases this object and any resources it owns. + * + * @since S60 v3.2 + */ + void DoRelease(); + + +// From MLogsViewExtension + + /** + * From MLogsViewExtension + * Filters the menu pane of the Logs view connect to this + * extension. + * + * @since S60 v3.2 + * @param aResourceId menu resource id. + * @param aMenuPane menu pane which will be filtered. + * @param aEvent getter of current event + */ + void DynInitMenuPaneL( TInt aResourceId, + CEikMenuPane* aMenuPane, + const MLogsEventGetter* aEvent); + + /** + * From MLogsViewExtension + * Handles Logs extension commands. + * + * @since S60 v3.2 + * @param aCommandId command id. + * @return ETrue if command was handled. + */ + TBool HandleCommandL(TInt aCommandId); + + /** + * Reference to SendUi from the Logs Application UI object. + * + * @since S60 v3.2 + * @param aSendUi reference to SendUi object + */ + void SetSendUi( CSendUi& aSendUi ); + + /** + * Set SendUi menu command text + * + * @since S60 v3.2 + * @param aSendUiText menu command text + */ + void SetSendUiText( const TDesC& aSendUiText ); + +private: + + /** + * Constructor. + */ + CLogsViewExtension(); + + /** + * Symbian second-phase constructor + */ + void ConstructL(); + + /** + * Verify if IM sending service provider exists. + * @param aServiceProviderUid service provider uid to find in available services. + * @param aServiceProviderExists ETrue if service is available. + */ + void VerifyServiceProviderL( const TUid& aServiceProviderUid , + TBool& aServiceProviderExists ); + + /** + * Get WLM Send ui plugin UID from service table. + * @param aServiceId service id to look for in service table. + * @param aServiceProviderUid service provider uid from service table. + * @return ETrue if plugin uid was found in service table's entry. + */ + TBool GetServicePluginUidL( TInt aServiceId, TUid& aServiceProviderUid ); + + /** + * Set contact link. + * @param aContactLink contact link from logs. + */ + void SetContactlink( const TDesC8& aContactLink ); + + /** + * Set service id. + * @param aServiceId service id from logs. + */ + void SetServiceId( const TUint32& aServiceId ); + + /** + * Set provider uid. + * @param aUid uid of service provider from service table and is available in services list. + */ + void SetProviderUid( const TUid& aUid ); + + /** + * Send message. + * @return ETrue if command was handled. + */ + TBool SendMessageL(); + +private: + + /** + * Services to exclude. + * Own + */ + CArrayFixFlat* iServiceProvidersToDim; + + /** + * Available services list. + * Own + */ + RPointerArray* iServiceList; + + /** + * SP settings. + * Own + */ + CSPSettings* iSettings; + + /** + * SP setting's entry. + * Own + */ + CSPEntry* iEntry; + + /** + * Reference to the SendUi from Logs Application UI object. + * Not own + */ + CSendUi* iSendUi; + + /** + * SendUi command text + */ + TPtrC iSendUiText; + + /** + * Service id in service table + */ + TUint32 iServiceId; + + /** + * ContactLink + */ + TPtrC8 iContactLink; + + /** + * Service UID of WLM Plugin + */ + TUid iServiceProviderUid; + + }; + +#endif // C_CLOGSVIEWEXTENSION_H