csxhelp/inc/CSXHDocument.h
author Pat Downey <patd@symbian.org>
Wed, 01 Sep 2010 12:30:56 +0100
branchRCL_3
changeset 18 cbffe13eac63
parent 0 1f04cf54edd8
permissions -rw-r--r--
Revert incorrect RCL_3 drop: Revision: 201031 Kit: 201035

/*
* 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:  CCSXHDocument class declaration
*
*/


#ifndef INC_CSXHDOCUMENT_H_HEADER_INCLUDED_BC0121B7
#define INC_CSXHDOCUMENT_H_HEADER_INCLUDED_BC0121B7

#include <AknDoc.h>

// Forward references
class CAknAppUi;
class CEikApplication;
class CCSXHHelpDataBase;
class CCSXHHelpContentBase;
class CEikAppUi;
class CEikProgressInfo;
class CAknProgressDialog;
class CIdle;
/** 
  @class CCSXHDocument
* An instance of class CCSXHDocument is the Document part of the AVKON
* application framework for the Csxhelp application
*/

class CCSXHDocument : public CAknDocument
    {
    public:
/** 
*  @function NewL
*  @since S60 3.2
*  Construct a CCSXHDocument for the AVKON application aApp 
*  construction, and return a pointer to the created object
*  @param aApp - Application Object
*  @return a CCSXHDocument Pointer 
*/
	static CCSXHDocument* NewL(
	// application creating this document
	CEikApplication& aApp);
    // Construct a CCSXHDocument for the AVKON application aApp using two phase
    // construction, and return a pointer to the created object

/** 
*  @function NewLC
*  @since S60 3.2
*  Construct a CCSXHDocument for the AVKON application aApp using two phase
*  construction, and return a pointer to the created object
*  @param aApp - Application Object
*  @return a CCSXHDocument Pointer 
*/
    static CCSXHDocument* NewLC(
	// application creating this document
	CEikApplication& aApp);


/** 
*  @function ~CCSXHDocument
*  @since S60 3.2
*  Destroy the object and release all memory objects
*/
	    ~CCSXHDocument();

	public: // from CAknDocument
/** 
*  @function CreateAppUiL
*  @since S60 3.2
*  Create a CCSXHAppUi object and return a pointer to it
*  @return CCSXHAppUi class pointer
*/		
  	    CEikAppUi* CreateAppUiL();
	    
  	public:
/** 
*  @function SetDisplayTopic
*  @since S60 3.2
*  @param aDisplayTopic - HelpContentbase Class pointer
*/  	
		void SetDisplayTopic(CCSXHHelpContentBase *aDisplayTopic);
/** 
*  @function SetDisplayAndPrevTopic
*  @since S60 3.2
*  @param aDisplayTopic - HelpContentbase Class pointer
*/  	
		void SetDisplayAndPrevTopic(CCSXHHelpContentBase *aDisplayTopic);
/** 
*  @function GetDisplayTopic
*  @since S60 3.2
*  @return HelpContentBase Class pointer
*/ 
   inline  CCSXHHelpContentBase* GetDisplayTopic() const 
   {return iDisplayTopic;}
/** 
*  @function GetPrevTopic
*  @since S60 3.2
*  @return HelpContentBase Class pointer
*/		
	inline CCSXHHelpContentBase* GetPrevTopic() const
	{return iPrevTopic;}
/** 
*  @function ClearPrevTopic
*  @since S60 3.2
*  @Clears the previous topic
*/		
	inline void ClearPrevTopic()
	{iPrevTopic = NULL;}
/** 
*  @function GetHelpDataBase
*  @since S60 3.2
*  @return HelpContentBase Class pointer
*/		
 	inline CCSXHHelpDataBase* GetHelpDataBase() const
 	{return iHelpDataBase;}

/** 
*  @function GetHelpDataBase
*  @since S60 3.2
*  Sends a Command to Application UI Class
*  @param aCommand - Command to be Handled
*/		
	 	void SendMessageToAppUiL(TInt aCommand);

/** 
*  @function SetContextTopicAsDisplayTopicL
*  @since S60 3.2
*  Parse the Message, Get the topic for Display & set this Object as Current Display Object
*  @param aContextMessage - Message from Other Application for Context Sensitive launch
*  @return  ETrue for Topic Found /EFalse for topic Not found
*/	 	
	 	TBool SetContextTopicAsDisplayTopicL(const TDesC8& aContextMessage);

/** 
*  @function GetHtmlTopicForUrlL
*  @since S60 3.2
*  Get the Object for HTML topic using url Name
*  @param url - url Name
*  @return Pointer to the HelpDataBase which contains HTMLtopic info
*/	 	
	 	CCSXHHelpContentBase* GetHtmlTopicForUrlL(const TDesC &url);

/** 
*  @function InitProgressBar
*  @since S60 3.2
*  Initializes the progress bar
*/	 	
	    void InitProgressBarL();

/** 
*  @function FreeProgressBar
*  @since S60 3.2
*  Frees the progress bar
*/	 	
	 	void FreeProgressBarL();
	 	
/**
        * function for TCAllBack protocol.
        * called directly
        * @since 1.1
        * @param aThis is the pointer to the actual instance
        * @return Whether finished or not
        */
        static TInt CallBack(TAny* aThis);
        
        /**
        * call back function.
        * called by CallBackL()
        * @since 1.1
        * @return Whether finished or not
        */
        TInt DoCallBackL();	 	
	 	
	private:
/** 
*  @function CCSXHDocument
*  @since S60 3.2
*  Perform the first phase of two phase construction
*/
	    CCSXHDocument(
	// application creating this document
	CEikApplication& aApp);
  
  	private:  
    	CCSXHHelpDataBase *iHelpDataBase;
    	CAknAppUi *iHelpAppUi;
    	
    	CCSXHHelpContentBase *iDisplayTopic;
    	CCSXHHelpContentBase *iPrevTopic;
    	
    	CAknProgressDialog *iProgressDialog;
    	
    	CIdle *iIdle;
    	
    	TInt iTotalKeywordsInResultView;
    };



#endif /* INC_CSXHDOCUMENT_H_HEADER_INCLUDED_BC0121B7 */