logsui/logsserviceextension/inc/clogsviewextension.h
changeset 0 e686773b3f54
--- /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<TUid>* iServiceProvidersToDim;
+        
+    /**
+     * Available services list.         
+     * Own
+     */
+    RPointerArray<CSendingServiceInfo>* 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