csxhelp/inc/CSXHLegacyTopicContainer.h
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Tue, 26 Jan 2010 15:15:23 +0200
changeset 0 1f04cf54edd8
permissions -rw-r--r--
Revision: 201004

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


// INCLUDES
#include <aknview.h>
#include <eikedwob.h>
#include <txtfrmat.h>


// FORWARD DECLARATIONS
class CEikRichTextEditor;
class CEikGlobalTextEditor;
class CRichText;
class CAknsBasicBackgroundControlContext;
class CCSXHDocument;
class CCSXHLegacyTOC2;
// CLASS DECLARATION

/**
*  CCsHelpTopicContainer
*  container control class for legacy topic view
*  @lib etext.lib, eikcoctl.lib
*  @since 3.2
*/
class CCSXHLegacyTopicContainer : public CCoeControl
    {
    public: // Constructors and destructor
/** 
*  @function NewL
*  @since S60 3.2
*  Construct a CCSXHLegacyTopicContainer 
*  and return a pointer to the created object
*  @param aRect - TRect Object
*		  aDocument - Document Object 
*		  aTopic	- LegacyTOC2 Pointer	
*  @return a CCSXHLegacyTopicContainer Pointer 
*/
        static CCSXHLegacyTopicContainer* NewL(const TRect& aRect,CCSXHDocument
        &aDocument,CCSXHLegacyTOC2 *aTopic);
        
/** 
*  @function NewLC
*  @since S60 3.2
*  Construct a CCSXHLegacyTopicContainer 
*  and return a pointer to the created object using two phase constuction
*  @param aRect - TRect Object
*		  aDocument - Document Object 
*		  aTopic	- LegacyTOC2 Pointer	
*  @return a CCSXHLegacyTopicContainer Pointer 
*/        
		static CCSXHLegacyTopicContainer* NewLC(const TRect& aRect,CCSXHDocument
		&aDocument,CCSXHLegacyTOC2 *aTopic);
		
/** 
*  @function CCSXHLegacyTopicContainer
*  @since S60 3.2
*  Construct a CCSXHLegacyTopicContainer 
*  and return a pointer to the created object using two phase constuction
*  @param aDocument - Document Object 
*		  aTopic	- LegacyTOC2 Pointer	
*  @return a CCSXHHtmlTopicContainer Pointer 
*/		
		CCSXHLegacyTopicContainer(CCSXHDocument &aDocument,CCSXHLegacyTOC2 *aTopic);

/** 
*  @function RefreshL
*  @since S60 3.2
*  Used to Refresh the Content
*  @param aTopic - CCSXHLegacyTOC2 Object  
*/
		void RefreshL(CCSXHLegacyTOC2 *aTopic);
			
 /**
  @function ConstructL
  @since S60 3.2
  Perform the second phase construction of a LegacyTopicContainer object
  @param aRect the rectangle this view will be drawn to
  */      void ConstructL(const TRect& aRect);
        
        /**
        * @The Mopsupply object gives the skin context to 
        * @the scrollbar, so that the scrollbar is skinned
        * @according the skin parameters and look transparent
          */
        TTypeUid::Ptr MopSupplyObject(TTypeUid aId);

/** 
 * @function ~CCSXHLegacyTopicContainer
 * @since S60 3.2
 * Destroy the object and release all memory objects
 */
      virtual ~CCSXHLegacyTopicContainer();		
		
    public: // New functions
/** 
*  @function HandleResourceChange
*  @since S60 3.2
*  Handles resource changes.
*  This function is called by framework when when e.g skin or locale is changed.
*  @param aType resource change type
*/ 
        void HandleResourceChange(TInt aType);

/** 
*  @function HandleResourceChangeImpl
*  @since S60 3.2
*  Handles resource changes.
*  Implementation function for resource change
*  @param aType resource change type
*/    	
    	void HandleResourceChangeImpl(TInt aType);
        
	
    protected: // New functions
/** 
*  @function SetTextL
*  @since S60 3.2
*  Handles resource changes.
*  set topic's text to a rich text editor
*  @param aText help document
*/         
        void SetTextL(CRichText* aText);

    protected: // From base classes.
/**
 * When focus is changed, called.
 * Set focus editor(viewer).
 * @function FocusChanged
 * @since 3.2
 * @param aDrawNow used to determine whether or not
 *        redraw should occur now, or later
 */
        void FocusChanged(TDrawNow aDrawNow);


    private: // new function
/**
 * Get rich text format from resource.
 * @function GetTextFormat
 * @since 3.2
 */
        void GetTextFormat();

/*
* Format the rich text help data
* @function FormatRichTextL
* @since 3.2
* @param aText instance of the CRichText object to format
*/
        void FormatRichTextL(CRichText& aText);

    private: // Functions from base classes
/** 
*  From CoeControl class
*  @function SizeChanged
*  @since S60 3.2
*  re-allocates and re-sizes components.
*/
       void SizeChanged();

/** 
*  From CoeControl class
*  @function OfferKeyEventL
*  @since S60 3.2
*  Progress Key Event
*  @param aKeyEvent the key event
*  @param aType EEventKey | EEventKeyUp | EEventKeyDown
*  @return EKeyWasConsumed if key event is processed,
*         otherwise EKeyWasNotConsumed
*/
        TKeyResponse OfferKeyEventL(const TKeyEvent& aKeyEvent,
                                    TEventCode aType);

/** 
*  From CoeControl class
*  @function CountComponentControls
*  @since S60 3.2
*  @return Number of child controls this has.  
*/       
		TInt CountComponentControls() const;

/** 
*  From CoeControl class
*  @function ComponentControl
*  @since S60 3.2
* @param aIndex index of child controls
* @retrun pointer to child control
*/
        CCoeControl* ComponentControl(TInt aIndex) const;

/** 
*  From CoeControl class
*  @function Draw
*  @since S60 3.2
*  Draw() for drawing the Background
*/
        void Draw(const TRect& aRect) const;
        

    private: //data
        // to show help document
        CEikEdwin* iEdwin;
		
        // rich text format
        TCharFormat iCharFormat;
        TCharFormatMask iCharFormatMask;
		CAknsBasicBackgroundControlContext* iSkinContext; // skin data
		CRichText* iText; // skin data	
		CCSXHDocument& iDocument;	
		CCSXHLegacyTOC2* iTopic;
    };
// End of File