csxhelp/inc/CSXHAppUi.h
branchRCL_3
changeset 45 cbffe13eac63
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/csxhelp/inc/CSXHAppUi.h	Wed Sep 01 12:30:56 2010 +0100
@@ -0,0 +1,274 @@
+/*
+* Copyright (c) 2006 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:  CCSXHAppUi class declaration
+*
+*/
+
+
+#ifndef INC_CSXHAPPUI_H_HEADER_INCLUDED_BC054CBF
+#define INC_CSXHAPPUI_H_HEADER_INCLUDED_BC054CBF
+
+#include <aknViewAppUi.h>
+#include "AppLauncherForCSXH.h"
+#include "csxhruntimeappwatcher.h"
+
+//Forward declarations
+class CCSXHHtmlTopicView;
+class CCSXHLegacyTopicView;
+class CCSXHGenericView;
+#ifdef FF_HELP_TUTORIAL_MERGE
+class CAiwGenericParamList;
+class CAiwServiceHandler;
+#endif // FF_HELP_TUTORIAL_MERGE
+
+// CLASS DECLARATION
+
+/** 
+* @class CCSXHAppUi
+* Application UI class
+* Provides support for the following features:
+* - view architecture
+*/
+class CCSXHAppUi : public CAknViewAppUi,
+                   public MInstallationObserver
+    {
+  public:
+/** 
+ * @function ConstructL
+ * @since S60 3.2
+ * Perform the second phase construction of a CCSXHAppUi object this needs
+ * to be public due to the way the framework constructs the AppUi      
+ */
+    void ConstructL();
+/** 
+ * @function CCSXHAppUi
+ * @since S60 3.2
+ * Perform the first phase of two phase construction. This needs to be
+ * public due to the way the framework constructs the AppUi
+ */    
+    CCSXHAppUi();
+/** 
+ * @function ~CCSXHAppUi
+ * @since S60 3.2
+ * Destroy the object and release all memory objects
+ */    
+    ~CCSXHAppUi();
+
+/** 
+ * @function ~CCSXHAppUi
+ * @since S60 3.2  
+ * From CEikAppUi, takes care of command handling.
+ * @param aCommand command to be handled
+ */    
+    void HandleCommandL(TInt aCommand);
+    
+/** 
+ *  @function PropagateResourceChange
+ *  @since S60 3.2
+ *  Propagates the resource change event to all views
+ *  @param aType - Type of resource change event
+ */		
+	void PropagateResourceChange(TInt aType);     
+    
+/** 
+ * @function GetInstance
+ * @since S60 3.2  
+ * returns Application UI class pointer 
+ * @return Application UI class pointer 
+ */     
+    static CCSXHAppUi* GetInstance();
+
+/** 
+ * @function GetWsSession
+ * @since S60 3.2  
+ * returns WsSession Pointer
+ * @return WsSession pointer
+ */    
+	static RWsSession& GetWsSession();
+
+/** 
+ * @function GetCoeEnv
+ * @since S60 3.2  
+ * returns Control Environment pointer
+ * @return Control Environment pointer
+ */	
+	static CCoeEnv* GetCoeEnv();
+
+/** 
+ * @function AppLaunchL
+ * @since S60 3.2  
+ * Launch the Application based on Uid & ViewId
+ * @param aAppId Application Uid
+ * 		 aVId   ViewId 
+ */	    
+    void AppLaunchL(TInt32 &aAppId,TInt32 &aVId);
+    
+/** 
+ * @function AppLaunchL
+ * @since S60 3.2  
+ * Launch the Application based on Uid,ViewId, MessageId & Message
+ * @param aAppId   Application Uid
+ * 		 aVId     ViewId
+ * 		 aMsgId   MessageId
+ * 		 aParams  Message
+ */    
+    void AppLaunchL(TInt32 &aAppId,TInt32 &aVId,TInt32 &aMsgId,
+    									const TBuf<KMaxParamLength>& aParams);
+    
+/** 
+ * @function ResetTOC2ViewContainer
+ * @since S60 3.2  
+ * Sets a flag in the View for recreating the container 
+ */    
+    void ResetTOC2ViewContainer();
+/**
+* From MInstallationObserver
+* @function RuntimeUpdateIndex 
+* call back function once install/uninstall happens
+*
+* @since 5.0
+*/
+    void RuntimeUpdateIndex();
+
+#ifdef FF_HELP_TUTORIAL_MERGE
+    /**
+    *  Generates parameter list for AIW calls
+    *  @since S60 3.2
+    *  @param aContext The help content ready to Tutorial
+    *  @return The Aiw Generic Param List
+    */
+    CAiwGenericParamList* NewParamListLC(const TCoeHelpContext& aContext);
+
+    /**
+    *  If tutorial exists,call play presentation command
+    *  @since S60 3.2
+    *  @param None
+    *  @return None
+    */
+    void CallTutorialAiwProviderL();
+
+    /**
+    *  If tutorial exists,call play presentation command
+    *  @since S60 3.2
+    *  @param aTCoeHelpContext The Help Content stored
+    *  @return None
+    */
+    void SetHelpContext(TCoeHelpContext aTCoeHelpContext);
+
+    /**
+    *  If the presentation requsted exist or not
+    *  @since S60 3.2
+    *  @param None
+    *  @return A boolean value to indicate the presentation exist or not
+    */
+     TBool IsApplicationPresentInTutorialL();
+
+#endif // FF_HELP_TUTORIAL_MERGE
+	protected: 
+	// Functions from base calsses
+	/**
+    * Handles changes in keyboard focus when an application switches to, 
+    * or from, the foreground.
+    * @param aForeground @c ETrue if the application is in the foreground,
+    * otherwise @c EFalse.
+    */
+	void HandleForegroundEventL(TBool aForeground);
+/** 
+ * @function ProcessCommandParametersL
+ * From CEikAppUi.
+ * Take care of command parameter
+ * @since 3.2
+ * @param aTail should be contexts in TDesC8& form
+ * @return whether or not processing was successful
+ */
+        TBool ProcessCommandParametersL(TApaCommand aCommand,
+                                        TFileName& /* aDocumentName */,
+                                        const TDesC8& aTail);
+
+/**
+ * @function HandleMessageL 
+ * From MCoeMessageObserver
+ * Take care of messages from other app.
+ * @since 3.2
+ * @param aMessageParameters should be contexts in TDesC8&
+ * @return always EMessageHandled.
+ */
+    MCoeMessageObserver::TMessageResponse HandleMessageL(
+                                  TUint32 aClientHandleOfTargetWindowGroup,
+                                  TUid aMessageUi,
+                                  const TDesC8& aMessageParameters); 
+  private:
+/**
+ * @function ActivateDisplayTopicViewL   
+ * Take care of Recreating the Container Class for Specific Views
+ * @since 3.2
+ * @param aMessageParameters should be contexts in TDesC8&
+ * @return always EMessageHandled.
+ */  
+  	void ActivateDisplayTopicViewL();
+  	
+  	void InitDisplayTopicViewL(TUid aViewID);
+/**
+ * @function HandleContextSensitiveLaunchL   
+ * Take care of Context Sensitive Launch.
+ * @since 3.2
+ * @param aMessageParameters should be contexts in TDesC8&
+ * @return always EMessageHandled.
+ */  	
+  	void HandleContextSensitiveLaunchL(const TDesC8& aContext );   
+#ifdef FF_HELP_TUTORIAL_MERGE
+        /**
+        *  Load Service Handler and attach the interest
+        *  @since S60 3.2
+        *  @param None
+        *  @return None
+        */
+        void LoadTutorialServiceL();
+#endif
+  private:
+    
+    CCSXHGenericView* iTOC1View;
+    CCSXHGenericView* iKywdTOC1View;
+    
+    CCSXHLegacyTopicView* iLegacyTopicView;
+    CCSXHLegacyTopicView* iLegacyContextTopicView;
+    
+    //This class will be used for both normal and context html topics    
+    CCSXHHtmlTopicView* iHtmlTopicView;
+	
+	CCSXHGenericView* iKywdTOC2View;
+	CCSXHGenericView* iTOC2View;
+	CCSXHGenericView* iAppHelpsTOC1View;
+	CCSXHGenericView* iAppHelpsTOC2View;
+	
+	static CCSXHAppUi* iInstance;
+	CCSXHRuntimeAppWatcher* iRuntimeWatcher;
+	
+#ifdef FF_HELP_TUTORIAL_MERGE
+
+        //AIW Service Handler
+        //Owned
+        CAiwServiceHandler* iServiceHandler;
+
+        //Tutorial exist or not
+        TBool iTutorialExists;
+
+        //Help Content Text
+        TCoeHelpContext iTCoeHelpContext;
+#endif
+    };
+
+
+
+#endif /* INC_CSXHAPPUI_H_HEADER_INCLUDED_BC054CBF */