# HG changeset patch # User Dremov Kirill (Nokia-D-MSW/Tampere) # Date 1283256372 -10800 # Node ID 12f60d9a73b31aad478e7a2a855b568add88b6a0 # Parent 0d1adf67ec1b0f1aa0c79de7eeaedec6270c2759 Revision: 201031 Kit: 201035 diff -r 0d1adf67ec1b -r 12f60d9a73b3 csxhelp/AiwHelpProvider/group/AiwHelpProvider.mmp --- a/csxhelp/AiwHelpProvider/group/AiwHelpProvider.mmp Thu Aug 19 09:42:56 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,63 +0,0 @@ -/* -* Copyright (c) 2002 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: Project specfication file. -* Write all source and resource files, all using libraries, -* all bitmaps. -* -*/ - - -#include -#include - -TARGET AiwHelpProvider.dll -TARGETTYPE PLUGIN - -// MAGIC Dll recognition UID followed by the unique UID for this dll -UID 0x10009D8D 0x10207464 -VENDORID VID_DEFAULT - -CAPABILITY CAP_ECOM_PLUGIN - -USERINCLUDE ../inc -APP_LAYER_SYSTEMINCLUDE -SYSTEMINCLUDE /epoc32/include/ECom - -SOURCEPATH ../src -SOURCE AiwHelpProvider.cpp - -// Published to /resource/plugins -START RESOURCE 10207464.rss -LANGUAGE_IDS -TARGET AiwHelpProvider.rsc -END - -// Published to /resource -START RESOURCE AiwHelpProvider.rss -HEADER -TARGET AiwHelpProviderPlugin.rsc -TARGETPATH APP_RESOURCE_DIR -LANGUAGE_IDS -END - -LIBRARY euser.lib -LIBRARY fbscli.lib -LIBRARY gdi.lib -LIBRARY bafl.lib -LIBRARY cone.lib -LIBRARY estlib.lib -LIBRARY servicehandler.lib -LIBRARY eikcore.lib -LIBRARY hlplch.lib -LIBRARY ws32.lib diff -r 0d1adf67ec1b -r 12f60d9a73b3 csxhelp/AiwHelpProvider/group/bld.inf --- a/csxhelp/AiwHelpProvider/group/bld.inf Thu Aug 19 09:42:56 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,27 +0,0 @@ -/* -* Copyright (c) 2002 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 build information -* -* -*/ - -#include - -PRJ_EXPORTS -// export localised loc file -../loc/aiwxhelpprovider.loc APP_LAYER_LOC_EXPORT_PATH(aiwxhelpprovider.loc) - -PRJ_MMPFILES -AiwHelpProvider.mmp diff -r 0d1adf67ec1b -r 12f60d9a73b3 csxhelp/AiwHelpProvider/inc/AiwHelpProvider.h --- a/csxhelp/AiwHelpProvider/inc/AiwHelpProvider.h Thu Aug 19 09:42:56 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,59 +0,0 @@ -/* -* Copyright (c) 2002 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: header file. -* -*/ - - - -#ifndef _AIW_HELP_PROVIDER_H -#define _AIW_HELP_PROVIDER_H - -#include - -class CAiwHelpProvider : public CAiwServiceIfMenu - { - public: - static CAiwHelpProvider* NewL(); - ~CAiwHelpProvider(); - - public: - virtual void InitialiseL( - MAiwNotifyCallback& aFrameworkCallback, - const RCriteriaArray& aInterest); - - virtual void HandleServiceCmdL( - const TInt& aCmdId, - const CAiwGenericParamList& aInParamList, - CAiwGenericParamList& aOutParamList, - TUint aCmdOptions = 0, - const MAiwNotifyCallback* aCallback = NULL); - - virtual void InitializeMenuPaneL( - CAiwMenuPane& aMenuPane, - TInt aIndex, - TInt aCascadeId, - const CAiwGenericParamList& aInParamList); - - virtual void HandleMenuCmdL( - TInt aMenuCmdId, - const CAiwGenericParamList& aInParamList, - CAiwGenericParamList& aOutParamList, - TUint aCmdOptions = 0, - const MAiwNotifyCallback* aCallback = NULL); - - private: - CAiwHelpProvider(); - }; -#endif diff -r 0d1adf67ec1b -r 12f60d9a73b3 csxhelp/AiwHelpProvider/inc/AiwHelpProvider.rh --- a/csxhelp/AiwHelpProvider/inc/AiwHelpProvider.rh Thu Aug 19 09:42:56 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,28 +0,0 @@ -/* -* Copyright (c) 2002 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: resource header file -* Declare all the enums used here in this file. -* -*/ - - -#ifndef _AIW_PROVIDER_EXAMPLE1_RH -#define _AIW_PROVIDER_EXAMPLE1_RH - -enum - { - EAiwShowHelpCmd=1 - }; - -#endif diff -r 0d1adf67ec1b -r 12f60d9a73b3 csxhelp/AiwHelpProvider/loc/aiwxhelpprovider.loc --- a/csxhelp/AiwHelpProvider/loc/aiwxhelpprovider.loc Thu Aug 19 09:42:56 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,29 +0,0 @@ -/* -* Copyright (c) 2002 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: -* This is a localisation file for AiwHelpProvider -* A .loc file is the one and only place where the logical strings -* to be localised are defined. -* -* -*/ - - -// LOCALISATION STRINGS - -//d: help application name in selection grid window -//l: list_single_pane_t1_cp2 -// -#define qtn_options_help_sm_help "Show Help" - diff -r 0d1adf67ec1b -r 12f60d9a73b3 csxhelp/AiwHelpProvider/src/10207464.rss --- a/csxhelp/AiwHelpProvider/src/10207464.rss Thu Aug 19 09:42:56 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,49 +0,0 @@ -/* -* Copyright (c) 2002 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: resource file -* Write all resources used here. -* -*/ - - - -#include -#include "RegistryInfoV2.rh" -#include "AiwHelpProvider.rh" -#include - -RESOURCE REGISTRY_INFO theInfo - { - resource_format_version = RESOURCE_FORMAT_VERSION_2; - dll_uid = 0x10207464; // dll uid - interfaces = - { - INTERFACE_INFO - { - // Menu service class (offers menu based services) - interface_uid = 0x101F8652; // KAiwClassMenu - implementations = - { - IMPLEMENTATION_INFO - { - implementation_uid = 0x10207465;// The implementation uid - version_no = 1; - display_name = "AIW Help Provider"; - default_data ="*"; - opaque_data =KAiwCmdHelpStr; // from AiwCommon.hrh - } - }; - } - }; - } diff -r 0d1adf67ec1b -r 12f60d9a73b3 csxhelp/AiwHelpProvider/src/AiwHelpProvider.cpp --- a/csxhelp/AiwHelpProvider/src/AiwHelpProvider.cpp Thu Aug 19 09:42:56 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,236 +0,0 @@ -/* -* Copyright (c) 2002 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: source file. -* Write all source code here, all the implementations -* -*/ - - -#include -#include "AiwHelpProvider.h" -#include -#include -#include -#include -#include -#include "AiwHelpProvider.rh" -#include -#include -#include -#include -#include - - -_LIT(KResFileName, "\\resource\\apps\\AiwHelpProviderPlugin.rsc"); - -#define KImplementationId 0x10207465 - - - -/****************************************************************** -=================================================================== - NewL of the Provider -=================================================================== -*******************************************************************/ -CAiwHelpProvider* CAiwHelpProvider::NewL() - { - return new (ELeave) CAiwHelpProvider(); - } - - - -/****************************************************************** -=================================================================== - Constructor of the Provider -=================================================================== -*******************************************************************/ -CAiwHelpProvider::CAiwHelpProvider() - { - } - - - -/****************************************************************** -=================================================================== - Destructor of the Provider -=================================================================== -*******************************************************************/ -CAiwHelpProvider::~CAiwHelpProvider() - { - } - - - -/** - * Called by the Handler framework to initialise provider with - * necessary information from Handler. - * @param aFrameworkCallback Framework provided callback for - * provider to send events to framework - * @param aInterest List of criteria items which invoked the provider. - * @exception Symbian OS error code - */ -void CAiwHelpProvider::InitialiseL(MAiwNotifyCallback& /*aFrameworkCallback*/, - const RCriteriaArray& /*aInterest*/) - { - - } - - -/** - * Executes generic service commands included in criteria. - * @param aCmdId Command to be executed - * @param aInParamList Input parameters, can be an empty list - * @param aOutParamList Output parameters, can be an empty list - * @param aCmdOptions Options for the command, see KAiwOpt* constants in AiwCommon.hrh. - * @param aCallback callback for asynchronous command handling, parameter checking, etc. - * @see enum TAiwServiceCmdOptions in AiwCommon.hrh - * @exception KErrArgument if callback is missing when required. - * @exception KErrNotSupported if no provider support service - */ -void CAiwHelpProvider::HandleServiceCmdL(const TInt& /*aCmdId*/, - const CAiwGenericParamList& /*aInParamList*/, - CAiwGenericParamList& /*aOutParamList*/, - TUint aCmdOptions, - const MAiwNotifyCallback* /*aCallback*/) - { - // Cancel bit must always be checked. - if(aCmdOptions & KAiwOptCancel) - { - return; - } - } -/** - * Initialises menu pane by adding provider specific menu items. - * The AIW Framework gives the parameters to be used in addition. - * @param aMenuPane Menu pane handle - * @param aIndex position of item where to add menu items. - * @param aCascadeId ID of cascade menu item. - * @param aInParamList input parameter list for provider's parameters checking - */ - -void CAiwHelpProvider::InitializeMenuPaneL(CAiwMenuPane& aMenuPane, - TInt aIndex, - TInt /*aCascadeId*/, - const CAiwGenericParamList& /*aInParamList*/) - { - TFileName resFile(KResFileName); - TFileName dllName; - Dll::FileName(dllName); - TBuf<2> drive = dllName.Left(2); - resFile.Insert(0, drive); - aMenuPane.AddMenuItemsL(resFile, R_AIWHELPPROVIDER_MENU, KAiwCmdHelp, aIndex); - } - -/** - * Handle a menu command invoked by the Handler. - * @param aMenuCmdId Command ID for the menu command, - * defined by the provider when adding the menu commands. - * @param aInParamList Input parameters, could be empty list - * @param aOutParamList Output parameters, could be empty list - * @param aCmdOptions Options for the command, see KAiwCmdOpt* constants. - * @param aCallback callback if asynchronous command handling is wanted by consumer. - * The provider may or may not support this, leaves with KErrNotSupported, it not. - */ -void CAiwHelpProvider::HandleMenuCmdL(TInt aMenuCmdId, - const CAiwGenericParamList& aInParamList, - CAiwGenericParamList& /*aOutParamList*/, - TUint aCmdOptions, - const MAiwNotifyCallback* /*aCallback*/) - { - // Cancel bit must always be checked. - if(aCmdOptions & KAiwOptCancel) - { - return; - } - - switch (aMenuCmdId) - { - case EAiwShowHelpCmd: - case EAknCmdHelp: - { - TCoeHelpContext helpContext; - TInt index; - - // Get the UID of the Help context i.e. the UID of the CS Help file containing - // the topic information. - - index = 0; - const TAiwGenericParam* uidParam = aInParamList.FindFirst(index, EGenericParamHelpItem, - EVariantTypeTUid); - - if(index >= 0) - { - // Get the data. - const TAiwVariant& val = uidParam->Value(); - helpContext.iMajor = val.AsTUid(); - } - else - { - // UID param not found. Error handling could be added here. - } - - // Get the context of Help i.e. the name of the help context. This is the literal - // descriptor generated from a context string by the CSHelp compiler. - - index = 0; - const TAiwGenericParam* contextParam = aInParamList.FindFirst(index, EGenericParamHelpItem, - EVariantTypeDesC); - - if(index >= 0) - { - // Get the data. - const TAiwVariant& val = contextParam->Value(); - helpContext.iContext = val.AsDes(); - } - else - { - // Context param not found. Error handling could be added here. - } - - CArrayFix* contextList = new (ELeave) CArrayFixFlat(1); - contextList->AppendL(helpContext); - - //Get the Window server session - RWsSession wsSession; - User::LeaveIfError(wsSession.Connect()); - CleanupClosePushL(wsSession); - HlpLauncher::LaunchHelpApplicationL(wsSession,contextList); - CleanupStack::PopAndDestroy(); - break; - } - default: - break; - } - } - -// -// Rest of the file is for ECom initialization. -// - -// Map the interface UIDs to implementation factory functions -const TImplementationProxy ImplementationTable[] = - { - IMPLEMENTATION_PROXY_ENTRY(KImplementationId, CAiwHelpProvider::NewL) - }; - -// --------------------------------------------------------- -// Exported proxy for instantiation method resolution -// --------------------------------------------------------- -// -EXPORT_C const TImplementationProxy* ImplementationGroupProxy(TInt& aTableCount) - { - aTableCount = sizeof(ImplementationTable) / sizeof(TImplementationProxy); - return ImplementationTable; - } - diff -r 0d1adf67ec1b -r 12f60d9a73b3 csxhelp/AiwHelpProvider/src/AiwHelpProvider.rss --- a/csxhelp/AiwHelpProvider/src/AiwHelpProvider.rss Thu Aug 19 09:42:56 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,36 +0,0 @@ -/* -* Copyright (c) 2002 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: resource file -* Write the menu resources here. -* -*/ - - - -#include -#include "RegistryInfoV2.rh" -#include "AiwHelpProvider.rh" -#include -#include -#include - -RESOURCE MENU_PANE r_aiwhelpprovider_menu - { - items = - { - MENU_ITEM { command = AIW_SUBMENU_TITLE; txt = qtn_options_help; }, - MENU_ITEM { command = EAiwShowHelpCmd; txt = qtn_options_help;extratxt = qtn_options_help_sm_help; } - - }; - } diff -r 0d1adf67ec1b -r 12f60d9a73b3 csxhelp/HelpEngine/inc/CSXHContextTopic.h --- a/csxhelp/HelpEngine/inc/CSXHContextTopic.h Thu Aug 19 09:42:56 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,78 +0,0 @@ -/* -* 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: CCSXHContextTopic class declaration -* -*/ - - -#ifndef INC_CSXHCONTEXTTOPIC_H_HEADER_INCLUDED_BC050AFE -#define INC_CSXHCONTEXTTOPIC_H_HEADER_INCLUDED_BC050AFE - -#include "CSXHHelpContentBase.h" - -class CCSXHHelpDataBase; -/** -* @class CCSXHContextTopic -* This class is used for Context Sensitivity -*/ -class CCSXHContextTopic : public CCSXHHelpContentBase - { - public: -/** -* @function NewL -* @since S60 3.2 -* Construct a CCSXHContextTopic -* and return a pointer to the created object -* @param aToc2 - a toc2 class pointer type casted to database -* @return a CCSXHContextTopic Pointer -*/ - static CCSXHContextTopic* NewL(CCSXHHelpContentBase* aToc2); -/** - * @function ~CCSXHContextTopic - * @since S60 3.2 - * Destroy the object and release all memory objects - */ - ~CCSXHContextTopic(); -/** -* @function GetViewID -* @since S60 3.2 -* Get ViewId to activate the View -* @return View Id -*/ - TUid GetViewID() const; -/** -* @function GetTopic -* @since S60 3.2 -* Get the Object HTML / Legacy type cast to Database -* @return View Id -*/ - IMPORT_C CCSXHHelpContentBase* GetTopic(); - - protected: -/** -* @function CCSXHContextTopic -* @since S60 3.2 -* Construct a CCSXHContextTopic -* @param aToc2object - a toc2 class pointer type casted to database -*/ - CCSXHContextTopic(CCSXHHelpContentBase *aToc2object); - - protected: - CCSXHHelpContentBase *iToc2; - - }; - - - -#endif /* INC_CSXHCONTEXTTOPIC_H_HEADER_INCLUDED_BC050AFE */ diff -r 0d1adf67ec1b -r 12f60d9a73b3 csxhelp/HelpEngine/inc/CSXHGenericTOC1.h --- a/csxhelp/HelpEngine/inc/CSXHGenericTOC1.h Thu Aug 19 09:42:56 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,124 +0,0 @@ -/* -* 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: CCSXHGenericTOC1 class declaration -* -*/ - - -#ifndef INC_CSXHGENERICTOC1_H_HEADER_INCLUDED_BC050AFE -#define INC_CSXHGENERICTOC1_H_HEADER_INCLUDED_BC050AFE - -#include "CSXHHelpContentBase.h" -#include - - -class CCSXHHelpDataBase; -/** -* @class CCSXHGenericTOC1 -* This class has the information of TOC1 -*/ -class CCSXHGenericTOC1 : public CCSXHHelpContentBase - { - public: -/** - * @function ~CCSXHGenericTOC1 - * @since S60 3.2 - * Destroy the object and release all memory objects - */ - ~CCSXHGenericTOC1(); -/** - * @function FillChildDataL - * @since S60 3.2 - * Fill the array - * @param aArray - A pointer to a Descriptor Array - */ - IMPORT_C virtual void FillChildDataL(CDesCArray* aArray); -/** - * @function GetChildL - * @since S60 3.2 - * Fill the array - * @param aName - toc1 Name - * @return pointer to toc2 type casted to database class - */ - IMPORT_C virtual CCSXHHelpContentBase* GetChildL(const TDesC& aName); - -/** - * @function InsertChild - * @since S60 3.2 - * Insert toc2 objects - * @param atoc2 - toc2 objects - * @param aDeleteObject - boolean, default True - * @return ETrue Successful, EFalse otherwise - */ - TBool InsertChild(CCSXHHelpContentBase* atoc2,TBool aDeleteObject = ETrue); - - TBool InsertChildWithPriority(CCSXHHelpContentBase* aChild, TBool aDeleteObject = ETrue); -/** - * @function ResetChildList - * @since S60 3.2 - * clear Array, delete the objects - * @return ETrue Successful, EFalse otherwise - */ - virtual void ResetChildList(); - - - protected: -/** -* @function CCSXHGenericTOC1 -* @since S60 3.2 -* Construct a CCSXHGenericTOC1 -* @param aName - TOC1 Name -*/ - CCSXHGenericTOC1(const TDesC& aName, const TInt32 aPriority = 0); - -/** -* @function InitChildList -* @since S60 3.2 -* Allocate the Memory for Array -*/ - virtual void InitChildList(); -/** -* @function CopyChildListL -* @since S60 3.2 -* Copy the content to Descriptor Array -* @param aArray - Descriptor Array -*/ - virtual void CopyChildListL(CDesCArray* aArray); - -/** -* @function ConstructChildList -* @since S60 3.2 -* Fill the toc2 objects in the array -* calls ConstructChildListL internally -* @return ETrue on Success, EFalse otherwise -*/ - TBool ConstructChildList(); - - private: -/** -* @function ConstructChildListL -* @since S60 3.2 -* Fill the toc2 objects in the array -*/ - void ConstructChildListL(); - - protected: - - RPointerArray *iChildList; - - }; - - - -#endif /* INC_CSXHGENERICTOC1_H_HEADER_INCLUDED_BC050AFE */ diff -r 0d1adf67ec1b -r 12f60d9a73b3 csxhelp/HelpEngine/inc/CSXHGenericTOC2.h --- a/csxhelp/HelpEngine/inc/CSXHGenericTOC2.h Thu Aug 19 09:42:56 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,61 +0,0 @@ -/* -* 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: CCSXHGenericTOC2 class declaration -* -*/ - -#ifndef INC_CSXHGENERICTOC2_H_HEADER_INCLUDED_BC05356D -#define INC_CSXHGENERICTOC2_H_HEADER_INCLUDED_BC05356D - -#include "CSXHHelpContentBase.h" - -class CCSXHGenericTOC1; -/** -* @class CCSXHGenericTOC2 -* This class has the information of TOC2 -*/ -class CCSXHGenericTOC2 : public CCSXHHelpContentBase - { - public: -/** - * @function GetParent - * @since S60 3.2 - * Get the Parent object - * @return pointer to toc1 class object - */ - IMPORT_C CCSXHGenericTOC1* GetParent(); -/** - * @function GetTopicContentL - * @since S60 3.2 - * Get topic to display - * @return pointer to Buffer - */ - virtual TAny* GetTopicContentL() = 0; - - protected: -/** -* @function CCSXHGenericTOC2 -* @since S60 3.2 -* Construct a CCSXHGenericTOC2 -* @param aParent - TOC1 object -* aName - toc2 Name -*/ - CCSXHGenericTOC2(CCSXHGenericTOC1* aParent, const TDesC& aName); - CCSXHGenericTOC1* iParent; - - }; - - - -#endif /* INC_CSXHGENERICTOC2_H_HEADER_INCLUDED_BC05356D */ diff -r 0d1adf67ec1b -r 12f60d9a73b3 csxhelp/HelpEngine/inc/CSXHHTMLContentParser.h --- a/csxhelp/HelpEngine/inc/CSXHHTMLContentParser.h Thu Aug 19 09:42:56 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,358 +0,0 @@ -/* -* 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: CCSXHHTMLContentParser class declaration -* -*/ - - -#ifndef __CCSXHHTMLCONTENTPARSER_H__ -#define __CCSXHHTMLCONTENTPARSER_H__ - -#include "CSXHGenericTOC1.h" -#include "coehelp.h" -#include -#include -#include - - -class TAppUid; -class CSenXmlReader; -class CCSXHXMLParseHandler; -class CCSXHHtmlTOC1; -class CCSXHHelpDataBase; -class CCSXHKywdTOC1; -class CCoeEnv; -class CCSXHHelpContentBase; -class CCSXHGenericTOC2; -class MSenContentHandlerClient; -class CCSXHXMLParseHandler_Kywd; -class CCSXHRuntimeIndexing; -class CCSXHXMLParseHandler_MetaFile; -/** -* CCSXHHTMLContentParser class. -* This class is used to parse XML files & generate Html data -* @lib euser.lib SenXml.lib XMLFRAMEWORK.lib ezip.lib HLPMODEL.LIB -* @since 3.2 -*/ -class CCSXHHTMLContentParser : public CBase -{ - public: -/** -* @function NewL -* @since S60 3.2 -* Construct a CCSXHHTMLContentParser -* and return a pointer to the created object -* @param aCoeEnv - Control Environment -* @return a CCSXHHTMLContentParser Pointer -*/ - static CCSXHHTMLContentParser* NewL(CCoeEnv* aCoeEnv); -/** -* @function NewLC -* @since S60 3.2 -* Construct a CCSXHLegacyContentParser -* and return a pointer to the created object using two phase construction -* @param aCoeEnv - Control Environment -* @return a CCSXHLegacyContentParser Pointer -*/ - static CCSXHHTMLContentParser* NewLC(CCoeEnv *aCoeEnv); -/** -* @function GenerateTOC1ListL -* @since S60 3.2 -* Generate Html TOC1 Objects -* @param aDataBase - Database class pointer -*/ void GenerateTOC1ListL(CCSXHHelpDataBase* aDataBase); -/** -* @function GenerateTOC2ListL -* @since S60 3.2 -* Generate Html TOC2 Objects -* @param atoc1 - generic toc1 class pointer -* aArray - Database class pointer's array pointer -*/ - void GenerateTOC2ListL(CCSXHGenericTOC1& atoc1, RPointerArray* aArray); -/** -* @function GetTopicContentL -* @since S60 3.2 -* Get the Buffer for a selected toc2 -* @param atoc2 - generic toc2 class pointer -* @return pointer to a buffer -*/ - TAny* GetTopicContentL(CCSXHGenericTOC2* atoc2); -/** -* @function GetContentsFromFileL -* @since S60 3.2 -* Get the Buffer from a html file -* @param htmlFile - html file path -* aCoeEnv - Control Environment -* @return pointer to a buffer -*/ - static HBufC8* GetContentsFromFileL(const TDesC& htmlFile,CCoeEnv* aCoeEnv,RFeatureControl &aFeatureControl); - -/** -* @function GetHtmlFileL -* @since S60 3.2 -* Get the html file path -* @param aCoeEnv - Control Environment -* aDir - Directory -* TAppUid - UID -* aFileName - FileName(IN/OUT Argument) -*/ - static void GetHtmlFileL(CCoeEnv* aCoeEnv,const short& aDir, - const TAppUid& aUid,TBuf& aFileName); -/** - * @function ~CCSXHHTMLContentParser - * @since S60 3.2 - * Destroy the object and release all memory objects - */ - ~CCSXHHTMLContentParser(); - -/** -* @function GenerateKywdTOC1ListL -* @since S60 3.2 -* Generate Html Keyword TOC1 Objects -* @param aDataBase - Database class pointer -*/ - void GenerateKywdTOC1ListL(CCSXHHelpDataBase* aDataBase); -/** -* @function GenerateTOC2ListForKeywordSearchL -* @since S60 3.2 -* Generate Html Keyword TOC2 Objects -* @param aDataBase - Database class pointer -* @param akywdtoc1 - keyword toc1 class pointer -*/ - void GenerateTOC2ListForKeywordSearchL(CCSXHHelpDataBase* aDataBase, - CCSXHKywdTOC1* akywdtoc1); -/** -* @function GetContextTopicL -* @since S60 3.2 -* Get the help Context object -* @param aContextName - Help context object -* @param aUid - Help content UID -* @return Help content class pointer -*/ - CCSXHHelpContentBase* GetContextTopicL(CCSXHHelpDataBase *aDataBase, - TUid &aUid, TCoeContextName &aContextName); -/** -* @function GetHtmlTopicForUrlL -* @since S60 3.2 -* Get the toc2 object in order to get Content -* @param aurl - Full File Path -* @return pointer to database -*/ - CCSXHHelpContentBase* GetHtmlTopicForUrlL(const TDesC& aurl); - -/** -* @function IsUidCategoryPresent -* @since S60 3.2 -* Check for Existance of Appication Uid -* @param aUid - Application Uid -* @return ETrue if exists, EFalse otherwise -*/ - TBool IsUidCategoryPresent(const TUid& aUid); - - - void InsertHTMLToc1L(const TDesC &appUidName,const TDesC &appName,const TInt& aDrive, - CCSXHHelpDataBase* aDataBase, const TDesC &FeatureIds, TInt32 aPriority); - -/** -* @function GetHTMLToc1 -* @since S60 3.2 -* Get the HTML TOC1 object -* @param aUid - Application Uid -* aCurrentHtmlToc1 - HTMLTOC1 pointer -* @return ETrue if present, EFalse otherwise -*/ - TBool GetHTMLToc1(const TDesC& aUid,CCSXHXMLParseHandler* aParser); - - TBool CheckFeatureIDL(const TDesC& aFeatueIds); - private: -/** -* @function CCSXHHTMLContentParser -* @since S60 3.2 -* Construct a CCSXHHTMLContentParser -* @param aCoeEnv - Control Environment -*/ - CCSXHHTMLContentParser(CCoeEnv* aCoeEnv); -/** -* @function InitializeReaderL -* @since S60 3.2 -* Create XMLParse Objects -* @param aXMLParser - Pointer to XML parse Handler -*/ - void InitializeReaderL(CCSXHXMLParseHandler* aXMLParser); -/** -* @function InitializeParserAndReaderL -* @since S60 3.2 -* Delete XMLParse Objects -* @param aXMLParser - Pointer to XML parse Handler -*/ - void ClearReader(); -/** -* @function ConstructL -* @since S60 3.2 -* perform the second phase construction -*/ - void ConstructL(); -/** -* @function ScanAndParseXMLfileToCreateTOC1ObjectL -* @since S60 3.2 -* perform the second phase construction -* @param aFileSession - FileSession -* ascanner - CDirScan pointer -* aDatabase - Database pointer -* aDrive - Drive Number -* aXMLParser - XMLParserhandler pointer -*/ - void ScanAndParseXMLfileToCreateTOC1ObjectL(RFs& aFileSession,CDirScan* ascanner, - CCSXHHelpDataBase* aDataBase, - const TInt& aDrive, - CCSXHXMLParseHandler_MetaFile* aXMLParser); - - - - TBool IsRomBasedContentL( RFs& FileSession, const TDesC &aUid ); -/** -* @function HandleMasterMetaFileL( -* @since S60 3.2 -* perform the second phase construction -* @param aFileSession - FileSession -* aDatabase - Database pointer -* aRootDir - Root directory -* aPrevHandler - Previous Content Handler -* @return ETrue if handled, EFalse otherwise -*/ - TBool HandleMasterMetaFileL(CCSXHHelpDataBase* aDataBase, - TChar& aDrive, MSenContentHandlerClient *aPrevHandler); - -/** -* @function IsRedirectedL( -* @param aDatabase - Database pointer -* aPath - Context root directory -* aUid - App uid -* aContextName - file name -* @return ETrue if the context is redirected successfully, EFalse otherwise -*/ - TBool IsRedirectedL(CCSXHHelpDataBase *aDataBase, - const TDesC &aPath, TUid &aUid, TCoeContextName &aContextName); -/** -* @function HandleMasterKeywordFileL( -* @since S60 3.2 -* parse makster keywords file -* @param aDatabase - Database pointer -* @return ETrue if handled, EFalse otherwise -*/ TBool HandleMasterKeywordFileL(CCSXHHelpDataBase* aDataBase); - - - static TBool GetHTMLContentPathForDriveL(TBuf* aContentDrive,CCoeEnv *aCoeEnv); - -/** -* @function IsAppUIdPresentAlready( -* @since S60 3.2 -* Check duplicate Uids -* @param aUid - Application Uid -* @return ETrue if dupicate is identified, EFalse otherwise -*/ - TBool IsAppUIdPresentAlready(const TDesC& aUid); - -/** -* @function GetCorrespondingTOC1FromMainArray( -* @since S60 3.2 -* Get TOC1 object from the main array, which is used to display Main topic view. -* @param aApplicationName - Application Name -* @return pointer to HTML toc1. -*/ - CCSXHHtmlTOC1* GetCorrespondingTOC1FromMainArray(const TDesC& aApplicationName); - -/** -* @function ParseKeywdFileAndCreatekywdTOC1Objects -* @since S60 3.2 -* Parse keyword.xml file and Create kywd TOC1 objects. -* @param aTOC1ObjectsArray - Array of HTMLToc1Objects -* XMLParser - pointer to XML parse handler. -* bMasterKeywordFilePresent - Boolean parameter -*/ - - void ParseKeywdFileAndCreatekywdTOC1ObjectsL(RPointerArray& aTOC1ObjectsArray, - CCSXHXMLParseHandler_Kywd* XMLParser, TBool bMasterKeywordFilePresent); - -/** -* @function ParseKeywdFileAndCreatekywdTOC1Objects -* @since S60 3.2 -* Parse keyword.xml file and Create kywd TOC1 objects. -* @param aTOC1ObjectsArray - Array of HTMLToc1Objects -* aUrl - html file path -*/ - - CCSXHHelpContentBase* CCSXHHTMLContentParser::GetObjectBasedonUrlL(RPointerArray& aTOC1ObjectsArray, - const TDesC& aUrl,TBool aMainArrayList); - -/** -* @function GetSupportedFeatureListL -* @since S60 3.2 -* Get enabled featureIds in the current build -*/ - void GetSupportedFeatureListL(); - -/** -* @function CreateBufferForCSSContentL -* @since S60 3.2 -* Create CSS Content using enabled featureIds -* @param aFeatureControl - RFeatureControl instance -*/ - static HBufC8* CreateBufferForCSSContentL(RFeatureControl& aFeatureControl); - -/** -* @function GetContentsFromHTMLFileL -* @since S60 3.2 -* Read the contents from HTML file -* @param htmlFile - HTML file name -* aCoeEnv - Control Environment -*/ - - static HBufC8* GetContentsFromHTMLFileL(const TDesC& htmlFile, CCoeEnv* aCoeEnv); - -/** -* @function MergeCssAndHTMLContentL -* @since S60 3.2 -* Merge CSS and HTML Content -* @param aHTMLBuffer - HTML file content -* aCssContent - CSS content -*/ - - static HBufC8* MergeCssAndHTMLContentL(HBufC8* aHTMLBuffer, HBufC8* aCssContent); - - static void AppendStyleSheetContent_listitem(TPtr8& abufferptr,TInt aFeatureIdCount, - RFeatureUidArray& aSupportedFeatures,CArrayFix& alanguageCodeArray); - static void AppendStyleSheetContent_paragraph(TPtr8& abufferptr,TInt aFeatureIdCount, - RFeatureUidArray& aSupportedFeatures,CArrayFix& alanguageCodeArray); - static void AppendStyleSheetContent_ahref(TPtr8& abufferptr,TInt aFeatureIdCount, - RFeatureUidArray& aSupportedFeatures,CArrayFix& alanguageCodeArray); - static void AppendStyleSheetContent_none(TPtr8& abufferptr,TInt aFeatureIdCount, - RFeatureUidArray& aSupportedFeatures); - private: - CSenXmlReader *iXmlReader; - - //Store all the created HTML TOC1 objects for future reference. - RPointerArray iHtmlTOC1List,iDuplicateHelpTopicList; - CCoeEnv *iCoeEnv; - - RFeatureUidArray iSupportedFeatures; - RFeatureControl iFeatureControl; - //Input Language variation changes - CDesCArray* iSupportedInputLanguages; - CDesCArray* iFeatureManager_FeatureIds; - CCSXHRuntimeIndexing* iIndexing; - -}; - -#endif diff -r 0d1adf67ec1b -r 12f60d9a73b3 csxhelp/HelpEngine/inc/CSXHHelpContentBase.h --- a/csxhelp/HelpEngine/inc/CSXHHelpContentBase.h Thu Aug 19 09:42:56 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,116 +0,0 @@ -/* -* 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: CCSXHHelpContentBase class declaration -* -*/ - - -#ifndef INC_CSXHHELPCONTENTBASE_H_HEADER_INCLUDED_BC0553D0 -#define INC_CSXHHELPCONTENTBASE_H_HEADER_INCLUDED_BC0553D0 - -#include -#include - -const TInt KMaxHelpTopicName = 30; -/** -* @class CCSXHGenericTOC1 -* This class is the base class for GenericTOC1 & GenericTOC2 -*/ -class CCSXHHelpContentBase : public CBase - { - public: - /** - * @function ~CCSXHHelpContentBase - * @since S60 3.2 - * Destroy the object and release all memory objects - */ - virtual ~CCSXHHelpContentBase(); - -/** -* @function GetViewID -* @since S60 3.2 -* Get ViewId to activate the View -* @return View Id -*/ - IMPORT_C virtual TUid GetViewID() const = 0; - -/** -* @function GetName -* @since S60 3.2 -* Get the name -* @return Pointer which contains Name -*/ - IMPORT_C TPtr GetName() const; - - TInt32 Priority() const; - - protected: -/** -* @function CCSXHHelpContentBase -* @since S60 3.2 -* Construct a CCSXHHelpContentBase -* @param aName - Name -*/ - CCSXHHelpContentBase(const TDesC& name, const TInt32 aPriority = 0); - - private: - // 1. For Generic TOC1: The TOC1 entry name - // 2. For Generic TOC2: The TOC2 entry name - // 3. For help database: Unused - //TBuf iName; - //typedef TBuf<30> TCoeContextName; - - HBufC *iName; - TInt32 iPriority; - - template - friend TInt Orderer(const T& left, const T& right); - - template - friend TInt OrdererWithPriority(const T& left, const T& right); - }; -/** -* @function Orderer -* @since S60 3.2 -* template function used to compare between two objects -* @param left - template object -* right - template object -* @return 0 if both are same, +ve or -ve Values as per Comparision -*/ -template -TInt Orderer(const T& left, const T& right) - { - //return left.GetName().CompareC(right.GetName()); - return (left.iName)->CompareF(*right.iName); - } - -template -TInt OrdererWithPriority(const T& left, const T& right) - { - if (left.iPriority < right.iPriority) - { - return -1; - } - else if (left.iPriority == right.iPriority) - { - return (left.iName)->CompareF(*right.iName); - } - else - { - return 1; - } - } - - -#endif /* INC_CSXHHELPCONTENTBASE_H_HEADER_INCLUDED_BC0553D0 */ diff -r 0d1adf67ec1b -r 12f60d9a73b3 csxhelp/HelpEngine/inc/CSXHHelpDataBase.h --- a/csxhelp/HelpEngine/inc/CSXHHelpDataBase.h Thu Aug 19 09:42:56 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,272 +0,0 @@ -/* -* 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: CCSXHHelpDataBase class declaration -* -*/ - - -#ifndef INC_CSXHHELPDATABASE_H_HEADER_INCLUDED_BC054F58 -#define INC_CSXHHELPDATABASE_H_HEADER_INCLUDED_BC054F58 - -#include "CSXHHelpContentBase.h" -#include "CSXHGenericTOC1.h" -#include -#include -class CAknProgressDialog; - -class CCSXHHelpDataBase; -class CCSXHHTMLContentParser; -class CCSXHLegacyContentParser; -class CCSXHGenericTOC2; -class CCSXHKywdTOC1; -class CCSXHHtmlTOC1; -class CCoeEnv; -class CCSXHMainTopics; -class CCSXHKywdTopics; -class MCSXHKywdBuilder; - -/** -* @class CCSXHHelpDataBase -* This class has all pointers & used to generate the required data from Application -*/ -class CCSXHHelpDataBase : public CBase - { - public: -/** -* @function NewL -* @since S60 3.2 -* Construct a CCSXHHelpDataBase -* and return a pointer to the created object -* @param aCoeEnv - Control Environment -* @return a CCSXHHelpDataBase Pointer -*/ - IMPORT_C static CCSXHHelpDataBase* NewL(CCoeEnv* aCoeEnv,const TApaAppCaption& aAppCaption, const TApaAppCaption& aAppHelpTopic); -/** -* @function NewLC -* @since S60 3.2 -* Construct a CCSXHHelpDataBase -* and return a pointer to the created object using two phase construction -* @param aCoeEnv - Control Environment -* @return a CCSXHHelpDataBase Pointer -*/ - static CCSXHHelpDataBase* NewLC(CCoeEnv *aCoeEnv,const TApaAppCaption& aAppCaption, const TApaAppCaption& aAppHelpTopic); - -/** -* @function GetInstance -* @since S60 3.2 -* Get the instance of database class -* @return database pointer -*/ - static CCSXHHelpDataBase* GetInstance(); - - /** - * @function ~CCSXHHelpDataBase - * @since S60 3.2 - * Destroy the object and release all memory objects - */ - IMPORT_C ~CCSXHHelpDataBase(); -/** -* @function GetMainTopics -* @since S60 3.2 -* Get the instance of Main toc1 -* @return toc1 pointer -*/ - IMPORT_C CCSXHGenericTOC1* GetMainTopics(); -/** -* @function GetKywdTopics -* @since S60 3.2 -* Get the instance of keyword toc1 -* @return toc1 pointer -*/ - IMPORT_C CCSXHGenericTOC1* GetKywdTopics(); -/** -* @function GetAppHelpsTopics -* @since S60 5.2 -* Get the instance of application (custom) helps toc1 -* @return toc1 pointer -*/ - IMPORT_C CCSXHGenericTOC1* GetAppHelpsTopics(); -/** -* @function ClearAllTOC1Contents -* @since S60 3.2 -* Delete all the objects from the Array -*/ - IMPORT_C void ClearAllTOC1Contents(); -/** -* @function GetContextTopic -* @since S60 3.2 -* Delete all the objects from the Array -* @param aContextMessage - Message Sent by other Application -* @return Database pointer -*/ - IMPORT_C CCSXHHelpContentBase* GetContextTopic(const TDesC8& aContextMessage); -/** -* @function GetHtmlTopicForUrlL -* @since S60 3.2 -* Delete all the objects from the Array -* @param aurl - Html file path -* @return Database pointer -*/ - IMPORT_C CCSXHHelpContentBase* GetHtmlTopicForUrlL(const TDesC& aurl); - -/** -* @function IncrementProgressBar -* @since S60 3.2 -* Increments the progress info -* @return progress info pointer -*/ - void IncrementKeywordSearchCount(TInt aUnits = 1); -/** -* @function GetLegacyParser -* @since S60 3.2 -* Get LegacyContentparser -* @return LegacyContentParser pointer -*/ - CCSXHLegacyContentParser* GetLegacyParser(); -/** -* @function GetHtmlParser -* @since S60 3.2 -* Get htmlContentparser -* @return HtmlContentParser pointer -*/ - CCSXHHTMLContentParser* GetHtmlParser(); -/** -* @function InsertKeywordL -* @since S60 3.2 -* Insert into array -* @param aKywdName - Keyword Name -* aToc1 - Toc1 Object -*/ - void InsertKeywordL(const TDesC& aKywdName, CCSXHHtmlTOC1* aToc1); -/** -* @function InsertKeywordL -* @since S60 3.2 -* Insert into Array -* @param aKywdName - Keyword Name -* aLegacyKywdIndex - Position -* aCatUid - Application Uid -*/ - void InsertKeywordL(const TDesC& aKywdName, TInt aLegacyKywdIndex, const TUid& aCatUid); - - -/** -* @function InitGenerateKeywordTOC2ListL -* @since S60 3.2 -* Initializes the generation of kywd toc2 objects -* @param aKywdToc1 - Keyword toc1 object -*/ - IMPORT_C TInt InitGenerateKeywordTOC2ListL(CCSXHKywdTOC1* aKywdToc1); - -/** -* @function GenerateKeywordTOC2ListL -* @since S60 3.2 -* Generate the toc2 objects,InitGenerateKeywordTOC2ListL has to be called first -* @param aKywdToc1 - Keyword toc1 object -*/ - void GenerateKeywordTOC2ListL(CCSXHKywdTOC1* aKywdToc1); - -/** -* @function InsertKeywordTopicL -* @since S60 3.2 -* The caller should allocate memory for the aTOC2 object, if it is not successfully -* added to the topic, then this function will free the memory -* @param -* aToc2 - toc2 object -*/ - CCSXHKywdTOC1* InsertKeywordTopicL(CCSXHGenericTOC2* aToc2); - -/** -* @function InsertKeywordTopic -* @since S60 3.2 -* The caller should allocate memory for the aTOC2 object, if it is not successfully -* added to the topic, then this function will free the memory -* @param aToc1 - toc1 object -* aToc2 - toc2 object -*/ - void InsertKeywordTopic(CCSXHKywdTOC1* aToc1, CCSXHGenericTOC2* aToc2); - -/** -* @function FillKeywordTopicsL -* @since S60 3.2 -* Fills Keyword objects -* @param aBuilder - MCSXHKywdBuilder object -*/ - void FillKeywordTopicsL(MCSXHKywdBuilder* aBuilder); - -/** -* @function GetCoeEnv -* @since S60 3.2 -* Get the Control Environment -* @return pointer to control environment -*/ - CCoeEnv* GetCoeEnv(); -/** -* @function GetKeywordSearchCount -* @since S60 3.2 -* Gets the current count of keywords for search result view -* @return TInt count -*/ -IMPORT_C TInt GetKeywordSearchCount(); - - private: -/** -* @function ConstructL -* @since S60 3.2 -* perform the second phase construction -*/ - void ConstructL(); -/** -* @function CCSXHHelpDataBase -* @since S60 3.2 -* Construct a CCSXHHelpDataBase -* @param aCoeEnv - Control Environment -*/ - CCSXHHelpDataBase(CCoeEnv* aCoeEnv,const TApaAppCaption& aAppCaption, const TApaAppCaption& aAppHelpTopic); - -/** -* @function GetContextTopicL -* @since S60 3.2 -* Get the topic for the Context -* @param aContextMessage - Message sent by other Application -* @return Database pointer -*/ - CCSXHHelpContentBase* GetContextTopicL(const TDesC8& aContextMessage); - - // List of TOC1 entries - CCSXHMainTopics *iMainTOC1; - // List of keyword entries - CCSXHKywdTopics *iKywdTOC1; - - CCSXHMainTopics* iAppHelpsToc; - - - CCSXHHTMLContentParser *iHTMLContentParser; - CCSXHLegacyContentParser *iLegacyContentParser; - - CCoeEnv *iCoeEnv; - - CCSXHHelpContentBase *iLastContextTopic; - - MCSXHKywdBuilder *iKwydBuilder; - - TApaAppCaption iAppCaption; - - TApaAppCaption iAppHelpTopic; - TInt iKeywordSearchCount; - - }; - - - -#endif /* INC_CSXHHELPDATABASE_H_HEADER_INCLUDED_BC054F58 */ diff -r 0d1adf67ec1b -r 12f60d9a73b3 csxhelp/HelpEngine/inc/CSXHHtmlTOC1.h --- a/csxhelp/HelpEngine/inc/CSXHHtmlTOC1.h Thu Aug 19 09:42:56 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,148 +0,0 @@ -/* -* 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: CCSXHHtmlTOC1 class declaration -* -*/ - - -#ifndef INC_CSXHHTMLTOC1_H_HEADER_INCLUDED_BC0568C5 -#define INC_CSXHHTMLTOC1_H_HEADER_INCLUDED_BC0568C5 - -#include "CSXHGenericTOC1.h" - -class CCSXHHelpDataBase; - -/** -* @class TAppUid -* This class stores the required information to store a folder name in string -* as integer and converts it back to a string when required. This class is mainly -* to save RAM space -*/ - -class TAppUid - { - public: - TAppUid(const TDesC& aFolder); - const TUid& GetUid() const; - TBool IsValid() const; - void AppendUid(TBuf& aStr) const; - private: - TUid iUid; - TUint8 iLength; - }; - - -/** -* @class CCSXHHtmlTOC1 -* This class has the information of html TOC1 -*/ -class CCSXHHtmlTOC1 : public CCSXHGenericTOC1 - { - public: -/** -* @function NewL -* @since S60 3.2 -* Construct a CCSXHHtmlTOC1 -* and return a pointer to the created object -* @param aName - TOC1 Name -* aUid - Application Uid -* aDrive - Drive Number -* @return a CCSXHHtmlTOC1 Pointer -*/ - static CCSXHHtmlTOC1* NewL(const TDesC& aName,const TDesC& aFolder, - const TInt& aDrive, TUid aViewId, TInt32 aPriority = 0); -/** - * @function ~CCSXHHtmlTOC1 - * @since S60 3.2 - * Destroy the object and release all memory objects - */ - ~CCSXHHtmlTOC1(); - -/** -* @function GetViewID -* @since S60 3.2 -* Get ViewId to activate the View -* @return View Id -*/ - TUid GetViewID() const; - -/** -* @function GetAppUid -* @since S60 3.2 -* Get Application uid -* @return Application UId -*/ - const TUid& GetAppUid() const; -/** -* @function GetContextTopic -* @since S60 3.2 -* Get content for Context Name -* @param acontextName - Context Name -* @return pointer to database class -*/ - CCSXHHelpContentBase* GetContextTopic(const TDesC& acontextName); -/** -* @function GetHelpFileL -* @since S60 3.2 -* Get the file path -* @param aFilePath - File Path -*/ - void GetHelpFileL(TBuf& aFilePath) const; -/** -* @function GetHtmlTopicForFile -* @since S60 3.2 -* Get the toc2 object in order to get Content -* @param aFile - toc2 Name -*/ - CCSXHHelpContentBase* GetHtmlTopicForFile(const TDesC& aFile); - -/** -* @function GetHelpFileL -* @since S60 3.2 -* Get the file path -* @return ETrue, if it part of ROMdrive, EFalse otherwise -*/ - TBool IsROMDrive(); - - TBool IsValid() const; - - protected: -/** -* @function CCSXHHtmlTOC1 -* @since S60 3.2 -* Construct a CCSXHHtmlTOC1 -* @param aName - TOC1 Name -* aUid - Application Uid -* aDrive - Drive Number -*/ - CCSXHHtmlTOC1(const TDesC& aName, const TDesC& aFolder, const TInt& aDriveName, TUid aViewId, TInt32 aPriority); -/** -* @function InitChildList -* @since S60 3.2 -* Allocate Memory to the array -*/ - void InitChildList(); - - - private: - - - TAppUid iAppUid; - short iDrive; - TUid iViewId; - }; - - - -#endif /* INC_CSXHHTMLTOC1_H_HEADER_INCLUDED_BC0568C5 */ diff -r 0d1adf67ec1b -r 12f60d9a73b3 csxhelp/HelpEngine/inc/CSXHHtmlTOC2.h --- a/csxhelp/HelpEngine/inc/CSXHHtmlTOC2.h Thu Aug 19 09:42:56 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,172 +0,0 @@ -/* -* 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: CCSXHHtmlTOC2 class declaration -* -*/ - - -#ifndef INC_CSXHHTMLTOC2_H_HEADER_INCLUDED_BC052432 -#define INC_CSXHHTMLTOC2_H_HEADER_INCLUDED_BC052432 - -#include "CSXHGenericTOC2.h" - -class CCSXHGenericTOC1; -class CCSXHKywdTOC1; -class CCoeEnv; -class TCoeHelpContext; -class RFeatureControl; -/** -* @class CCSXHHtmlTOC2 -* This class has the information of html TOC2 -*/ -class CCSXHHtmlTOC2 : public CCSXHGenericTOC2 - { - public: -/** -* @function NewL -* @since S60 3.2 -* Construct a CCSXHHtmlTOC2 -* and return a pointer to the created object -* @param aparent - TOC1 object -* aName - toc2 Name -* aHtmlFileName - FileName -* aKey - ETrue for Keyword toc2, EFalse otherwise -* @return a CCSXHHtmlTOC2 Pointer -*/ -static CCSXHHtmlTOC2* NewL(CCSXHGenericTOC1* aparent,const TDesC& aName, -const TDesC& aHtmlFileName,TBool aKey=EFalse); -/** -* @function NewLC -* @since S60 3.2 -* Construct a CCSXHHtmlTOC2 -* and return a pointer to the created object using two phase construction -* @param aparent - TOC1 object -* aName - toc2 Name -* aHtmlFileName - FileName -* aKey - ETrue for Keyword toc2, EFalse otherwise -* @return a CCSXHHtmlTOC2 Pointer -*/ -static CCSXHHtmlTOC2* NewLC(CCSXHGenericTOC1*aparent,const TDesC& aName, -const TDesC& aHtmlFileName,TBool aKey=EFalse); - -/** - * @function ~CCSXHHtmlTOC2 - * @since S60 3.2 - * Destroy the object and release all memory objects - */ - ~CCSXHHtmlTOC2(); - -/** - * @function ~CCSXHHtmlTOC2 - * @since S60 3.2 - * Get the full path of the HTML file - * @param aFileUrl - Buffer in order to get the file path - */ - IMPORT_C void GetHtmlUrlL(TBuf& aFileUrl) const; - -/** -* @function GetViewID -* @since S60 3.2 -* Get ViewId to activate the View -* @return View Id -*/ - TUid GetViewID() const; -/** -* @function GetTopicContentL -* @since S60 3.2 -* Get the content to display in the browser -* @return Pointer to the buffer -*/ - TAny* GetTopicContentL(); - -/** -* @function GetFileName -* @since S60 3.2 -* Get html file Name -* @return buffer which contains html file Name -*/ - const TBuf& GetFileName() const; - -/** -* @function GetHelpContext -* @since S60 3.2 -* Constructs a Help Context corresponding to the topic -* @returns true on success -*/ - IMPORT_C TBool GetHelpContext(TCoeHelpContext& aContext) const; - -/** -* @function GetContentsFromUrlL -* @since S60 3.2 -* Get content from a html file -* @param aUrl - Full file path -* aCoeEnv - Control Environment -* @return pointer to buffer which contains HTML file content -*/ - IMPORT_C static HBufC8* GetContentsFromUrlL(const TDesC& aUrl, - CCoeEnv* aCoeEnv,RFeatureControl& aFeatureControl); - -/** -* @function SetKywdParent -* @since S60 3.2 -* Set the parent object -* @param aParent - keyword toc1 class pointer -*/ - void SetKywdParent(CCSXHKywdTOC1* aParent); -/** -* @function GetKywdParent -* @since S60 3.2 -* Get the parent -* @return poniter to keywordtoc1 (parent) class -*/ - IMPORT_C CCSXHKywdTOC1* GetKywdParent(); - -/** -* @function SetHtmlFilePath -* @since S60 3.2 -* Set Html file path -* @param aFilePath - Html file path -*/ - void SetHtmlFilePath(const TDesC& aFilePath); - -/** -* @function GetHtmlFileName -* @since S60 3.2 -* Get html file -* @param aFileName - Full path with html file name -*/ - void GetHtmlFileName(TBuf& aFileName); - - private: -/** -* @function CCSXHHtmlTOC2 -* @since S60 3.2 -* Construct a CCSXHHtmlTOC2 -* @param aparent - TOC1 object -* aName - toc2 Name -* aHtmlFileName - FileName -* aKey - ETrue for Keyword toc2, EFalse otherwise -*/ - CCSXHHtmlTOC2(CCSXHGenericTOC1* aparent,const TDesC& aName, - const TDesC& aHtmlFileName,TBool aKeyWord = false); - - private: - TBuf iHTMLFileName,iHTMLFilePath; - TBool iKeyWordTopic; - CCSXHKywdTOC1 *iKywdParent; - }; - - - -#endif /* INC_CSXHHTMLTOC2_H_HEADER_INCLUDED_BC052432 */ diff -r 0d1adf67ec1b -r 12f60d9a73b3 csxhelp/HelpEngine/inc/CSXHKywdTOC1.h --- a/csxhelp/HelpEngine/inc/CSXHKywdTOC1.h Thu Aug 19 09:42:56 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,108 +0,0 @@ -/* -* 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: CCSXHKywdTOC1 class declaration -* -*/ - - -#ifndef INC_CSXHKYWDTOC1_H_HEADER_INCLUDED_BC0568C5 -#define INC_CSXHKYWDTOC1_H_HEADER_INCLUDED_BC0568C5 - -#include "CSXHGenericTOC1.h" - -class CCSXHHtmlTOC1; -/** -* @class CCSXHLegacyTOC1 -* This class has the information of keyword TOC1 -*/ -class CCSXHKywdTOC1 : public CCSXHGenericTOC1 - { - public: -/** -* @function NewL -* @since S60 3.2 -* Construct a CCSXHKywdTOC1 -* and return a pointer to the created object -* @param aName - Name of the TOC1 -* @return a CCSXHKywdTOC1 Pointer -*/ - static CCSXHKywdTOC1* NewL(const TDesC& aName); -/** -* @function NewLC -* @since S60 3.2 -* Construct a CCSXHKywdTOC1 -* and return a pointer to the created object using two phase contruction -* @param aName - Name of the TOC1 -* @return a CCSXHKywdTOC1 Pointer -*/ - static CCSXHKywdTOC1* NewLC(const TDesC& aName); -/** - * @function ~CCSXHKywdTOC1 - * @since S60 3.2 - * Destroy the object and release all memory objects - */ - ~CCSXHKywdTOC1(); -/** -* @function GetViewID -* @since S60 3.2 -* Get ViewId to activate the View -* @return View Id -*/ - TUid GetViewID() const; -/** -* @function LegacyIndex -* @since S60 3.2 -* Get the position -* @return position -*/ - TInt& LegacyIndex(); -/** -* @function AppendHtmlTOC1L -* @since S60 3.2 -* Insert html toc1 object -* @param atoc1 - html toc1 class pointer -*/ - void AppendHtmlTOC1L(CCSXHHtmlTOC1* aToc1); - -/** -* @function GetHtmlTOC1List -* @since S60 3.2 -* Get the Array -* @return pointer to the Array of html toc1 objects -*/ - RPointerArray* GetHtmlTOC1List(); - - protected: -/** -* @function CCSXHKywdTOC1 -* @since S60 3.2 -* Construct a CCSXHKywdTOC1 -* @param aName - kywd toc1 name -*/ - CCSXHKywdTOC1(const TDesC& aName); -/** -* @function InitChildList -* @since S60 3.2 -* Allocate Memory for toc1htmllist array -*/ - void InitChildList(); - private: - TInt iLegacyIndex;//Needed for getting the TOC2 kywd legacy contents - RPointerArray *iTOC1HtmlList; //Needed for getting the TOC2 kywd HTML contents - - }; - - - -#endif /* INC_CSXHKYWDTOC1_H_HEADER_INCLUDED_BC0568C5 */ diff -r 0d1adf67ec1b -r 12f60d9a73b3 csxhelp/HelpEngine/inc/CSXHKywdTopics.h --- a/csxhelp/HelpEngine/inc/CSXHKywdTopics.h Thu Aug 19 09:42:56 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,150 +0,0 @@ -/* -* 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: CCSXHKywdTopics class declaration -* -*/ - - -#ifndef INC_CSXHKYWDTOPICS_H_HEADER_INCLUDED_BC0568C5 -#define INC_CSXHKYWDTOPICS_H_HEADER_INCLUDED_BC0568C5 - -#include "CSXHGenericTOC1.h" -#include - -class CCSXHHelpDataBase; -class CCSXHHtmlTOC1; -class CCSXHKywdTOC1; - -/** -* @class CCSXHKywdTopics -* This class has the information of Keyword Objects -*/ -class CCSXHKywdTopics : public CCSXHGenericTOC1 - { - public: -/** -* @function NewL -* @since S60 3.2 -* Construct a CCSXHKywdTopics -* and return a pointer to the created object -* @param aDataBase - database class pointer -* @return a CCSXHKywdTopics Pointer -*/ - static CCSXHKywdTopics* NewL(const TApaAppCaption& aAppCaption); -/** -* @function NewL -* @since S60 3.2 -* Construct a CCSXHKywdTopics -* and return a pointer to the created object using two phase construction -* @param aDataBase - database class pointer -* @return a CCSXHKywdTopics Pointer -*/ - static CCSXHKywdTopics* NewLC(const TApaAppCaption& aAppCaption); -/** -* @function ~CCSXHKywdTopics -* @since S60 3.2 -* Destroy the object and release all memory objects -*/ - ~CCSXHKywdTopics(); -/** -* @function GetViewID -* @since S60 3.2 -* Get ViewId to activate the View -* @return View Id -*/ - TUid GetViewID() const; -/** -* @function InsertKywdL -* @since S60 3.2 -* Insert into an array -* @param aKywd - Keyword Name -*/ - void InsertKywdL(const TDesC& aKywd); -/** -* @function GetChildL -* @since S60 3.2 -* Get objects for keyword -* @param aKywd - Keyword Name -* @return database class pointer -*/ - CCSXHHelpContentBase* GetChildL(const TDesC& aName); - -/** -* @function GetSelectedTopic -* @since S60 3.2 -* Get the pointer for a selected Keyword -* @return keyword toc1 class pointer -*/ - CCSXHKywdTOC1* GetSelectedTopic(); - - protected: -/** -* @function CCSXHKywdTopics -* @since S60 3.2 -* Construct a CCSXHKywdTopics -* @param aName - keyword Name -*/ - CCSXHKywdTopics(const TDesC& aName); - -/** -* @function InitChildList -* @since S60 3.2 -* Allocate Memory for the Array -*/ - void InitChildList() {} -/** -* @function CopyChildListL -* @since S60 3.2 -* Copies content to Descriptor Array -* @param aArray - Descriptor Array -*/ - void CopyChildListL(CDesCArray* aArray); - - private: - CDesCArray *iKywdTopics; - CCSXHKywdTOC1 *iCurrentTopic; - }; - - - -/** -* @class MCSXHKywdBuilder -* The HTML content parser operates on this class for inserting keywords -*/ -class MCSXHKywdBuilder - { - public: // New functions -/** -* @function InsertKeywordL -* @since S60 3.2 -* Insert keywords into an array, pure virtual function -* @param aKwdTopics - keyword topics class pointer -* aKwd - keyword Name -* aToc1 - html toc1 class pointer -*/ - virtual void InsertKeywordL(CCSXHKywdTopics* aKwdTopics, const TDesC& aKwd, - CCSXHHtmlTOC1* aToc1) = 0; -/** -* @function InsertKeywordL -* @since S60 3.2 -* Insert keywords into an array, pure virtual function -* @param aKwdTopics - keyword topics class pointer -* aKwd - keyword Name -* aLegacyIndex - position of the object -*/ - virtual void InsertKeywordL(CCSXHKywdTopics* aKwdTopics, const TDesC& aKwd, - const TInt& aLegacyIndex) = 0; - }; - -#endif /* INC_CSXHKYWDTOPICS_H_HEADER_INCLUDED_BC0568C5 */ diff -r 0d1adf67ec1b -r 12f60d9a73b3 csxhelp/HelpEngine/inc/CSXHLegacyContentParser.h --- a/csxhelp/HelpEngine/inc/CSXHLegacyContentParser.h Thu Aug 19 09:42:56 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,179 +0,0 @@ -/* -* 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: CCSXHLegacyContentParser class declaration -* -*/ - - -#ifndef __CCSXHLEGACYCONTENTPARSER_H__ -#define __CCSXHLEGACYCONTENTPARSER_H__ - -#include -#include - -class CHlpModel; -class CHlpTopic; -class CCSXHGenericTOC1; -class CCSXHGenericTOC2; -class CCSXHLegacyTOC2; -class CCSXHHelpDataBase; -class CCSXHKywdTOC1; -class CCSXHLegacyTOC1; -class CCoeEnv; -class CCSXHHelpContentBase; -class TCoeHelpContext; - -/** -* CCSXHLegacyContentParser class. -* This class is used to retrive Legacy content from .hlp file -* @lib euser.lib -* @since 3.2 -*/ - -class CCSXHLegacyContentParser: public CBase , public MHlpModelObserver - { - public: -/** -* @function NewL -* @since S60 3.2 -* Construct a CCSXHLegacyContentParser -* and return a pointer to the created object -* @param aDataBase - Database class Pointer -* @return a CCSXHLegacyContentParser Pointer -*/ - static CCSXHLegacyContentParser* NewL(CCSXHHelpDataBase* aDataBase); -/** -* @function NewLC -* @since S60 3.2 -* Construct a CCSXHLegacyContentParser -* and return a pointer to the created object using two phase construction -* @param aDataBase - Database class pointer -* @return a CCSXHLegacyContentParser Pointer -*/ - static CCSXHLegacyContentParser* NewLC(CCSXHHelpDataBase* aDataBase); - -/** -* @function GenerateTOC1ListL -* @since S60 3.2 -* Generate Legacy TOC1 Objects -* @param aDataBase - Database class pointer -*/ - void GenerateTOC1ListL(CCSXHHelpDataBase* aDataBase); -/** -* @function GenerateTOC2ListL -* @since S60 3.2 -* Generate Legacy TOC2 Objects -* @param atoc1 - generic toc1 class pointer -* aArray - Database class pointer's array pointer -*/ - void GenerateTOC2ListL(CCSXHGenericTOC1& atoc1,RPointerArray* aArray); -/** -* @function GetTopicContentL -* @since S60 3.2 -* Get the richtext for a selected toc2 -* @param atoc2 - generic toc2 class pointer -* @return richtext pointer -*/ - TAny* GetTopicContentL(CCSXHGenericTOC2* atoc2); -/** -* @function GenerateKywdTOC1ListL -* @since S60 3.2 -* Generate Legacy Keyword TOC1 Objects -* @param aDataBase - Database class pointer -*/ - void GenerateKywdTOC1ListL(CCSXHHelpDataBase *aDataBase); - -/** -* @function InitGenerateTOC2ListForKeywordSearchL -* @since S60 3.2 -* Generate Legacy Keyword TOC2 Objects -* @param akywdtoc1 - keyword toc1 class pointer -* @return TInt the number of keyword sub topics -*/ - TInt InitGenerateTOC2ListForKeywordSearchL(CCSXHKywdTOC1* akywdtoc1); - -/** -* @function GenerateTOC2ListForKeywordSearchL -* @since S60 3.2 -* Generate Legacy Keyword TOC2 Objects,InitGenerateTOC2ListForKeywordSearchL -* has to be called first -* @param akywdtoc1 - keyword toc1 class pointer -*/ - void GenerateTOC2ListForKeywordSearchL(CCSXHKywdTOC1* akywdtoc1); -/** -* @function GetTOC1ForTOC2 -* @since S60 3.2 -* Get Legacy TOC1 Object -* @param atoc2 - keyword toc2 class pointer -* @return legacy toc1 class pointer -*/ - CCSXHLegacyTOC1* GetTOC1ForTOC2(CCSXHLegacyTOC2* atoc2); -/** - * @function ~CCSXHLegacyContentParser - * @since S60 3.2 - * Destroy the object and release all memory objects - */ - ~CCSXHLegacyContentParser(); - -/** -* @function GetContextTopic -* @since S60 3.2 -* Get the help Context object -* @param aContext - Help context object -* @param database class pointer -*/ - CCSXHHelpContentBase* GetContextTopic(TCoeHelpContext &aContext); - - private: -/** -* @function CCSXHLegacyContentParser -* @since S60 3.2 -* Construct a CCSXHLegacyContentParser -* @param aDataBase - Database class pointer -*/ - CCSXHLegacyContentParser(CCSXHHelpDataBase *aDataBase); -/** -* @function ConstructL -* @since S60 3.2 -* perform the second phase construction -* @param aDataBase - Database class pointer -*/ - void ConstructL(); -/** -* From MHlpModelObserver class -* @function HandleModelEventL -* @since S60 3.2 -* handle event from CHlpModel -* @param aEvent from CHlpModel -*/ - void HandleModelEventL(TInt aEvent); -/** -* @function LoadContextTopicL -* @since S60 3.2 -* Get the Richtext for context sensitive help -* @param aContext Help context class object -*/ - void LoadContextTopicL(TCoeHelpContext &aContext); - - private: - CHlpModel* iModel; - CHlpTopic* iTopic; - CCSXHHelpDataBase* iDataBase; - CHlpList* iHlpList; - TInt iStatus; - //Store all the created Legacy TOC1 objects for future reference. - RPointerArray iLegacyTOC1List; - }; - -#endif \ No newline at end of file diff -r 0d1adf67ec1b -r 12f60d9a73b3 csxhelp/HelpEngine/inc/CSXHLegacyTOC1.h --- a/csxhelp/HelpEngine/inc/CSXHLegacyTOC1.h Thu Aug 19 09:42:56 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,88 +0,0 @@ -/* -* 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: CCSXHLegacyTOC1 class declaration -* -*/ - - -#ifndef INC_CSXHLEGACYTOC1_H_HEADER_INCLUDED_BC050894 -#define INC_CSXHLEGACYTOC1_H_HEADER_INCLUDED_BC050894 - -#include "CSXHGenericTOC1.h" - -class CCSXHGenericContentParser; -class CCSXHHelpDataBase; -/** -* @class CCSXHLegacyTOC1 -* This class has the information of Legacy TOC1 -*/ -class CCSXHLegacyTOC1 : public CCSXHGenericTOC1 - { - public: -/** -* @function NewL -* @since S60 3.2 -* Construct a CCSXHLegacyTOC1 -* and return a pointer to the created object -* @param aName - Name of the TOC1 -* @return a CCSXHLegacyTOC1 Pointer -*/ - static CCSXHLegacyTOC1* NewL(const TDesC& aName); - -/** -* @function NewLC -* @since S60 3.2 -* Construct a CCSXHLegacyTOC1 -* and return a pointer to the created object using two phase contruction -* @param aName - Name of the TOC1 -* @return a CCSXHLegacyTOC1 Pointer -*/ - static CCSXHLegacyTOC1* NewLC(const TDesC& aName); - -/** -* @function GetViewID -* @since S60 3.2 -* Get ViewId to activate the View -* @return View Id -*/ - TUid GetViewID() const; - -/** -* @function GetContextTopic -* @since S60 3.2 -* Get toc2 Object -* @return CCSXHHelpContentBase (Leagcytoc2) class Pointer -*/ - CCSXHHelpContentBase* GetContextTopic(const TDesC &aContextName); - - private: -/** -* @function CCSXHLegacyTOC1 -* @since S60 3.2 -* Construct a CCSXHLegacyTOC1 -*/ - CCSXHLegacyTOC1(const TDesC& aName); - -/** -* @function InitChildList -* @since S60 3.2 -* Allocates Memory in order to store Objects -*/ - void InitChildList(); - - }; - - - -#endif /* INC_CSXHLEGACYTOC1_H_HEADER_INCLUDED_BC050894 */ diff -r 0d1adf67ec1b -r 12f60d9a73b3 csxhelp/HelpEngine/inc/CSXHLegacyTOC2.h --- a/csxhelp/HelpEngine/inc/CSXHLegacyTOC2.h Thu Aug 19 09:42:56 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,100 +0,0 @@ -/* -* 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: CCSXHLegacyTOC2 class declaration -* -*/ - - -#ifndef INC_CSXHLEGACYTOC2_H_HEADER_INCLUDED_BC0535B9 -#define INC_CSXHLEGACYTOC2_H_HEADER_INCLUDED_BC0535B9 - -#include "CSXHGenericTOC2.h" - -class CCSXHGenericTOC1; -class CCSXHLegacyTOC1; -/** -* @class CCSXHLegacyTOC2 -* This class has the information of Legacy TOC2 Info -*/ -class CCSXHLegacyTOC2 : public CCSXHGenericTOC2 - { - public: -/** -* @function NewL -* @since S60 3.2 -* Construct a CCSXHLegacyTOC2 -* and return a pointer to the created object -* @param aParent - TOC1 Object -* aName - Name of the TOC2 -* aKey - ETrue for KeywordTopic, EFalse otherwise -* @return a CCSXHLegacyTOC2 Pointer -*/ - static CCSXHLegacyTOC2* NewL(CCSXHGenericTOC1 *aParent,const TDesC& - aName,TBool aKey=EFalse); - -/** -* @function NewLC -* @since S60 3.2 -* Construct a CCSXHLegacyTOC2 -* and return a pointer to the created object using two phase constuction -* @param aParent - TOC1 Object -* aName - Name of the TOC2 -* aKey - ETrue for KeywordTopic, EFalse otherwise -* @return a CCSXHLegacyTOC2 Pointer -*/ - static CCSXHLegacyTOC2* NewLC(CCSXHGenericTOC1 *aParent,const TDesC& - aName,TBool aKey=EFalse); - -/** -* @function GetTopicContentL -* @since S60 3.2 -* Get the topic to be displayed in Richtext format -* @return RichText Pointer -*/ - IMPORT_C TAny* GetTopicContentL(); - -/** -* @function GetViewID -* @since S60 3.2 -* Get ViewId to activate the View -* @return View Id -*/ - TUid GetViewID() const; - -/** -* @function GetLegacyParent -* @since S60 3.2 -* Get Parent Object -* @return TOC1 Object(Parent) for present TOC2 Object -*/ - IMPORT_C CCSXHLegacyTOC1* GetLegacyParent(); - - private: -/** -* @function CCSXHLegacyTOC2 -* @since S60 3.2 -* Construct a CCSXHLegacyTOC2 -* @param aRect - TRect Object -* @param aParent - TOC1 Object -* aName - Name of the TOC2 -* aKey - ETrue for KeywordTopic, EFalse otherwise -*/ - CCSXHLegacyTOC2(CCSXHGenericTOC1 *aParent, const TDesC& aName,TBool aKey); - - TBool iKeyWordTopic; - }; - - - -#endif /* INC_CSXHLEGACYTOC2_H_HEADER_INCLUDED_BC0535B9 */ diff -r 0d1adf67ec1b -r 12f60d9a73b3 csxhelp/HelpEngine/inc/CSXHMainTopics.h --- a/csxhelp/HelpEngine/inc/CSXHMainTopics.h Thu Aug 19 09:42:56 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,84 +0,0 @@ -/* -* 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: CCSXHMainTopics class declaration -* -*/ - - -#ifndef INC_CSXHMAINTOPICS_H_HEADER_INCLUDED_BC0568C5 -#define INC_CSXHMAINTOPICS_H_HEADER_INCLUDED_BC0568C5 - -#include "CSXHGenericTOC1.h" -#include - -class CCSXHHelpDataBase; -/** -* @class CCSXHMainTopics -* This class has info of TOC1 Objects -*/ -class CCSXHMainTopics : public CCSXHGenericTOC1 - { - public: -/** -* @function CCSXHMainTopics -* @since S60 3.2 -* Construct a CCSXHMainTopics -* @param aCoeEnv - Control Environment -* @retrun a CCSXHMainTopics pointer -*/ - static CCSXHMainTopics* NewL(const TUid&, const TApaAppCaption& aAppCaption, const TInt32 aPriority = 0); -/** -* @function CCSXHMainTopics -* @since S60 3.2 -* Construct a CCSXHMainTopics using two phase construction -* @param aCoeEnv - Control Environment -* @retrun a CCSXHMainTopics pointer -*/ - static CCSXHMainTopics* NewLC(const TUid&,const TApaAppCaption& aAppCaption, const TInt32 aPriority = 0); - -/** - * @function ~CCSXHMainTopics - * @since S60 3.2 - * Destroy the object and release all memory objects - */ - ~CCSXHMainTopics(); -/** -* @function GetViewID -* @since S60 3.2 -* Get ViewId to activate the View -* @return View Id -*/ - TUid GetViewID() const; -/** -* @function ResetChildList -* @since S60 3.2 -* Delete Objects from the Array -*/ - void ResetChildList(); - - protected: - -/** -* @function CCSXHMainTopics -* @since S60 3.2 -* Construct a CCSXHMainTopics -* @param aUid - Application Uid -* aName - TOC1 Object Name -*/ - CCSXHMainTopics(const TUid& aUid, const TDesC& aName, const TInt32 aPriority); - - const TUid &iUid; - }; - -#endif /* INC_CSXHMAINTOPICS_H_HEADER_INCLUDED_BC0568C5 */ diff -r 0d1adf67ec1b -r 12f60d9a73b3 csxhelp/HelpEngine/inc/CSXHRuntimeIndexing.h --- a/csxhelp/HelpEngine/inc/CSXHRuntimeIndexing.h Thu Aug 19 09:42:56 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,160 +0,0 @@ -/* -* 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: This is a utility class that provides functionality -* for scanning app help folder, generate index XML -* at runtime, and also update it if any install/uninstall -* -*/ - -#ifndef CSXHRUNTIMEINDEXING_H -#define CSXHRUNTIMEINDEXING_H - -// INCLUDES -#include -#include - -// CONSTANTS -// the help content folder doesn't exist -const TInt KNoDirExist = -3; -// there is no changes in help content folder (like install/uninstall) -const TInt KNoChange = -2; -// there is no index.xml file (due to no help content at previous time) -const TInt KNoIndexExist = -1; - -// FORWARD CLASS DECLARATION -class CCSXHHtmlTOC1; -class CCSXHKywdTOC1; -class CCoeEnv; - -/* - * runtime indexing handling class - * responsible for generating index file, maintaining it. - * this class also create CS X Help private folder if not exist - * - */ -class CCSXHRuntimeIndexing : public CBase - { -public: - - /* - * constructor - */ - CCSXHRuntimeIndexing(); - /* - - * destructor - */ - ~CCSXHRuntimeIndexing(); - - /* - * Two-phase constructor - */ - static CCSXHRuntimeIndexing* NewL(); - - /* - * Generate the master index file content - * @param aToc1: TOC1 object which contains main topic information - * @param aFeature: Feature information, supported by Feature Mgr - */ - void RuntimeGenerateIndexL( const CCSXHHtmlTOC1& aToc1, const TDesC& aFeature ); - - /* - * Check whether master index exist - * Since Z based helps must exist - * Usage: to determine Help was launched before - */ - TBool IndexFileExistsL(); - - /* - * create temporary index file - * this file will be saved to C:\\private\\\\\\\\ - * @param: aDrive Drive information - */ - void BeginIndexFileL( const TChar& aDrive ); - - /* - * close the temporary index file, and rename it to index.xml formally - * tmp.xml -> index.xml - * this function can backup index.xml, once exception happens - */ - void FinishAndCloseIndexFileL(); - - /* - * Get help application private path in C drive - * @param aName[out] return help app private path in C - */ - void GetPrivatePath( TDes& aName ); - - /* - * Get proper locale, and append it to descriptor - * for more information about proper locale - * please refer to BaflUtils::GetDowngradePathL - * @param aDir[out] append proper locale - */ - void AppendLocaleL( TDes& aDir ); - - /* - * Delete master index file, particular in C: or E: or F: (user disk) - * this will only occur when user remove all custom helps, no more helps folder - * in this case, custom index mustn't exist. - * @param aDrive the file to be deleted - */ - void DeleteIndexFileL( const TChar& aDrive ); - - /* - * Check if helps folder changed - * changes include: - * A: install new application - * B: uninstall (if unistall all helps, custom helps folder will also removed) - * C: user changed the language - * D: user restored the cell phone - * @param aName[out] return help app private path in C - */ - TInt CheckDirChangeL( const TChar& aDrive ); - -private: - - /* - * two-phase constructor, private - */ - void ConstructL(); - -private: - - /* - * buff current index file name - * owned - */ - HBufC* iFullDirName; - - /* - * CoeEnv - * not owned - */ - CCoeEnv * iCoeEnv; - - /* - * current index file handle - */ - RFile iFile; - - /* - * actually it's iFullDirName's drive letter - * for more convenient, keep it as a class member - */ - TChar iDriveLetter; - - }; - -#endif // CSXHRUNTIMEINDEXING_H \ No newline at end of file diff -r 0d1adf67ec1b -r 12f60d9a73b3 csxhelp/HelpEngine/inc/CSXHViewIDs.h --- a/csxhelp/HelpEngine/inc/CSXHViewIDs.h Thu Aug 19 09:42:56 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,36 +0,0 @@ -/* -* 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: This file contains ViewIds -* -*/ - - -#ifndef INC_CSXHVIEWIDS_H_HEADER_INCLUDED_BC05356D -#define INC_CSXHVIEWIDS_H_HEADER_INCLUDED_BC05356D - -#include - -const TUid KCSXHToc1ViewID = {1}; -const TUid KCSXHToc2ViewID = {2}; -const TUid KCSXHHtmlTopicViewID = {3}; -const TUid KCSXHLegacyTopicViewID = {4}; -const TUid KCSXHKywdToc1ViewID = {5}; -const TUid KCSXHKywdToc2ViewID = {6}; -const TUid KCSXHContextHtmlTopicViewID = {7}; -const TUid KCSXHContextLegacyTopicViewID = {8}; -const TUid KCSXHToc1AppHelpsViewID = {9}; -const TUid KCSXHToc2AppHelpsViewID = {10}; - - -#endif /* INC_CSXHVIEWIDS_H_HEADER_INCLUDED_BC05356D */ diff -r 0d1adf67ec1b -r 12f60d9a73b3 csxhelp/HelpEngine/inc/CSXHXMLParseHandler.h --- a/csxhelp/HelpEngine/inc/CSXHXMLParseHandler.h Thu Aug 19 09:42:56 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,582 +0,0 @@ -/* -* 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: CCSXHXMLParseHandler class declaration -* -*/ - - -#ifndef __CCSXHXMLPARSEHANDLER_H__ -#define __CCSXHXMLPARSEHANDLER_H__ - -#include // CCoeControl -#include -#include -#include - -class CCSXHGenericTOC2; -class CCSXHGenericTOC1; -class CCSXHHtmlTOC1; -class CCSXHHelpDataBase; -class CCSXHHelpContentBase; -class CCSXHHTMLContentParser; -/** -* @class CCSXHXMLParseHandler -* This class is used retrive the data from XML file -*/ -class CCSXHXMLParseHandler : public CBase, public MSenContentHandlerClient - { - public: -/** -* @function CCSXHXMLParseHandler -* @since S60 3.2 -* Construct a CCSXHXMLParseHandler -* @param aCoeEnv - Control Environment -*/ - CCSXHXMLParseHandler(CCoeEnv * aCoeEnv); - - virtual ~CCSXHXMLParseHandler(); -/** -* @function StartDocument -* @since S60 3.2 -* Receive notification of the beginning of a document. -* @return KErrNone or some of the system-wide Symbian error codes -*/ - TInt StartDocument(); -/** -* @function EndDocument -* @since S60 3.2 -* Receive notification of the end of a document. -* @return KErrNone or some of the system-wide Symbian error codes -*/ - TInt EndDocument(); - -/** -* @function SetDataBasePtr -* @since S60 3.2 -* Sets DataBase Pointer -*/ - void SetDataBasePtr(CCSXHHelpDataBase *aDataBase); -/** -* @function GetApplicationName -* @since S60 3.2 -* Get the Application Name from Meta.xml -* @return Application Name -*/ - TDesC& GetApplicationName(); - - TPtr GetFeatureIds(); - - protected: -/** -* @function SetAppNameFlagL -* @since S60 3.2 -* Set the Application Flag Based on local Name, ResourceID -* @param alocalName - TagName read from XML file -* ResourceId - Used to Retrive the TagName from resource file -*/ - TBool SetAppNameFlag(const TDesC8 & alocalName,const TDesC& aAppTag); - - protected: - TBuf iApplicationName; - HBufC* iFeatureIds; - TBool iIsAppName; - CCSXHHelpDataBase* iDataBase; - CCoeEnv* iCoeEnv; - - }; - - -/** -* @class CCSXHXMLParseHandler_MetaFile -* This class is used retrive the data from Meta.xml file -*/ -class CCSXHXMLParseHandler_MasterMetaFile : public CCSXHXMLParseHandler - { - public: -/** -* @function NewL -* @since S60 3.2 -* Construct a CCSXHXMLParseHandler_IndexFile -* @param aCoeEnv - Control Environment -* @retrun a CCSXHXMLParseHandler_IndexFile pointer -*/ - static CCSXHXMLParseHandler_MasterMetaFile* NewL(CCoeEnv * aCoeEnv); - protected: -/** -* @function CCSXHXMLParseHandler_IndexFile -* @since S60 3.2 -* Construct a CCSXHXMLParseHandler_IndexFile -* @param aCoeEnv - Control Environment -*/ - CCSXHXMLParseHandler_MasterMetaFile(CCoeEnv * aCoeEnv); - public: -/** -* @function StartElement -* @since S60 3.2 -* Receive notification of the beginning of an element -* @param aURI - The Namespace URI, or the empty string - if the element has no Namespace URI or - if Namespace processing is not being performed. - aLocalName - The local name (without prefix) - aName - The qualified name - apAttrs - The attributes attached to the element. - If there are no attributes, it shall be - an empty array.Namespaces declared in the current - element will be located in the array also -* @return KErrNone or some of the system-wide Symbian error codes -*/ - TInt StartElement (const TDesC8 &aURI, const TDesC8 &aLocalName, - const TDesC8 &aName, const RAttributeArray &apAttrs); -/** -* @function SetHtmlContentParserPtr -* @since S60 3.2 -* Set the pointer of the content parser -* @param aParser - Pointer to an html content parser -*/ - void SetHtmlContentParserPtr(CCSXHHTMLContentParser* aParser); - - private: -/** -* @function CreateTOC2ObjectsL -* @since S60 3.2 -* Create TOC2 objects for Html TOC2 -* @param aAttributes - The attributes attached to the element. -*/ - void CreateTOC1ObjectsL(const RAttributeArray & aAttributes); - - CCSXHHTMLContentParser *iParser; - - TInt iDrive; - }; - -/** -* @class CCSXHXMLParseHandler_MetaFile -* This class is used retrive the data from Meta.xml file -*/ -class CCSXHXMLParseHandler_MetaFile : public CCSXHXMLParseHandler - { - public: -/** -* @function CCSXHXMLParseHandler_MetaFile -* @since S60 3.2 -* Construct a CCSXHXMLParseHandler_MetaFile -* @param aCoeEnv - Control Environment -* @retrun a CCSXHXMLParseHandler_MetaFile pointer -*/ - static CCSXHXMLParseHandler_MetaFile* NewL(CCoeEnv * aCoeEnv); - protected: -/** -* @function CCSXHXMLParseHandler_MetaFile -* @since S60 3.2 -* Construct a CCSXHXMLParseHandler_MetaFile -* @param aCoeEnv - Control Environment -*/ - CCSXHXMLParseHandler_MetaFile(CCoeEnv * aCoeEnv); - public: -/** -* @function StartElement -* @since S60 3.2 -* Receive notification of the beginning of an element -* @param aURI - The Namespace URI, or the empty string - if the element has no Namespace URI or - if Namespace processing is not being performed. - aLocalName - The local name (without prefix) - aName - The qualified name - apAttrs - The attributes attached to the element. - If there are no attributes, it shall be - an empty array.Namespaces declared in the current - element will be located in the array also -* @return KErrNone or some of the system-wide Symbian error codes -*/ - TInt StartElement (const TDesC8 &aURI, const TDesC8 &aLocalName, - const TDesC8 &aName, const RAttributeArray &apAttrs); -/** -* @function EndElement -* @since S60 3.2 -* Receive notification of the end of an element -* @param aURI - The Namespace URI, or the empty string - if the element has no Namespace URI or - if Namespace processing is not being performed. - aLocalName - The local name (without prefix) - aName - The qualified name -* @return KErrNone or some of the system-wide Symbian error codes -*/ - TInt EndElement ( const TDesC8 &aURI,const TDesC8 &aLocalName,const TDesC8 &aName); -/** -* @function Characters -* @since S60 3.2 -* Receive notification inside an element -* @param aBuff - The characters. -* aStart - The start position in the character buffer. -* aLength - The number of characters to use from the character buffer. -* @return KErrNone or some of the system-wide Symbian error codes -*/ - TInt Characters (const TDesC8 &aBuff, const TInt aStart, - const TInt aLength); - - TInt32 Priority(); - - private: - TBuf<8> iPriority; - TBool iIsPriority; - }; - -class CCSXHXMLParseHandler_IndexFile : public CCSXHXMLParseHandler - { - public: -/** -* @function NewL -* @since S60 3.2 -* Construct a CCSXHXMLParseHandler_IndexFile -* @param aCoeEnv - Control Environment -* @retrun a CCSXHXMLParseHandler_IndexFile pointer -*/ - static CCSXHXMLParseHandler_IndexFile* NewL(CCoeEnv * aCoeEnv); - protected: -/** -* @function CCSXHXMLParseHandler_IndexFile -* @since S60 3.2 -* Construct a CCSXHXMLParseHandler_IndexFile -* @param aCoeEnv - Control Environment -*/ - CCSXHXMLParseHandler_IndexFile(CCoeEnv * aCoeEnv); - public: -/** -* @function StartElement -* @since S60 3.2 -* Receive notification of the beginning of an element -* @param aURI - The Namespace URI, or the empty string - if the element has no Namespace URI or - if Namespace processing is not being performed. - aLocalName - The local name (without prefix) - aName - The qualified name - apAttrs - The attributes attached to the element. - If there are no attributes, it shall be - an empty array.Namespaces declared in the current - element will be located in the array also -* @return KErrNone or some of the system-wide Symbian error codes -*/ - TInt StartElement (const TDesC8 &aURI, const TDesC8 &aLocalName, - const TDesC8 &aName, const RAttributeArray &apAttrs); -/** -* @function SetArray -* @since S60 3.2 -* Get the pointer & fill the contents from Index.xml -* @param aHTMLlist - Pointer to an Array -*/ - void SetArray(RPointerArray *aHTMLlist); -/** -* @function SetGenericTOC1Object -* @since S60 3.2 -* Set GenericTOC1 Object -* @param aParent - Generic TOC1 Object -*/ - void SetGenericTOC1Object(CCSXHGenericTOC1& aParent); -/** -* @function SetPath -* @since S60 3.2 -* Set Html file path -* @param aFilePath - Set Html file path -*/ - void SetPath(const TDesC& aFilePath); - - void SetHtmlContentParserPtr(CCSXHHTMLContentParser* aParser); - private: -/** -* @function CreateTOC2ObjectsL -* @since S60 3.2 -* Create TOC2 objects for Html TOC2 -* @param aAttributes - The attributes attached to the element. -*/ - void CreateTOC2ObjectsL(const RAttributeArray & aAttributes); - TBuf iCompressString,iHTMLPageName,iFilePath; - RPointerArray* iTOC2Array; - CCSXHGenericTOC1* iParent; - CCSXHHTMLContentParser *iParser; - }; - - -class CCSXHXMLParseHandler_Kywd : public CCSXHXMLParseHandler - { - public: -/** -* @function NewL -* @since S60 3.2 -* Construct a CCSXHXMLParseHandler_Kywd -* @param aCoeEnv - Control Environment -* @retrun a CCSXHXMLParseHandler_Kywd pointer -*/ - static CCSXHXMLParseHandler_Kywd* NewL(CCoeEnv * aCoeEnv); - protected: -/** -* @function CCSXHXMLParseHandler_Kywd -* @since S60 3.2 -* Construct a CCSXHXMLParseHandler_Kywd -* @param aCoeEnv - Control Environment -*/ - CCSXHXMLParseHandler_Kywd(CCoeEnv * aCoeEnv); - public: -/** -* @function StartElement -* @since S60 3.2 -* Receive notification of the beginning of an element -* @param aURI - The Namespace URI, or the empty string - if the element has no Namespace URI or - if Namespace processing is not being performed. - aLocalName - The local name (without prefix) - aName - The qualified name - apAttrs - The attributes attached to the element. - If there are no attributes, it shall be - an empty array.Namespaces declared in the current - element will be located in the array also -* @return KErrNone or some of the system-wide Symbian error codes -*/ - TInt StartElement (const TDesC8 &aURI, const TDesC8 &aLocalName, - const TDesC8 &aName, const RAttributeArray &apAttrs); -/** -* @function EndElement -* @since S60 3.2 -* Receive notification of the end of an element -* @param aURI - The Namespace URI, or the empty string - if the element has no Namespace URI or - if Namespace processing is not being performed. - aLocalName - The local name (without prefix) - aName - The qualified name -* @return KErrNone or some of the system-wide Symbian error codes -*/ - TInt EndElement ( const TDesC8 &aURI,const TDesC8 &aLocalName,const TDesC8 &aName); -/** -* @function Characters -* @since S60 3.2 -* Receive notification inside an element -* @param aBuff - The characters. -* aStart - The start position in the character buffer. -* aLength - The number of characters to use from the character buffer. -* @return KErrNone or some of the system-wide Symbian error codes -*/ - TInt Characters (const TDesC8 &aBuff, const TInt aStart, - const TInt aLength); - -/** -* @function SetTOC1Title -* @since S60 3.2 -* Set TOC1 Name -* @param aName - TOC1 Name -*/ - void SetTOC1Title(const TDesC& aName); -/** -* @function SetCurrentHtmlToc1 -* @since S60 3.2 -* Set HtmlTOC1 Object -* @param aCurrentHtmlToc1 - Pointyer to HtmlTOC1 Object -*/ - void SetCurrentHtmlToc1(CCSXHHtmlTOC1 *aCurrentHtmlToc1); -/** -* @function SetIsTOC2 -* @since S60 3.2 -* Set the flag if parsing in order to get TOC2 Objects, EFalse otherwise -* @param aCurrentHtmlToc1 - Pointer to HtmlTOC1 Object -*/ - void SetIsTOC2(TBool aFlag); - -/** -* @function SetPath -* @since S60 3.2 -* Set Html file path -* @param aFilePath - Set Html file path -*/ - void SetPath(const TDesC& aFilePath); - - void SetHtmlContentParserPtr(CCSXHHTMLContentParser* aParser); - - private: -/** -* @function CreateTOC2ObjectsforKeywordSearch -* @since S60 3.2 -* Get the Info In order to Create TOC2 objects for Html Keyword -* @param aName - TagName -* aAttrs - The attributes attached to the element. -*/ - void CreateTOC2ObjectsforKeywordSearch(const TDesC8 &aName,const RAttributeArray& aAttrs); -/** -* @function CreateTOC2ObjectsforKeywordSearchL -* @since S60 3.2 -* Creates TOC2 objects for Html Keyword And Insert into Database -*/ - void CreateAndInsertKywdL(); - TBuf iHTMLPageName,iKeywordSearchTOC2TitleName; - TBuf iTOC1Name,iFilePath; - CCSXHHtmlTOC1 *iCurrentHtmlToc1; - TBool iIsTargetName,iIsTOC2View; - CCSXHHTMLContentParser* iParser; - }; - -class CCSXHXMLParseHandler_MasterKywd : public CCSXHXMLParseHandler - { - public: -/** -* @function NewL -* @since S60 3.2 -* Construct a CCSXHXMLParseHandler_Kywd -* @param aCoeEnv - Control Environment -* @retrun a CCSXHXMLParseHandler_Kywd pointer -*/ - static CCSXHXMLParseHandler_MasterKywd* NewL(CCoeEnv * aCoeEnv); - protected: -/** -* @function CCSXHXMLParseHandler_Kywd -* @since S60 3.2 -* Construct a CCSXHXMLParseHandler_Kywd -* @param aCoeEnv - Control Environment -*/ - CCSXHXMLParseHandler_MasterKywd(CCoeEnv * aCoeEnv); - - public: -/** -* @function StartElement -* @since S60 3.2 -* Receive notification of the beginning of an element -* @param aURI - The Namespace URI, or the empty string - if the element has no Namespace URI or - if Namespace processing is not being performed. - aLocalName - The local name (without prefix) - aName - The qualified name - apAttrs - The attributes attached to the element. - If there are no attributes, it shall be - an empty array.Namespaces declared in the current - element will be located in the array also -* @return KErrNone or some of the system-wide Symbian error codes -*/ - TInt StartElement (const TDesC8 &aURI, const TDesC8 &aLocalName, - const TDesC8 &aName, const RAttributeArray &apAttrs); -/** -* @function CreateTOC1ObjectsL -* @since S60 3.2 -* Create TOC1 objects for Keywords -* @param aAttributes - The attributes attached to the element. -*/ - void CreateTOC1ObjectsL(const RAttributeArray& aAttributes); - -/** -* @function SetCurrentHtmlToc1 -* @since S60 3.2 -* Set HtmlTOC1 Object -* @param aCurrentHtmlToc1 - Pointyer to HtmlTOC1 Object -*/ - void SetCurrentHtmlToc1(CCSXHHtmlTOC1 *aCurrentHtmlToc1); - -/** -* @function SetHtmlContentParserPtr -* @since S60 3.2 -* Set the pointer of the content parser -* @param aParser - Pointer to an html content parser -*/ - void SetHtmlContentParserPtr(CCSXHHTMLContentParser* aParser); - - - private: - CCSXHHtmlTOC1 *iCurrentHtmlToc1; - CCSXHHTMLContentParser *iParser; - }; - -/** -* @class CCSXHXMLParseHandler_RedirectFile -* This class is used retrive the data from redirect.xml file -*/ -class CCSXHXMLParseHandler_RedirectFile : public CCSXHXMLParseHandler - { - public: -/** -* @function CCSXHXMLParseHandler_RedirectFile -* @since S60 3.2 -* Construct a CCSXHXMLParseHandler_RedirectFile -* @param aCoeEnv - Control Environment -* @param aSourceUid - source uid -* @param aSourceContextname - source context name -* @retrun a CCSXHXMLParseHandler_RedirectFile pointer -*/ - static CCSXHXMLParseHandler_RedirectFile* NewL(CCoeEnv * aCoeEnv, - const TUid &aSourceUid, const TCoeContextName &aSourceContextName); - - protected: -/** -* @function CCSXHXMLParseHandler_RedirectFile -* @since S60 3.2 -* Construct a CCSXHXMLParseHandler_RedirectFile -* @param aCoeEnv - Control Environment -* @param aSourceUid - source uid -* @param aSourceContextname - source context name -*/ - CCSXHXMLParseHandler_RedirectFile(CCoeEnv * aCoeEnv, - const TUid &aSourceUid, const TCoeContextName &aSourceContextName); - - public: -/** -* @function StartElement -* @since S60 3.2 -* Receive notification of the beginning of an element -* @param aURI - The Namespace URI, or the empty string - if the element has no Namespace URI or - if Namespace processing is not being performed. - aLocalName - The local name (without prefix) - aName - The qualified name - apAttrs - The attributes attached to the element. - If there are no attributes, it shall be - an empty array.Namespaces declared in the current - element will be located in the array also -* @return KErrNone or some of the system-wide Symbian error codes -*/ - TInt StartElement (const TDesC8 &aURI, const TDesC8 &aLocalName, - const TDesC8 &aName, const RAttributeArray &apAttrs); -/** -* @function EndElement -* @since S60 3.2 -* Receive notification of the end of an element -* @param aURI - The Namespace URI, or the empty string - if the element has no Namespace URI or - if Namespace processing is not being performed. - aLocalName - The local name (without prefix) - aName - The qualified name -* @return KErrNone or some of the system-wide Symbian error codes -*/ - TInt EndElement ( const TDesC8 &aURI,const TDesC8 &aLocalName,const TDesC8 &aName); -/** -* @function Characters -* @since S60 3.2 -* Receive notification inside an element -* @param aBuff - The characters. -* aStart - The start position in the character buffer. -* aLength - The number of characters to use from the character buffer. -* @return KErrNone or some of the system-wide Symbian error codes -*/ - TInt Characters (const TDesC8 &aBuff, const TInt aStart, - const TInt aLength); - - TBool IsTargetPathFound(); - TUid TargetUid(); - TBuf& TargetContextName(); - - private: - - TCoeContextName iSourceContextName; - TCoeContextName iFromContent; - TBuf iTargetPath; - TBool iIsFromTag; - TBool iIsToTag; - TBool iIsSourceContextNameFound; - TBool iIsTargetPathFound; - TUid iTargetUid; - TBuf iTargetContextName; - }; -#endif diff -r 0d1adf67ec1b -r 12f60d9a73b3 csxhelp/HelpEngine/inc/CsHelpCmdLineParser.h --- a/csxhelp/HelpEngine/inc/CsHelpCmdLineParser.h Thu Aug 19 09:42:56 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,89 +0,0 @@ -/* -* 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: This is a utility class that provides functionality -* for parsing command line arguments passed into the -* Cshelp application when launched by another application. -* -*/ - - -#ifndef CSHELPCMDLINEPARSER_H -#define CSHELPCMDLINEPARSER_H - - -// INCLUDES -#include - -// FORWARD DECLARATIONS -class TCoeHelpContext; - -// CLASS DECLARATION -/** -* CCsHlpCmdLineParser class. -* to convert a message - that is passed from other app - to contexts -* @lib euser.lib -* @since 3.2 -*/ -class CCsHlpCmdLineParser : public CBase - { - public: - -/** -* @function CCsHlpCmdLineParser -* @since S60 3.2 -* Perform the first phase of two phase construction -*/ CCsHlpCmdLineParser(); - -/** -* @function ConstructL -* @since S60 3.2 -* Perform the second phase construction of a CCsHlpCmdLineParser object -*/ void ConstructL(const TDesC8& aCmdLine); - -/** -* @function ~CCsHlpCmdLineParser -* @since S60 3.2 -* Destroy the object and release all memory objects -*/ - ~CCsHlpCmdLineParser(); - - public: -/** -* Get contexts array -* @function ContextListL -* @since S60 3.2 -* @return help context array -*/ - CArrayFix* ContextListL(); - - private: -/** -* Get the help Context object -* @function GetContext -* @since S60 3.2 -* @param aContext - Help context object -*/ - void GetContext(TCoeHelpContext& aContext); - - private: - // Parsed data to help context array. - CBufFlat* iCmdLine; - - // Position of iCmdLine - TInt iPos; - }; - -#endif // CSHELPCMDLINEPARSER_H - -// End of File diff -r 0d1adf67ec1b -r 12f60d9a73b3 csxhelp/HelpEngine/inc/csxhconstants.h --- a/csxhelp/HelpEngine/inc/csxhconstants.h Thu Aug 19 09:42:56 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,188 +0,0 @@ -/* -* 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: This file Contains Constants -* -*/ - - -_LIT(KEmptyString,""); -_LIT(KFwdSlash,"\\"); -_LIT(KBackSlash,"/"); -_LIT(KTabSpace,"\t"); -_LIT(KHexPrefix,"0x"); -_LIT(KZero,"0"); -_LIT(KZipFileExtn,".zip"); -_LIT(KHtmlFileExtn,".html"); -_LIT(KContentZipFile,"contents.zip"); -_LIT(KCsstext_First,"\n"); - -#ifdef FF_HELP_TUTORIAL_MERGE -_LIT(KTutorialFileExtn,".tut"); -#endif // FF_HELP_TUTORIAL_MERGE -#ifndef __SERIES60_30__ -_LIT(KFileUrlPrefix,"file:///"); -const TInt KFileUrlPrefixLength = 8; -#else -_LIT(KFileUrlPrefix,"file://"); -const TInt KFileUrlPrefixLength = 7; -#endif - -const TInt KHexPrefixLength = 2; -const TInt KHexUidLength = 8; -const TInt KOffsetFromUidToContext = 11; - -const TInt KHighestPriority = 1; -const TInt KLowestPriority = 20000; - -const TInt KMaxContextName = 30; - -//xhtml folder name -//#define qtn_app_xhtml_folder_text ":\\resource\\xhtml\\" -_LIT(KXhtmlFolder,":\\resource\\xhtml\\"); - -//masterkeywords.xml file name -_LIT(KMasterKywdFile,"keywords.xml"); - -//mastermeta.xml file name -_LIT(KMasterMetaFile,"index.xml"); - -//redirect.xml file name -_LIT(KRedirectFile,"redirect.xml"); - -//meta.xml file name -//#define qtn_app_meta_file_text "meta.xml" -_LIT(KMetaFile,"meta.xml"); - -//index.xml file name -//#define qtn_app_index_file_text "index.xml" -_LIT(KIndexFile,"index.xml"); - -_LIT(KRomAppUidFile, "appuid.dat"); -//Application name tag in meta.xml -//#define qtn_app_application_name_tag_text "title" -_LIT(KAppNameTag,"title"); - -_LIT(KPriorityTag, "priority"); - -_LIT(KFromTag, "from"); - -_LIT(KToTag, "to"); - -// toc1 drive information in master index.xml -// -_LIT( KDriveInfo, "drive"); - -// toc1 tag in master index.xml -// -_LIT( KAppFeatureIDTag,"FeatureID" ); - -//toc2title tag in index.xml -//#define qtn_app_toc2title_name_tag_text "navtitle" -_LIT(KTOC2NameTag,"navtitle"); - -//html page tag in index.xml -//#define qtn_app_htmlpage_name_tag_text "href" -_LIT(KHtmlPageTag,"href"); - -//#define qtn_app_compress_name_tag_text "compressed" -_LIT(KCompressedTag,"compressed"); - -//#define qtn_app_compress_name_tag_value_text "true" -_LIT(KCompressedTagText,"true"); - -//#define qtn_app_searchview_toc1title_tag_text "text" -_LIT(KSearchViewTOC1Tag,"text"); -//#define qtn_app_searchview_toc2title_tag_text "target" -_LIT(KSearchViewTOC2Tag,"target"); -//#define qtn_app_kywd_file_text "keywords.xml" -_LIT(KKeywordsFile,"keywords.xml"); - -_LIT(KMasterSearchTag,"keyword"); - -_LIT(KMasterCollectionTag,"collection"); - -_LIT(KMasterCollection_idTag,"id"); - -// Begin runtime indexing schema - -const TInt KMaxIndexEntryExclude = 200; - -const TInt KMaxUidLength = 10; - -// sis install path -// -//_LIT( KInstallPath, "?:\\data\\"); -_LIT( KInstallPath, ":\\resource\\xhtml\\"); - -// initial file's name -// -_LIT( KInitFileName, "helpinit.txt" ); - -// Index.xml version and encoding information -// -_LIT8( KIndexXMLVesion, "\r\n" ); - -// Collection ends -// -_LIT8( KIndexCollectEnd, "" ); - -// Begin of collection entry -// -_LIT8( KIndexXMLEntryBegin, " \r\n"); - -// Prefix of quotation mark -// -_LIT8( KIndexQuoteBegin, "=\""); - -// appendix of quotation mark -// -_LIT8( KIndexQuoteEnd, "\" "); - - -_LIT( KMasterMetaTmpFile,"tmp.xml" ); diff -r 0d1adf67ec1b -r 12f60d9a73b3 csxhelp/HelpEngine/rss/HelpEngine.rss --- a/csxhelp/HelpEngine/rss/HelpEngine.rss Thu Aug 19 09:42:56 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,155 +0,0 @@ -/* -* Copyright (c) 2002 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: -* -*/ - -*/ - -NAME HELL -#include -#include -#include - -NAME HE -// --------------------------------------------------------- -// -// Define the resource file signature -// This resource should be empty. -// -// --------------------------------------------------------- -// -RESOURCE RSS_SIGNATURE { } - -RESOURCE TBUF { buf=""; } -// --------------------------------------------------------- -// -// Define default menu and CBA key. -// -// --------------------------------------------------------- -// - -// -/// Folder Name Texts: -// Their content is at the loc-file - -STRUCT STRING - { - LTEXT text; - } - -RESOURCE TBUF r_type_xhtml_folder_name - { - buf = qtn_app_xhtml_folder_text; - } - -// -/// Meta FileName Texts: -// Their content is at the loc-file - -RESOURCE TBUF r_type_meta_file_name - { - buf = qtn_app_meta_file_text; - } - -// -/// Index FileName Texts: -// Their content is at the loc-file - -RESOURCE TBUF r_type_index_file_name - { - buf = qtn_app_index_file_text; - } - -// -/// Keywordsearch FileName Texts: -// Their content is at the loc-file -RESOURCE TBUF r_type_kywd_file_name - { - buf = qtn_app_kywd_file_text; - } - -// -/// Forward slash: -// Their content is at the loc-file -RESOURCE TBUF r_type_forward_slash - { - buf = qtn_app_forward_slash_text; - } - -// -/// ApplicationName Tag Texts: -// Their content is at the loc-file - -RESOURCE TBUF r_type_application_tag_name - { - buf = qtn_app_application_name_tag_text; - } - -// -/// Index FileName Texts: -// Their content is at the loc-file - -RESOURCE TBUF r_type_toc2title_tag_name - { - buf = qtn_app_toc2title_name_tag_text; - } - -// -/// Index FileName Texts: -// Their content is at the loc-file - -RESOURCE TBUF r_type_htmlpage_tag_name - { - buf = qtn_app_htmlpage_name_tag_text; - } - -// -/// Index FileName Texts: -// Their content is at the loc-file - -RESOURCE TBUF r_type_compress_tag_name - { - buf = qtn_app_compress_name_tag_text; - } - -// -/// Index FileName Texts: -// Their content is at the loc-file -RESOURCE TBUF r_type_compress_tag_value_name - { - buf = qtn_app_compress_name_tag_value_text; - } - -// -/// keywordsearch FileName Texts: -// Their content is at the loc-file -RESOURCE TBUF r_type_searchview_toc1title_tag_name - { - buf = qtn_app_searchview_toc1title_tag_text; - } - -// -/// keywordsearch FileName Texts: -// Their content is at the loc-file -RESOURCE TBUF r_type_searchview_toc2title_tag_name - { - buf = qtn_app_searchview_toc2title_tag_text; - } - -RESOURCE TBUF r_type_title_help - { - buf = qtn_help_title_hel; - } - diff -r 0d1adf67ec1b -r 12f60d9a73b3 csxhelp/HelpEngine/src/CSXHContextTopic.cpp --- a/csxhelp/HelpEngine/src/CSXHContextTopic.cpp Thu Aug 19 09:42:56 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,58 +0,0 @@ -/* -* 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: CCSXHContextTopic class definition -* -*/ - -#include "CSXHContextTopic.h" -#include "CSXHViewIDs.h" -#include "csxhconstants.h" - -// --------------------------------------------------------- -// Items commented in header. -// --------------------------------------------------------- -CCSXHContextTopic* CCSXHContextTopic::NewL(CCSXHHelpContentBase* aToc2) - { - CCSXHContextTopic* self = new(ELeave) CCSXHContextTopic(aToc2); - return self; - } -// --------------------------------------------------------- -// Items commented in header. -// --------------------------------------------------------- -CCSXHContextTopic::CCSXHContextTopic(CCSXHHelpContentBase* aToc2): -CCSXHHelpContentBase(KEmptyString),iToc2(aToc2) - {//No Implementation required - } -// --------------------------------------------------------- -// Items commented in header. -// --------------------------------------------------------- -CCSXHContextTopic::~CCSXHContextTopic() - { - } -// --------------------------------------------------------- -// Items commented in header. -// --------------------------------------------------------- -TUid CCSXHContextTopic::GetViewID() const - { - return iToc2->GetViewID() == KCSXHHtmlTopicViewID ? - KCSXHContextHtmlTopicViewID : KCSXHContextLegacyTopicViewID; - } -// --------------------------------------------------------- -// Items commented in header. -// --------------------------------------------------------- -EXPORT_C CCSXHHelpContentBase* CCSXHContextTopic::GetTopic() - { - return iToc2; - } - diff -r 0d1adf67ec1b -r 12f60d9a73b3 csxhelp/HelpEngine/src/CSXHGenericTOC1.cpp --- a/csxhelp/HelpEngine/src/CSXHGenericTOC1.cpp Thu Aug 19 09:42:56 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,168 +0,0 @@ -/* -* 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: CCSXHGenericTOC1 class definition -* -*/ - -#include "CSXHGenericTOC1.h" -#include "csxhconstants.h" - -// --------------------------------------------------------- -// Items commented in header. -// --------------------------------------------------------- -CCSXHGenericTOC1::CCSXHGenericTOC1(const TDesC& aName, const TInt32 aPriority): - CCSXHHelpContentBase(aName, aPriority), iChildList(NULL) - {//No Implementation required - } - -// --------------------------------------------------------- -// Items commented in header. -// --------------------------------------------------------- -CCSXHGenericTOC1::~CCSXHGenericTOC1() - { - ResetChildList(); - } - -// --------------------------------------------------------- -// Items commented in header. -// --------------------------------------------------------- -void CCSXHGenericTOC1::ResetChildList() - { - if(iChildList == NULL) - return; - TInt count = iChildList->Count(); - CCSXHHelpContentBase* toc2; - for(TInt i=0;iReset(); - delete iChildList; - iChildList = NULL; - } - -// --------------------------------------------------------- -// Items commented in header. -// --------------------------------------------------------- -void CCSXHGenericTOC1::ConstructChildListL() - { - iChildList = new(ELeave) RPointerArray(); - } - -// --------------------------------------------------------- -// Items commented in header. -// --------------------------------------------------------- -EXPORT_C CCSXHHelpContentBase* CCSXHGenericTOC1::GetChildL(const TDesC& aName) - { - if(iChildList == NULL) - return NULL; - - TInt count = iChildList->Count(); - CCSXHHelpContentBase* child = NULL; - for(TInt i=0;iGetName())==0) - return child; - } - return NULL; - } - -// --------------------------------------------------------- -// Items commented in header. -// --------------------------------------------------------- -EXPORT_C void CCSXHGenericTOC1::FillChildDataL(CDesCArray* aArray) - { - //Using Template Pattern. Both the functions below are virtual - InitChildList(); - CopyChildListL(aArray); - } - -// --------------------------------------------------------- -// Items commented in header. -// --------------------------------------------------------- -TBool CCSXHGenericTOC1::InsertChild(CCSXHHelpContentBase* aChild, -TBool aDeleteObject) - { - ConstructChildList(); - TLinearOrder anOrder(Orderer); - if (KErrNone != iChildList->InsertInOrder(aChild,anOrder)) - { - if(aDeleteObject) - delete aChild; - - return EFalse; - } - return ETrue; - } - -TBool CCSXHGenericTOC1::InsertChildWithPriority(CCSXHHelpContentBase* aChild, TBool aDeleteObject) - { - ConstructChildList(); - TLinearOrder anOrder(OrdererWithPriority); - if (KErrNone != iChildList->InsertInOrder(aChild,anOrder)) - { - if(aDeleteObject) - delete aChild; - - return EFalse; - } - return ETrue; - } - -// --------------------------------------------------------- -// Items commented in header. -// --------------------------------------------------------- -void CCSXHGenericTOC1::CopyChildListL(CDesCArray* aArray) - { - TInt count = iChildList->Count(); - CCSXHHelpContentBase* child; - for(TInt i = 0; i < count; ++i) - { - child = (*iChildList)[i]; - if (child && child->GetName().Length() != 0) - { - TBuf toc2Entry(KTabSpace); - toc2Entry.Append(child->GetName()); - aArray->AppendL(toc2Entry); - } - } - } - -// --------------------------------------------------------- -// Items commented in header. -// --------------------------------------------------------- -void CCSXHGenericTOC1::InitChildList() - { - ConstructChildList(); - } - -// --------------------------------------------------------- -// Items commented in header. -// --------------------------------------------------------- -TBool CCSXHGenericTOC1::ConstructChildList() - { - if(iChildList != NULL) - return ETrue; - - TRAPD(err,ConstructChildListL()); - if(err == KErrNone) - return ETrue; - else - { - iChildList = NULL; - return EFalse; - } - } diff -r 0d1adf67ec1b -r 12f60d9a73b3 csxhelp/HelpEngine/src/CSXHGenericTOC2.cpp --- a/csxhelp/HelpEngine/src/CSXHGenericTOC2.cpp Thu Aug 19 09:42:56 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,35 +0,0 @@ -/* -* 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: CCSXHGenericTOC2 class definition -* -*/ - -#include "CSXHGenericTOC2.h" - -// --------------------------------------------------------- -// Items commented in header. -// --------------------------------------------------------- -CCSXHGenericTOC2::CCSXHGenericTOC2(CCSXHGenericTOC1* aParent, const TDesC& aName) - :CCSXHHelpContentBase(aName),iParent(aParent) - {//No Implementation required - } - -// --------------------------------------------------------- -// Items commented in header. -// --------------------------------------------------------- -EXPORT_C CCSXHGenericTOC1* CCSXHGenericTOC2::GetParent() - { - return iParent; - } - diff -r 0d1adf67ec1b -r 12f60d9a73b3 csxhelp/HelpEngine/src/CSXHHTMLContentParser.cpp --- a/csxhelp/HelpEngine/src/CSXHHTMLContentParser.cpp Thu Aug 19 09:42:56 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1419 +0,0 @@ -/* -* 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: CCSXHHTMLContentParser class definition -* -*/ - -#include "CSXHHTMLContentParser.h" -#include "CSXHXMLParseHandler.h" -#include "CSXHHtmlTOC1.h" -#include "CSXHKywdTOC1.h" -#include "CSXHHtmlTOC2.h" -#include "CSXHHelpDataBase.h" -#include "csxhconstants.h" -#include "CSXHRuntimeIndexing.h" -#include "CSXHViewIDs.h" - -#include -#include -#include -#include -#include -#include -#include -#include - -//Input Language variation changes -#include - -const TInt KOffset = 2; - -CCSXHHTMLContentParser* CCSXHHTMLContentParser::NewL(CCoeEnv* aCoeEnv) - { - CCSXHHTMLContentParser* self = CCSXHHTMLContentParser::NewLC(aCoeEnv); - CleanupStack::Pop(self); - return self; - } - -CCSXHHTMLContentParser* CCSXHHTMLContentParser::NewLC(CCoeEnv* aCoeEnv) - { - CCSXHHTMLContentParser* self = new (ELeave) CCSXHHTMLContentParser(aCoeEnv); - CleanupStack::PushL(self); - self->ConstructL(); - return self; - } - -void CCSXHHTMLContentParser::ConstructL() - { - //RUNTIME - GetSupportedFeatureListL(); - } - -CCSXHHTMLContentParser::CCSXHHTMLContentParser(CCoeEnv* aCoeEnv) : iCoeEnv(aCoeEnv) - { - } - -CCSXHHTMLContentParser::~CCSXHHTMLContentParser() - { - delete iXmlReader; - - //No need to delete the entries here, it will be done by the database - iHtmlTOC1List.Close(); - - //Delete all contents from the array. - TInt count = iDuplicateHelpTopicList.Count(); - CCSXHHtmlTOC1* toc1; - for(TInt i=0;iFsSession(); - - TDriveList DirList; - if(FileSession.DriveList(DirList) != KErrNone) - return; - CCSXHXMLParseHandler_MetaFile* XMLParser = CCSXHXMLParseHandler_MetaFile::NewL(iCoeEnv); - CleanupStack::PushL(XMLParser); - InitializeReaderL(XMLParser); - - - TBuf* rootDir = new(ELeave) TBuf; - CleanupStack::PushL(rootDir);//5 - - // begin runtime index XML generating - // - iIndexing = CCSXHRuntimeIndexing::NewL(); - TInt driveListSize = DirList.Length(); - TBool dirExists = iIndexing->IndexFileExistsL(); - CDirScan* scanner=CDirScan::NewLC(FileSession); -#ifdef _DEBUG - RDebug::Print(_L("runtime indexing object successfully build")); -#endif - for(TInt dir(0); dir < driveListSize; dir++) - { - TInt error; - TDriveInfo info; - TChar driveLetter = '?'; - error = FileSession.Drive(info, dir); - - if ( ( error == KErrNone ) && - (DirList[dir] && info.iType != EMediaNotPresent)) - { - RFs::DriveToChar( dir, driveLetter ); - TInt dirChanged = iIndexing->CheckDirChangeL( driveLetter ); - rootDir->Delete( 0, rootDir->Length() );//Clear the previous contents - rootDir->Append( driveLetter ); - - if ( dirExists - && ( dirChanged == KNoChange - || dirChanged == KNoDirExist) ) - { - // xml exist and no install/uninstall happened - // while Z needs special process once its index file exists -#ifdef _DEBUG - RDebug::Print(_L("Used to launch, scan drive number: %d"), dir); -#endif - if ( dirChanged == KNoChange ) - { - // no modify helps, so just parse index.xml - // - HandleMasterMetaFileL( aDataBase, driveLetter, XMLParser ); - } - else // KNoDirExist - { - // help content folder removed due to some reason (uninstall/crash?) - // delete index file in case it exist -#ifdef _DEBUG - RDebug::Print( _L("no resource folder, delete index.xml if exists") ); -#endif - iIndexing->DeleteIndexFileL( driveLetter ); - } - } - else - { - // xml not exist or install/uninstall not happend - // - if( GetHTMLContentPathForDriveL( rootDir,iCoeEnv ) ) - { -#ifdef _DEBUG - RDebug::Print( _L("No index, scan folder for parsing, drive letter: %d"), dir ); -#endif - iIndexing->BeginIndexFileL( driveLetter ); - scanner->SetScanDataL(*rootDir - ,KEntryAttDir|KEntryAttMatchExclusive, - ESortByName|EAscending, CDirScan::EScanDownTree); - ScanAndParseXMLfileToCreateTOC1ObjectL(FileSession,scanner,aDataBase, - dir,XMLParser); - - iIndexing->FinishAndCloseIndexFileL(); - - } - - } - - } - } - CleanupStack::PopAndDestroy( scanner ); - CleanupStack::PopAndDestroy(rootDir); - CleanupStack::PopAndDestroy(XMLParser); - - ClearReader(); - } - -TBool CCSXHHTMLContentParser::GetHTMLContentPathForDriveL(TBuf* aContentDrive,CCoeEnv *aCoeEnv) - { - // get the path to language level - // Input: aContentDrive == C or E or Z - // Output: aContentDrive == C:\\resource\\xhtml\\01\\ (or Z:\\resource\\xhtml\\31\\) - // - aContentDrive->Append(KXhtmlFolder); - TInt len = aContentDrive->Length(); - RFs& FileSession = aCoeEnv->FsSession(); - RArray langs; - BaflUtils::GetDowngradePathL(FileSession,User::Language(),langs); - - for(int i = 0; i < langs.Count(); ++i) - { - TLanguage lang = langs[i]; - //TSW Error: UKAL-6YL72P - //Tool chain uses full symbian language id in - //the directory name, which is not detected by help application. - // - if(lang < 10) - { - aContentDrive->AppendNumFixedWidth(lang,EDecimal,2); - } - else - { - aContentDrive->AppendNum(lang); - } - - aContentDrive->Append(KFwdSlash); - if(BaflUtils::PathExists(FileSession,*aContentDrive)) - { - langs.Reset(); - return ETrue; - } - else - { - aContentDrive->Delete((len-1),aContentDrive->Length()-len); - } - } - langs.Reset(); - return EFalse; - } - -TBool CCSXHHTMLContentParser::HandleMasterMetaFileL(CCSXHHelpDataBase* aDataBase, - TChar& aDrive, MSenContentHandlerClient *aPrevHandler) - { - RFs& FileSession = iCoeEnv->FsSession(); - TBuf masterFile; - - iIndexing->GetPrivatePath( masterFile ); - masterFile.Append( aDrive ); - masterFile.Append( KFwdSlash ); - iIndexing->AppendLocaleL( masterFile ); - masterFile.Append( KMasterMetaFile ); - if(BaflUtils::FileExists( FileSession,masterFile ) ) - { -#ifdef _DEBUG - RDebug::Print(_L("index exist begin to parse! %c"), TUint( aDrive ) ); -#endif - CCSXHXMLParseHandler_MasterMetaFile* masterMetaHandler = - CCSXHXMLParseHandler_MasterMetaFile::NewL(iCoeEnv); - masterMetaHandler->SetDataBasePtr(aDataBase); - masterMetaHandler->SetHtmlContentParserPtr(this); - CleanupStack::PushL(masterMetaHandler); - - iXmlReader->SetContentHandler(*masterMetaHandler); - // ParseL is not in async - iXmlReader->ParseL(FileSession,masterFile); - iXmlReader->SetContentHandler(*aPrevHandler); - CleanupStack::PopAndDestroy(masterMetaHandler); - } - - return ETrue; - } - -TBool CCSXHHTMLContentParser::IsRedirectedL(CCSXHHelpDataBase *aDataBase, - const TDesC &aPath, TUid &aUid, TCoeContextName &aContextName) - { - RFs& FileSession = iCoeEnv->FsSession(); - TBuf redirectFile( aPath ); - redirectFile.Append( KRedirectFile ); - TBool result = EFalse; - - if ( BaflUtils::FileExists( FileSession, redirectFile ) ) - { - CCSXHXMLParseHandler_RedirectFile* XMLParser = - CCSXHXMLParseHandler_RedirectFile::NewL(iCoeEnv, aUid, aContextName); - XMLParser->SetDataBasePtr( aDataBase ); - - CleanupStack::PushL( XMLParser ); - InitializeReaderL( XMLParser ); - // ParseL is not in async - iXmlReader->ParseL( FileSession, redirectFile ); - if ( XMLParser->IsTargetPathFound() ) - { - TBuf& targetContextName = XMLParser->TargetContextName(); - if ( targetContextName.Length() <= aContextName.MaxLength() ) - { - aUid = XMLParser->TargetUid(); - aContextName = targetContextName; - result = ETrue; - } - } - CleanupStack::PopAndDestroy( XMLParser ); - ClearReader(); - } - - return result; - } - -void CCSXHHTMLContentParser::GenerateTOC2ListL(CCSXHGenericTOC1& -aGenericTOC1Object, RPointerArray* GenericTOC2List) - { - CCSXHXMLParseHandler_IndexFile* XMLParser = CCSXHXMLParseHandler_IndexFile::NewL(iCoeEnv); - CleanupStack::PushL(XMLParser); - InitializeReaderL(XMLParser); - - XMLParser->SetArray(GenericTOC2List); - XMLParser->SetGenericTOC1Object(aGenericTOC1Object); - XMLParser->SetHtmlContentParserPtr(this); - RFs& FileSession = iCoeEnv->FsSession(); - CCSXHHtmlTOC1* toc1 = STATIC_CAST(CCSXHHtmlTOC1*,&aGenericTOC1Object); - TBuf lookupindexfile; - toc1->GetHelpFileL(lookupindexfile); - XMLParser->SetPath(lookupindexfile); - lookupindexfile.Append(KIndexFile); - - if(BaflUtils::FileExists(FileSession,lookupindexfile)) - iXmlReader->ParseL (FileSession,lookupindexfile); - - TBufHelpContentName(toc1->GetName()); - int toc1Count = iDuplicateHelpTopicList.Count(); - - for(int i=0;i < toc1Count;i++) - { - CCSXHHtmlTOC1* temptoc1 = iDuplicateHelpTopicList[i]; - - if(temptoc1->GetName().CompareF(HelpContentName) == 0) - { - TBuf lookup; - temptoc1->GetHelpFileL(lookup); - XMLParser->SetPath(lookup); - lookup.Append(KIndexFile); - - if(BaflUtils::FileExists(FileSession,lookup)) - iXmlReader->ParseL (FileSession,lookup); - } - } - - CleanupStack::PopAndDestroy(XMLParser); - ClearReader(); - } - -TAny* CCSXHHTMLContentParser::GetTopicContentL(CCSXHGenericTOC2* aTopic) - { - CCSXHHtmlTOC2* topic = STATIC_CAST(CCSXHHtmlTOC2*,aTopic); - TBuf htmlFile; - topic->GetHtmlFileName(htmlFile); - return GetContentsFromFileL(htmlFile,iCoeEnv,iFeatureControl); - } - - -void CCSXHHTMLContentParser::ScanAndParseXMLfileToCreateTOC1ObjectL( - RFs& FileSession, - CDirScan* scanner, - CCSXHHelpDataBase* aDataBase, - const TInt& aDrive, - CCSXHXMLParseHandler_MetaFile* XMLParser - ) - { - CDir* entryList = NULL; - scanner->NextL(entryList); - if (!entryList) - { - return; - } - - CleanupStack::PushL(entryList); - - TInt entryCount = entryList->Count(); - TInt ROMDrive; - RFs::CharToDrive(PathInfo::RomRootPath()[0], ROMDrive); - TBuf lookup; - - while (entryCount--) - { - TEntry entry = (*entryList)[entryCount]; - - //Clear the previous values - lookup.Delete(0, lookup.Length()); - lookup.Append(scanner->FullPath()); - lookup.Append(entry.iName); - lookup.Append(KFwdSlash); - lookup.Append(KMetaFile); - - //Check whether a file exists - if (!BaflUtils::FileExists(FileSession,lookup)) - continue; - - TRAPD(parserResult, iXmlReader->ParseL(FileSession, lookup)); - if (parserResult == KErrNone) - { - if (CheckFeatureIDL(XMLParser->GetFeatureIds())) - { - if (!IsAppUIdPresentAlready(entry.iName)) - { - TBool isRomBased = EFalse; - TInt32 priority = XMLParser->Priority(); - - // Now we take a walk if it's application helps (priority == 0) - if ((priority != 0) - && ((aDrive == ROMDrive) || IsRomBasedContentL(FileSession, entry.iName))) - { - if (priority < KHighestPriority) - { - priority = KHighestPriority; - } - else if (priority > KLowestPriority) - { - priority = KLowestPriority; - } - - isRomBased = ETrue; - } - else - { - priority = 0; - } - - CCSXHHtmlTOC1* categoryObj = CCSXHHtmlTOC1::NewL(XMLParser->GetApplicationName(), entry.iName, aDrive, - isRomBased ? KCSXHToc2ViewID : KCSXHToc2AppHelpsViewID, priority); - if (!categoryObj->IsValid()) - { - delete categoryObj; - } - else - { - CleanupStack::PushL(categoryObj); - if (isRomBased) - { - if (aDataBase->GetMainTopics()->InsertChildWithPriority(categoryObj, EFalse)) - { - iHtmlTOC1List.AppendL(categoryObj); - } - else - { - iDuplicateHelpTopicList.AppendL(categoryObj); - } - } - else - { - if (aDataBase->GetAppHelpsTopics()->InsertChild(categoryObj, EFalse)) - { - iHtmlTOC1List.AppendL(categoryObj); - } - else - { - iDuplicateHelpTopicList.AppendL(categoryObj); - } - } - - iIndexing->RuntimeGenerateIndexL(*categoryObj, XMLParser->GetFeatureIds()); - CleanupStack::Pop(categoryObj); - } - } - } - } - } - - CleanupStack::PopAndDestroy(entryList); - } - -TBool CCSXHHTMLContentParser::IsRomBasedContentL( RFs& FileSession, const TDesC &aUid ) - { -#ifdef __WINSCW__ - return ETrue; -#endif - - TBool result = EFalse; - CDirScan* scanner=CDirScan::NewLC(FileSession); - TBuf rootDir; - rootDir.Append( 'z' ); - - if( GetHTMLContentPathForDriveL( &rootDir,iCoeEnv ) ) - { - scanner->SetScanDataL(rootDir,KEntryAttDir|KEntryAttMatchExclusive, - ESortByName|EAscending, CDirScan::EScanDownTree); - CDir* entryList = NULL; - scanner->NextL(entryList); - - if ( !entryList ) - { - CleanupStack::PopAndDestroy( scanner ); - return EFalse; - } - - TInt entryCount = entryList->Count(); - - while ( entryCount-- ) - { - TEntry entry=(*entryList)[entryCount]; - if ( ( entry.iName ).CompareC(aUid) == 0 ) - { - result = ETrue; - break; - } - } - delete entryList; - } - - CleanupStack::PopAndDestroy( scanner ); - - return result; - } - -void CCSXHHTMLContentParser::InsertHTMLToc1L( - const TDesC& aAppUidName, - const TDesC& aAppName, - const TInt& aDrive, - CCSXHHelpDataBase* aDataBase, - const TDesC& aFeatureIds, - TInt32 aPriority - ) - { - if (CheckFeatureIDL(aFeatureIds)) - { - if (!IsAppUIdPresentAlready(aAppUidName)) - { - // Now we take a walk if it's application helps (priority == 0) - CCSXHHtmlTOC1* categoryObj = CCSXHHtmlTOC1::NewL(aAppName,aAppUidName, aDrive, - aPriority == 0 ? KCSXHToc2AppHelpsViewID : KCSXHToc2ViewID, aPriority); - - if (categoryObj->IsValid()) - { - CleanupStack::PushL(categoryObj); - if (aPriority == 0) - { - if (aDataBase->GetAppHelpsTopics()->InsertChild(categoryObj, EFalse)) - { - iHtmlTOC1List.AppendL(categoryObj); - } - else - { - iDuplicateHelpTopicList.AppendL(categoryObj); - } - } - else - { - if (aDataBase->GetMainTopics()->InsertChildWithPriority(categoryObj, EFalse)) - { - iHtmlTOC1List.AppendL(categoryObj); //Keep a local copy*/ - } - else - { - iDuplicateHelpTopicList.AppendL(categoryObj); - } - } - CleanupStack::Pop(categoryObj); - } - else - { - delete categoryObj; - } - } - } - } - -HBufC8* CCSXHHTMLContentParser::GetContentsFromFileL(const TDesC& htmlFile,CCoeEnv* aCoeEnv, - RFeatureControl& aFeatureControl) - { - RFs& fileSession = aCoeEnv->FsSession(); - TInt SlashPosition = htmlFile.LocateReverse('\\'); - TBuf* CompressedFile = new (ELeave) TBuf; - CleanupStack::PushL(CompressedFile); //1 - CompressedFile->Copy(htmlFile.Mid(0,SlashPosition+1)); - CompressedFile->Append(KContentZipFile); - - HBufC8* CssContent = CreateBufferForCSSContentL(aFeatureControl); - - if(!BaflUtils::FileExists(fileSession,*CompressedFile)) - { - CleanupStack::PopAndDestroy(CompressedFile); - - HBufC8* buffer = GetContentsFromHTMLFileL(htmlFile,aCoeEnv); - - return MergeCssAndHTMLContentL(buffer,CssContent); - } - - // Create an instance of CZipFile. - CZipFile* zipFile = CZipFile::NewL(fileSession, *CompressedFile); - CleanupStack::PushL(zipFile); //2 - - // Iterate and get the file name - CZipFileMemberIterator* members = zipFile->GetMembersL(); - CleanupStack::PushL(members);//3 - CZipFileMember* member = members->NextL(); // Get the first file in zip - - TInt nCount=0; - const TBuf*Fname; - TBuf *HtmlFileName = new (ELeave) TBuf; - CleanupStack::PushL(HtmlFileName); //4 - HtmlFileName->Copy(htmlFile.Mid(SlashPosition+1)); - for(nCount=0;member!=NULL;nCount++) - { - Fname = member->Name(); - if(Fname->Compare(*HtmlFileName)==0 ) - { - break; - } - delete member; - member = members->NextL(); - } - - if(NULL == member) - { - CleanupStack::PopAndDestroy(HtmlFileName); - CleanupStack::PopAndDestroy(members); - CleanupStack::PopAndDestroy(zipFile); - CleanupStack::PopAndDestroy(CompressedFile); - - HBufC8* buffer = GetContentsFromHTMLFileL(htmlFile,aCoeEnv); - return MergeCssAndHTMLContentL(buffer,CssContent); - } - - CleanupStack::PushL(member);//5 - RZipFileMemberReaderStream* stream; - zipFile->GetInputStreamL(member, stream); - CleanupStack::PushL(stream);//6 - - // Extracts aFileName to a buffer. - // If the file is quite huge, then read the file in streaming mode. - // For example, use 4KB buffer and read it in an active object. - HBufC8* buffer = HBufC8::NewLC(member->UncompressedSize());//5 - TPtr8 bufferPtr(buffer->Des()); - User::LeaveIfError(stream->Read(bufferPtr, member->UncompressedSize())); - - // Release all the resources. - CleanupStack::Pop(buffer); - CleanupStack::PopAndDestroy(stream); - CleanupStack::PopAndDestroy(member); - CleanupStack::PopAndDestroy(HtmlFileName); - CleanupStack::PopAndDestroy(members); - CleanupStack::PopAndDestroy(zipFile); - CleanupStack::PopAndDestroy(CompressedFile); - - return MergeCssAndHTMLContentL(buffer,CssContent); - } - -TBool CCSXHHTMLContentParser::HandleMasterKeywordFileL(CCSXHHelpDataBase* aDataBase) - { - RFs& FileSession = iCoeEnv->FsSession(); - CCSXHXMLParseHandler_MasterKywd* XMLParser_MasterKywd = CCSXHXMLParseHandler_MasterKywd::NewL(iCoeEnv); - CleanupStack::PushL(XMLParser_MasterKywd); - InitializeReaderL(XMLParser_MasterKywd); - XMLParser_MasterKywd->SetHtmlContentParserPtr(this); - XMLParser_MasterKywd->SetDataBasePtr(aDataBase); - TBool bMasterKeywordFilePresent = EFalse; - - //Check for the availability of Master Keyword file - TBuf* Master_kywdPath = new(ELeave) TBuf; - CleanupStack::PushL(Master_kywdPath);//5 - Master_kywdPath->Append(PathInfo::RomRootPath().Left(1)); - GetHTMLContentPathForDriveL(Master_kywdPath,iCoeEnv); - Master_kywdPath->Append(KMasterKywdFile); - - if(BaflUtils::FileExists(FileSession,*Master_kywdPath)) - { - TRAP_IGNORE(iXmlReader->ParseL(FileSession,*Master_kywdPath )); - bMasterKeywordFilePresent = ETrue; - } - - //KMasterKywdFile; - CleanupStack::PopAndDestroy(Master_kywdPath); - CleanupStack::PopAndDestroy(XMLParser_MasterKywd); - ClearReader(); - - return bMasterKeywordFilePresent; - } - -void CCSXHHTMLContentParser::GenerateKywdTOC1ListL(CCSXHHelpDataBase* aDataBase) - { - if(!iHtmlTOC1List.Count()) - return; - TBool bMasterKeywordFilePresent = HandleMasterKeywordFileL(aDataBase); - - CCSXHXMLParseHandler_Kywd* XMLParser = CCSXHXMLParseHandler_Kywd::NewL(iCoeEnv); - CleanupStack::PushL(XMLParser); - InitializeReaderL(XMLParser); - - XMLParser->SetDataBasePtr(aDataBase); - XMLParser->SetIsTOC2(EFalse); - XMLParser->SetHtmlContentParserPtr(this); - - //Parse keyword.xml file from Main Array list - ParseKeywdFileAndCreatekywdTOC1ObjectsL(iHtmlTOC1List,XMLParser,bMasterKeywordFilePresent); - - //Parse keyword.xml file from duplicate Array list - ParseKeywdFileAndCreatekywdTOC1ObjectsL(iDuplicateHelpTopicList,XMLParser,bMasterKeywordFilePresent); - - CleanupStack::PopAndDestroy(XMLParser); - ClearReader(); - } - -void CCSXHHTMLContentParser::GenerateTOC2ListForKeywordSearchL -(CCSXHHelpDataBase* aDataBase,CCSXHKywdTOC1* aKywdTOC1Object) - { - RPointerArray* TOC1HtmlList = aKywdTOC1Object->GetHtmlTOC1List(); - if(!TOC1HtmlList) - return; - - CCSXHXMLParseHandler_Kywd* XMLParser = CCSXHXMLParseHandler_Kywd::NewL(iCoeEnv); - CleanupStack::PushL(XMLParser); - InitializeReaderL(XMLParser); - - int toc1Count = TOC1HtmlList->Count(); - CCSXHHtmlTOC1* toc1; - - RFs& FileSession = iCoeEnv->FsSession(); - - XMLParser->SetDataBasePtr(aDataBase); - XMLParser->SetIsTOC2(ETrue); - XMLParser->SetHtmlContentParserPtr(this); - - TBuf* lookup = new(ELeave)TBuf; - CleanupStack::PushL(lookup);//3 - XMLParser->SetTOC1Title(aKywdTOC1Object->GetName()); - for(int i = 0; i < toc1Count ; ++i ) - { - toc1 = (*TOC1HtmlList)[i]; - //Get Corresponding toc1 from Main array and set toc1 object - XMLParser->SetCurrentHtmlToc1(GetCorrespondingTOC1FromMainArray(toc1->GetName())); - //Clear the previous values - lookup->Delete(0,lookup->Length()); - toc1->GetHelpFileL(*lookup); - XMLParser->SetPath(*lookup); - lookup->Append(KKeywordsFile); - TRAP_IGNORE(iXmlReader->ParseL (FileSession,*lookup )); - aDataBase->IncrementKeywordSearchCount(); - } - CleanupStack::PopAndDestroy(lookup); - CleanupStack::PopAndDestroy(XMLParser); - ClearReader(); - } - -CCSXHHelpContentBase* CCSXHHTMLContentParser::GetContextTopicL( - CCSXHHelpDataBase *aDataBase, - TUid &aUid, - TCoeContextName &aContextName - ) - { - TBuf path; - TInt32 toc1Count = iHtmlTOC1List.Count(); - TInt32 dupToc1Count = iDuplicateHelpTopicList.Count(); - CCSXHHtmlTOC1 *toc1 = NULL; - CCSXHHtmlTOC1 *temptoc1 = NULL; - TBool redirected = EFalse; - - for ( TInt32 i = 0; i < toc1Count; ++i ) - { - toc1 = iHtmlTOC1List[i]; - if ( aUid == toc1->GetAppUid() ) - { - toc1->GetHelpFileL( path ); - if ( IsRedirectedL( aDataBase, path, aUid, aContextName ) ) - { - redirected = ETrue; - } - else - { - return toc1->GetContextTopic( aContextName ); - } - break; - } - } - - if ( !redirected ) - { - for ( TInt32 i = 0; i < dupToc1Count; ++i ) - { - toc1 = iDuplicateHelpTopicList[i]; - if ( aUid == toc1->GetAppUid() ) - { - toc1->GetHelpFileL( path ); - if ( IsRedirectedL( aDataBase, path, aUid, aContextName ) ) - { - redirected = ETrue; - } - else - { - temptoc1 = GetCorrespondingTOC1FromMainArray(toc1->GetName()); - return temptoc1->GetContextTopic( aContextName ); - } - } - } - } - - if ( redirected ) - { - for ( TInt32 i = 0; i < toc1Count; ++i ) - { - toc1 = iHtmlTOC1List[i]; - if ( aUid == toc1->GetAppUid() ) - { - return toc1->GetContextTopic( aContextName ); - } - } - - for ( TInt32 i = 0; i < dupToc1Count; ++i ) - { - toc1 = iDuplicateHelpTopicList[i]; - if ( aUid == toc1->GetAppUid() ) - { - temptoc1 = GetCorrespondingTOC1FromMainArray( toc1->GetName() ); - return temptoc1->GetContextTopic( aContextName ); - } - } - } - - return NULL; - } - -CCSXHHelpContentBase* CCSXHHTMLContentParser::GetHtmlTopicForUrlL(const TDesC& aUrl) - { - CCSXHHelpContentBase* tocobj = GetObjectBasedonUrlL(iHtmlTOC1List,aUrl,ETrue); - - if(NULL == tocobj) - tocobj = GetObjectBasedonUrlL(iDuplicateHelpTopicList,aUrl,EFalse); - - return tocobj; - } - -CCSXHHelpContentBase* CCSXHHTMLContentParser::GetObjectBasedonUrlL(RPointerArray& aTOC1ObjectsArray, - const TDesC& aUrl, TBool aMainArrayList) - { - /*For URLs of form - file:://:/system/xhtml///Html name - We can have help topics for other cases, help topic objects not possible - */ - TBuf aFileUrl; - - int toc1Count = aTOC1ObjectsArray.Count(); - CCSXHHtmlTOC1* toc1,*temptoc1; - for(int j = 0; j < toc1Count; ++j) - { - toc1 = aTOC1ObjectsArray[j]; - TBuf htmlFile; - toc1->GetHelpFileL(htmlFile); - - //Convert fwd slashes to back slashes - TInt i = htmlFile.Find(KFwdSlash) ; - while (KErrNotFound != i) - { - htmlFile.Replace(i,1,KBackSlash); - i = htmlFile.Find(KFwdSlash) ; - } - - i = aUrl.FindC(htmlFile); - if(i != KErrNotFound) - { - TFileName fileName; - i = aUrl.LocateReverseF('/'); - fileName = aUrl.Mid(i + 1); - if(aMainArrayList) - temptoc1 = toc1; - else - temptoc1 = GetCorrespondingTOC1FromMainArray(toc1->GetName()); - - return temptoc1->GetHtmlTopicForFile(fileName); - } - } - return NULL; - } - -void CCSXHHTMLContentParser::GetHtmlFileL(CCoeEnv* coeEnv,const short& aDir, - const TAppUid& aUid,TBuf& aFileName) - { - aFileName.Copy(KEmptyString); - - RFs& FileSession = coeEnv->FsSession(); - TDriveList DirList; - if( (FileSession.DriveList(DirList)= DirList.Length())) - return; - - TChar driveLetter = '?'; - TDriveInfo info; - TInt error = FileSession.Drive(info, aDir); - if ((error == KErrNone) && - (DirList[aDir] && info.iType != EMediaNotPresent)) - { - RFs::DriveToChar(aDir, driveLetter); - - aFileName.Append(driveLetter); - GetHTMLContentPathForDriveL(&aFileName,coeEnv); - aUid.AppendUid(aFileName); - aFileName.Append(KFwdSlash); - } - } - -void CCSXHHTMLContentParser::InitializeReaderL(CCSXHXMLParseHandler* aXMLParser) - { - if(iXmlReader == NULL ) - { - iXmlReader = CSenXmlReader::NewL(); - iXmlReader->SetContentHandler(*aXMLParser); - } - } -void CCSXHHTMLContentParser::ClearReader() - { - delete iXmlReader; - iXmlReader = NULL; - } - -TBool CCSXHHTMLContentParser::IsUidCategoryPresent(const TUid& aUid) - { - int toc1Count = iHtmlTOC1List.Count(); - CCSXHHtmlTOC1* toc1; - for(int i = 0; i < toc1Count; ++i) - { - toc1 = iHtmlTOC1List[i]; - if(aUid == toc1->GetAppUid()) - return ETrue; - } - - toc1Count = iDuplicateHelpTopicList.Count(); - for(int i = 0; i < toc1Count; ++i) - { - toc1 = iDuplicateHelpTopicList[i]; - if(aUid == toc1->GetAppUid()) - return ETrue; - } - return EFalse; - } - -TBool CCSXHHTMLContentParser::GetHTMLToc1(const TDesC& aUid,CCSXHXMLParseHandler* aParser) - { - TUint AppId; - - if(!aUid.Length()) - return EFalse; - - TLex FolderUid(aUid.Mid(KOffset)); - FolderUid.Val(AppId,EHex); - TUid ApplicationUid = TUid::Uid((TInt)AppId); - - int toc1Count = iHtmlTOC1List.Count(); - - CCSXHHtmlTOC1* toc1; - for(int i = 0; i < toc1Count; ++i) - { - toc1 = iHtmlTOC1List[i]; - if(ApplicationUid == toc1->GetAppUid()) - { - STATIC_CAST(CCSXHXMLParseHandler_MasterKywd*,aParser)->SetCurrentHtmlToc1(toc1); - return ETrue; - } - } - - toc1Count = iDuplicateHelpTopicList.Count(); - for(int i = 0; i < toc1Count; ++i) - { - toc1 = iDuplicateHelpTopicList[i]; - if(ApplicationUid == toc1->GetAppUid()) - { - STATIC_CAST(CCSXHXMLParseHandler_MasterKywd*,aParser)->SetCurrentHtmlToc1(toc1); - return ETrue; - } - } - - return EFalse; - } - -//To get Corresponding toc1 from main array. -CCSXHHtmlTOC1* CCSXHHTMLContentParser::GetCorrespondingTOC1FromMainArray(const TDesC& aApplicationName) - { - TInt toc1Count = iHtmlTOC1List.Count(); - CCSXHHtmlTOC1* toc1; - for(int i=0;iGetName().CompareF(aApplicationName) == 0) - return toc1; - } - - return NULL; - } - -//Check UId is already present in the list. -TBool CCSXHHTMLContentParser::IsAppUIdPresentAlready(const TDesC& aUid) - { - TBool result = EFalse; - TInt toc1Count = iHtmlTOC1List.Count(); - CCSXHHtmlTOC1* toc1; - - TUint AppId; - TLex FolderUid(aUid.Mid(KOffset)); - FolderUid.Val(AppId,EHex); - TUid ApplicationUid = TUid::Uid((TInt)AppId); - - for(int i=0;iGetAppUid()) - { - result = ETrue; - break; - } - } - - toc1Count = iDuplicateHelpTopicList.Count(); - for(int i=0;iGetAppUid()) - { - result = ETrue; - break; - } - } - - return result; - - } - -void CCSXHHTMLContentParser::ParseKeywdFileAndCreatekywdTOC1ObjectsL( - RPointerArray& aTOC1ObjectsArray, - CCSXHXMLParseHandler_Kywd* XMLParser, TBool bMasterKeywordFilePresent) - { - int toc1Count = aTOC1ObjectsArray.Count(); - CCSXHHtmlTOC1* toc1; - - TBuf* lookup = new(ELeave)TBuf; - CleanupStack::PushL(lookup);//1 - - RFs& FileSession = iCoeEnv->FsSession(); - - for(int i = 0; i < toc1Count; ++i) - { - toc1 = aTOC1ObjectsArray[i]; - - if(bMasterKeywordFilePresent && toc1->IsROMDrive()) - continue; - - //Clear the previous values - lookup->Delete(0,lookup->Length()); - - toc1->GetHelpFileL(*lookup); - lookup->Append(KKeywordsFile); - - //Check whether a file exists - if(!BaflUtils::FileExists(FileSession,*lookup)) - continue; - - XMLParser->SetCurrentHtmlToc1(toc1); - TRAP_IGNORE(iXmlReader->ParseL(FileSession,*lookup )); - } - - CleanupStack::PopAndDestroy(lookup); - } - -//RUNTIME -void CCSXHHTMLContentParser::GetSupportedFeatureListL() - { - RFeatureUidArray SupportedFeatures; - TInt err = iFeatureControl.Connect(); - if ( err == KErrNone ) - { - // ListSupportedFeatures() returns one of the Symbian error codes. - err = iFeatureControl.ListSupportedFeatures( SupportedFeatures ); - - // Remember to call CloseL after using RFeatureControl. - // It disconnects the Feature Manager server. - iFeatureControl.Close(); - } - //As per new req. add true, flase to id and create an array. - - iFeatureManager_FeatureIds = new (ELeave) CDesCArrayFlat(2); - - TBuf<25>CurrFId; - - for(TInt i=0;iAppendL(CurrFId); - - CurrFId.Copy(KTrue_StringtoAppend); - CurrFId.AppendNum(SupportedFeatures[i].iUid); - iFeatureManager_FeatureIds->AppendL(CurrFId); - - CurrFId.Copy(KFalse_StringtoAppend); - CurrFId.AppendNum(SupportedFeatures[i].iUid); - iFeatureManager_FeatureIds->AppendL(CurrFId); - } - - //Input Language variation changes - //----------------------------------------- - //Create an array with supported input language - CPtiEngine* ptiEngine = CPtiEngine::NewL(); - CleanupStack::PushL( ptiEngine ); - - CArrayFix* languageCodeArray = new(ELeave)CArrayFixFlat(2); - - ptiEngine->GetAvailableLanguagesL( languageCodeArray ); - - TInt nCount = languageCodeArray->Count(); - - iSupportedInputLanguages = new (ELeave) CDesCArrayFlat(2); - - //Codescanner gives error, if member variables are pushed. - //CleanupStack::PushL( iSupportedInputLanguages ); - - for(TInt i=0; iAt(i); - TBuf<25>Currlang(_L("LANGUAGE_")); - if(languageCode < 10) - Currlang.AppendNumFixedWidth(languageCode,EDecimal,2); - else - Currlang.AppendNum(languageCode); - - iSupportedInputLanguages->AppendL(Currlang); - } - - //CleanupStack::Pop(iSupportedInputLanguages); - CleanupStack::PopAndDestroy( ptiEngine ); - - delete languageCodeArray; - //----------------------------------------- - - SupportedFeatures.Close(); - } - -//RUNTIME -TBool CCSXHHTMLContentParser::CheckFeatureIDL(const TDesC& aFeatureIds) - { - if(/*KHexPrefixLength == aFeatureIds.Length() &&*/ - KErrNotFound != aFeatureIds.Find(KDefaultFeatureIdStringTemp)) - { - return ETrue; - } - - HBufC* Ids = HBufC::NewLC(aFeatureIds.Length()); - TPtr CurrentFeatureIds = Ids->Des(); - CurrentFeatureIds.Copy(aFeatureIds); - CleanupStack::Pop(Ids); - - CDesCArray* FeatureIdList = new (ELeave) CDesCArrayFlat(2); ; - TInt EndPos = CurrentFeatureIds.Locate(' '); - - CleanupStack::PushL(FeatureIdList); - - while (KErrNotFound != EndPos) - { - FeatureIdList->AppendL(CurrentFeatureIds.Mid(0,EndPos));// FId_Val); - CurrentFeatureIds = CurrentFeatureIds.Mid(EndPos+1); - EndPos = CurrentFeatureIds.Locate(' ') ; - } - - if(KErrNotFound == EndPos && 0!= CurrentFeatureIds.Length()) - { - FeatureIdList->AppendL(CurrentFeatureIds); - } - - CleanupStack::Pop(FeatureIdList); - - TInt position; - if(KErrNone == FeatureIdList->Find(KDefaultFeatureIdString,position) || - KErrNone == FeatureIdList->Find(KDefaultFeatureIdStringTemp,position) ) - { - delete FeatureIdList; - delete Ids; - return ETrue; - } - - TInt nCount = FeatureIdList->MdcaCount(); - - - //FeatureManager list contains all enabled featureIds, appended with true, and false. - //New Req. text associated with true_featureId, should be displayed, if Id is enabled. - //else, if featureId is disabled, text associated with false_featureId should be displayed. - // 1. if featureId string contains "false" and it is not in the list, return ETrue. - // 2. if featureId string does not contain "false" and it is present in the list, return ETrue. - // 3. if featureId is part of input language, return ETrue. - for(TInt j=0;j < nCount;j++) - { - if( - (KErrNotFound != FeatureIdList->MdcaPoint(j).Find(KFalseString) && - KErrNone != iFeatureManager_FeatureIds->Find(FeatureIdList->MdcaPoint(j),position))|| - - (KErrNotFound == FeatureIdList->MdcaPoint(j).Find(KFalseString) && - KErrNone == iFeatureManager_FeatureIds->Find(FeatureIdList->MdcaPoint(j),position)) || - - KErrNone == iSupportedInputLanguages->Find(FeatureIdList->MdcaPoint(j),position) - ) - { - delete FeatureIdList; - delete Ids; - return ETrue; - } - } - - delete Ids; - delete FeatureIdList; - return EFalse; - } - -HBufC8* CCSXHHTMLContentParser::CreateBufferForCSSContentL(RFeatureControl& aFeatureControl) - { - RFeatureUidArray SupportedFeatures; - TInt err = aFeatureControl.Connect(); - if ( err == KErrNone ) - { - // ListSupportedFeatures() returns one of the Symbian error codes. - err = aFeatureControl.ListSupportedFeatures( SupportedFeatures ); - - // Remember to call CloseL after using RFeatureControl. - // It disconnects the Feature Manager server. - aFeatureControl.Close(); - } - - //Input Language variation changes - //----------------------------------------- - - CPtiEngine* ptiEngine = CPtiEngine::NewL(); - CleanupStack::PushL( ptiEngine ); - - CArrayFix* languageCodeArray = new(ELeave)CArrayFixFlat(2); - - ptiEngine->GetAvailableLanguagesL( languageCodeArray ); - - TInt nInputLangCount = languageCodeArray->Count(); - TInt nCount = SupportedFeatures.Count(); - - HBufC8* CssContent = HBufC8::NewLC(nCount * KMaxUnits * 6 + nInputLangCount * 3 + 400); - TPtr8 bufferPtr(CssContent->Des()); - - AppendStyleSheetContent_listitem(bufferPtr,nCount,SupportedFeatures,*languageCodeArray); - AppendStyleSheetContent_paragraph(bufferPtr,nCount,SupportedFeatures,*languageCodeArray); - AppendStyleSheetContent_ahref(bufferPtr,nCount,SupportedFeatures,*languageCodeArray); - AppendStyleSheetContent_none(bufferPtr,nCount,SupportedFeatures); - - SupportedFeatures.Close(); - - CleanupStack::Pop(CssContent); - - //Input Language variation changes - //----------------------------------------- - CleanupStack::PopAndDestroy( ptiEngine ); - - delete languageCodeArray; - //----------------------------------------- - - return CssContent; - } - -HBufC8* CCSXHHTMLContentParser::GetContentsFromHTMLFileL(const TDesC& htmlFile,CCoeEnv* aCoeEnv) - { - RFs& fsSession = aCoeEnv->FsSession(); - RFile file; - - TInt err = file.Open(fsSession,htmlFile,EFileRead|EFileShareReadersOrWriters); - if(KErrNone == err) - { - TInt FileSize; - HBufC8* htmlFileContent = NULL; - if(KErrNone == file.Size(FileSize)) - { - htmlFileContent = HBufC8::NewLC(FileSize); - TPtr8 PtrContent = htmlFileContent->Des(); - - file.Read(PtrContent); - CleanupStack::Pop(htmlFileContent); - } - file.Close(); - return htmlFileContent; - } - else - { - return NULL; - } - } - -HBufC8* CCSXHHTMLContentParser::MergeCssAndHTMLContentL(HBufC8* aHTMLBuffer, HBufC8* aCssContent) - { - TInt BufferLength=0; - if(aHTMLBuffer) - BufferLength = aHTMLBuffer->Size(); - - if(aCssContent) - BufferLength += aCssContent->Size(); - - HBufC8* Htmlbuffer = HBufC8::NewLC(BufferLength); - - TPtr8 HtmlbufferPtr(Htmlbuffer->Des()); - - if(aCssContent) - { - HtmlbufferPtr.Copy(aCssContent->Des()); - delete aCssContent; - } - - if(aHTMLBuffer) - { - HtmlbufferPtr.Append(aHTMLBuffer->Des()); - delete aHTMLBuffer; - } - - if(Htmlbuffer) - CleanupStack::Pop(Htmlbuffer); - - return Htmlbuffer; - } - -void CCSXHHTMLContentParser::AppendStyleSheetContent_listitem(TPtr8& abufferptr,TInt aFeatureIdCount, - RFeatureUidArray& aSupportedFeatures, - CArrayFix& alanguageCodeArray) - { - //List Items - //--------------------------------------------------------- - abufferptr.Copy(KCsstext_First); - - for(TInt i=0;i FeatureId; - FeatureId.Format(KtextFormat_true_l,aSupportedFeatures[i].iUid); - //FeatureId.Append(KComma); - abufferptr.Append(FeatureId); - } - - for(TInt i=0;i FeatureId; - if(alanguageCodeArray[i] < 10) - FeatureId.Format(KtextFormat_lang_0l,alanguageCodeArray[i]); - else - FeatureId.Format(KtextFormat_lang_l,alanguageCodeArray[i]); - - abufferptr.Append(FeatureId); - } - - abufferptr.Append(KDefaultFeatureId); - abufferptr.Append(KCsstext_displayp_li); - abufferptr.Append(KCsstext_Last); - //--------------------------------------------------------- - } - -void CCSXHHTMLContentParser::AppendStyleSheetContent_paragraph(TPtr8& abufferptr,TInt aFeatureIdCount, - RFeatureUidArray& aSupportedFeatures, - CArrayFix& alanguageCodeArray) - { - //Paragraph - //--------------------------------------------------------- - abufferptr.Append(KCsstext_First); - for(TInt i=0;i FeatureId; - FeatureId.Format(KtextFormat_true_b,aSupportedFeatures[i].iUid); - //FeatureId.Append(KComma); - - abufferptr.Append(FeatureId); - } - - for(TInt i=0;i FeatureId; - if(alanguageCodeArray[i] < 10) - FeatureId.Format(KtextFormat_lang_0b,alanguageCodeArray[i]); - else - FeatureId.Format(KtextFormat_lang_b,alanguageCodeArray[i]); - - abufferptr.Append(FeatureId); - } - - abufferptr.Append(KDefaultFeatureId); - abufferptr.Append(KCsstext_displayp_p); - abufferptr.Append(KCsstext_Last); - - //--------------------------------------------------------- - } - -void CCSXHHTMLContentParser::AppendStyleSheetContent_ahref(TPtr8& abufferptr,TInt aFeatureIdCount, - RFeatureUidArray& aSupportedFeatures, - CArrayFix& alanguageCodeArray) - { - //A href - //--------------------------------------------------------- - abufferptr.Append(KCsstext_First); - for(TInt i=0;i FeatureId; - FeatureId.Format(KtextFormat_true_a,aSupportedFeatures[i].iUid); - abufferptr.Append(FeatureId); - } - - for(TInt i=0;i FeatureId; - if(alanguageCodeArray[i] < 10) - FeatureId.Format(KtextFormat_lang_0a,alanguageCodeArray[i]); - else - FeatureId.Format(KtextFormat_lang_a,alanguageCodeArray[i]); - abufferptr.Append(FeatureId); - } - - abufferptr.Append(KDefaultFeatureId); - abufferptr.Append(KCsstext_displayp_a); - abufferptr.Append(KCsstext_Last); - - //--------------------------------------------------------- - } - -void CCSXHHTMLContentParser::AppendStyleSheetContent_none(TPtr8& abufferptr,TInt aFeatureIdCount, - RFeatureUidArray& aSupportedFeatures - ) - { - //False - //--------------------------------------------------------- - abufferptr.Append(KCsstext_First); - for(TInt i=0;i FeatureId; - FeatureId.Format(KtextFormat_false,aSupportedFeatures[i].iUid,aSupportedFeatures[i].iUid,aSupportedFeatures[i].iUid); - abufferptr.Append(FeatureId); - } - - abufferptr.Append(KDefaultFeatureId); - abufferptr.Append(KCsstext_displayp_n); - abufferptr.Append(KCsstext_Last); - - //--------------------------------------------------------- - } diff -r 0d1adf67ec1b -r 12f60d9a73b3 csxhelp/HelpEngine/src/CSXHHelpContentBase.cpp --- a/csxhelp/HelpEngine/src/CSXHHelpContentBase.cpp Thu Aug 19 09:42:56 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,49 +0,0 @@ -/* -* 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: CCSXHHelpContentBase class definition -* -*/ - -#include "CSXHHelpContentBase.h" - -// --------------------------------------------------------- -// Items commented in header. -// --------------------------------------------------------- -CCSXHHelpContentBase::~CCSXHHelpContentBase() - { - delete iName; - } - -// --------------------------------------------------------- -// Items commented in header. -// --------------------------------------------------------- -EXPORT_C TPtr CCSXHHelpContentBase::GetName() const - { - return iName->Des(); - } - -TInt32 CCSXHHelpContentBase::Priority() const - { - return iPriority; - } - -// --------------------------------------------------------- -// Items commented in header. -// --------------------------------------------------------- -CCSXHHelpContentBase::CCSXHHelpContentBase(const TDesC& name, const TInt32 aPriority) - : iName(name.Alloc()), iPriority(aPriority) - {//No implementation required - } - - diff -r 0d1adf67ec1b -r 12f60d9a73b3 csxhelp/HelpEngine/src/CSXHHelpDataBase.cpp --- a/csxhelp/HelpEngine/src/CSXHHelpDataBase.cpp Thu Aug 19 09:42:56 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,276 +0,0 @@ -/* -* 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: CCSXHHelpDataBase class definition -* -*/ - -#include "CSXHHelpDataBase.h" -#include "CSXHHTMLContentParser.h" -#include "CSXHLegacyContentParser.h" -#include "CSXHViewIDs.h" -#include "CSXHGenericTOC2.h" -#include "CSXHKywdTOC1.h" -#include "CSXHMainTopics.h" -#include "CSXHKywdTopics.h" -#include "CsHelpCmdLineParser.h" -#include "CSXHContextTopic.h" -#include "coehelp.h" - -#include -#include -#include -#include -#include -#include - - -#include - -EXPORT_C CCSXHHelpDataBase* CCSXHHelpDataBase::NewL(CCoeEnv* aCoeEnv, - const TApaAppCaption& aAppCaption, const TApaAppCaption& aAppHelpTopic) - { - CCSXHHelpDataBase* self = CCSXHHelpDataBase::NewLC(aCoeEnv,aAppCaption, aAppHelpTopic); - CleanupStack::Pop(self); - return self; - } - -CCSXHHelpDataBase* CCSXHHelpDataBase::NewLC(CCoeEnv* aCoeEnv, const TApaAppCaption& aAppCaption, const TApaAppCaption& aAppHelpTopic) - { - CCSXHHelpDataBase *self = NULL; - //Add stuff into TLS - if(Dll::Tls() == NULL ) - { - // TLS is still null, which means that no Singleton has - // been instantiated yet. Do so now, and return that - // instance: - // Store a pointer to the new instance in thread local storage: - self = new(ELeave) CCSXHHelpDataBase(aCoeEnv,aAppCaption, aAppHelpTopic); - CleanupStack::PushL(self); - self->ConstructL(); - - TInt err = Dll::SetTls(self); - if (err != KErrNone) - { - CleanupStack::Pop(self); - delete self; - self = NULL; - User::Leave(err); - } - } - else - { - self = GetInstance(); - } - - return self; - } - -CCSXHHelpDataBase* CCSXHHelpDataBase::GetInstance() - { - // Singleton has been instantiated once already, so return - // that instance: - return static_cast(Dll::Tls()); - } - -CCSXHHelpDataBase::CCSXHHelpDataBase(CCoeEnv* aCoeEnv, const TApaAppCaption& aAppCaption, const TApaAppCaption& aAppHelpTopic) - : iCoeEnv(aCoeEnv), iAppCaption(aAppCaption), iAppHelpTopic(aAppHelpTopic), iKeywordSearchCount(0) - - { - } - -CCSXHHelpDataBase::~CCSXHHelpDataBase() - { - delete iMainTOC1; - delete iKywdTOC1; - delete iLastContextTopic; - delete iHTMLContentParser; - delete iLegacyContentParser; - Dll::SetTls( NULL ); - } - -void CCSXHHelpDataBase::ConstructL() - { - iHTMLContentParser = CCSXHHTMLContentParser::NewL(iCoeEnv); - iLegacyContentParser = CCSXHLegacyContentParser::NewL(this); - - iMainTOC1 = CCSXHMainTopics::NewL(KCSXHToc1ViewID,iAppCaption); - iKywdTOC1 = CCSXHKywdTopics::NewL(iAppCaption); - - //No need to delete iAppHelpsToc in destruct, - //because it will be deleted when deleting iMainTOC1. - //All third-party helps will be put to this topic - TInt appHelpPriority = 20001; - iAppHelpsToc = CCSXHMainTopics::NewL( KCSXHToc1AppHelpsViewID, iAppHelpTopic, appHelpPriority ); - - //Build the TOC1 list here - iMainTOC1->InsertChildWithPriority(iAppHelpsToc, EFalse); - iHTMLContentParser->GenerateTOC1ListL(this); - iLegacyContentParser->GenerateTOC1ListL(this); - } - -CCoeEnv* CCSXHHelpDataBase::GetCoeEnv() - { - return iCoeEnv; - } - -EXPORT_C CCSXHGenericTOC1* CCSXHHelpDataBase::GetMainTopics() - { - return iMainTOC1; - } -EXPORT_C CCSXHGenericTOC1* CCSXHHelpDataBase::GetKywdTopics() - { - return iKywdTOC1; - } - -EXPORT_C CCSXHGenericTOC1* CCSXHHelpDataBase::GetAppHelpsTopics() - { - return iAppHelpsToc; - } - -EXPORT_C CCSXHHelpContentBase* CCSXHHelpDataBase::GetContextTopic(const TDesC8& aContextMessage) - { - TRAP_IGNORE(GetContextTopicL(aContextMessage)); - return iLastContextTopic; - - } -CCSXHHelpContentBase* CCSXHHelpDataBase::GetContextTopicL(const TDesC8& aContextMessage) - { - if(iLastContextTopic) - { - delete iLastContextTopic; - iLastContextTopic = NULL; - } - //TSW Error Correction:Help: Application crashes - //after trying to re-open context-dependent help from application - //Clear childlist of all (TOC1)parents. - ClearAllTOC1Contents(); - - CArrayFix* contextList; - CCsHlpCmdLineParser* parser = new(ELeave) CCsHlpCmdLineParser; - CleanupStack::PushL(parser); - parser->ConstructL(aContextMessage); - contextList = parser->ContextListL(); - CleanupStack::PopAndDestroy(parser); // parser - CleanupStack::PushL(contextList); - CCSXHHelpContentBase* contextTopic; - TInt numberOfContextList = contextList->Count(); - TCoeHelpContext* context; - for (TInt i(0); i < numberOfContextList; i++) - { - context = &(contextList->At(i)); - - contextTopic = iHTMLContentParser->GetContextTopicL(this, context->iMajor,context->iContext); - if(contextTopic) - { - CleanupStack::PopAndDestroy(contextList); - iLastContextTopic = CCSXHContextTopic::NewL(contextTopic); - return iLastContextTopic; - } - } - - for (TInt i(0); i < numberOfContextList; i++) - { - context = &(contextList->At(i)); - - contextTopic = iLegacyContentParser->GetContextTopic(*context); - if(contextTopic) - { - CleanupStack::PopAndDestroy(contextList); - iLastContextTopic = CCSXHContextTopic::NewL(contextTopic); - return iLastContextTopic; - } - } - - - CleanupStack::PopAndDestroy(contextList); - return NULL; - } - -EXPORT_C void CCSXHHelpDataBase::ClearAllTOC1Contents() - { - iMainTOC1->ResetChildList(); - iKywdTOC1->ResetChildList(); - } - -CCSXHLegacyContentParser* CCSXHHelpDataBase::GetLegacyParser() - { - return iLegacyContentParser; - } - -CCSXHHTMLContentParser* CCSXHHelpDataBase::GetHtmlParser() - { - return iHTMLContentParser; - } - -void CCSXHHelpDataBase::InsertKeywordL(const TDesC& aKywdName, - TInt aLegacyKywdIndex, const TUid& aCatUid) - { - if(!iHTMLContentParser->IsUidCategoryPresent(aCatUid)) - iKwydBuilder->InsertKeywordL(iKywdTOC1,aKywdName,aLegacyKywdIndex); - } - -void CCSXHHelpDataBase::InsertKeywordL(const TDesC& aKywdName, CCSXHHtmlTOC1* aToc1) - { - iKwydBuilder->InsertKeywordL(iKywdTOC1,aKywdName,aToc1); - } - -CCSXHKywdTOC1* CCSXHHelpDataBase::InsertKeywordTopicL(CCSXHGenericTOC2* aToc2) - { - CCSXHKywdTOC1* toc1 = iKywdTOC1->GetSelectedTopic(); - InsertKeywordTopic(toc1,aToc2); - return toc1; - } - -void CCSXHHelpDataBase::InsertKeywordTopic(CCSXHKywdTOC1* aToc1, CCSXHGenericTOC2* aToc2) - { - aToc1->InsertChild(aToc2); - } - -EXPORT_C TInt CCSXHHelpDataBase::InitGenerateKeywordTOC2ListL(CCSXHKywdTOC1* aTopic) - { - iKeywordSearchCount = 0; - RPointerArray* TOC1HtmlList = aTopic->GetHtmlTOC1List(); - TInt htmlCount = TOC1HtmlList ? TOC1HtmlList->Count() : 0; - TInt legacyCount = iLegacyContentParser->InitGenerateTOC2ListForKeywordSearchL(aTopic); - return (htmlCount + legacyCount); - } - -void CCSXHHelpDataBase::GenerateKeywordTOC2ListL(CCSXHKywdTOC1* aTopic) - { - iHTMLContentParser->GenerateTOC2ListForKeywordSearchL(this,aTopic); - iLegacyContentParser->GenerateTOC2ListForKeywordSearchL(aTopic); - } - -EXPORT_C CCSXHHelpContentBase* CCSXHHelpDataBase::GetHtmlTopicForUrlL(const TDesC& url) - { - return iHTMLContentParser->GetHtmlTopicForUrlL(url); - } -void CCSXHHelpDataBase::FillKeywordTopicsL(MCSXHKywdBuilder* aBuilder) - { - iKwydBuilder = aBuilder; - iHTMLContentParser->GenerateKywdTOC1ListL(this); - iLegacyContentParser->GenerateKywdTOC1ListL(this); - } - - -void CCSXHHelpDataBase::IncrementKeywordSearchCount(TInt aUnits) - { - iKeywordSearchCount += aUnits; - } - -EXPORT_C TInt CCSXHHelpDataBase::GetKeywordSearchCount() - { - return iKeywordSearchCount; - } - diff -r 0d1adf67ec1b -r 12f60d9a73b3 csxhelp/HelpEngine/src/CSXHHtmlTOC1.cpp --- a/csxhelp/HelpEngine/src/CSXHHtmlTOC1.cpp Thu Aug 19 09:42:56 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,208 +0,0 @@ -/* -* 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: CCSXHHtmlTOC1 class definition -* -*/ - -#include "CSXHHtmlTOC1.h" -#include "CSXHHtmlTOC2.h" -#include "CSXHViewIDs.h" -#include "CSXHHTMLContentParser.h" -#include "CSXHHelpDataBase.h" -#include "csxhconstants.h" - -#include -#include -#include -#include -#include -#include -#include -#include - -const TInt KBufSize = 35; - -// --------------------------------------------------------- -// Items commented in header. -// --------------------------------------------------------- -CCSXHHtmlTOC1* CCSXHHtmlTOC1::NewL(const TDesC& aName, const TDesC& aFolder,const TInt& aDrive, TUid aViewId, TInt32 aPriority) - { - CCSXHHtmlTOC1* self = new (ELeave) CCSXHHtmlTOC1(aName, aFolder, aDrive, aViewId, aPriority); - return self; - } - -// --------------------------------------------------------- -// Items commented in header. -// --------------------------------------------------------- -CCSXHHtmlTOC1::CCSXHHtmlTOC1(const TDesC& aName, const TDesC& aFolder,const TInt& aDrive, TUid aViewId, TInt32 aPriority): - CCSXHGenericTOC1(aName, aPriority), iAppUid(aFolder), iDrive(aDrive), iViewId(aViewId) - {//No implementation required - } - -// --------------------------------------------------------- -// Items commented in header. -// --------------------------------------------------------- -CCSXHHtmlTOC1::~CCSXHHtmlTOC1() - {//No implementation required - } - -// --------------------------------------------------------- -// Items commented in header. -// --------------------------------------------------------- -TUid CCSXHHtmlTOC1::GetViewID() const - { - return iViewId; - } - -// --------------------------------------------------------- -// Items commented in header. -// --------------------------------------------------------- -void CCSXHHtmlTOC1::GetHelpFileL(TBuf& aFileName ) const - { - //return iHelpFile; - return CCSXHHTMLContentParser::GetHtmlFileL( - CCSXHHelpDataBase::GetInstance()->GetCoeEnv(),iDrive,iAppUid,aFileName); - } - -// --------------------------------------------------------- -// Items commented in header. -// --------------------------------------------------------- -const TUid& CCSXHHtmlTOC1::GetAppUid() const - { - return iAppUid.GetUid(); - } - -// --------------------------------------------------------- -// Items commented in header. -// --------------------------------------------------------- -TBool CCSXHHtmlTOC1::IsROMDrive() - { - TInt ROMDrive; - RFs::CharToDrive( PathInfo::RomRootPath()[0], ROMDrive ); - if(ROMDrive == iDrive) - return ETrue; - else - return EFalse; - } - -// --------------------------------------------------------- -// Items commented in header. -// --------------------------------------------------------- -CCSXHHelpContentBase* CCSXHHtmlTOC1::GetContextTopic(const TDesC& contextName) - { - TBool resetChildList = EFalse; - if(iChildList == NULL) - { - InitChildList();//Generates child list - resetChildList = ETrue; - } - - TInt count = iChildList->Count(); - CCSXHHtmlTOC2* toc2 = NULL; - for(TInt i=0;i contextFile = contextName; - contextFile.Append(KHtmlFileExtn); - if(contextFile.Compare(toc2->GetFileName()) == 0) - return toc2;//Child list should not be reset - } - if(resetChildList) - ResetChildList(); - return NULL; - } - -// --------------------------------------------------------- -// Items commented in header. -// --------------------------------------------------------- -CCSXHHelpContentBase* CCSXHHtmlTOC1::GetHtmlTopicForFile(const TDesC& aFile) - { - TBool resetChildList = EFalse; - if(iChildList ==NULL) - { - InitChildList();//Generates child list if required. - resetChildList = ETrue; - } - - TInt count = iChildList->Count(); - CCSXHHtmlTOC2* toc2 = NULL; - for(TInt i=0;iGetFileName().Compare(aFile) == 0) - return toc2;//Child list should not be reset - } - if(resetChildList) - ResetChildList(); - return NULL; - } - -// --------------------------------------------------------- -// Items commented in header. -// --------------------------------------------------------- -void CCSXHHtmlTOC1::InitChildList() - { - if(iChildList != NULL) - return; - ConstructChildList(); - TRAP_IGNORE(CCSXHHelpDataBase::GetInstance()->GetHtmlParser()-> - GenerateTOC2ListL(*this,iChildList)); - } -TBool CCSXHHtmlTOC1::IsValid() const - { - return iAppUid.IsValid(); - } - - -TAppUid::TAppUid(const TDesC& aFolder) - { - TLex lex(aFolder.Mid(KHexPrefixLength)); - TUint appId = 0; - lex.Val(appId,EHex); - - if(appId) - { - iUid = TUid::Uid((TInt)appId); - iLength = aFolder.Length(); - } - else - { - iLength = 0; - } - } - -const TUid& TAppUid::GetUid() const - { - return iUid; - } - -TBool TAppUid::IsValid() const - { - return iLength ? ETrue : EFalse; - } -void TAppUid::AppendUid(TBuf& aStr) const - { - TInt initialLen = aStr.Length(); - aStr.Append(KHexPrefix); - aStr.AppendNum(iUid.iUid,EHex); - TInt finalLen = aStr.Length(); - - while(iLength > (finalLen - initialLen)) - { - aStr.Insert(initialLen+KHexPrefixLength,KZero); - ++finalLen; - } - - } - diff -r 0d1adf67ec1b -r 12f60d9a73b3 csxhelp/HelpEngine/src/CSXHHtmlTOC2.cpp --- a/csxhelp/HelpEngine/src/CSXHHtmlTOC2.cpp Thu Aug 19 09:42:56 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,181 +0,0 @@ -/* -* 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: CCSXHHtmlTOC2 class definition -* -*/ - -#include "CSXHHtmlTOC2.h" -#include "CSXHHtmlTOC1.h" -#include "CSXHViewIDs.h" -#include "CSXHHTMLContentParser.h" -#include "CSXHHelpDataBase.h" -#include "csxhconstants.h" - -#include -#include -#include -#include - -// --------------------------------------------------------- -// Items commented in header. -// --------------------------------------------------------- -CCSXHHtmlTOC2* CCSXHHtmlTOC2::NewL(CCSXHGenericTOC1* aParent,const TDesC& aName, - const TDesC& aHtmlHelpFile, TBool aKeyWordTopic ) - { - CCSXHHtmlTOC2* self = CCSXHHtmlTOC2::NewLC(aParent, aName,aHtmlHelpFile,aKeyWordTopic); - CleanupStack::Pop(self); - return self; - } - -// --------------------------------------------------------- -// Items commented in header. -// --------------------------------------------------------- -CCSXHHtmlTOC2* CCSXHHtmlTOC2::NewLC(CCSXHGenericTOC1* aParent, const TDesC& aName, - const TDesC& aHtmlHelpFile, TBool aKeyWordTopic) - { - CCSXHHtmlTOC2* self = new(ELeave) CCSXHHtmlTOC2(aParent, aName,aHtmlHelpFile,aKeyWordTopic); - CleanupStack::PushL(self); - return self; - } - -// --------------------------------------------------------- -// Items commented in header. -// --------------------------------------------------------- -CCSXHHtmlTOC2::~CCSXHHtmlTOC2() - {//No implementation required - } - -// --------------------------------------------------------- -// Items commented in header. -// --------------------------------------------------------- -CCSXHHtmlTOC2::CCSXHHtmlTOC2(CCSXHGenericTOC1* aParent,const TDesC& aName, - const TDesC& aHtmlHelpFile, TBool aKeyWordTopic) : - CCSXHGenericTOC2(aParent, aName),iHTMLFileName(aHtmlHelpFile), - iKeyWordTopic(aKeyWordTopic),iKywdParent(NULL) - {//No implementation required - } - -// --------------------------------------------------------- -// Items commented in header. -// --------------------------------------------------------- -TUid CCSXHHtmlTOC2::GetViewID() const - { - return KCSXHHtmlTopicViewID; - } - -// --------------------------------------------------------- -// Items commented in header. -// --------------------------------------------------------- -const TBuf& CCSXHHtmlTOC2::GetFileName() const - { - return iHTMLFileName; - } - -// --------------------------------------------------------- -// Items commented in header. -// --------------------------------------------------------- -EXPORT_C TBool CCSXHHtmlTOC2::GetHelpContext(TCoeHelpContext& aContext) const - { - - CCSXHHtmlTOC1* parent = STATIC_CAST(CCSXHHtmlTOC1*,iParent); - aContext.iMajor = parent->GetAppUid(); - if( KErrNotFound != iHTMLFileName.Find(KHtmlFileExtn) ) - { - aContext.iContext.Append(iHTMLFileName.Left(iHTMLFileName.Find(KHtmlFileExtn))); - } -#ifdef FF_HELP_TUTORIAL_MERGE - else if( KErrNotFound != iHTMLFileName.Find(KTutorialFileExtn) ) - { - aContext.iContext.Append(iHTMLFileName.Left(iHTMLFileName.Find(KTutorialFileExtn))); - } -#endif // FF_HELP_TUTORIAL_MERGE - return ETrue; - } -// --------------------------------------------------------- -// Items commented in header. -// --------------------------------------------------------- -EXPORT_C void CCSXHHtmlTOC2::GetHtmlUrlL(TBuf& aFileUrl) const - { - aFileUrl = KFileUrlPrefix; - - aFileUrl.Append(iHTMLFilePath); - aFileUrl.Append(iHTMLFileName); - - TInt pos = aFileUrl.Find(KFwdSlash) ; - while (KErrNotFound != pos) - { - aFileUrl.Replace(pos,1,KBackSlash); - pos = aFileUrl.Find(KFwdSlash) ; - } - } - -// --------------------------------------------------------- -// Items commented in header. -// --------------------------------------------------------- -EXPORT_C TAny* CCSXHHtmlTOC2::GetTopicContentL() - { - return CCSXHHelpDataBase::GetInstance()->GetHtmlParser()->GetTopicContentL(this); - } - -// --------------------------------------------------------- -// Items commented in header. -// --------------------------------------------------------- -EXPORT_C HBufC8* CCSXHHtmlTOC2::GetContentsFromUrlL(const TDesC& fileUrl,CCoeEnv* aCoeEnv, - RFeatureControl& aFeatureControl) - { - TBuf htmlFile(fileUrl); - htmlFile.Delete(0,KFileUrlPrefixLength);//Remove "file:///" - //Replace "/" with "\\" - TInt pos = htmlFile.Locate('/') ; - while (KErrNotFound != pos) - { - htmlFile.Replace(pos,1,KFwdSlash); - pos = htmlFile.Locate('/') ; - } - return CCSXHHTMLContentParser::GetContentsFromFileL(htmlFile,aCoeEnv,aFeatureControl); - } - -// --------------------------------------------------------- -// Items commented in header. -// --------------------------------------------------------- -EXPORT_C CCSXHKywdTOC1* CCSXHHtmlTOC2::GetKywdParent() - { - return iKywdParent; - } - -// --------------------------------------------------------- -// Items commented in header. -// --------------------------------------------------------- -void CCSXHHtmlTOC2::SetKywdParent(CCSXHKywdTOC1* aKywdParent) - { - iKywdParent = aKywdParent; - } - -// --------------------------------------------------------- -// Items commented in header. -// --------------------------------------------------------- -void CCSXHHtmlTOC2::SetHtmlFilePath(const TDesC& aFilePath) - { - iHTMLFilePath = aFilePath; - } - -// --------------------------------------------------------- -// Items commented in header. -// --------------------------------------------------------- -void CCSXHHtmlTOC2::GetHtmlFileName(TBuf& aFileName) - { - aFileName.Copy(KEmptyString); - aFileName.Append(iHTMLFilePath); - aFileName.Append(iHTMLFileName); - } diff -r 0d1adf67ec1b -r 12f60d9a73b3 csxhelp/HelpEngine/src/CSXHKywdTOC1.cpp --- a/csxhelp/HelpEngine/src/CSXHKywdTOC1.cpp Thu Aug 19 09:42:56 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,106 +0,0 @@ -/* -* 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: CCSXHKywdTOC1 class definition -* -*/ - -#include "CSXHKywdTOC1.h" -#include "CSXHViewIDs.h" -#include "CSXHHelpDataBase.h" - -// --------------------------------------------------------- -// Items commented in header. -// --------------------------------------------------------- -CCSXHKywdTOC1* CCSXHKywdTOC1::NewL(const TDesC& aName) - { - CCSXHKywdTOC1* self = CCSXHKywdTOC1::NewLC(aName); - CleanupStack::Pop(self); - return self; - } - -// --------------------------------------------------------- -// Items commented in header. -// --------------------------------------------------------- -CCSXHKywdTOC1* CCSXHKywdTOC1::NewLC(const TDesC& aName) - { - CCSXHKywdTOC1* self = new(ELeave) CCSXHKywdTOC1(aName); - CleanupStack::PushL(self); - return self; - } - -// --------------------------------------------------------- -// Items commented in header. -// --------------------------------------------------------- -CCSXHKywdTOC1::CCSXHKywdTOC1(const TDesC& aName): - CCSXHGenericTOC1(aName),iLegacyIndex(-1),iTOC1HtmlList(NULL) - { - } - -// --------------------------------------------------------- -// Items commented in header. -// --------------------------------------------------------- -CCSXHKywdTOC1::~CCSXHKywdTOC1() - { - if(iTOC1HtmlList) - { - iTOC1HtmlList->Close(); - delete iTOC1HtmlList; - } - } - -// --------------------------------------------------------- -// Items commented in header. -// --------------------------------------------------------- -TUid CCSXHKywdTOC1::GetViewID() const - { - return KCSXHKywdToc2ViewID; - } - -// --------------------------------------------------------- -// Items commented in header. -// --------------------------------------------------------- -TInt& CCSXHKywdTOC1::LegacyIndex() - { - return iLegacyIndex; - } - -// --------------------------------------------------------- -// Items commented in header. -// --------------------------------------------------------- -void CCSXHKywdTOC1::AppendHtmlTOC1L(CCSXHHtmlTOC1* aToc1) - { - if(NULL == iTOC1HtmlList) - iTOC1HtmlList = new(ELeave) RPointerArray; - iTOC1HtmlList->Append(aToc1); - } - -// --------------------------------------------------------- -// Items commented in header. -// --------------------------------------------------------- -RPointerArray* CCSXHKywdTOC1::GetHtmlTOC1List() - { - return iTOC1HtmlList; - } - -// --------------------------------------------------------- -// Items commented in header. -// --------------------------------------------------------- -void CCSXHKywdTOC1::InitChildList() - { - if(iChildList != NULL) - return; - ConstructChildList(); - TRAP_IGNORE(CCSXHHelpDataBase::GetInstance()->GenerateKeywordTOC2ListL(this)); - } - diff -r 0d1adf67ec1b -r 12f60d9a73b3 csxhelp/HelpEngine/src/CSXHKywdTopics.cpp --- a/csxhelp/HelpEngine/src/CSXHKywdTopics.cpp Thu Aug 19 09:42:56 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,179 +0,0 @@ -/* -* 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: CCSXHKywdTopics class definition -* -*/ - -#include "CSXHKywdTopics.h" -#include "CSXHHTMLContentParser.h" -#include "CSXHHelpDataBase.h" -#include "CSXHViewIDs.h" -#include "csxhconstants.h" -#include "CSXHKywdTOC1.h" - -#include -#include - -//Implementation class. This class will be used when all the keywords has to be displayed -class MCSXHKywdTopicsBuilder : public MCSXHKywdBuilder - { - public: - static MCSXHKywdTopicsBuilder* NewL() - { - MCSXHKywdTopicsBuilder* self = MCSXHKywdTopicsBuilder::NewLC(); - CleanupStack::Pop(self); - return self; - } - static MCSXHKywdTopicsBuilder* NewLC() - { - MCSXHKywdTopicsBuilder* self = new(ELeave) MCSXHKywdTopicsBuilder(); - CleanupStack::PushL(self); - return self; - } - - void InsertKeywordL(CCSXHKywdTopics* aKwdTopics, const TDesC& aKwd,CCSXHHtmlTOC1*) - {aKwdTopics->InsertKywdL(aKwd);} - - void InsertKeywordL(CCSXHKywdTopics* aKwdTopics, const TDesC& aKwd,const TInt&) - {aKwdTopics->InsertKywdL(aKwd);} - - private: - MCSXHKywdTopicsBuilder(){} - }; - - -//Implementation class. This class will be used when user has selected a keyword and -// wants to navigate to the search result view -class MCSXHKywdSelectedItemBuilder : public MCSXHKywdBuilder - { - public: - static MCSXHKywdSelectedItemBuilder* NewL(CCSXHKywdTOC1* aCurrentTopic) - { - MCSXHKywdSelectedItemBuilder* self = MCSXHKywdSelectedItemBuilder::NewLC(aCurrentTopic); - CleanupStack::Pop(self); - return self; - } - static MCSXHKywdSelectedItemBuilder* NewLC(CCSXHKywdTOC1* aCurrentTopic) - { - MCSXHKywdSelectedItemBuilder* self = new(ELeave) - MCSXHKywdSelectedItemBuilder(aCurrentTopic); - CleanupStack::PushL(self); - return self; - } - void InsertKeywordL(CCSXHKywdTopics*, const TDesC& aKwd,CCSXHHtmlTOC1* aToc1) - { - if(iCurrentTopic->GetName().Compare(aKwd) == 0) - iCurrentTopic->AppendHtmlTOC1L(aToc1); - } - void InsertKeywordL(CCSXHKywdTopics*, const TDesC& aKwd,const TInt& aLegacyIndex) - { - if(iCurrentTopic->GetName().Compare(aKwd) == 0) - iCurrentTopic->LegacyIndex() = aLegacyIndex; - } - - private: - MCSXHKywdSelectedItemBuilder(CCSXHKywdTOC1* aCurrentTopic) - :iCurrentTopic(aCurrentTopic){} - CCSXHKywdTOC1* iCurrentTopic; - }; - -// --------------------------------------------------------- -// Items commented in header. -// --------------------------------------------------------- -CCSXHKywdTopics* CCSXHKywdTopics::NewL(const TApaAppCaption& aAppCaption) - { - CCSXHKywdTopics* self = CCSXHKywdTopics::NewLC(aAppCaption); - CleanupStack::Pop(self); - return self; - } -// --------------------------------------------------------- -// Items commented in header. -// --------------------------------------------------------- -CCSXHKywdTopics* CCSXHKywdTopics::NewLC(const TApaAppCaption& aAppCaption) - { - CCSXHKywdTopics* self = new(ELeave) CCSXHKywdTopics(aAppCaption); - CleanupStack::PushL(self); - return self; - } -// --------------------------------------------------------- -// Items commented in header. -// --------------------------------------------------------- -CCSXHKywdTopics::CCSXHKywdTopics(const TDesC& aName) : CCSXHGenericTOC1(aName) - {} -// --------------------------------------------------------- -// Items commented in header. -// --------------------------------------------------------- -CCSXHKywdTopics::~CCSXHKywdTopics() - { - if(iCurrentTopic) - delete iCurrentTopic; - } -// --------------------------------------------------------- -// Items commented in header. -// --------------------------------------------------------- -TUid CCSXHKywdTopics::GetViewID() const - { - return KCSXHKywdToc1ViewID; - } -// --------------------------------------------------------- -// Items commented in header. -// --------------------------------------------------------- -void CCSXHKywdTopics::CopyChildListL(CDesCArray* aArray) - { - iKywdTopics = aArray; - MCSXHKywdTopicsBuilder* builder = NULL; - builder = MCSXHKywdTopicsBuilder::NewL(); - CCSXHHelpDataBase::GetInstance()->FillKeywordTopicsL(builder); - delete builder; - } -// --------------------------------------------------------- -// Items commented in header. -// --------------------------------------------------------- -void CCSXHKywdTopics::InsertKywdL(const TDesC& aKywd) - { - TBuf child(KTabSpace); - child.Append(aKywd); - iKywdTopics->InsertIsqL(child); - } -// --------------------------------------------------------- -// Items commented in header. -// --------------------------------------------------------- -CCSXHHelpContentBase* CCSXHKywdTopics::GetChildL(const TDesC& aName) - { - if(iCurrentTopic) - { - delete iCurrentTopic; - iCurrentTopic = NULL; - } - - iCurrentTopic = CCSXHKywdTOC1::NewL(aName); - - MCSXHKywdSelectedItemBuilder* builder = NULL; - builder = MCSXHKywdSelectedItemBuilder::NewL(iCurrentTopic); - - CCSXHHelpDataBase::GetInstance()->FillKeywordTopicsL(builder); - - delete builder; - return iCurrentTopic; - } -// --------------------------------------------------------- -// Items commented in header. -// --------------------------------------------------------- -CCSXHKywdTOC1* CCSXHKywdTopics::GetSelectedTopic() - { - return iCurrentTopic; - } - - - diff -r 0d1adf67ec1b -r 12f60d9a73b3 csxhelp/HelpEngine/src/CSXHLegacyContentParser.cpp --- a/csxhelp/HelpEngine/src/CSXHLegacyContentParser.cpp Thu Aug 19 09:42:56 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,280 +0,0 @@ -/* -* 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: CCSXHLegacyContentParser class definition -* -*/ - -#include "CSXHLegacyContentParser.h" -#include "CSXHLegacyTOC1.h" -#include "CSXHLegacyTOC2.h" -#include "CSXHKywdTOC1.h" -#include "CSXHHelpDataBase.h" - -#include -#include -#include -#include -#include - -CCSXHLegacyContentParser* CCSXHLegacyContentParser::NewL(CCSXHHelpDataBase -*aDataBase) - { - CCSXHLegacyContentParser* self = CCSXHLegacyContentParser::NewLC(aDataBase); - CleanupStack::Pop(self); - return self; - } - -CCSXHLegacyContentParser* CCSXHLegacyContentParser::NewLC(CCSXHHelpDataBase -*aDataBase) - { - CCSXHLegacyContentParser* self = new (ELeave) CCSXHLegacyContentParser(aDataBase); - CleanupStack::PushL(self); - self->ConstructL(); - return self; - } - -void CCSXHLegacyContentParser::ConstructL() - { - iModel = CHlpModel::NewL(CCoeEnv::Static()->FsSession(), this); - iModel->OpenL(); - } - -CCSXHLegacyContentParser::CCSXHLegacyContentParser(CCSXHHelpDataBase* aDataBase) - :iTopic(NULL) - { - iDataBase = aDataBase; - iHlpList = NULL; - } - -CCSXHLegacyContentParser::~CCSXHLegacyContentParser() - { - if(iTopic) - delete iTopic; - if(iHlpList) - delete iHlpList; - - //No need to delete the entries here, it will be done by the database - iLegacyTOC1List.Close(); - - if(iModel) - { - TRAP_IGNORE(iModel->CloseL()); - delete iModel; - } - } -// -------------------------------------------------------------------------- -// Gets the available kywds from the legacy content and sends them to the -// database -// -------------------------------------------------------------------------- -void CCSXHLegacyContentParser::GenerateKywdTOC1ListL(CCSXHHelpDataBase* aDataBase) - { - CHlpList* HlpList; - HlpList = CHlpList::NewL(); - iModel->SearchL(EIndexList); - iModel->LoadListL(HlpList); - - TInt nCount(HlpList->MdcaCount()); - for (TInt i(0); i < nCount; i++) - { - TBuf appName; - appName = HlpList->MdcaPoint(i); - TRAP_IGNORE(aDataBase->InsertKeywordL(appName,i,HlpList->Item(i)->HelpFileUid())); - } - delete HlpList; - } -// -------------------------------------------------------------------------- -// Gets the available TOC1 from the legacy content and sends them to the -// database. Local copy of the TOC1 objects is maintained for generating TOC2 -// -------------------------------------------------------------------------- -void CCSXHLegacyContentParser::GenerateTOC1ListL(CCSXHHelpDataBase* aDataBase) - { - const TInt twoColumnFlatArray = 2; - CDesCArray* categoryList = new(ELeave) CDesCArrayFlat(twoColumnFlatArray); - CleanupStack::PushL(categoryList); - iModel->CategoryListL(categoryList); - CCSXHLegacyTOC1* categoryObj; - TBuf appName; - TLinearOrder anOrder(Orderer); - for (TInt i(0); i < categoryList->Count(); i++) - { - appName = categoryList->MdcaPoint(i); - categoryObj = CCSXHLegacyTOC1::NewLC(appName); - if ( aDataBase->GetAppHelpsTopics()->InsertChild(categoryObj) ) - { - iLegacyTOC1List.AppendL(categoryObj);//Keep a local copy*/ - } - CleanupStack::Pop(categoryObj); - } - CleanupStack::Pop(categoryList); - delete categoryList; - } -// -------------------------------------------------------------------------- -// Gets the available TOC2 objects for the TOC1 object -// -------------------------------------------------------------------------- -void CCSXHLegacyContentParser::GenerateTOC2ListL(CCSXHGenericTOC1& aGenericTOC1Object, - RPointerArray* GenericTOC2List) - { - iModel->SearchL(ETopicListForCategory, aGenericTOC1Object.GetName()); - if(iHlpList) - { - delete iHlpList; - //Next line is Needed for code scanner - iHlpList = NULL; - } - iHlpList = CHlpList::NewL(); - iModel->LoadListL(iHlpList); - - TInt count(iHlpList->MdcaCount()); - CCSXHGenericTOC2* PLegacyTOC2; - TLinearOrder anOrder(Orderer); - for (TInt i(0); i < count; i++) - { - PLegacyTOC2 = CCSXHLegacyTOC2::NewL(&aGenericTOC1Object,iHlpList->MdcaPoint(i)); - if (KErrNone != GenericTOC2List->InsertInOrder(PLegacyTOC2,anOrder)) - delete PLegacyTOC2; - } - } -// -------------------------------------------------------------------------- -// Gets the RTF content for the given topic -// -------------------------------------------------------------------------- -TAny* CCSXHLegacyContentParser::GetTopicContentL(CCSXHGenericTOC2* aTopic) - { - TInt nCount(iHlpList->MdcaCount()); - TInt nIndex(0); - for(nIndex=0;nIndex < nCount; nIndex++) - { - TBuf appName; - appName.Append(iHlpList->MdcaPoint(nIndex)); - if(appName.Compare(aTopic->GetName())==0) - break; - } - if( nIndex == nCount ) - { - return NULL; - } - if(iTopic) - { - delete iTopic; - //Next line is Needed for code scanner - iTopic = NULL; - } - iTopic = CHlpTopic::NewL(); - CHlpItem* item = iHlpList->Item(nIndex); - iModel->TopicSearchL(*item); - iModel->LoadTopicL(iTopic); - return iTopic->TopicText(); - } - -void CCSXHLegacyContentParser::HandleModelEventL(TInt aEvent) - { - iStatus = aEvent; - } - -// -------------------------------------------------------------------------- -// Gets the number of kywd subtopics for the given kywd -// -------------------------------------------------------------------------- -TInt CCSXHLegacyContentParser::InitGenerateTOC2ListForKeywordSearchL(CCSXHKywdTOC1* aKywdTOC1Object) - { - if(aKywdTOC1Object->LegacyIndex() == -1 || (!iLegacyTOC1List.Count())) - return 0; - CHlpList* SearchList; - - if(iHlpList) - { - delete iHlpList; - //Next line is Needed for code scanner - iHlpList = NULL; - } - iHlpList = CHlpList::NewL(); - SearchList = CHlpList::NewLC(); - iModel->SearchL(EIndexList); - iModel->LoadListL(SearchList); - //Search Panel - CHlpItem* item = SearchList->Item(aKywdTOC1Object->LegacyIndex()); - iModel->IndexSearchL(*item); - iModel->LoadListL(iHlpList); - - CleanupStack::PopAndDestroy(SearchList); - return iHlpList->MdcaCount(); - } - - -// -------------------------------------------------------------------------- -// Gets the available kywd subtopics for the given kywd -// -------------------------------------------------------------------------- -void CCSXHLegacyContentParser::GenerateTOC2ListForKeywordSearchL(CCSXHKywdTOC1* aKywdTOC1Object) - { - if(aKywdTOC1Object->LegacyIndex() == -1 || (!iLegacyTOC1List.Count())) - return; - - TInt nCount(iHlpList->MdcaCount()); - CCSXHGenericTOC2* PLegacyTOC2; - TLinearOrder anOrder(Orderer); - for (TInt i(0); i < nCount; i++) - { - PLegacyTOC2 = CCSXHLegacyTOC2::NewL(aKywdTOC1Object,iHlpList->MdcaPoint(i),ETrue); - iDataBase->InsertKeywordTopic(aKywdTOC1Object,PLegacyTOC2); - iDataBase->IncrementKeywordSearchCount(); - } - - } - -CCSXHLegacyTOC1* CCSXHLegacyContentParser::GetTOC1ForTOC2(CCSXHLegacyTOC2*) - { - TInt count = iLegacyTOC1List.Count(); - CCSXHLegacyTOC1* toc1; - for(TInt i = 0; iCategory().Compare(toc1->GetName())==0) - return toc1; - } - return NULL; - } - -CCSXHHelpContentBase* CCSXHLegacyContentParser::GetContextTopic(TCoeHelpContext& aContext) - { - TRAPD(err,LoadContextTopicL(aContext)); - if(err != KErrNone || NULL == iTopic) - return NULL; - - TInt count = iLegacyTOC1List.Count(); - CCSXHLegacyTOC1* toc1; - for(TInt i = 0; iCategory().Compare(toc1->GetName())==0) - { - return toc1->GetContextTopic(iTopic->TopicTitle()); - } - } - return NULL; - } - -void CCSXHLegacyContentParser::LoadContextTopicL(TCoeHelpContext& aContext) - { - if(iTopic) - { - delete iTopic; - //Next line is Needed for code scanner - iTopic = NULL; - } - - iModel->ContextSearchL(aContext); - if(ETopicAvailable == iStatus ) - { - iTopic = CHlpTopic::NewL(); - iModel->LoadTopicL(iTopic); - } - } diff -r 0d1adf67ec1b -r 12f60d9a73b3 csxhelp/HelpEngine/src/CSXHLegacyTOC1.cpp --- a/csxhelp/HelpEngine/src/CSXHLegacyTOC1.cpp Thu Aug 19 09:42:56 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,78 +0,0 @@ -/* -* 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: CCSXHLegacyTOC1 class definition -* -*/ - -#include "CSXHLegacyTOC1.h" -#include "CSXHViewIDs.h" -#include "CSXHLegacyContentParser.h" -#include "CSXHHelpDataBase.h" - -#include - -CCSXHLegacyTOC1* CCSXHLegacyTOC1::NewL(const TDesC& aName) - { - CCSXHLegacyTOC1* self = CCSXHLegacyTOC1::NewLC(aName); - CleanupStack::Pop(self); - return self; - } - -CCSXHLegacyTOC1* CCSXHLegacyTOC1::NewLC(const TDesC& aName) - { - CCSXHLegacyTOC1* self = new(ELeave) CCSXHLegacyTOC1(aName); - CleanupStack::PushL(self); - return self; - } - -CCSXHLegacyTOC1::CCSXHLegacyTOC1(const TDesC& aName) : -CCSXHGenericTOC1(aName) - {//No implementation required - } - -TUid CCSXHLegacyTOC1::GetViewID() const - { - return KCSXHToc2AppHelpsViewID; - } - -CCSXHHelpContentBase* CCSXHLegacyTOC1::GetContextTopic(const TDesC& aContextName) - { - TBool resetChildList = EFalse; - if(iChildList ==NULL) - { - InitChildList();//Generates child list if required. - resetChildList = ETrue; - } - - TInt count = iChildList->Count(); - CCSXHHelpContentBase* toc2 = NULL; - for(TInt i=0;iGetName().Compare(aContextName) == 0) - return toc2;//Child list should not be reset - } - if(resetChildList) - ResetChildList(); - return NULL; - } - -void CCSXHLegacyTOC1::InitChildList() - { - ConstructChildList(); - - TRAP_IGNORE(CCSXHHelpDataBase::GetInstance()-> - GetLegacyParser()->GenerateTOC2ListL(*this,iChildList)); - } - diff -r 0d1adf67ec1b -r 12f60d9a73b3 csxhelp/HelpEngine/src/CSXHLegacyTOC2.cpp --- a/csxhelp/HelpEngine/src/CSXHLegacyTOC2.cpp Thu Aug 19 09:42:56 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,65 +0,0 @@ -/* -* 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: CCSXHLegacyTOC2 class definition -* -*/ - -#include "CSXHLegacyTOC2.h" -#include "CSXHViewIDs.h" -#include "CSXHGenericTOC1.h" -#include "CSXHLegacyContentParser.h" -#include "CSXHHelpDataBase.h" - -#include - -CCSXHLegacyTOC2* CCSXHLegacyTOC2::NewL(CCSXHGenericTOC1* aParent,const -TDesC& aName,TBool aKey) - { - CCSXHLegacyTOC2* self = CCSXHLegacyTOC2::NewLC(aParent,aName,aKey); - CleanupStack::Pop(self); - return self; - } - -CCSXHLegacyTOC2* CCSXHLegacyTOC2::NewLC(CCSXHGenericTOC1* aParent,const -TDesC& aName,TBool aKey) - { - CCSXHLegacyTOC2* self = new(ELeave) CCSXHLegacyTOC2(aParent,aName,aKey); - CleanupStack::PushL(self); - return self; - } - - -CCSXHLegacyTOC2::CCSXHLegacyTOC2(CCSXHGenericTOC1* aParent,const TDesC& aName,TBool aKey) : -CCSXHGenericTOC2(aParent,aName),iKeyWordTopic (aKey) - {//No implementation required - } - -TUid CCSXHLegacyTOC2::GetViewID() const - { - return KCSXHLegacyTopicViewID; - } - -EXPORT_C TAny* CCSXHLegacyTOC2::GetTopicContentL() - { - - return CCSXHHelpDataBase::GetInstance()->GetLegacyParser()->GetTopicContentL(this); - //return NULL; - } - -EXPORT_C CCSXHLegacyTOC1* CCSXHLegacyTOC2::GetLegacyParent() - { - if(!iKeyWordTopic) - return NULL; - return CCSXHHelpDataBase::GetInstance()->GetLegacyParser()->GetTOC1ForTOC2(this); - } diff -r 0d1adf67ec1b -r 12f60d9a73b3 csxhelp/HelpEngine/src/CSXHMainTopics.cpp --- a/csxhelp/HelpEngine/src/CSXHMainTopics.cpp Thu Aug 19 09:42:56 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,64 +0,0 @@ -/* -* 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: CCSXHMainTopics class definition -* -*/ - -#include "CSXHMainTopics.h" -#include "CSXHHTMLContentParser.h" -#include "CSXHHelpDataBase.h" -#include "CSXHViewIDs.h" -#include "csxhconstants.h" - -#include -#include - -CCSXHMainTopics* CCSXHMainTopics::NewL(const TUid& aUid, const TApaAppCaption& aAppCaption, const TInt32 aPriority) - { - CCSXHMainTopics* self = CCSXHMainTopics::NewLC(aUid,aAppCaption, aPriority); - CleanupStack::Pop(self); - return self; - } - -CCSXHMainTopics* CCSXHMainTopics::NewLC(const TUid& aUid,const TApaAppCaption& aAppCaption, const TInt32 aPriority) - { - CCSXHMainTopics* self = new(ELeave) CCSXHMainTopics(aUid, aAppCaption, aPriority); - CleanupStack::PushL(self); - return self; - } - -CCSXHMainTopics::CCSXHMainTopics(const TUid& aUid,const TDesC& aName, const TInt32 aPriority) : -CCSXHGenericTOC1(aName, aPriority), iUid(aUid) - {//No implementation required - } - -CCSXHMainTopics::~CCSXHMainTopics() - {//No implementation required - } - -TUid CCSXHMainTopics::GetViewID() const - { - return iUid; - } - -void CCSXHMainTopics::ResetChildList() - { - if(iChildList == NULL) - return; - TInt count = iChildList->Count(); - for(TInt i=0;iResetChildList(); - } - } diff -r 0d1adf67ec1b -r 12f60d9a73b3 csxhelp/HelpEngine/src/CSXHRuntimeIndexing.cpp --- a/csxhelp/HelpEngine/src/CSXHRuntimeIndexing.cpp Thu Aug 19 09:42:56 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,360 +0,0 @@ -/* -* 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: CCSXHRuntimeIndexing class definition -* -*/ - - -#include -#include -#include -#include -#include // for CAknNoteDialog -#include -#include -#include - -#include "CSXHRuntimeIndexing.h" -#include "CSXHHtmlTOC1.h" -#include "csxhconstants.h" - -// buffer length of Drive information in index file -// -const TInt KMaxDriveInfo = 100; - -CCSXHRuntimeIndexing::CCSXHRuntimeIndexing() - { - iCoeEnv = CCoeEnv::Static(); - } - -CCSXHRuntimeIndexing::~CCSXHRuntimeIndexing() - { - delete iFullDirName; - iFile.Close(); - } - -CCSXHRuntimeIndexing* CCSXHRuntimeIndexing::NewL() - { - CCSXHRuntimeIndexing* self = new ( ELeave ) CCSXHRuntimeIndexing(); - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop( self ); - return self; - } - -void CCSXHRuntimeIndexing::ConstructL() - { - RFs& fileSession = iCoeEnv->FsSession(); - iFullDirName = HBufC::NewL( KMaxFileName ); - - TFileName fullDirName; - - GetPrivatePath( fullDirName ); - if ( !BaflUtils::PathExists( fileSession, fullDirName ) ) - { - fileSession.CreatePrivatePath( EDriveC ); - } - - TInt len = fullDirName.Length(); - TDriveList dirList; - if( fileSession.DriveList( dirList ) == KErrNone ) - { - TDriveInfo info; - TInt driveListLen = dirList.Length(); - - for ( TInt i = 0; i < driveListLen; i++ ) - { - // make separate folder for C/D/E/... drive - // e.g. C:\\private\\10005234\\C\\ - - TInt err = fileSession.Drive( info, i ); - if ( err == KErrNone && - info.iType != EMediaNotPresent ) - { - TChar driveChar; - RFs::DriveToChar( i, driveChar ); - fullDirName.Append( driveChar ); - fullDirName.Append( KFwdSlash ); - fileSession.MkDir( fullDirName ); - fullDirName.Delete( len, 3 ); - } - } - - } - } - -TBool CCSXHRuntimeIndexing::IndexFileExistsL() - { - RFs& fileSession = iCoeEnv->FsSession(); - TBuf fileName; - GetPrivatePath( fileName ); - fileName.Append( _L("Z\\") ); - AppendLocaleL( fileName ); - fileName.Append( KMasterMetaFile ); - - // Now the dirName is C:\\private\\\\Z\\index.xml - // check if it exists, if yes, runtime indexing must be launched before - // since Z based Help content must be delivered with cell phone - // - return BaflUtils::FileExists( fileSession, fileName ); - - } - -void CCSXHRuntimeIndexing::BeginIndexFileL( const TChar& aDrive ) - { - RFs& fileSession = iCoeEnv->FsSession(); - TPtr des = iFullDirName->Des(); - iDriveLetter = aDrive; - des.Zero(); - GetPrivatePath( des ); - des.Append( aDrive ); - des.Append( KFwdSlash ); - AppendLocaleL( des ); - if ( !BaflUtils::PathExists( fileSession, des ) ) - { - // generate C:\\private\\\\\\ folder - // - fileSession.MkDir( des ); - } - - // for temporary usage, once it's finished successfully, - // rename to index.xml. otherwise, the old index file still exists. - // - des.Append( KMasterMetaTmpFile ); - iFile.Replace( fileSession, des, EFileWrite ); - - HBufC8* driveInfo = HBufC8::NewLC( KMaxDriveInfo ); - TPtr8 ptr = driveInfo->Des(); - ptr.Append( KIndexXMLVesion ); - ptr.Append( _L( "\r\n" ) ); - iFile.Write( *driveInfo ); - CleanupStack::PopAndDestroy( driveInfo ); - } - -void CCSXHRuntimeIndexing::FinishAndCloseIndexFileL() - { - RFs& fileSession = iCoeEnv->FsSession(); - iFile.Write( KIndexCollectEnd ); - iFile.Close(); - - TTime time; - // Replace the index.xml with temporary file, in case it fails, will have no impact - // the original index.xml, it's a backup solution - // - TBuf newName; - TInt err = KErrNone; - newName.Copy( *iFullDirName ); - TInt pos = newName.LocateReverse( TChar('\\') ); - newName.Delete( pos + 1, newName.Length() - pos - 1 ); // remove the temp name - newName.Append( KMasterMetaFile ); // and append index.xml - - err = fileSession.Replace( *iFullDirName, newName ); - - if ( err == KErrNone ) - { - // set the modified date of master index.xml - // to be the same with related help content folder - // e.g. C:\\resource\\xhtml\\01\\ modified time is 2009.3.1 - // C:\\private\\10005234\\C\\01\\index.xml will be 2009.3.1 - // this will make sure once help content folder changed, index.xml can be - // determined to change. - TBuf helpDir; - helpDir.Append( iDriveLetter ); - helpDir.Append( KInstallPath ); - // append locale information - AppendLocaleL( helpDir ); - - fileSession.Modified( helpDir, time ); - err = fileSession.SetModified( newName, time ); - - } - - } - -void CCSXHRuntimeIndexing::RuntimeGenerateIndexL( const CCSXHHtmlTOC1& aToc1, const TDesC& aFeature ) - { - // Form into an entry, like - // - HBufC8* appName = CnvUtfConverter::ConvertFromUnicodeToUtf8L( aToc1.GetName() ); - CleanupStack::PushL(appName); - TRAPD( err, SenXmlUtils::LeaveOnXmlEscapesL( *appName ) ); - TInt length = KMaxIndexEntryExclude; - TBuf8 buffUid; - - buffUid.Append( KHexPrefix ); - buffUid.AppendNumFixedWidth( aToc1.GetAppUid().iUid, EHex, 8 ); - length += appName->Length(); - length += aFeature.Length(); - HBufC8* entry = HBufC8::NewLC( length ); - TPtr8 des = entry->Des(); - // Append entry tag - des.Append( KIndexXMLEntryBegin ); - // Append feature id attribute "FeatureID" - des.Append( KAppFeatureIDTag ); - des.Append( KIndexQuoteBegin ); - // Append feature id - des.Append( aFeature ); - des.Append( KIndexQuoteEnd ); - // Append app id attribute "id" - des.Append( KMasterCollection_idTag ); - des.Append( KIndexQuoteBegin ); - // Append app id - des.Append( buffUid ); - des.Append( KIndexQuoteEnd ); - // Append app priority - des.Append( KPriorityTag ); - des.Append( KIndexQuoteBegin ); - des.AppendNum(aToc1.Priority()); - des.Append( KIndexQuoteEnd ); - // Append app name attribut "navtitle" - des.Append( KTOC2NameTag ); - des.Append( KIndexQuoteBegin ); - if ( err == KErrSenInvalidCharacters ) - { - // special handling to the XML-Escaped char - HBufC8* newElement = SenXmlUtils::EncodeHttpCharactersLC( *appName ); - des.Append( *newElement ); - CleanupStack::PopAndDestroy( newElement ); - } - else - { - des.Append( *appName ); - } - - des.Append( KIndexXMLEntryEnd ); - iFile.Write( *entry ); - - CleanupStack::PopAndDestroy( entry ); - CleanupStack::PopAndDestroy( appName ); - - } - -void CCSXHRuntimeIndexing::GetPrivatePath( TDes& aName ) - { - RFs& fileSession = iCoeEnv->FsSession(); - TBuf privatePath; - TChar drive; - RFs::DriveToChar( EDriveC, drive ); - - fileSession.PrivatePath( privatePath ); - aName.Append( drive ); - aName.Append( TChar(':') ); - aName.Append( privatePath ); - } - -void CCSXHRuntimeIndexing::AppendLocaleL( TDes& aDir ) - { - RFs& fileSession = iCoeEnv->FsSession(); - RArray langs; - BaflUtils::GetDowngradePathL( fileSession, User::Language(), langs ); - TInt len = aDir.Length(); - - if ( len > 0 ) - { - TLanguage lang = langs[0]; - if(lang < 10) - { - aDir.AppendNumFixedWidth( lang, EDecimal,2 ); - } - else - { - aDir.AppendNum( lang ); - } - } - else - { - // rarely case, if no current language, use English - aDir.Append( _L("01") ); - } - - aDir.Append( KFwdSlash ); - langs.Reset(); - } - -void CCSXHRuntimeIndexing::DeleteIndexFileL( const TChar& aDrive ) - { - RFs& fileSession = iCoeEnv->FsSession(); - TBuf des; - GetPrivatePath( des ); - des.Append( aDrive ); - des.Append( KFwdSlash ); - AppendLocaleL( des ); - // C:\\private\\\\\\\\index.xml - des.Append( KMasterMetaFile ); - - if ( BaflUtils::FileExists( fileSession, des ) ) - { - fileSession.Delete( des ); - } - - } - -TInt CCSXHRuntimeIndexing::CheckDirChangeL( const TChar& aDrive ) - { - RFs& fsSession = iCoeEnv->FsSession(); - - // Begin to search help content folder to see if there are date modify - // meanwhile, compare to the related folder in private directory - TFileName dirName; - dirName.Append( aDrive ); - dirName.Append( KInstallPath ); - - // Begin to append locale, note this will append current locale, - // thru which, app can determine if it's caused by user changed locales - AppendLocaleL( dirName ); - - TTime dirModified(0); - TTime fileModified(0); - - if ( BaflUtils::PathExists( fsSession, dirName ) ) - { - // here is modified time of help content folder - fsSession.Modified( dirName, dirModified ); - } - else - { - // fast return, no need to go on checking - return KNoDirExist; - } - - TFileName filename; - GetPrivatePath( filename ); - filename.Append( aDrive ); - filename.Append( KFwdSlash ); - AppendLocaleL( filename ); - filename.Append( KMasterMetaFile ); - - if ( BaflUtils::FileExists( fsSession, filename ) ) - { - // here is modified time of index.xml - // - fsSession.Modified( filename, fileModified ); - } - else - { - return KNoIndexExist; - } - - if ( fileModified != dirModified ) - { - // folder changed, return it - TInt ret = KErrNotFound; - RFs::CharToDrive( aDrive, ret ); - return ret; - } - - return KNoChange; - } diff -r 0d1adf67ec1b -r 12f60d9a73b3 csxhelp/HelpEngine/src/CSXHXMLParseHandler.cpp --- a/csxhelp/HelpEngine/src/CSXHXMLParseHandler.cpp Thu Aug 19 09:42:56 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,808 +0,0 @@ -/* -* 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: CCSXHXMLParseHandler class definition -* -*/ - -#include "CSXHXMLParseHandler.h" -#include "CSXHHtmlTOC2.h" -#include "CSXHKywdTopics.h" -#include "CSXHHelpDataBase.h" -#include "CSXHHtmlTOC1.h" -#include "csxhconstants.h" -#include "CSXHHTMLContentParser.h" - -#include -#include -#include -#include - - -CCSXHXMLParseHandler::CCSXHXMLParseHandler(CCoeEnv* aCoeEnv) - { - iCoeEnv = aCoeEnv; - } - -CCSXHXMLParseHandler::~CCSXHXMLParseHandler() - { - if(iFeatureIds) - { - delete iFeatureIds; - iFeatureIds = NULL; - } - } -TInt CCSXHXMLParseHandler::StartDocument() - { - return KErrNone; - } - -TInt CCSXHXMLParseHandler::EndDocument() - { - return KErrNone; - } - -void CCSXHXMLParseHandler::SetDataBasePtr(CCSXHHelpDataBase* aDataBase) - { - iDataBase = aDataBase; - } - -TDesC& CCSXHXMLParseHandler::GetApplicationName() - { - return iApplicationName; - } - -TPtr CCSXHXMLParseHandler::GetFeatureIds() - { - return iFeatureIds->Des(); - } - -TBool CCSXHXMLParseHandler::SetAppNameFlag(const TDesC8& alocalName,const TDesC& aAppTag) - { - //R_TYPE_APPLICATION_TAG_NAME - TBool Result = EFalse; - TBuf AppName; - CnvUtfConverter::ConvertToUnicodeFromUtf8(AppName,alocalName); - if(AppName.Compare(aAppTag) == 0) - { - iApplicationName.Copy(KEmptyString); - Result = ETrue; - } - else - { - Result = EFalse; - } - return Result; - } - -//-------------- CCSXHXMLParseHandler_Kywd ------------------- - -void CCSXHXMLParseHandler_Kywd::SetHtmlContentParserPtr(CCSXHHTMLContentParser* aParser) - { - iParser = aParser; - } - -CCSXHXMLParseHandler_Kywd* CCSXHXMLParseHandler_Kywd::NewL(CCoeEnv* aCoeEnv) - { - CCSXHXMLParseHandler_Kywd* self = new (ELeave)CCSXHXMLParseHandler_Kywd(aCoeEnv); - return self; - } - -CCSXHXMLParseHandler_Kywd::CCSXHXMLParseHandler_Kywd(CCoeEnv* aCoeEnv) -:CCSXHXMLParseHandler(aCoeEnv) - { - iCurrentHtmlToc1 = NULL; - iIsTargetName = EFalse; - } - -TInt CCSXHXMLParseHandler_Kywd::StartElement (const TDesC8& /*iURI*/ , const TDesC8& -alocalName, const TDesC8& /*iqualname*/, const RAttributeArray& aAttributes) - { - if(iFeatureIds) - { - delete iFeatureIds; - iFeatureIds = NULL; - } - - - TRAP_IGNORE(iFeatureIds = HBufC::NewL(2)); - TPtr FIdValue = iFeatureIds->Des(); - FIdValue.Copy(_L("-1")); - - if(iIsTOC2View) - { - CreateTOC2ObjectsforKeywordSearch(alocalName,aAttributes); - } - else - { - iIsAppName = SetAppNameFlag(alocalName,KSearchViewTOC1Tag); - - TInt nElements = aAttributes.Count(); - TBuf TagName; - RAttribute AttributeInfo; - RTagInfo TagInformation; - CnvUtfConverter::ConvertToUnicodeFromUtf8(TagName,alocalName); - - for(TInt i=0; i LocalName; - //Read from resource file - CnvUtfConverter::ConvertToUnicodeFromUtf8(LocalName,TagInformation.LocalName().DesC()); - if(LocalName.Compare(_L("FeatureID")) == 0 && TagName.Compare(_L("text")) == 0) - { - if(iFeatureIds) - { - delete iFeatureIds; - iFeatureIds = NULL; - } - - TRAP_IGNORE(iFeatureIds = HBufC::NewL(AttributeInfo.Value().DesC().Length())); - TPtr FIdValue = iFeatureIds->Des(); - CnvUtfConverter::ConvertToUnicodeFromUtf8(FIdValue,AttributeInfo.Value().DesC()); - } - } - } - return KErrNone; - } - -TInt CCSXHXMLParseHandler_Kywd::EndElement ( const TDesC8& ,const TDesC8& ,const TDesC8& ) - { - TRAP_IGNORE(CreateAndInsertKywdL());//Result can be ignored - iIsTargetName = EFalse; - iIsAppName = EFalse; - return KErrNone; - } - -TInt CCSXHXMLParseHandler_Kywd::Characters (const TDesC8& aBuff, const TInt /*aStart*/, const TInt /*aLength*/) - { - TBuf TitleName; - if(iIsAppName) - { - CnvUtfConverter::ConvertToUnicodeFromUtf8(TitleName,aBuff); - iApplicationName.Append(TitleName); - } - else if(iIsTargetName) - { - CnvUtfConverter::ConvertToUnicodeFromUtf8(TitleName,aBuff); - iKeywordSearchTOC2TitleName.Append(TitleName); - } - return KErrNone; - } - -void CCSXHXMLParseHandler_Kywd::CreateTOC2ObjectsforKeywordSearch(const TDesC8& - alocalName, const RAttributeArray& aAttributes) - { - iIsAppName = SetAppNameFlag(alocalName,KSearchViewTOC1Tag); - - TInt nElements = aAttributes.Count(); - TBufTagValue; - RAttribute AttributeInfo; - RTagInfo TagInformation; - - TBuf AppName; - CnvUtfConverter::ConvertToUnicodeFromUtf8(AppName,alocalName); - if(AppName.Compare(KSearchViewTOC2Tag) == 0) - { - iKeywordSearchTOC2TitleName.Copy(KEmptyString); - iIsTargetName = ETrue; - } - else - { - iIsTargetName = EFalse; - } - - if(!iIsTOC2View) - return; - - for(TInt i=0; i LocalName; - //Read from resource file - CnvUtfConverter::ConvertToUnicodeFromUtf8(LocalName,TagInformation.LocalName().DesC()); - if(LocalName.Compare(KHtmlPageTag) == 0) - { - CnvUtfConverter::ConvertToUnicodeFromUtf8(iHTMLPageName, - AttributeInfo.Value().DesC()); - } - else if(LocalName.Compare(_L("FeatureID")) == 0) - { - if(iFeatureIds) - { - delete iFeatureIds; - iFeatureIds = NULL; - } - TRAP_IGNORE(iFeatureIds = HBufC::NewL(AttributeInfo.Value().DesC().Length())); - TPtr FIdValue = iFeatureIds->Des(); - CnvUtfConverter::ConvertToUnicodeFromUtf8(FIdValue,AttributeInfo.Value().DesC()); - - } - } - - } - -void CCSXHXMLParseHandler_Kywd::CreateAndInsertKywdL() - { - if(iParser->CheckFeatureIDL(iFeatureIds->Des())) - { - if(iIsAppName && !iIsTOC2View) - { - iDataBase->InsertKeywordL(iApplicationName,iCurrentHtmlToc1); - } - else if(iIsTargetName && iApplicationName.Compare(iTOC1Name)==0) - { - CCSXHHtmlTOC2* PXHTMLObject = - CCSXHHtmlTOC2::NewL(iCurrentHtmlToc1,iKeywordSearchTOC2TitleName,iHTMLPageName,ETrue); - PXHTMLObject->SetKywdParent(STATIC_CAST(CCSXHKywdTopics*,iDataBase->GetKywdTopics()) - ->GetSelectedTopic()); - STATIC_CAST(CCSXHHtmlTOC2*,PXHTMLObject)->SetHtmlFilePath(iFilePath); - iDataBase->InsertKeywordTopicL(/*iTOC1Name,*/PXHTMLObject); - } - } - } - -void CCSXHXMLParseHandler_Kywd::SetTOC1Title(const TDesC& aName) - { - iTOC1Name = aName; - } - -void CCSXHXMLParseHandler_Kywd::SetCurrentHtmlToc1(CCSXHHtmlTOC1* aCurrentHtmlToc1) - { - iCurrentHtmlToc1 = aCurrentHtmlToc1; - } - -void CCSXHXMLParseHandler_Kywd::SetIsTOC2(TBool aFlag) - { - iIsTOC2View = aFlag; - } - -void CCSXHXMLParseHandler_Kywd::SetPath(const TDesC& aFilePath) - { - iFilePath.Copy(KEmptyString); - iFilePath.Append(aFilePath); - } - -//-------------- CCSXHXMLParseHandler_MetaFile ------------------- - -CCSXHXMLParseHandler_MetaFile* CCSXHXMLParseHandler_MetaFile::NewL(CCoeEnv* aCoeEnv) - { - CCSXHXMLParseHandler_MetaFile* self = new (ELeave)CCSXHXMLParseHandler_MetaFile(aCoeEnv); - return self; - } - -CCSXHXMLParseHandler_MetaFile::CCSXHXMLParseHandler_MetaFile(CCoeEnv* aCoeEnv) -:CCSXHXMLParseHandler(aCoeEnv) - { - - } -TInt CCSXHXMLParseHandler_MetaFile::StartElement (const TDesC8& , const TDesC8& -alocalName, const TDesC8& , const RAttributeArray& aAttributes) - { - iIsAppName = SetAppNameFlag(alocalName,KAppNameTag); - - TInt nElements = aAttributes.Count(); - TBuf LocalTagName; - RAttribute AttributeInfo; - RTagInfo TagInformation; - - CnvUtfConverter::ConvertToUnicodeFromUtf8(LocalTagName,alocalName); - for(TInt i=0; iDes(); - CnvUtfConverter::ConvertToUnicodeFromUtf8(FIdValue,AttributeInfo.Value().DesC()); - } - - if(LocalTagName.Compare(KAppNameTag) == 0 && nElements == 0) - { - if(iFeatureIds) - { - delete iFeatureIds; - iFeatureIds = NULL; - } - - TRAP_IGNORE(iFeatureIds = HBufC::NewL(2)); - TPtr FIdValue = iFeatureIds->Des(); - FIdValue.Copy(_L("-1")); - } - - if ( LocalTagName.Compare(KPriorityTag) == 0 && nElements == 0 ) - { - iIsPriority = ETrue; - iPriority.Copy(KEmptyString); - } - else - { - iIsPriority = EFalse; - } - - return KErrNone; - } - -TInt CCSXHXMLParseHandler_MetaFile::EndElement ( const TDesC8& ,const TDesC8& ,const TDesC8& ) - { - iIsAppName = EFalse; - iIsPriority = EFalse; - return KErrNone; - } - -TInt CCSXHXMLParseHandler_MetaFile::Characters (const TDesC8& aBuff, const TInt /*aStart*/, const TInt /*aLength*/) - { - if (iIsAppName) - { - TBuf TitleName; - CnvUtfConverter::ConvertToUnicodeFromUtf8(TitleName,aBuff); - iApplicationName.Append(TitleName); - } - - if (iIsPriority) - { - TBuf<8> Priority; - CnvUtfConverter::ConvertToUnicodeFromUtf8(Priority,aBuff); - iPriority.Append(Priority); - } - - return KErrNone; - } - -TInt32 CCSXHXMLParseHandler_MetaFile::Priority() - { - //The default priority is set to 0 - TInt priority = 0; - - if (iPriority.Length() != 0) - { - TLex lex( iPriority ); - lex.Val( priority ); - iPriority.Copy(KEmptyString); - } - - return priority; - } - - -//-------------- CCSXHXMLParseHandler_MasterMetaFile ------------------- -CCSXHXMLParseHandler_MasterMetaFile* CCSXHXMLParseHandler_MasterMetaFile::NewL(CCoeEnv* aCoeEnv) - { - CCSXHXMLParseHandler_MasterMetaFile* self = new (ELeave)CCSXHXMLParseHandler_MasterMetaFile(aCoeEnv); - return self; - } - -CCSXHXMLParseHandler_MasterMetaFile::CCSXHXMLParseHandler_MasterMetaFile(CCoeEnv* aCoeEnv) -:CCSXHXMLParseHandler(aCoeEnv) - { - - } - -TInt CCSXHXMLParseHandler_MasterMetaFile::StartElement (const TDesC8& , const TDesC8& -, const TDesC8& , const RAttributeArray& aAttributes) - { - TRAP_IGNORE(CreateTOC1ObjectsL(aAttributes)); - return KErrNone; - } - - - -void CCSXHXMLParseHandler_MasterMetaFile::CreateTOC1ObjectsL(const - RAttributeArray& aAttributes) - { - TInt nElements = aAttributes.Count(); - TBuf appUid; - TBuf appName; - TBuf<8> priorityBuf; - TInt32 appPriority; - RAttribute AttributeInfo; - RTagInfo TagInformation; - TLinearOrder anOrder(Orderer); - - for(TInt i=0; i LocalName; - //Read from resource file - CnvUtfConverter::ConvertToUnicodeFromUtf8(LocalName,TagInformation.LocalName().DesC()); - - if ( LocalName.Compare( KDriveInfo ) == 0 ) - { - TChar driveLetter(AttributeInfo.Value().DesC()[0]); - RFs::CharToDrive( driveLetter, iDrive ); - } - - if(LocalName.Compare(KMasterCollection_idTag) == 0) - { - CnvUtfConverter::ConvertToUnicodeFromUtf8(appUid,AttributeInfo.Value().DesC()); - } - - if (LocalName.Compare(KPriorityTag) == 0) - { - CnvUtfConverter::ConvertToUnicodeFromUtf8(priorityBuf,AttributeInfo.Value().DesC()); - TLex lex( priorityBuf ); - lex.Val( appPriority ); - } - - if(LocalName.Compare(KTOC2NameTag) == 0) - { - CnvUtfConverter::ConvertToUnicodeFromUtf8(appName,AttributeInfo.Value().DesC()); - if(2 == nElements) - { - if(iFeatureIds) - { - delete iFeatureIds; - iFeatureIds = NULL; - } - - iFeatureIds = HBufC::NewL(2); - TPtr FIdValue = iFeatureIds->Des(); - FIdValue.Copy(_L("-1")); - } - - - iParser->InsertHTMLToc1L( appUid, appName, iDrive, iDataBase, iFeatureIds->Des(), appPriority ); - } - - if(LocalName.Compare(_L("FeatureID")) == 0) - { - if(iFeatureIds) - { - delete iFeatureIds; - iFeatureIds = NULL; - } - - iFeatureIds = HBufC::NewL(AttributeInfo.Value().DesC().Length()); - TPtr FIdValue = iFeatureIds->Des(); - CnvUtfConverter::ConvertToUnicodeFromUtf8(FIdValue,AttributeInfo.Value().DesC()); - } - } - } - -void CCSXHXMLParseHandler_MasterMetaFile::SetHtmlContentParserPtr(CCSXHHTMLContentParser* aParser) - { - iParser = aParser; - } - - -//-------------- CCSXHXMLParseHandler_IndexFile ------------------- - -CCSXHXMLParseHandler_IndexFile* CCSXHXMLParseHandler_IndexFile::NewL(CCoeEnv* aCoeEnv) - { - CCSXHXMLParseHandler_IndexFile* self = new (ELeave)CCSXHXMLParseHandler_IndexFile(aCoeEnv); - return self; - } - -CCSXHXMLParseHandler_IndexFile::CCSXHXMLParseHandler_IndexFile(CCoeEnv* aCoeEnv) -:CCSXHXMLParseHandler(aCoeEnv) - { - - } - -TInt CCSXHXMLParseHandler_IndexFile::StartElement (const TDesC8& , const TDesC8& -, const TDesC8& , const RAttributeArray& aAttributes) - { - if(iFeatureIds) - { - delete iFeatureIds; - iFeatureIds = NULL; - } - - TRAP_IGNORE(iFeatureIds = HBufC::NewL(2)); - TPtr FIdValue = iFeatureIds->Des(); - FIdValue.Copy(_L("-1")); - - TRAP_IGNORE(CreateTOC2ObjectsL(aAttributes)); - return KErrNone; - } - -void CCSXHXMLParseHandler_IndexFile::SetArray(RPointerArray* aHTMLlist) - { - iTOC2Array = aHTMLlist; - } - -void CCSXHXMLParseHandler_IndexFile::SetGenericTOC1Object(CCSXHGenericTOC1& aParent) - { - iParent = &aParent; - } - -void CCSXHXMLParseHandler_IndexFile::SetHtmlContentParserPtr(CCSXHHTMLContentParser* aParser) - { - iParser = aParser; - } - - -void CCSXHXMLParseHandler_IndexFile::CreateTOC2ObjectsL(const - RAttributeArray& aAttributes) - { - TInt nElements = aAttributes.Count(); - TBufTagValue; - RAttribute AttributeInfo; - RTagInfo TagInformation; - TLinearOrder anOrder(Orderer); - - for(TInt i=0; i LocalName; - //Read from resource file - CnvUtfConverter::ConvertToUnicodeFromUtf8(LocalName,TagInformation.LocalName().DesC()); - - if(LocalName.Compare(KTOC2NameTag) == 0) - { - if(iParser->CheckFeatureIDL(iFeatureIds->Des()) || 2 == nElements) - { - CnvUtfConverter::ConvertToUnicodeFromUtf8(TagValue,AttributeInfo.Value().DesC()); - - CCSXHGenericTOC2* PXHTMLObject = CCSXHHtmlTOC2::NewL(iParent, - TagValue,iHTMLPageName); - - STATIC_CAST(CCSXHHtmlTOC2*,PXHTMLObject)->SetHtmlFilePath(iFilePath); - - if (KErrNone != iTOC2Array->InsertInOrder(PXHTMLObject,anOrder)) - delete PXHTMLObject; - } - } - else if(LocalName.Compare(KHtmlPageTag) == 0) - { - CnvUtfConverter::ConvertToUnicodeFromUtf8(iHTMLPageName, - AttributeInfo.Value().DesC()); - } - else if(LocalName.Compare(KCompressedTag) == 0) - { - CnvUtfConverter::ConvertToUnicodeFromUtf8(iCompressString, - AttributeInfo.Value().DesC()); - } - else if(LocalName.Compare(_L("FeatureID")) == 0) - { - if(iFeatureIds) - { - delete iFeatureIds; - iFeatureIds = NULL; - } - - iFeatureIds = HBufC::NewL(AttributeInfo.Value().DesC().Length()); - TPtr FIdValue = iFeatureIds->Des(); - CnvUtfConverter::ConvertToUnicodeFromUtf8(FIdValue,AttributeInfo.Value().DesC()); - } - } - } - -void CCSXHXMLParseHandler_IndexFile::SetPath(const TDesC& aFilePath) - { - iFilePath.Copy(KEmptyString); - iFilePath.Append(aFilePath); - } - -//-------------- CCSXHXMLParseHandler_MasterKeywordFile ------------------- - -CCSXHXMLParseHandler_MasterKywd* CCSXHXMLParseHandler_MasterKywd::NewL(CCoeEnv* aCoeEnv) - { - CCSXHXMLParseHandler_MasterKywd* self = new (ELeave)CCSXHXMLParseHandler_MasterKywd(aCoeEnv); - return self; - } - -CCSXHXMLParseHandler_MasterKywd::CCSXHXMLParseHandler_MasterKywd(CCoeEnv* aCoeEnv) -:CCSXHXMLParseHandler(aCoeEnv) - { - - } - -TInt CCSXHXMLParseHandler_MasterKywd::StartElement (const TDesC8& , const TDesC8& -, const TDesC8& , const RAttributeArray& aAttributes) - { - TRAP_IGNORE(CreateTOC1ObjectsL(aAttributes)); - return KErrNone; - } - -void CCSXHXMLParseHandler_MasterKywd::SetHtmlContentParserPtr(CCSXHHTMLContentParser* aParser) - { - iParser = aParser; - } - -void CCSXHXMLParseHandler_MasterKywd::SetCurrentHtmlToc1(CCSXHHtmlTOC1* aCurrentHtmlToc1) - { - iCurrentHtmlToc1 = aCurrentHtmlToc1; - } - -void CCSXHXMLParseHandler_MasterKywd::CreateTOC1ObjectsL(const - RAttributeArray& aAttributes) - { - TInt nElements = aAttributes.Count(); - TBuf appUid; - TBuf KeywordName; - RAttribute AttributeInfo; - RTagInfo TagInformation; - - TLinearOrder anOrder(Orderer); - - for(TInt i=0; i LocalName; - //Read from resource file - CnvUtfConverter::ConvertToUnicodeFromUtf8(LocalName,TagInformation.LocalName().DesC()); - - if(LocalName.Compare(KMasterSearchTag) == 0) - { - CnvUtfConverter::ConvertToUnicodeFromUtf8(KeywordName,AttributeInfo.Value().DesC()); - } - - if(LocalName.Compare(KMasterCollectionTag) == 0) - { - CnvUtfConverter::ConvertToUnicodeFromUtf8(appUid,AttributeInfo.Value().DesC()); - if(2 == nElements) - { - if(iParser->GetHTMLToc1(appUid,this)) - iDataBase->InsertKeywordL(KeywordName,iCurrentHtmlToc1); - } - } - - if(LocalName.Compare(_L("FeatureID")) == 0) - { - if(iFeatureIds) - { - delete iFeatureIds; - iFeatureIds = NULL; - } - - iFeatureIds = HBufC::NewL(AttributeInfo.Value().DesC().Length()); - TPtr FIdValue = iFeatureIds->Des(); - CnvUtfConverter::ConvertToUnicodeFromUtf8(FIdValue,AttributeInfo.Value().DesC()); - - if(iParser->CheckFeatureIDL(iFeatureIds->Des())) - { - if(iParser->GetHTMLToc1(appUid,this)) - iDataBase->InsertKeywordL(KeywordName,iCurrentHtmlToc1); - } - } - } - } - -//-------------- CCSXHXMLParseHandler_RedirectFile ------------------- - -CCSXHXMLParseHandler_RedirectFile* CCSXHXMLParseHandler_RedirectFile::NewL( CCoeEnv *aCoeEnv, - const TUid &aSourceUid, const TCoeContextName &aSourceContextName ) - { - CCSXHXMLParseHandler_RedirectFile* self = - new (ELeave)CCSXHXMLParseHandler_RedirectFile( aCoeEnv, aSourceUid, aSourceContextName ); - return self; - } - -CCSXHXMLParseHandler_RedirectFile::CCSXHXMLParseHandler_RedirectFile( CCoeEnv *aCoeEnv, - const TUid &aSourceUid, const TCoeContextName &aSourceContextName ) -:CCSXHXMLParseHandler( aCoeEnv ), iSourceContextName( aSourceContextName ), iTargetUid( aSourceUid ) - { - } -TInt CCSXHXMLParseHandler_RedirectFile::StartElement (const TDesC8& , - const TDesC8 &alocalName, const TDesC8& , const RAttributeArray &aAttributes) - { - if ( !iIsTargetPathFound ) - { - TBuf LocalTagName; - - CnvUtfConverter::ConvertToUnicodeFromUtf8(LocalTagName,alocalName); - - if ( LocalTagName.Compare(KFromTag) == 0 ) - { - iIsFromTag = ETrue; - iIsToTag = EFalse; - } - else if (LocalTagName.Compare(KToTag) == 0 ) - { - iIsToTag = ETrue; - iIsFromTag = EFalse; - } - else - { - iIsFromTag = EFalse; - iIsToTag = EFalse; - } - iFromContent.Copy(KEmptyString); - } - - return KErrNone; - } - -TInt CCSXHXMLParseHandler_RedirectFile::EndElement ( const TDesC8& ,const TDesC8& ,const TDesC8& ) - { - if ( iIsFromTag && iFromContent.Compare( iSourceContextName ) == 0 ) - { - iIsSourceContextNameFound = ETrue; - } - else - { - iIsSourceContextNameFound = EFalse; - } - - iIsFromTag = EFalse; - iIsToTag = EFalse; - - return KErrNone; - } - -TInt CCSXHXMLParseHandler_RedirectFile::Characters (const TDesC8& aBuff, const TInt /*aStart*/, const TInt /*aLength*/) - { - if ( iIsFromTag ) - { - TCoeContextName file; - CnvUtfConverter::ConvertToUnicodeFromUtf8(file,aBuff); - iFromContent.Append(file); - } - - else if ( iIsSourceContextNameFound && iIsToTag ) - { - TBuf targetPath; - CnvUtfConverter::ConvertToUnicodeFromUtf8(targetPath,aBuff); - iTargetPath.Append(targetPath); - - iIsTargetPathFound = ETrue; - } - - return KErrNone; - } - -TUid CCSXHXMLParseHandler_RedirectFile::TargetUid() - { - TInt loc = iTargetPath.Find( KHexPrefix ); - if ( loc != KErrNotFound ) - { - TLex lex( iTargetPath.Mid( loc+KHexPrefixLength, KHexUidLength ) ); - TUint appId = 0; - lex.Val( appId, EHex ); - - if ( appId ) - { - iTargetUid = TUid::Uid( (TInt)appId ); - } - } - - return iTargetUid; - } - -TBuf& CCSXHXMLParseHandler_RedirectFile::TargetContextName() - { - TInt loc = iTargetPath.Find( KHexPrefix ); - if ( loc != KErrNotFound ) - { - iTargetContextName = iTargetPath.Mid( loc + KOffsetFromUidToContext ); - } - else - { - iTargetContextName = iTargetPath; - } - - return iTargetContextName; - } - -TBool CCSXHXMLParseHandler_RedirectFile::IsTargetPathFound() - { - return iIsTargetPathFound; - } - diff -r 0d1adf67ec1b -r 12f60d9a73b3 csxhelp/HelpEngine/src/CsHelpCmdLineParser.cpp --- a/csxhelp/HelpEngine/src/CsHelpCmdLineParser.cpp Thu Aug 19 09:42:56 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,98 +0,0 @@ -/* -* Copyright (c) 2002 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: -* This is a utility class that provides functionality -* for parsing command line arguments passed into the -* Cshelp application when launched by another application. -* -* -*/ - - -// INCLUDE FILES -#include - -#include "CsHelpCmdLineParser.h" -const TInt KArrSize = 2; -// ================= MEMBER FUNCTIONS ======================= - -// C++ constructor -CCsHlpCmdLineParser::CCsHlpCmdLineParser() -: CBase() - { - } - - -// --------------------------------------------------------- -// CCsHlpCmdLineParser::ConstructL(...) -// (other items were commented in a header). -// --------------------------------------------------------- -void CCsHlpCmdLineParser::ConstructL(const TDesC8& aCmdLine) - { - iCmdLine = CBufFlat::NewL(aCmdLine.Size()); - iCmdLine->InsertL(0, aCmdLine.Ptr(), aCmdLine.Size()); - } - - -// --------------------------------------------------------- -// CCsHlpCmdLineParser::~CCsHlpCmdLineParser() -// --------------------------------------------------------- -CCsHlpCmdLineParser::~CCsHlpCmdLineParser() - { - delete iCmdLine; - } - -// --------------------------------------------------------- -// CCsHlpCmdLineParser::ContextListL() -// (other items were commented in a header). -// --------------------------------------------------------- -CArrayFix* CCsHlpCmdLineParser::ContextListL() - { - CArrayFixFlat* array = - new(ELeave)CArrayFixFlat(KArrSize); - CleanupStack::PushL(array); - TInt count(0); - - iCmdLine->Read(0, &count, sizeof(TInt)); - iPos += sizeof(TInt); - for (TInt i(0); i < count; i++) - { - TCoeHelpContext context; - GetContext(context); - array->AppendL(context); - } - CleanupStack::Pop(array); // array - return array; - } - -// --------------------------------------------------------- -// CCsHlpCmdLineParser::GetContext(...) -// (other items were commented in a header). -// --------------------------------------------------------- -void CCsHlpCmdLineParser::GetContext(TCoeHelpContext& aContext) - { - TInt length(0); - iCmdLine->Read(iPos, &length, sizeof(TInt)); - iPos += sizeof(TInt); - TPtr8 ptr((TText8*)aContext.iContext.Ptr(), length); - iCmdLine->Read(iPos, ptr, length); - aContext.iContext.SetLength(length/KArrSize); - iPos += length; - - iCmdLine->Read(iPos, &aContext.iMajor, sizeof(TUid)); - - iPos += sizeof(TUid); - } - -// End of file diff -r 0d1adf67ec1b -r 12f60d9a73b3 csxhelp/HelpEngine/src/HelpEngine.cpp --- a/csxhelp/HelpEngine/src/HelpEngine.cpp Thu Aug 19 09:42:56 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,28 +0,0 @@ -/* -* 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: -* -*/ - -#include -//#include - -#ifdef EKA2 -GLDEF_C TInt E32Dll() -#else -GLDEF_C TInt E32Dll(TDllReason /*aReason*/) -#endif - { - return(KErrNone); - } diff -r 0d1adf67ec1b -r 12f60d9a73b3 csxhelp/aif/CsHelp_Caption.rss --- a/csxhelp/aif/CsHelp_Caption.rss Thu Aug 19 09:42:56 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,31 +0,0 @@ -/* -* Copyright (c) 2002 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: -* This file contains caption resource of CsHelp. -* -* -*/ - - -#include - -#include "csxelp.loc" - -RESOURCE CAPTION_DATA - { - caption = qtn_apps_ls1_help; - shortcaption = qtn_apps_grid_help; - } - -// End of file diff -r 0d1adf67ec1b -r 12f60d9a73b3 csxhelp/aif/CsHelpaif.rss --- a/csxhelp/aif/CsHelpaif.rss Thu Aug 19 09:42:56 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,33 +0,0 @@ -/* -* Copyright (c) 2002 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: -* RSS for creating the aif file for CsHelp. -* -*/ - - -NAME HAIF -#include - -#include "csxhelp.loc" - -RESOURCE AIF_DATA - { - app_uid=0x10005234; - num_icons = 2; - embeddability = KAppNotEmbeddable; - newfile = KAppDoesNotSupportNewFile; - } - -// End of File diff -r 0d1adf67ec1b -r 12f60d9a73b3 csxhelp/data/CsHelp.rss --- a/csxhelp/data/CsHelp.rss Thu Aug 19 09:42:56 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1163 +0,0 @@ -/* -* Copyright (c) 2002 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: -* Main resource file for the CsHelp application. -* -* -*/ - - -// RESOURCE IDENTIFIER -NAME HELP // 4 letter ID - -// INCLUDES -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include - -#include - -#include - -#include "CsHelp.hrh" -#include -#include "cshelp.laf" - -// CONSTANTS - -#define DRIVE "Z:" -#define DIRPATH "\\" - -#ifdef RD_APPS_TO_EXES -#define DIR APP_BITMAP_DIR DIRPATH -#else -#define DIR "\\system\\apps\\cshelp\\" -#endif - -#define FILE "cshelp.mbm" - -#define FULLPATH DRIVE DIR FILE -#define qtn_help_icon_bitmap_file FULLPATH - - -// RESOURCE DEFINITIONS - -RESOURCE RSS_SIGNATURE - { - } - -RESOURCE TBUF1 - { - } - -RESOURCE EIK_APP_INFO - { - } - - - -////////////NEW://////////////////////////////////////// -RESOURCE LOCALISABLE_APP_INFO r_cshelp_localisable_app_info - { - short_caption = qtn_apps_grid_help; //This is shown in appmenu grid view (Csxhelp.loc) - caption_and_icon = - CAPTION_AND_ICON_INFO - { - caption = qtn_apps_ls1_help; //This is shown in appmenu list view (Csxhelp.loc) -#ifdef __SCALABLE_ICONS - number_of_icons = 1; -#ifdef RD_APPS_TO_EXES - icon_file = APP_BITMAP_DIR"\\Cshelp_aif.mif"; - #else // !RD_APPS_TO_EXES - icon_file = "\\System\\Apps\\Cshelp\\Cshelp_aif.mif"; - #endif // RD_APPS_TO_EXES -#else - number_of_icons = 2; -#ifdef RD_APPS_TO_EXES - icon_file = APP_BITMAP_DIR"\\Cshelp_aif.mbm"; - #else // !RD_APPS_TO_EXES - icon_file = "\\System\\Apps\\Cshelp\\Cshelp_aif.mbm"; - #endif // RD_APPS_TO_EXES -#endif - }; - } -////////////NEW//////////////////////////////////////// - -///CSX Start -RESOURCE AVKON_VIEW r_CSXH_toc1 -{ - menubar = r_CSXH_menubar; - cba = r_cshelp_softkeys_options_exit_open; -} - -RESOURCE AVKON_VIEW r_TopicList - { - menubar = r_CSXH_menubar_TopicList; - cba = r_cshelp_softkeys_options_back_open; - } - -RESOURCE AVKON_VIEW r_KywdTOC1List - { - menubar = r_CSXH_menubar_KywdTOC1List; - cba = r_cshelp_softkeys_options_back_find; - } - -RESOURCE AVKON_VIEW r_KywdTOC2List - { - menubar = r_CSXH_menubar_KywdTOC2List; - cba = r_cshelp_softkeys_options_back_open; - } - -RESOURCE AVKON_VIEW r_TopicTextList - { - menubar = r_CSXH_menubar_TopicTextList; - cba = r_cshelp_softkeys_options_back; - } - -RESOURCE AVKON_VIEW r_cshelp_topicforcontext - { - menubar = r_CSXH_menubar_TopicTextList; - cba = r_cshelp_softkeys_options_close; - } - -RESOURCE AVKON_VIEW r_cshelp_htmltopicview - { - menubar = r_CSXH_menubar_htmltopicview; - cba = r_cshelp_softkeys_options_back_openlink; - } - -RESOURCE AVKON_VIEW r_cshelp_htmltopicforcontext - { - menubar = r_CSXH_menubar_htmltopicview; - cba = r_cshelp_softkeys_options_close_openlink; - } - - -// --------------------------------------------------------- -// -// r_CSXH_menubar -// Menubar for CSXH example -// -// --------------------------------------------------------- -// -RESOURCE MENU_BAR r_CSXH_menubar - { - titles = - { - MENU_TITLE {menu_pane = r_CSXH_menu;} - }; - } - - -// --------------------------------------------------------- -// -// r_CSXH_menu -// Menu for "Options" -// -// --------------------------------------------------------- -// -RESOURCE MENU_PANE r_CSXH_menu - { - items = - { - MENU_ITEM {command = ECSXHOpenItem; txt = qtn_help_om_open_category; flags = EEikMenuItemAction;}, - MENU_ITEM {command = ECSXHSearchText; txt = qtn_help_om_search_xhtml;}, - MENU_ITEM {command = EAknSoftkeyExit; txt = qtn_options_exit;} - }; - } - - - -//---------------------------------------------------- -// -// r_cshelpsoftkey_cba_options_back -// Define cba for Context View -// -//---------------------------------------------------- -// -//TSW Error:EAJA-6XLFTW : -//S60 3.2 Help: Selection key opens Option menu in Topic view -//If MSK is not defined, "." appears in the MSK, -//On Middle key press, Options menu items are shown to the user -RESOURCE CBA r_cshelp_softkeys_options_back - { - buttons = - { - AVKON_CBA_BUTTON - { - id = EAknSoftkeyOptions; - txt = text_softkey_option; - }, - AVKON_CBA_BUTTON - { - id = EAknSoftkeyBack; - txt = text_softkey_back; - }, - AVKON_CBA_BUTTON - { - id = ECSXHDummyMSK; - txt = ""; - } - }; - } - -//---------------------------------------------------- -// -// r_cshelpsoftkey_cba_options_close -// Define cba for Context View -// -//---------------------------------------------------- -// -//TSW Error:EAJA-6XLFTW : -//S60 3.2 Help: Selection key opens Option menu in Topic view -//If MSK is not defined, "." appears in the MSK, -//On Middle key press, Options menu items are shown to the user -RESOURCE CBA r_cshelp_softkeys_options_close - { - buttons = - { - AVKON_CBA_BUTTON - { - id = EAknSoftkeyOptions; - txt = text_softkey_option; - }, - AVKON_CBA_BUTTON - { - id = EAknSoftkeyClose; - txt = text_softkey_close; - }, - AVKON_CBA_BUTTON - { - id = ECSXHDummyMSK; - txt = ""; - } - }; - } - -RESOURCE CBA r_cshelp_softkeys_options_close_openlink - { - buttons = - { - AVKON_CBA_BUTTON - { - id = EAknSoftkeyOptions; - txt = text_softkey_option; - }, - AVKON_CBA_BUTTON - { - id = EAknSoftkeyClose; - txt = text_softkey_close; - }, - AVKON_CBA_BUTTON - { - id = ECSXHOpenHyperLink; - txt = qtn_help_msk_open_hyperlink; - } - }; - } - - -RESOURCE CBA r_cshelp_softkeys_options_back_open - { - buttons = - { - AVKON_CBA_BUTTON - { - id = EAknSoftkeyOptions; - txt = text_softkey_option; - }, - AVKON_CBA_BUTTON - { - id = EAknSoftkeyBack; - txt = text_softkey_back; - }, - AVKON_CBA_BUTTON - { - id = ECSXHOpenTopicText; - txt = qtn_msk_open; - } - }; - } - -RESOURCE CBA r_cshelp_softkeys_options_exit_open - { - buttons = - { - AVKON_CBA_BUTTON - { - id = EAknSoftkeyOptions; - txt = text_softkey_option; - }, - AVKON_CBA_BUTTON - { - id = EAknSoftkeyExit; - txt = text_softkey_exit; - }, - AVKON_CBA_BUTTON - { - id = ECSXHOpenTopicText; - txt = qtn_msk_open; - } - }; - } -RESOURCE CBA r_cshelp_softkeys_options_exit_find - { - buttons = - { - AVKON_CBA_BUTTON - { - id = EAknSoftkeyOptions; - txt = text_softkey_option; - }, - AVKON_CBA_BUTTON - { - id = EAknSoftkeyExit; - txt = text_softkey_exit; - }, - AVKON_CBA_BUTTON - { - id = ECSXHOpenTopicText; - txt = qtn_help_msk_find; - } - }; - } - -RESOURCE CBA r_cshelp_softkeys_options_back_find - { - buttons = - { - AVKON_CBA_BUTTON - { - id = EAknSoftkeyOptions; - txt = text_softkey_option; - }, - AVKON_CBA_BUTTON - { - id = EAknSoftkeyBack; - txt = text_softkey_back; - }, - AVKON_CBA_BUTTON - { - id = ECSXHOpenTopicText; - txt = qtn_help_msk_find; - } - }; - } -// --------------------------------------------------------- -// -// r_CSXH_menubar -// Menubar for CsXHelp example -// -// --------------------------------------------------------- -// -RESOURCE MENU_BAR r_CSXH_menubar_TopicList - { - titles = - { - MENU_TITLE {menu_pane = r_CSXH_menu_TopicList;} - }; - } - -RESOURCE MENU_BAR r_CSXH_menubar_KywdTOC1List - { - titles = - { - MENU_TITLE {menu_pane = r_CSXH_menu_KywdTOC1List;} - }; - } - -RESOURCE MENU_BAR r_CSXH_menubar_KywdTOC2List - { - titles = - { - MENU_TITLE {menu_pane = r_CSXH_menu_KywdTOC2List;} - }; - } - - -// --------------------------------------------------------- -// -// r_CSXH_menu -// Menu for "Options" -// -// --------------------------------------------------------- -// -RESOURCE MENU_PANE r_CSXH_menu_TopicList - { - items = - { - MENU_ITEM {command = ECSXHOpenTopicText; txt = qtn_help_om_open_topic;flags = EEikMenuItemAction;}, - MENU_ITEM {command = ECSXHTOC1ListView; txt = qtn_help_om_help_contents;}, - MENU_ITEM {command = ECSXHSearchText; txt = qtn_help_om_search_xhtml;}, - MENU_ITEM {command = EAknSoftkeyExit; txt = qtn_options_exit;} - }; - } - -RESOURCE MENU_PANE r_CSXH_menu_KywdTOC1List - { - items = - { - MENU_ITEM {command = ECSXHOpenTopicText; txt = qtn_help_om_find_topics; flags = EEikMenuItemAction;}, - MENU_ITEM {command = ECSXHTOC1ListView; txt = qtn_help_om_help_contents;}, - MENU_ITEM {command = EAknSoftkeyExit; txt = qtn_options_exit;} - }; - } - -RESOURCE MENU_PANE r_CSXH_menu_KywdTOC2List - { - items = - { - MENU_ITEM {command = ECSXHOpenTopicText; txt = qtn_help_om_open_topic; flags = EEikMenuItemAction;}, - MENU_ITEM {command = ECSXHTOC1ListView; txt = qtn_help_om_help_contents;}, - MENU_ITEM {command = ECSXHSearchText; txt = qtn_help_om_search_xhtml;}, - MENU_ITEM {command = EAknSoftkeyExit; txt = qtn_options_exit;} - }; - } - - - - - -// --------------------------------------------------------- -// -// r_CSXH_menubar -// Menubar for CsXHelp example -// -// --------------------------------------------------------- -// -RESOURCE MENU_BAR r_CSXH_menubar_htmltopicview - { - titles = - { - MENU_TITLE {menu_pane = r_CSXH_menu_htmltopicview;} - }; - } - - -// --------------------------------------------------------- -// -// r_CSXH_menubar -// Menubar for CsXHelp example -// -// --------------------------------------------------------- -// -RESOURCE MENU_BAR r_CSXH_menubar_TopicTextList - { - titles = - { - MENU_TITLE {menu_pane = r_CSXH_menu_TopicTextList;} - }; - } - - -// --------------------------------------------------------- -// -// r_CSXH_menu -// Menu for "Options" -// -// --------------------------------------------------------- -// -RESOURCE MENU_PANE r_CSXH_menu_htmltopicview - { - items = - { - MENU_ITEM {command = ECSXHOpenHyperLink; txt = qtn_help_om_open_hyperlink;}, - MENU_ITEM {command = ECSXHOpenApplicationTopics; txt = qtn_help_om_application_topics;}, - MENU_ITEM {command = ECSXHTOC1ListView; txt = qtn_help_om_help_contents;}, - MENU_ITEM {command = ECSXHSearchText; txt = qtn_help_om_search_xhtml;}, - MENU_ITEM { command=ECsHelpCmdFontLarge; txt=qtn_help_om_increase_text; }, - MENU_ITEM { command=ECsHelpCmdFontSmall; txt=qtn_help_om_decrease_text; }, - MENU_ITEM {command = EAknSoftkeyExit; txt = qtn_options_exit;} - }; - } - -// --------------------------------------------------------- -// -// r_CSXH_menu -// Menu for "Options" -// -// --------------------------------------------------------- -// -RESOURCE MENU_PANE r_CSXH_menu_TopicTextList - { - items = - { - MENU_ITEM {command = ECSXHOpenApplicationTopics; txt = qtn_help_om_application_topics;}, - MENU_ITEM {command = ECSXHTOC1ListView; txt = qtn_help_om_help_contents;}, - MENU_ITEM {command = ECSXHSearchText; txt = qtn_help_om_search_xhtml;}, - MENU_ITEM {command = EAknSoftkeyExit; txt = qtn_options_exit;} - }; - } - -// --------------------------------------------------------- -// -// r_type_no_help_topics -// when a other app launches help, no topic is available, -// then information note with this text is displayed. -// --------------------------------------------------------- -// - -RESOURCE TBUF r_type_no_help_topics - { - buf = qtn_help_note_no_topics; - } - -// --------------------------------------------------------- -// -// r_type_no_help_topics -// when help is unable to launch another application, -// then information note with this text is displayed. -// --------------------------------------------------------- -// - -RESOURCE TBUF r_qtn_help_note_unable_to_launch_app - { - buf = qtn_help_note_unable_launch; - } - -// --------------------------------------------------------- -// -// r_type_no_help_topics -// when help is unable to launch another application, -// then information note with this text is displayed. -// --------------------------------------------------------- -// - -RESOURCE TBUF r_qtn_help_note_app_launch_not_allowed - { - buf = qtn_help_note_no_internet; - } - -//---------------------------------------------------- -// -// r_cshelp_categorylist -// Define menubar and cba for Category List View -// -//---------------------------------------------------- -// -RESOURCE AVKON_VIEW r_cshelp_categorylist - { - menubar = r_cshelp_menubar_categorylist; - cba = R_AVKON_SOFTKEYS_OPTIONS_EXIT; - } - -//---------------------------------------------------- -// -// r_cshelp_topiclist -// Define menubar and cba for Topic List View -// -//---------------------------------------------------- -// -RESOURCE AVKON_VIEW r_cshelp_topiclist - { - menubar = r_cshelp_menubar_topiclist; - cba = R_AVKON_SOFTKEYS_OPTIONS_BACK; - } - - -//---------------------------------------------------- -// -// r_cshelp_topiclist -// Define menubar and cba for HTML Topic View -// -//---------------------------------------------------- -// - - -RESOURCE CBA r_cshelp_softkeys_options_back_openlink - { - buttons = - { - AVKON_CBA_BUTTON - { - id = EAknSoftkeyOptions; - txt = text_softkey_option; - }, - AVKON_CBA_BUTTON - { - id = EAknSoftkeyBack; - txt = text_softkey_back; - }, - AVKON_CBA_BUTTON - { - id = ECSXHOpenHyperLink; - txt = qtn_help_msk_open_hyperlink; - } - }; - } - - -//---------------------------------------------------- -// -// r_cshelp_topic -// Define menubar and cba for Topic View -// -//---------------------------------------------------- -// -RESOURCE AVKON_VIEW r_cshelp_topic - { - menubar = r_cshelp_menubar_topic; - cba = R_AVKON_SOFTKEYS_OPTIONS_BACK; - } - -//---------------------------------------------------- -// -// r_cshelp_topicforsearch -// Define menubar and cba for Topic View For Search -// -//---------------------------------------------------- -// -RESOURCE AVKON_VIEW r_cshelp_topicforsearch - { - menubar = r_cshelp_menubar_topic; - cba = R_AVKON_SOFTKEYS_OPTIONS_BACK; - } - -//---------------------------------------------------- -// -// r_cshelp_search -// Define menubar and cba for Search View -// -//---------------------------------------------------- -// -RESOURCE AVKON_VIEW r_cshelp_search - { - menubar = r_cshelp_menubar_search; - cba = R_AVKON_SOFTKEYS_OPTIONS_EXIT; - } - -//---------------------------------------------------- -// -// r_cshelp_searchresult -// Define menubar and cba for Search Result View -// -//---------------------------------------------------- -// -RESOURCE AVKON_VIEW r_cshelp_searchresult - { - menubar = r_cshelp_menubar_searchresult; - cba = R_AVKON_SOFTKEYS_OPTIONS_BACK; - } - - -//---------------------------------------------------- -// -// r_cshelp_menubar_categorylist -// Menubar for Category List View -// -//---------------------------------------------------- -// -RESOURCE MENU_BAR r_cshelp_menubar_categorylist - { - titles = - { - MENU_TITLE - { - menu_pane = r_cshelp_categorylist_menu; - } - }; - } - - -//---------------------------------------------------- -// -// r_cshelp_menubar_topiclist -// Menubar for Topic List View -// -//---------------------------------------------------- -// -RESOURCE MENU_BAR r_cshelp_menubar_topiclist - { - titles = - { - MENU_TITLE - { - menu_pane = r_cshelp_topiclist_menu; - } - }; - } - -//---------------------------------------------------- -// -// r_cshelp_menubar_topic -// Menubar for Topic View -// -//---------------------------------------------------- -// -RESOURCE MENU_BAR r_cshelp_menubar_topic - { - titles = - { - MENU_TITLE - { - menu_pane = r_cshelp_topic_menu; - } - }; - } - -//---------------------------------------------------- -// -// r_cshelp_menubar_search -// Menubar for Search View -// -//---------------------------------------------------- -// -RESOURCE MENU_BAR r_cshelp_menubar_search - { - titles = - { - MENU_TITLE - { - menu_pane = r_cshelp_search_menu; - } - }; - } - -//---------------------------------------------------- -// -// r_cshelp_menubar_searchresult -// Menubar for Search Result View -// -//---------------------------------------------------- -// -RESOURCE MENU_BAR r_cshelp_menubar_searchresult - { - titles = - { - MENU_TITLE - { - menu_pane = r_cshelp_searchresult_menu; - } - }; - } - -//---------------------------------------------------- -// -// r_cshelp_categorylist_menu -// Menu pane for Category List View -// -//---------------------------------------------------- -// -RESOURCE MENU_PANE r_cshelp_categorylist_menu - { - items = - { - MENU_ITEM - { - command = ECsHelpCmdViewTopicList; - txt = qtn_help_om_open_category; - }, - MENU_ITEM - { - command = ECsHelpCmdViewSearch; - txt = qtn_help_om_search; - }, - MENU_ITEM - { - command = EAknCmdExit; - txt = qtn_options_exit; - } - }; - } - -//---------------------------------------------------- -// -// r_cshelp_topiclist_menu -// Menu pane for Topic List View -// -//---------------------------------------------------- -// -RESOURCE MENU_PANE r_cshelp_topiclist_menu - { - items = - { - MENU_ITEM - { - command = ECsHelpCmdViewTopic; - txt = qtn_help_om_open_topic; - }, - MENU_ITEM - { - command = ECsHelpCmdViewCategoryList; - txt = qtn_help_om_category_list; - }, - MENU_ITEM - { - command = ECsHelpCmdViewSearch; - txt = qtn_help_om_search; - }, - MENU_ITEM - { - command = EAknCmdExit; - txt = qtn_options_exit; - } - }; - } - -//---------------------------------------------------- -// -// r_cshelp_topic_menu -// Menu pane for Topic View -// -//---------------------------------------------------- -// -RESOURCE MENU_PANE r_cshelp_topic_menu - { - items = - { - MENU_ITEM - { - command = ECsHelpCmdViewTopicList; - txt = qtn_help_om_topic_list; - }, - MENU_ITEM - { - command = ECsHelpCmdViewCategoryList; - txt = qtn_help_om_category_list; - }, - MENU_ITEM - { - command = ECsHelpCmdViewSearch; - txt = qtn_help_om_search; - }, - MENU_ITEM - { - command = EAknCmdExit; - txt = qtn_options_exit; - } - }; - } - -//---------------------------------------------------- -// -// r_cshelp_search_menu -// Menu pane for Search View -// -//---------------------------------------------------- -// -RESOURCE MENU_PANE r_cshelp_search_menu - { - items = - { - MENU_ITEM - { - command = ECsHelpCmdViewSearchResult; - txt = qtn_help_om_find_topics; - }, - MENU_ITEM - { - command = ECsHelpCmdViewCategoryList; - txt = qtn_help_om_category_list; - }, - MENU_ITEM - { - command = EAknCmdExit; - txt = qtn_options_exit; - } - }; - } - -//---------------------------------------------------- -// -// r_cshelp_searchresult_menu -// Menu pane for Search Result View -// -//---------------------------------------------------- -// -RESOURCE MENU_PANE r_cshelp_searchresult_menu - { - items = - { - MENU_ITEM - { - command = ECsHelpCmdViewTopicForSearch; - txt = qtn_help_om_open_topic; - }, - MENU_ITEM - { - command = ECsHelpCmdViewCategoryList; - txt = qtn_help_om_category_list; - }, - MENU_ITEM - { - command = ECsHelpCmdViewSearch; - txt = qtn_help_om_search; - }, - MENU_ITEM - { - command = EAknCmdExit; - txt = qtn_options_exit; - } - }; - } - -//---------------------------------------------------- -// -// r_cshelp_context_menu -// Menu pane for Search Result View -// -//---------------------------------------------------- -// -RESOURCE MENU_PANE r_cshelp_context_menu - { - items = - { - MENU_ITEM - { - command = ECsHelpCmdViewTopicForContext; - txt = qtn_help_om_open_topic; - }, - MENU_ITEM - { - command = ECsHelpCmdViewCategoryList; - txt = qtn_help_om_category_list; - }, - MENU_ITEM - { - command = ECsHelpCmdViewSearch; - txt = qtn_help_om_search; - }, - MENU_ITEM - { - command = EAknCmdExit; - txt = qtn_options_exit; - } - }; - } - - -// --------------------------------------------------------- -// -// r_cshelp_search_category_tabs -// Tab groups for navi pane of Search View and Category View -// -// --------------------------------------------------------- -// -RESOURCE TAB_GROUP r_cshelp_search_category_tabs - { - tab_width = EAknTabWidthWithTwoTabs; // two tabs - tabs = - { - TAB - { - id = ECsHelpCategoryTab; - bmpfile = qtn_help_icon_bitmap_file; - bmpid = EMbmCshelpQgn_prop_folder_tab2; - bmpmask = EMbmCshelpQgn_prop_folder_tab2_mask; - }, - TAB - { - id = ECsHelpSearchTab; - bmpfile = qtn_help_icon_bitmap_file; - bmpid = EMbmCshelpQgn_prop_list_keyword_tab2; - bmpmask = EMbmCshelpQgn_prop_list_keyword_tab2_mask; - } - }; - } - -// --------------------------------------------------------- -// -// r_cshelp_search_progress_note -// Define progress note for searcing in search result view -// -// --------------------------------------------------------- -// -RESOURCE DIALOG r_cshelp_search_progress_note - { - flags = EAknProgressNoteFlags; - buttons = R_AVKON_SOFTKEYS_EMPTY; - items = - { - DLG_LINE - { - type=EAknCtNote; - id=EProgressNote; - - control= AVKON_NOTE - { - layout = EProgressLayout; - singular_label = qtn_help_noteg_searching; - }; - } - }; - } - -// --------------------------------------------------------- -// -// r_cshelp_install_uninstall_note -// Define information flag for notifying installation -// -// --------------------------------------------------------- -// -RESOURCE DIALOG r_cshelp_install_uninstall_note - { - flags = EAknInformationNoteFlags; - buttons = R_AVKON_SOFTKEYS_EMPTY; - items = - { - DLG_LINE - { - type=EAknCtNote; - id=EInstallNote; - - control= AVKON_NOTE - { - layout = EGeneralLayout; - singular_label = qtn_help_noteg_install; - }; - } - }; - } - -// --------------------------------------------------------- -// -// r_qtn_help_title_help -// Define title of category list view. -// -// --------------------------------------------------------- -// -RESOURCE TBUF32 r_qtn_help_title_help - { - buf = qtn_help_title_help; - } - -// --------------------------------------------------------- -// -// r_qtn_help_note_no_topics -// when a other app launches help, no topic is available, -// then information note with this text is displayed. -// --------------------------------------------------------- -// -RESOURCE TBUF80 r_qtn_help_note_no_topics - { - buf = qtn_help_note_no_topics; - } - - -RESOURCE CBA r_softkeys_options_exit__options - { - buttons = - { - CBA_BUTTON {id=EAknSoftkeyOptions; txt = "Options";}, - CBA_BUTTON {id=EAknSoftkeyExit; txt = "Exit"; }, - CBA_BUTTON {id=EAknSoftkeyOptions; txt = "Options";} - }; - } - -//////////////////////////////////////////////////////////////// -//[FIXME: The resource r_cshelp_topic_view_layout -// is not used anymore. Instead TAknMultiLineTextLayout is used -// (in CCsHelpTopicContainer::SizeChanged and -// inCCsHelpTopicContainer::GetTextFormatL) -// --------------------------------------------------------- -// -// r_cshelp_topic_view_layout -// Define layout of topic view. -// -// --------------------------------------------------------- -// -/************************************************* -RESOURCE AVKON_LAYOUT_EDWIN r_cshelp_topic_view_layout - { - font = topic_view_font; //ELatinPlain12 - C = topic_view_C; //215 - l = topic_view_l; //4 - r = topic_view_r; //5 - B = topic_view_B; //21 - W = topic_view_W; //167 - J = topic_view_J; //ELayoutAlignBidi - lines = topic_view_lines; //8 - nextB = topic_view_nextB; //37 - } -****************************************************/ - -// To let know what are the services that are provided -RESOURCE AIW_INTEREST r_aiwtutorialapp_interest -{ - items = - { - AIW_CRITERIA_ITEM - { - id = ECmdAiwPlaceHolder; - serviceCmd = KAiwCmdHelp; - serviceClass = KAiwClassMenu; - contentType = "help/tutorial"; - defaultProvider = 0x10281D09; - maxProviders = 1; - }, - AIW_CRITERIA_ITEM - { - id = KPresentationExists; // Use service cmd id as id - serviceCmd = KPresentationExists; - serviceClass = KAiwClassMenu; - contentType = "help/tutorial"; - defaultProvider = 0x10281D09; - maxProviders = 1; - }, - AIW_CRITERIA_ITEM - { - id = KPlayPresentation; - serviceCmd = KPlayPresentation; - serviceClass = KAiwClassMenu; - contentType = "help/tutorial"; - defaultProvider = 0x10281D09; - maxProviders = 1; - } - }; -} -// --------------------------------------------------------- -// -// qtn_memlo_ram_out_of_mem -// Text to display for low memory situations. -// -// --------------------------------------------------------- -RESOURCE TBUF256 r_cshelp_retrieve_no_memory_text - { - buf = qtn_memlo_ram_out_of_mem; - } - -#ifdef FF_HELP_TUTORIAL_MERGE -// --------------------------------------------------------- -// -// qtn_memlo_ram_out_of_mem -// Text to display for low memory situations. -// -// --------------------------------------------------------- -RESOURCE TBUF256 r_cshelp_tutorial_text - { - buf = qtn_help_toc_list_item_tutorial; - } -#endif - -// --------------------------------------------------------- -// -// qtn_help_toc_app_helps -// One topic indicates for a collection of post-build helps, -// all installed helps should be put within it -// --------------------------------------------------------- -// -RESOURCE TBUF80 r_cshelp_toc_app_helps - { - buf = qtn_help_toc_app_helps; - } - -// End of File diff -r 0d1adf67ec1b -r 12f60d9a73b3 csxhelp/data/Cshelp_reg.rss --- a/csxhelp/data/Cshelp_reg.rss Thu Aug 19 09:42:56 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,39 +0,0 @@ -/* -* Copyright (c) 2004 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: -* -*/ - - -#include -#include - -#include - -UID2 KUidAppRegistrationResourceFile -UID3 0x10005234 // Cshelp application UID - -RESOURCE APP_REGISTRATION_INFO - { - app_file = "Cshelp"; -#ifndef RD_APPS_TO_EXES - attributes = KAppBuiltAsDll; - localisable_resource_file = APP_RESOURCE_DIR"\\Cshelp\\Cshelp"; -#else - localisable_resource_file = APP_RESOURCE_DIR"\\Cshelp"; -#endif - localisable_resource_id = R_CSHELP_LOCALISABLE_APP_INFO; - } - -// End of File diff -r 0d1adf67ec1b -r 12f60d9a73b3 csxhelp/data/lch.rh --- a/csxhelp/data/lch.rh Thu Aug 19 09:42:56 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,40 +0,0 @@ -/* -* Copyright (c) 2002 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: -* Main resource file for the CsHelp application. -* -* -*/ - - -// lch.rh - -#ifndef LCH_RH -#define LCH_RH - -// -// FROM EIKDEF.RH - avoids HlpModel requiring Eikon -// -STRUCT RSS_SIGNATURE - { - LONG signature=4; - SRLINK self; - } - -STRUCT TXT - { - LTEXT buf; - } - -#endif // LCH_RH diff -r 0d1adf67ec1b -r 12f60d9a73b3 csxhelp/data/lch.rss --- a/csxhelp/data/lch.rss Thu Aug 19 09:42:56 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,32 +0,0 @@ -/* -* Copyright (c) 2002 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: -* Main resource file for the CsHelp application. -* -* -*/ - - -// lch.rss - -NAME LCH1 - -#include"lch.rh" - -RESOURCE RSS_SIGNATURE { } - -RESOURCE TXT r_help_path - { - buf = "z:\\sys\\bin\\cshelp.exe"; - } diff -r 0d1adf67ec1b -r 12f60d9a73b3 csxhelp/group/HelpEngine.mmp --- a/csxhelp/group/HelpEngine.mmp Thu Aug 19 09:42:56 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,70 +0,0 @@ -/* -* 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: Project definition file for Help Engine Library -* -*/ - - -#include - -TARGET HelpEngine.dll -TARGETTYPE dll -UID 0x10282350 0x0BC03CD8 -LANGUAGE_IDS - -CAPABILITY CAP_CLIENT_DLL -VENDORID VID_DEFAULT - -SOURCEPATH ../HelpEngine/src -SOURCE HelpEngine.cpp -SOURCE CSXHHelpContentBase.cpp -SOURCE CSXHHelpDataBase.cpp -SOURCE CSXHMainTopics.cpp -SOURCE CSXHKywdTopics.cpp -SOURCE CSXHGenericTOC1.cpp -SOURCE CSXHGenericTOC2.cpp -SOURCE CSXHHtmlTOC1.cpp -SOURCE CSXHHtmlTOC2.cpp -SOURCE CSXHLegacyTOC1.cpp -SOURCE CSXHLegacyTOC2.cpp -SOURCE CSXHContextTopic.cpp -SOURCE CSXHKywdTOC1.cpp -SOURCE CSXHXMLParseHandler.cpp -SOURCE CSXHHTMLContentParser.cpp -SOURCE CSXHLegacyContentParser.cpp -SOURCE CsHelpCmdLineParser.cpp -SOURCE CSXHRuntimeIndexing.cpp - - - -USERINCLUDE ../HelpEngine/inc ../HelpEngine/rss - -// This is a SYSTEMINCLUDE macro containing the applications -// layer specific include directories -APP_LAYER_SYSTEMINCLUDE - -LIBRARY cone.lib euser.lib bafl.lib -LIBRARY efsrv.lib charconv.lib eikctl.lib -LIBRARY senxml.lib xmlframework.lib ezip.lib -LIBRARY hlpmodel.lib platformenv.lib -LIBRARY featmgr.lib -LIBRARY ptiengine.lib //Input Language variation changes - -#if defined(WINS) - deffile ./HelpEnginewinscw.def -#else // #elif defined(ARM) - deffile ./HelpEnginearm.def -#endif -nostrictdef - diff -r 0d1adf67ec1b -r 12f60d9a73b3 csxhelp/group/HelpEnginearm.def --- a/csxhelp/group/HelpEnginearm.def Thu Aug 19 09:42:56 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,67 +0,0 @@ -EXPORTS - _ZN13CCSXHHtmlTOC213GetKywdParentEv @ 1 NONAME - _ZN13CCSXHHtmlTOC216GetTopicContentLEv @ 2 NONAME - _ZN13CCSXHHtmlTOC219GetContentsFromUrlLERK7TDesC16P7CCoeEnvR15RFeatureControl @ 3 NONAME - _ZN15CCSXHLegacyTOC215GetLegacyParentEv @ 4 NONAME - _ZN15CCSXHLegacyTOC216GetTopicContentLEv @ 5 NONAME - _ZN16CCSXHGenericTOC114FillChildDataLEP12CDesC16Array @ 6 NONAME - _ZN16CCSXHGenericTOC19GetChildLERK7TDesC16 @ 7 NONAME - _ZN16CCSXHGenericTOC29GetParentEv @ 8 NONAME - _ZN17CCSXHContextTopic8GetTopicEv @ 9 NONAME - _ZN17CCSXHHelpDataBase13GetKywdTopicsEv @ 10 NONAME - _ZN17CCSXHHelpDataBase13GetMainTopicsEv @ 11 NONAME - _ZN17CCSXHHelpDataBase15GetContextTopicERK6TDesC8 @ 12 NONAME - _ZN17CCSXHHelpDataBase19GetHtmlTopicForUrlLERK7TDesC16 @ 13 NONAME - _ZN17CCSXHHelpDataBase20ClearAllTOC1ContentsEv @ 14 NONAME - _ZN17CCSXHHelpDataBase21GetKeywordSearchCountEv @ 15 NONAME - _ZN17CCSXHHelpDataBase28InitGenerateKeywordTOC2ListLEP13CCSXHKywdTOC1 @ 16 NONAME - _ZN17CCSXHHelpDataBase4NewLEP7CCoeEnvRK4TBufILi256EES5_ @ 17 NONAME - _ZNK13CCSXHHtmlTOC211GetHtmlUrlLER4TBufILi256EE @ 18 NONAME - _ZNK13CCSXHHtmlTOC214GetHelpContextER15TCoeHelpContext @ 19 NONAME - _ZNK20CCSXHHelpContentBase7GetNameEv @ 20 NONAME - _ZTI13CCSXHHtmlTOC1 @ 21 NONAME ; ## - _ZTI13CCSXHHtmlTOC2 @ 22 NONAME ; ## - _ZTI13CCSXHKywdTOC1 @ 23 NONAME ; ## - _ZTI15CCSXHKywdTopics @ 24 NONAME ; ## - _ZTI15CCSXHLegacyTOC1 @ 25 NONAME ; ## - _ZTI15CCSXHLegacyTOC2 @ 26 NONAME ; ## - _ZTI15CCSXHMainTopics @ 27 NONAME ; ## - _ZTI16CCSXHGenericTOC1 @ 28 NONAME ; ## - _ZTI17CCSXHContextTopic @ 29 NONAME ; ## - _ZTI17CCSXHHelpDataBase @ 30 NONAME ; ## - _ZTI19CCsHlpCmdLineParser @ 31 NONAME ; ## - _ZTI20CCSXHHelpContentBase @ 32 NONAME ; ## - _ZTI20CCSXHXMLParseHandler @ 33 NONAME ; ## - _ZTI22CCSXHHTMLContentParser @ 34 NONAME ; ## - _ZTI24CCSXHLegacyContentParser @ 35 NONAME ; ## - _ZTI25CCSXHXMLParseHandler_Kywd @ 36 NONAME ; ## - _ZTI29CCSXHXMLParseHandler_MetaFile @ 37 NONAME ; ## - _ZTI30CCSXHXMLParseHandler_IndexFile @ 38 NONAME ; ## - _ZTI31CCSXHXMLParseHandler_MasterKywd @ 39 NONAME ; ## - _ZTI35CCSXHXMLParseHandler_MasterMetaFile @ 40 NONAME ; ## - _ZTV13CCSXHHtmlTOC1 @ 41 NONAME ; ## - _ZTV13CCSXHHtmlTOC2 @ 42 NONAME ; ## - _ZTV13CCSXHKywdTOC1 @ 43 NONAME ; ## - _ZTV15CCSXHKywdTopics @ 44 NONAME ; ## - _ZTV15CCSXHLegacyTOC1 @ 45 NONAME ; ## - _ZTV15CCSXHLegacyTOC2 @ 46 NONAME ; ## - _ZTV15CCSXHMainTopics @ 47 NONAME ; ## - _ZTV16CCSXHGenericTOC1 @ 48 NONAME ; ## - _ZTV17CCSXHContextTopic @ 49 NONAME ; ## - _ZTV17CCSXHHelpDataBase @ 50 NONAME ; ## - _ZTV19CCsHlpCmdLineParser @ 51 NONAME ; ## - _ZTV20CCSXHHelpContentBase @ 52 NONAME ; ## - _ZTV20CCSXHXMLParseHandler @ 53 NONAME ; ## - _ZTV22CCSXHHTMLContentParser @ 54 NONAME ; ## - _ZTV24CCSXHLegacyContentParser @ 55 NONAME ; ## - _ZTV25CCSXHXMLParseHandler_Kywd @ 56 NONAME ; ## - _ZTV29CCSXHXMLParseHandler_MetaFile @ 57 NONAME ; ## - _ZTV30CCSXHXMLParseHandler_IndexFile @ 58 NONAME ; ## - _ZTV31CCSXHXMLParseHandler_MasterKywd @ 59 NONAME ; ## - _ZTV35CCSXHXMLParseHandler_MasterMetaFile @ 60 NONAME ; ## - _ZTI20CCSXHRuntimeIndexing @ 61 NONAME ; ## - _ZTV20CCSXHRuntimeIndexing @ 62 NONAME ; ## - _ZN17CCSXHHelpDataBase17GetAppHelpsTopicsEv @ 63 NONAME - _ZTI33CCSXHXMLParseHandler_RedirectFile @ 64 NONAME - _ZTV33CCSXHXMLParseHandler_RedirectFile @ 65 NONAME - diff -r 0d1adf67ec1b -r 12f60d9a73b3 csxhelp/group/HelpEnginewinscw.def --- a/csxhelp/group/HelpEnginewinscw.def Thu Aug 19 09:42:56 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,23 +0,0 @@ -EXPORTS - ??1CCSXHHelpDataBase@@UAE@XZ @ 1 NONAME ; CCSXHHelpDataBase::~CCSXHHelpDataBase(void) - ?ClearAllTOC1Contents@CCSXHHelpDataBase@@QAEXXZ @ 2 NONAME ; void CCSXHHelpDataBase::ClearAllTOC1Contents(void) - ?FillChildDataL@CCSXHGenericTOC1@@UAEXPAVCDesC16Array@@@Z @ 3 NONAME ; void CCSXHGenericTOC1::FillChildDataL(class CDesC16Array *) - ?GetChildL@CCSXHGenericTOC1@@UAEPAVCCSXHHelpContentBase@@ABVTDesC16@@@Z @ 4 NONAME ; class CCSXHHelpContentBase * CCSXHGenericTOC1::GetChildL(class TDesC16 const &) - ?GetContentsFromUrlL@CCSXHHtmlTOC2@@SAPAVHBufC8@@ABVTDesC16@@PAVCCoeEnv@@AAVRFeatureControl@@@Z @ 5 NONAME ; class HBufC8 * CCSXHHtmlTOC2::GetContentsFromUrlL(class TDesC16 const &, class CCoeEnv *, class RFeatureControl &) - ?GetContextTopic@CCSXHHelpDataBase@@QAEPAVCCSXHHelpContentBase@@ABVTDesC8@@@Z @ 6 NONAME ; class CCSXHHelpContentBase * CCSXHHelpDataBase::GetContextTopic(class TDesC8 const &) - ?GetHelpContext@CCSXHHtmlTOC2@@QBEHAAVTCoeHelpContext@@@Z @ 7 NONAME ; int CCSXHHtmlTOC2::GetHelpContext(class TCoeHelpContext &) const - ?GetHtmlTopicForUrlL@CCSXHHelpDataBase@@QAEPAVCCSXHHelpContentBase@@ABVTDesC16@@@Z @ 8 NONAME ; class CCSXHHelpContentBase * CCSXHHelpDataBase::GetHtmlTopicForUrlL(class TDesC16 const &) - ?GetHtmlUrlL@CCSXHHtmlTOC2@@QBEXAAV?$TBuf@$0BAA@@@@Z @ 9 NONAME ; void CCSXHHtmlTOC2::GetHtmlUrlL(class TBuf<256> &) const - ?GetKeywordSearchCount@CCSXHHelpDataBase@@QAEHXZ @ 10 NONAME ; int CCSXHHelpDataBase::GetKeywordSearchCount(void) - ?GetKywdParent@CCSXHHtmlTOC2@@QAEPAVCCSXHKywdTOC1@@XZ @ 11 NONAME ; class CCSXHKywdTOC1 * CCSXHHtmlTOC2::GetKywdParent(void) - ?GetKywdTopics@CCSXHHelpDataBase@@QAEPAVCCSXHGenericTOC1@@XZ @ 12 NONAME ; class CCSXHGenericTOC1 * CCSXHHelpDataBase::GetKywdTopics(void) - ?GetLegacyParent@CCSXHLegacyTOC2@@QAEPAVCCSXHLegacyTOC1@@XZ @ 13 NONAME ; class CCSXHLegacyTOC1 * CCSXHLegacyTOC2::GetLegacyParent(void) - ?GetMainTopics@CCSXHHelpDataBase@@QAEPAVCCSXHGenericTOC1@@XZ @ 14 NONAME ; class CCSXHGenericTOC1 * CCSXHHelpDataBase::GetMainTopics(void) - ?GetName@CCSXHHelpContentBase@@QBE?AVTPtr16@@XZ @ 15 NONAME ; class TPtr16 CCSXHHelpContentBase::GetName(void) const - ?GetParent@CCSXHGenericTOC2@@QAEPAVCCSXHGenericTOC1@@XZ @ 16 NONAME ; class CCSXHGenericTOC1 * CCSXHGenericTOC2::GetParent(void) - ?GetTopic@CCSXHContextTopic@@QAEPAVCCSXHHelpContentBase@@XZ @ 17 NONAME ; class CCSXHHelpContentBase * CCSXHContextTopic::GetTopic(void) - ?GetTopicContentL@CCSXHHtmlTOC2@@UAEPAXXZ @ 18 NONAME ; void * CCSXHHtmlTOC2::GetTopicContentL(void) - ?GetTopicContentL@CCSXHLegacyTOC2@@UAEPAXXZ @ 19 NONAME ; void * CCSXHLegacyTOC2::GetTopicContentL(void) - ?InitGenerateKeywordTOC2ListL@CCSXHHelpDataBase@@QAEHPAVCCSXHKywdTOC1@@@Z @ 20 NONAME ; int CCSXHHelpDataBase::InitGenerateKeywordTOC2ListL(class CCSXHKywdTOC1 *) - ?NewL@CCSXHHelpDataBase@@SAPAV1@PAVCCoeEnv@@ABV?$TBuf@$0BAA@@@1@Z @ 21 - ?GetAppHelpsTopics@CCSXHHelpDataBase@@QAEPAVCCSXHGenericTOC1@@XZ @ 22 diff -r 0d1adf67ec1b -r 12f60d9a73b3 csxhelp/group/bld.inf --- a/csxhelp/group/bld.inf Thu Aug 19 09:42:56 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,78 +0,0 @@ -/* -* Copyright (c) 2002 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: -* CsHelp build specification file. -* -* -*/ - - - -#ifdef __SERIES60_HELP //Help application will be present only when this flag is defined. - -#include - -PRJ_EXPORTS -// export localised loc file -../loc/csxhelp.loc APP_LAYER_LOC_EXPORT_PATH(csxhelp.loc) - -// export iby file -../rom/Cshelp.iby CORE_APP_LAYER_IBY_EXPORT_PATH(Cshelp.iby) -../rom/AiwHelpProvider.iby CORE_APP_LAYER_IBY_EXPORT_PATH(AiwHelpProvider.iby) -../rom/AiwHelpProviderResources.iby LANGUAGE_APP_LAYER_IBY_EXPORT_PATH(AiwHelpProviderResources.iby) -../rom/CshelpResources.iby LANGUAGE_APP_LAYER_IBY_EXPORT_PATH(CshelpResources.iby) - - -PRJ_PLATFORMS -// The platforms Cshelp is built -// Default platforms -DEFAULT - - -PRJ_MMPFILES - -HelpEngine.mmp -cshelp.mmp - -#ifdef RD_HELP_AIW_INTEGRATION - -PRJ_EXPORTS -// export localised loc file -../AiwHelpProvider/loc/aiwxhelpprovider.loc APP_LAYER_LOC_EXPORT_PATH(aiwxhelpprovider.loc) - -PRJ_MMPFILES -../AiwHelpProvider/group/AiwHelpProvider.mmp -#endif - -PRJ_EXTENSIONS - -START EXTENSION s60/mifconv -OPTION TARGETFILE cshelp.mif -OPTION HEADERFILE cshelp.mbg -OPTION SOURCES -c8,1 qgn_prop_folder_tab2 \ - -c8,1 qgn_prop_list_keyword_tab2 \ - -c8,1 qgn_prop_help_open_tab1 \ - -c8,1 qgn_prop_folder_help_tab1 \ - -c8,1 qgn_prop_keyword_find_tab1 \ - -c8 empty13x13 -END - -START EXTENSION s60/mifconv -OPTION TARGETFILE cshelp_aif.mif -OPTION SOURCES -c8,8 qgn_menu_help -END - -#endif //__SERIES60_HELP - -// End of File diff -r 0d1adf67ec1b -r 12f60d9a73b3 csxhelp/group/cshelp.mmp --- a/csxhelp/group/cshelp.mmp Thu Aug 19 09:42:56 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,123 +0,0 @@ -/* -* 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: Project definition file for Csxhelp Application -* -*/ - - -#include -#include - - -#ifndef RD_APPS_TO_EXES -TARGETPATH /System/Apps/Cshelp -#endif - -//1. Cshelp resources -START RESOURCE ../data/CsHelp.rss -HEADER -#ifdef RD_APPS_TO_EXES -TARGETPATH APP_RESOURCE_DIR -#endif - -//other settings like LANG xx -LANGUAGE_IDS - -END // RESOURCE - - - -//2. Aif stuff -#ifdef RD_SCALABLE_UI // New app framework used - -START RESOURCE ../data/Cshelp_reg.rss -DEPENDS cshelp.rsg -// Do not change the UID below. -TARGETPATH /private/10003a3f/apps -END - -#else // Old app framework used (no changes in the definitions below) - -START RESOURCE ../aif/cshelp_caption.rss -HEADER -#ifdef RD_APPS_TO_EXES -TARGETPATH APP_RESOURCE_DIR -#endif - -//other settings like LANG xx -LANGUAGE_IDS -END // RESOURCE - -#endif - - - -//Target information -#ifdef RD_APPS_TO_EXES -// TARGETPATH need not be defined, it is automatically handled by the build tools -TARGET cshelp.exe -TARGETTYPE exe -#else -TARGET cshelp.app -TARGETTYPE app -#endif -UID 0x100039CE 0x10005234 - -EPOCSTACKSIZE 0x10000 -EPOCHEAPSIZE 0x5000 0x800000 - -VENDORID VID_DEFAULT - -//We use default capabilities (from defaultcaps.hrh) -CAPABILITY CAP_APPLICATION - -USERINCLUDE . ../inc ../HelpEngine/inc - -// This is a SYSTEMINCLUDE macro containing the applications -// layer specific include directories -APP_LAYER_SYSTEMINCLUDE - -SOURCEPATH ../src - -SOURCE CSXH.cpp -SOURCE CSXHApplication.cpp -SOURCE CSXHGenericView.cpp -SOURCE CSXHGenericContainer.cpp -SOURCE CSXHAppUi.cpp -SOURCE CSXHDocument.cpp -SOURCE CSXHLegacyTopicContainer.cpp -SOURCE CSXHLegacyTopicView.cpp -SOURCE CSXHHtmlTopicView.cpp -SOURCE CSXHHtmlTopicContainer.cpp -SOURCE AppLauncherForCSXH.cpp -SOURCE csxhruntimeappwatcher.cpp - -LIBRARY euser.lib apparc.lib cone.lib eikcore.lib -LIBRARY apgrfx.lib charconv.lib -LIBRARY eikcoctl.lib eikctl.lib avkon.lib -LIBRARY aknnotify.lib etext.lib -LIBRARY aknskins.lib -LIBRARY ws32.lib -LIBRARY CdlEngine.lib //dynamic ui -LIBRARY AknLayout2Scalable.lib -LIBRARY gdi.lib HelpEngine.lib apmime.lib featmgr.lib -LIBRARY servicehandler.lib // For the AiwServiceHandler -LIBRARY efsrv.lib - -#ifdef FF_HELP_TUTORIAL_MERGE -LIBRARY bafl.lib -#endif - -DEBUGLIBRARY flogger.lib -// End of File diff -r 0d1adf67ec1b -r 12f60d9a73b3 csxhelp/inc/AppLauncherForCSXH.h --- a/csxhelp/inc/AppLauncherForCSXH.h Thu Aug 19 09:42:56 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,234 +0,0 @@ -/* -* 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: AppLauncherForCSXH class declaration -* -*/ - - -#ifndef INC_APPLAUNCHERFORCSXH_H_HEADER_INCLUDED_BC03B1F7 -#define INC_APPLAUNCHERFORCSXH_H_HEADER_INCLUDED_BC03B1F7 - -#include -#include - -class TApaTask; - -const TInt KMaxParamLength = 32; -const TInt KMaxVSAPrefix = 32; -const TInt KMaxVSAScheme = 88; -const TInt KBackSlashLength = 1; -/** - * AppLauncherForCSXH - * This class implements launching applications from help - * @since S60 v3.2 - */ -class AppLauncherForCSXH - { - public: -/** -* @function NewL -* @since S60 3.2 -* Construct a AppLauncherForCSXH -* and return a pointer to the created object -* @return a AppLauncherForCSXH Pointer -*/ - static AppLauncherForCSXH* NewL(); - -/** -* @function ~AppLauncherForCSXH -* @since S60 3.2 -* Destroy the object and release all memory objects -*/ - ~AppLauncherForCSXH(); -/** -* @function LaunchAppL -* @since S60 3.2 -* Launches Application -* @param aUrl - Buffer which contains iformation about Application Uid,MessageId, ViewID -* aCurrentUrl - Currently displayed file path info -* @return ETrue, if Application Launches Successfully, EFalse otherwise -*/ - TBool LaunchAppL(const TDesC& aUrl,const TDesC& aCurrentUrl); -/** -* @function LaunchBrowserNGL -* @since S60 3.2 -* Launches BrowserNG Application -* @param aUrl - external hyperlink info. -* @return ETrue, if Application Launches Successfully, EFalse otherwise -*/ - void LaunchBrowserNGL(const TDesC& aUrl); - private: - -/** -* @function AppLauncherForCSXH -* @since S60 3.2 -* Perform the first phase of two phase construction -*/ - AppLauncherForCSXH(); - -/** -* @function ConstructL -* @since S60 3.2 -* Perform the second phase construction of a legacytopicview object -*/ - void ConstructL(); -/** -* @function GetAppLaunchModeL -* @since S60 3.2 -* Get the Mode Application Launch Command / View Switch Architecture -* @param aUrl - Buffer which contains iformation about Application Uid,MessageId, ViewID -* aCurrentUrl - Currently displayed file path info -* @return Mode of Launch -*/ - TInt GetAppLaunchModeL(const TDesC& aUrl,const TDesC& aCurrentUrl); -/** -* @function LaunchApp -* @since S60 3.2 -* Launch the Application -* @param aUrl - Buffer which contains iformation about Application Uid,MessageId, ViewID -* aVSAMode - Etrue for View Switch Architecture - EFalse for Command Launch -* @return ETrue, Application Launch Successful, EFalse otherwise -*/ - TBool LaunchApp(const TDesC& aUrl, TBool aVSAMode = ETrue); -/** -* @function LaunchCmdApp -* @since S60 3.2 -* Launch the Application -* @param aParamsMode - ETrue, If Application has to be launched with Message. -* @return ETrue, Application Launch Successful, EFalse otherwise -*/ - TBool LaunchCmdApp(TBool aParamsMode = ETrue); -/** -* @function LaunchCmdAppL -* @since S60 3.2 -* Launch the Application using Command line APIs with parameters -* @param aParamsMode - ETrue, If Application has to be launched with Message. -* @return ETrue, Application Launch Successful, EFalse otherwise -*/ - TBool LaunchCmdAppL(TBool aParamsMode); - /** -* @function GetCmdAppTask -* @since S60 3.2 -* Launch the Application using Command line APIs with parameters -* @return Get the TApaTask of the Launched Application -*/ - TApaTask GetCmdAppTask(); -/** -* @function SendMsgToCmdAppTaskL -* @since S60 3.2 -* Send the Message to the Launched Application -* @param aTask - TApaTask of the launched Application -*/ - void SendMsgToCmdAppTaskL(TApaTask &aTask); - -/** -* @function HandleFailedAppLauchL -* @since S60 3.2 -* Gives Information Note if Application Launch Failed. -*/ - void HandleFailedAppLauchL(); - -/** -* @function HandleAppLauchFromInternetL -* @since S60 3.2 -* Gives Information Note if user try to Launch the application from the external link -*/ - void HandleAppLauchFromInternetL(); -/** -* @function CheckAppLaunchFromInternetL -* @since S60 3.2 -* Checks wether using is trying to launch the application from external link -* @param aCurrentMode - VSA / Cmd -* aCurrentUrl - Currently displayed file path info -*/ - TInt CheckAppLaunchFromInternetL(TInt aCurrentMode,const TDesC& aCurrentUrl ); - -/** -* @function CheckMsgParams -* @since S60 3.2 -* Checks wether parameters are Valid / Invalid -* @param Buffer which contains iformation about Application Uid,MessageId, ViewID -* @return EParamsWithMsg / EParamsInvalid / EParamsNoMsg -*/ - TInt CheckMsgParams(const TDesC& aUrl); - -/** -* @function CheckMsgParams -* @since S60 3.2 -* Copies Uid & View Id into Variables -* @param Buffer which contains information about Application Uid,ViewID -*/ - void ExtractTwoParams(const TDesC& aUrl); - -/** -* @function ExtractFourParams -* @since S60 3.2 -* Copies Uid, View Id, MessageId & Message into Variables -* @param aUrl - Buffer which contains information about Application Uid,ViewID, MessageId & -*/ - void ExtractFourParams(const TDesC& aUrl); -/** -* @function GetUid -* @since S60 3.2 -* Coverts Buffer Content to TInt -* @param aUid - Application Uid -* aResult - Application Uid -*/ - void GetUid(TPtrC aUid, TInt32 &aResult); - -/** -* @function SendMsgToBrowserNGL -* @since S60 3.2 -* Send the Message to the BrowserNG -* @param aUrl - External Hyper Link -* @return ETrue MessageSent Successfully, EFalse otherwise -*/ - TBool SendMsgToBrowserNGL(const HBufC* aUrl); -/** -* @function StartTimer -* @since S60 3.2 -* Starts the timer -* @param aCallBack - Callback function for timer -*/ - void StartTimer(TCallBack aCallBack); - -/** -* @function Timer_Callback_to_TerminateApp -* @since S60 3.2 -* Timer callback function -* @param aPtr - AppLauncherForCSXH class pointer -* @return 0 -*/ - static TInt Timer_Callback_to_TerminateApp(TAny* aPtr); - -/** -* @function SendMsgToApplication -* @since S60 3.2 -* SendMessage to BrowserNG Application -* @return 0 -*/ - TInt SendMsgToApplication(); - - private: - CPeriodic* iTimer; - TInt iCount; - TBuf iUrl; - TBuf iParam1; - TBuf iParam2; - TBuf iParam3; - TBuf iParam4; - }; - - -#endif /* INC_APPLAUNCHERFORCSXH_H_HEADER_INCLUDED_BC03B1F7 */ diff -r 0d1adf67ec1b -r 12f60d9a73b3 csxhelp/inc/CSXHAppUi.h --- a/csxhelp/inc/CSXHAppUi.h Thu Aug 19 09:42:56 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,274 +0,0 @@ -/* -* 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 -#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& 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 */ diff -r 0d1adf67ec1b -r 12f60d9a73b3 csxhelp/inc/CSXHApplication.h --- a/csxhelp/inc/CSXHApplication.h Thu Aug 19 09:42:56 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,56 +0,0 @@ -/* -* 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: CCSXHApplication class declaration -* -*/ - - - -#ifndef INC_CSXHAPPLICATION_H__ -#define INC_CSXHAPPLICATION_H__ - -#include - - -/*! - @class CCSXHApplication - - An instance of CCSXHApplication is the application part of the AVKON - application framework for the Csxhelp application - */ -class CCSXHApplication : public CAknApplication - { -public: // from CAknApplication - -/** - @function AppDllUid - @since S60 3.2 - - The application DLL UID value - @return the UID of this Application/Dll - */ - TUid AppDllUid() const; - -protected: // from CAknApplication -/** - @function CreateDocumentL - @since S60 3.2 - - Create a CApaDocument object and return a pointer to it - @return a pointer to the created document - */ - CApaDocument* CreateDocumentL(); - }; - -#endif // INC_CSXHAPPLICATION_H__ diff -r 0d1adf67ec1b -r 12f60d9a73b3 csxhelp/inc/CSXHDocument.h --- a/csxhelp/inc/CSXHDocument.h Thu Aug 19 09:42:56 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,210 +0,0 @@ -/* -* 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 - -// 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 */ diff -r 0d1adf67ec1b -r 12f60d9a73b3 csxhelp/inc/CSXHGenericContainer.h --- a/csxhelp/inc/CSXHGenericContainer.h Thu Aug 19 09:42:56 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,252 +0,0 @@ -/* -* 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: CCSXHGenericContainer class declaration -* -*/ - - -#ifndef INC_CSXHGENERICCONTAINER_H_HEADER_INCLUDED_BC039735 -#define INC_CSXHGENERICCONTAINER_H_HEADER_INCLUDED_BC039735 - -#include // CCoeControl -#include // MEikListBoxObserver -#include - -// FORWARD DECLARATIONS -class CAknSingleStyleListBox; -class CCSXHDocument; -class CCSXHGenericView; - -#ifdef FF_HELP_TUTORIAL_MERGE -class CCSXHGenericTOC1; -#endif - -// CLASS DECLARATION -/** -* @class CCSXHGenericContainer -* This class provides listbox container control functionality -*/ - -class CCSXHGenericContainer : public CCoeControl, public MEikListBoxObserver - { - public: - /** - * @function NewL - * @since S60 3.2 - * Construct a CCSXHGenericContainer - * and return a pointer to the created object - * @param aRect - TRect Object - * aDocument - Document Object - * @return a CCSXHGenericContainer Pointer - */ -#ifdef FF_HELP_TUTORIAL_MERGE - static CCSXHGenericContainer* NewL(const TRect& aRect,CCSXHDocument &aDocument - ,CCSXHGenericView* aView); -#else // !FF_HELP_TUTORIAL_MERGE - static CCSXHGenericContainer* NewL(const TRect& aRect,CCSXHDocument &aDocument); -#endif // FF_HELP_TUTORIAL_MERGE - /** - * @function NewLC - * @since S60 3.2 - * Construct a CCSXHGenericContainer first phase of two phase constuction - * @param aRect - TRect Object - * aDocument - Document Object - */ -#ifdef FF_HELP_TUTORIAL_MERGE - static CCSXHGenericContainer* NewLC(const TRect& aRect, CCSXHDocument &aDocument - ,CCSXHGenericView* aView); -#else // !FF_HELP_TUTORIAL_MERGE - static CCSXHGenericContainer* NewLC(const TRect& aRect, CCSXHDocument &aDocument); -#endif // FF_HELP_TUTORIAL_MERGE - /** - * @function ~CCSXHGenericContainer - * @since S60 3.2 - * Destroy the object and release all memory objects - */ - ~CCSXHGenericContainer(); - -/** -* @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); - -/** -* @function SetDisplayTopicL -* @since S60 3.2 -* Using Selected Item, set next object for display -*/ - void SetDisplayTopicL(); - -/** -* @function GetNumberOfListItems -* @since S60 3.2 -* Get the number of items present in the List -* @return Number of Items in the List -*/ - TInt GetNumberOfListItems(); - -/** -* @function SetCurrentView -* @since S60 3.2 -* Sets View Pointer -* @param aView - Sets View pointer which is using this Container -*/ - void SetCurrentView(CCSXHGenericView* aView); -/** -* @function CheckForMSK -* @since S60 3.2 -* Checks Msk flag is Enabled or not, If Enabled, Sets MSK Label -*/ - void CheckForMSK(); -/** -* @function HightLightItemL -* @since S60 3.2 -* Sets the selected item in the list box -*/ - void HightLightItemL(); - -#ifdef FF_HELP_TUTORIAL_MERGE - /** - * If the selected item is a tutorial item - * @since S60 3.2 - * @param None - * @return A boolean value to indicate the item is tutorial or not - * Sets the selected item in the list box - */ - TBool IsShowTutorialItemSelectedL(); -#endif // FF_HELP_TUTORIAL_MERGE - - - void MakeVisible(TBool aVisible); - - 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: - -/** -* @function CCSXHGenericContainer -* @since S60 3.2 -* Perform the second phase construction of a CCSXHDocument object -* @param aDocument - CCSXHDocument Object -*/ -#ifdef FF_HELP_TUTORIAL_MERGE - CCSXHGenericContainer(CCSXHDocument &aDocument,CCSXHGenericView* aView); -#else // !FF_HELP_TUTORIAL_MERGE - CCSXHGenericContainer(CCSXHDocument &aDocument); -#endif // FF_HELP_TUTORIAL_MERGE -/** -* @function ConstructL -* @since S60 3.2 -* Perform the first phase of two phase construction -* @param aRect - TRect Object -*/ - void ConstructL(const TRect& aRect); - -/** -* @function CreateAndPopulateListL -* @since S60 3.2 -* Creates a AVKON List & Inserts items into it. -*/ - void CreateAndPopulateListL(); - - - private: -/** -* From MEikListBoxObserver class -* @function HandleListBoxEventL -* @since S60 3.2 -* This function handles List box Events -* @param aListBox - ListBox Pointer -* aListBoxEvent - Event to be handled -*/ - void HandleListBoxEventL(CEikListBox* aListBox, TListBoxEvent aListBoxEvent); - - private: // from CoeControl -/** -* From CoeControl class -* @function SizeChanged -* @since S60 3.2 -* re-allocates and re-sizes components. -*/ - void SizeChanged(); -/** -* 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; -/** -* 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); - - private: - CCSXHDocument& iDocument; - CAknSingleStyleListBox* iListBox; - CAknSearchField* iFindPane; - CCSXHGenericView* iView; - - - }; - - - -#endif /* INC_CSXHTOC2CONTAINER_H_HEADER_INCLUDED_BC039735 */ diff -r 0d1adf67ec1b -r 12f60d9a73b3 csxhelp/inc/CSXHGenericView.h --- a/csxhelp/inc/CSXHGenericView.h Thu Aug 19 09:42:56 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,153 +0,0 @@ -/* -* 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: CCSXHGenericView class declaration -* -*/ - - -#ifndef INC_CSXHGENERICVIEW_H_HEADER_INCLUDED_BC03B1F7 -#define INC_CSXHGENERICVIEW_H_HEADER_INCLUDED_BC03B1F7 - -#include -#include - -//forward declarations -class CCSXHGenericContainer; - -/** -* @class CCSXHGenericView -* This class List View of the Csxhelp Application -*/ -class CCSXHGenericView : public CAknView - { - public: -/** -* @function NewL -* @since S60 3.2 -* Construct a CCSXHGenericContainer -* and return a pointer to the created object -* @param aUid - View Id -* aFlags - Resource Id -* aRect - TRect Object -* @return a CCSXHGenericView Pointer -*/ - static CCSXHGenericView* NewL(const TUid& aUid, const TInt& aFlags); - -/** -* @function ~CCSXHGenericView -* @since S60 3.2 -* Destroy the object and release all memory objects -*/ - ~CCSXHGenericView(); - -/** -* @function ResetContainer -* @since S60 3.2 -* Reset the Flag, which helps to create a new Container -*/ - void ResetContainer(); - -/** -* @function SetMiddleSoftKey -* @since S60 3.2 -* This will set the Label for MSK -*/ - void SetMiddleSoftKey(TBool aValue); - - public:// Functions from base classes -/** -* From CAknView, return view id of this view -* -* @function Id -* @since 3.2 -* @return view id -*/ - TUid Id() const; - -/** - * @function HandleCommandL - * @since S60 3.2 - * takes care of command handling. - * @param aCommand command to be handled - */ - void HandleCommandL(TInt aCommand); - -/** - * @function ResourceChangeHdl - * @since S60 3.2 - * Handler for resource change - * @param aType - Type of resource change event - */ - void ResourceChangeHdl(TInt aType); - - - protected: // Functions from base classes -/** -* From CAknView -* @function DoActivateL -* activation handler -* -* @since 3.2 -* @param aPrevViewId ID of previious view. -*/ - void DoActivateL(const TVwsViewId& aPrevViewId,TUid,const TDesC8& ); - -/** -* From CAknView -* @function DoDeactivate -* de-activation handler -* -* @since 3.2 -* @param aPrevViewId ID of previious view. -*/ - void DoDeactivate(); -/** -* From MEikMenuObserver -* @function DynInitMenuPaneL -* used to manage the menu when -* no item are in the list box. -* We need to delete the "Open" -* menu item in this case. -* -* @since 3.2 -* @param aResource resource ID of menu pane -* @param aMenuPane instance of menupane -*/ - void DynInitMenuPaneL(TInt aResourceId, CEikMenuPane* aMenuPane); - - private: -/** -* @function CCSXHGenericView -* @since S60 3.2 -* Perform the first phase of two phase construction -*/ - CCSXHGenericView(const TUid&,const TInt&); - -/** -* @function ConstructL -* @since S60 3.2 -* Perform the second phase construction of a genericview object -*/ - void ConstructL(); - - private: - CCSXHGenericContainer *iContainer; - TBool iResetContainerInActivate; - - TUid iUid; - const TInt &iAppFlags; - - }; - -#endif /* INC_CSXHGENERICVIEW_H_HEADER_INCLUDED_BC03B1F7 */ diff -r 0d1adf67ec1b -r 12f60d9a73b3 csxhelp/inc/CSXHHtmlTopicContainer.h --- a/csxhelp/inc/CSXHHtmlTopicContainer.h Thu Aug 19 09:42:56 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,507 +0,0 @@ -/* -* 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: CCSXHHtmlTopicContainer class declaration -* -*/ - - -#ifndef INC_CCSXHHTMLTOPICCONTAINER_H__ -#define INC_CCSXHHTMLTOPICCONTAINER_H__ -//If I use INC_CCSXHHTMLTOPICCONTAINER_H__, then CodeScanner fails -//but if I use INC_CCSXH_HTML_TOPIC_CONTAINER_H__ code scanner -//reports an error but produces results for other files - -#include -#include -#include -//RUNTIME -#include - -class CBrCtlInterface; -class CCSXHDocument; -class CCSXHHtmlTOC2; -class CCSXHHtmlTopicView; -class AppLauncherForCSXH; -class CCSXHHelpContentBase; - -typedef CBrCtlInterface* (*FuncPtr_CreateBrowserControlL) (CCoeControl* aParent, TRect aRect, - TUint aBrCtlCapabilities, TUint aCommandIdBase = TBrCtlDefs::ECommandIdBase, - MBrCtlSoftkeysObserver* aBrCtlSoftkeysObserver = NULL, - MBrCtlLinkResolver* aBrCtlLinkResolver = NULL, - MBrCtlSpecialLoadObserver* aBrCtlSpecialLoadObserver = NULL, - MBrCtlLayoutObserver* aBrCtlLayoutObserver = NULL, - MBrCtlDialogsProvider* aBrCtlDialogsProvider = NULL, - MBrCtlWindowObserver* aBrCtlWindowObserver = NULL, - MBrCtlDownloadObserver* aBrCtlDownloadObserver = NULL ); - -// A container which draw white rectagle. -NONSHARABLE_CLASS( CBlankContainer ): public CCoeControl - { -public: - CBlankContainer(); - ~CBlankContainer(); - - /** - * From CoeControl class - * @function Draw - * Draw() for drawing the Background - */ - void Draw( const TRect& aRect ) const; - - }; - -/** -* @class CCSXHHtmlTopicContainer -* This class provides Browser functionality -*/ - -class CCSXHHtmlTopicContainer : public CCoeControl, public MBrCtlLinkResolver, - public MBrCtlLinkContent, public MBrCtlLoadEventObserver, - public MBrCtlSoftkeysObserver,public MBrCtlLayoutObserver - { -public: - -/** -* @function NewL -* @since S60 3.2 -* Construct a CCSXHHtmlTopicContainer -* and return a pointer to the created object -* @param aRect - TRect Object -* aDocument - Document Object -* aView - HtmlTopicView Pointer -* @return a CCSXHHtmlTopicContainer Pointer -*/ - static CCSXHHtmlTopicContainer* NewL(const TRect& aRect,CCSXHDocument - &aDocument,CCSXHHtmlTopicView *aView); - -/** -* @function NewLC -* @since S60 3.2 -* Construct a CCSXHHtmlTopicContainer -* and return a pointer to the created object using two phase constuction -* @param aRect - TRect Object -* aDocument - Document Object -* aView - HtmlTopicView Pointer -* @return a CCSXHHtmlTopicContainer Pointer -*/ - static CCSXHHtmlTopicContainer* NewLC(const TRect& aRect,CCSXHDocument - &aDocument,CCSXHHtmlTopicView *aView); - -/** -* @function CCSXHHtmlTopicContainer -* @since S60 3.2 -* Construct a CCSXHHtmlTopicContainer -* and return a pointer to the created object using two phase constuction -* @param aRect - TRect Object -* aDocument - Document Object -* aView - HtmlTopicView Pointer -* @return a CCSXHHtmlTopicContainer Pointer -*/ - CCSXHHtmlTopicContainer(CCSXHDocument &aDocument, CCSXHHtmlTopicView *aView); -/** - * @function ~CCSXHHtmlTopicContainer - * @since S60 3.2 - * Destroy the object and release all memory objects - */ - ~CCSXHHtmlTopicContainer(); - -/** - * @function SetAndLoadInitialTopicL - * @since S60 3.2 - * Destroy the object and release all memory objects - * @param aTopic - Initial Topic to be displayed - */ - void SetAndLoadInitialTopicL(CCSXHHtmlTOC2* aTopic); - -public: -/** -* From MBrCtlSoftkeysObserver class -* Browser plug-in calls this method requests to update a softkey -* @function UpdateSoftkeyL -* @since S60 3.2 -* @Param aKeySoftkey - Update the left softkey or the right softkey -* aLabel - The label associated with the softkey update -* aCommandId - The command to use if the softkey is selected by the user -* aBrCtlSoftkeyChangeReason - The reason for the softkey change -*/ -void UpdateSoftkeyL(TBrCtlKeySoftkey aKeySoftkey, - const TDesC& aLabel, - TUint32 aCommandId, - TBrCtlSoftkeyChangeReason aBrCtlSoftkeyChangeReason); - -/** -* From MBrCtlLayoutObserver Class -* Browser plug-in calls this method to Update the position of vertical scrollbar -* @function UpdateBrowserVScrollBarL -* @since S60 3.2 -* @Param aDocumentHeight - The total height of the markup page -* aDisplayHeight - The height of the display -* aDisplayPosY - The current Y position -*/ - void UpdateBrowserVScrollBarL(TInt aDocumentHeight, - TInt aDisplayHeight, - TInt aDisplayPosY ) ; - -/** -* From MBrCtlLayoutObserver Class -* Browser plug-in calls this method to Update the position of horizontal scrollbar -* @function UpdateBrowserHScrollBarL -* @since S60 3.2 -* @Param aDocumentWidth - The total width of the markup page -* aDisplayWidth - The width of the display -* aDisplayPosX - The current X position -*/ -void UpdateBrowserHScrollBarL(TInt aDocumentWidth, - TInt aDisplayWidth, - TInt aDisplayPosX ); - -/** -* From MBrCtlLayoutObserver Class -* Browser plug-in calls this method to Inform the layout of the page: right to left or left to right -* @function NotifyLayoutChange -* @since S60 3.2 -* @Param aNewLayout - RTL or LTR -*/ -void NotifyLayoutChange( TBrCtlLayout aNewLayout ); - -/** -* From MBrCtlLayoutObserver Class -* Browser plug-in calls this method to Inform the layout of the page: right to left or left to right -* @function UpdateTitleL -* @since S60 3.2 -* @Param aTitle - Title of the page -*/ -void UpdateTitleL( const TDesC& aTitle ); - -public: // from CCoeControl -/** -* From CoeControl class -* @function SizeChanged -* @since S60 3.2 -* re-allocates and re-sizes components. -*/ - void SizeChanged(); -/** -* 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 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 MBrCtlLoadEventObserver class -* @function HandleBrowserLoadEventL -* @since S60 3.2 -* A load events notification -* @param aLoadEvent - The load event -* aSize - Size depends on the event -* aTransactionId - The transaction id of the transaction that had this event -*/ - void HandleBrowserLoadEventL(TBrCtlDefs::TBrCtlLoadEvent aLoadEvent, - TUint aSize, TUint16 aTransactionId); - -/** -* @function RefreshL -* @since S60 3.2 -* Used to Refresh the Content -* @param aTopic - CCSXHHtmlTOC2 Object -*/ - void RefreshL(CCSXHHtmlTOC2 *aTopic); - -/** -* @function HandleBackKeyL -* Handle Back Key -* @since S60 3.2 -* @return ETrue, if the key is handled in the container, EFalse otherwise -*/ - TBool HandleBackKeyL(); - -/** -* @function IsPrevHtmlPageAvblL -* Check for Existance of the page in the Browser history stack -* @since S60 3.2 -* @return ETrue, if page is available in Browser History Stack, EFalse otherwise -*/ - TBool IsPrevHtmlPageAvblL(); - -/** -* @function SetSelectedFontSizeL -* Sets BrowserFontsize -* @since S60 3.2 -* @param aValue - Fontsize Value -*/ - void SetSelectedFontSizeL(TInt aValue); - -/** -* @function SetSelectedFontSizeL -* Get Current Settings Value -* @since S60 3.2 -* @param aValue - Any Setting -* @return Current Value used by Browser -*/ - TInt GetCurrentValueL(TInt aSetting); - -/** -* @function HandleCommandBackL -* @since S60 3.2 -* Handles resource changes. -* pass OpenLink command to the browser HandlecommandL -*/ - void HandleCommandOpenHyperLinkL(); - -/** -* From CoeControl class -* @function Draw -* @since S60 3.2 -* Draw() for drawing the Background -*/ - void Draw(const TRect& aRect) const; - - void ShowIndexHtmlPageL() const; -/** -* @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); - -/** -* @function HandleCommandBackL -* @since S60 3.2 -* Handles resource changes. -* pass Back command to the browser HandlecommandL -*/ - void HandleCommandBackL(); - -/** -* Browser plug-in calls this method when embedded link is found. Used with ECapabilityClientResolveEmbeddedURL -* @since 3.2 -* @param aEmbeddedUrl The url of the embedded content -* @param aCurrentUrl The url of the current page -* @param aLoadContentType The expected type of the embedded content -* @param aEmbeddedLinkContent a callback interface to return the embedded content -* @return EFalse, browser will resolve the link -*/ - TBool ResolveEmbeddedLinkL(const TDesC& aEmbeddedUrl, - const TDesC& aCurrentUrl, - TBrCtlLoadContentType aLoadContentType, - MBrCtlLinkContent& aEmbeddedLinkContent); - -/** -* Browser plug-in calls this method when the user requests to load content via selecting a link, or any other way. Used with ECapabilityClientNotifyURL -* @since 3.2 -* @param aUrl The requested url -* @param aCurrentUrl The url of the current page -* @param aBrCtlLinkContent a callback interface to return the embedded content -* @return EFalse, browser will resolve the link -*/ - TBool ResolveLinkL(const TDesC& aUrl, const TDesC& aCurrentUrl, - MBrCtlLinkContent& aBrCtlLinkContent); - -/** -* @function CancelFetchL -* Cancel all outstanding resolving operations -*/ - void CancelFetchL(); -/** -* @function CancelAll -* Cancel all outstanding resolving operations -* @since 3.2 -*/ - void CancelAll(); - - -/** -* @function HandleResolveComplete -* @since 3.2 -* Resolver calls this method when content is resolved. -* @param aContentType The content type of the response -* @param aCharset The charset of the response. May be empty in case of image -* @param aContentBuf content data. Ownership is not transfered -* @return void -*/ - void HandleResolveComplete(const TDesC& aContentType, - const TDesC& aCharset, - const HBufC8* aContentBuf); - -/** -* @function HandleResolveError -* @since 3.2 -* This method is called if there is some error while resolving the content -* @param aError system wide error code. -*/ - void HandleResolveError(TInt aError); -/** -* @function CheckForMSK -* @since S60 3.2 -* Checks Msk flag is Enabled or not, If Enabled, Sets MSK Label -*/ - void CheckForMSK(); -/** -* @function IsPrevPageAvbl -* Check wether focus is on Hyperlink or not -* @since S60 3.2 -* @return ETrue, if Focus is on Hyperlink , EFalse otherwise -*/ - TBool IsHyperLinkFocused(); -/** -* @function IsPrevPageAvbl -* Check for Existance of the page -* @since S60 3.2 -* @return ETrue, if page is available , EFalse otherwise -*/ - TBool IsPrevPageAvbl(); - -/** -* @function ClearHistoryL -* Clear Browser history stack -* @since S60 3.2 -*/ - void ClearHistoryL(); - -/** -* @function GetCurrActiveObject -* Get the Current Active Object -* @since S60 3.2 -* @return CCSXHHelpContentBase Pointer, -*/ - CCSXHHelpContentBase* GetCurrActiveObject(); - -private: - -/** -* The state type of browser content. -* @see SetContentLoadState() and NeedRefresh. -*/ - enum TContentLoadState - { - ENoContent, - EContentLoading, - EContentLoadFinished - }; - -/** -* @function ConstructL -* @since S60 3.2 -* @Perform the second phase construction of a HtmlTopicContainer object -* @param aRect the rectangle this view will be drawn to - */ - void ConstructL( const TRect& aRect ); - -/** -* @function LoadHtmlL -* loads HTML page in the Browser -* @since S60 3.2 -*/ - void LoadHtmlL(); - -/** -* @function CheckForExternalLinkL -* Check for external Hyperlink, if yes launch browserNG -* @since S60 3.2 -* @return ETrue, if external hyperlink available, EFalse otherwise -*/ - TBool CheckForExternalLinkL(const TDesC& aUrl); - -/** -* @function SetContentLoadingState -* Set the state of content loading and refresh the UI id needed -*/ - void SetContentLoadState( const TContentLoadState aLoadState ); - -/** -* @function NeedRefresh -* Judge whether we need to refresh the browser control -*/ - TBool NeedRefresh( const TContentLoadState aNewLoadState ) const; - -/** - * @function HideBrowser - */ - void HideBrowser(); - -/** - * * @function ShowBrowser - */ - void ShowBrowser(); - -/* - * @function SetTopAndBottomContainer - * To set top and Bottom container of browser and blank container - */ - void SetTopAndBottomContainer( CCoeControl* aTopControl, - CCoeControl* aBottomControl ); - -private: - CBrCtlInterface* iBrCtrl; - CCSXHHtmlTOC2* iTopic; - CCSXHDocument& iDocument; - CCSXHHelpContentBase *iNewTopic; - - //Check the impln comments in HandleBrowserLoadEventL function - TBuf iUrlNoAnchors; - - CCSXHHtmlTopicView* iView; - AppLauncherForCSXH* iAppLauncher; - RLibrary iBrLibrary; - RFeatureControl iFeatureControl; - TBool iLoadHtml; - TInt32 iPrevPageCount; - TBool iBack; - - TContentLoadState iContentLoading; - - // used to hide browser control if needed. - CCoeControl* iBlankContainer; - - // Used to determine whether hide browser control or not. - CCoeControl* iTopControl; - CCoeControl* iBottomControl; - - }; - - -#endif diff -r 0d1adf67ec1b -r 12f60d9a73b3 csxhelp/inc/CSXHHtmlTopicView.h --- a/csxhelp/inc/CSXHHtmlTopicView.h Thu Aug 19 09:42:56 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,217 +0,0 @@ -/* -* 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: CCSXHHtmlTopicView class declaration -* -*/ - - -#ifndef INC_CCSXHHTMLTOPICVIEW_H__ -#define INC_CCSXHHTMLTOPICVIEW_H__ - -// INCLUDES -#include -#include - -class CCSXHHtmlTopicContainer; -class TCoeHelpContext; -// CLASS DECLARATION - -/** -* @class CCSXHHtmlTopicView -* This class handles BrowserView of the Csxhelp Application -*/ -class CCSXHHtmlTopicView : public CAknView - { - public: - - enum THtmlViewType - { - EHtmlView = 0, - EContextHtmlView - }; -/** -* @function NewL -* @since S60 3.2 -* Construct a CCSXHHtmlTopicView -* and return a pointer to the created object -* @param aUid - View Id -* aFlags - Resource Id -* aRect - TRect Object -* @return a CCSXHHtmlTopicView Pointer -*/ - static CCSXHHtmlTopicView* NewL(const TUid&, const TInt&,const TRect& aRect); - -/** -* @function ~CCSXHHtmlTopicView -* @since S60 3.2 -* Destroy the object and release all memory objects -*/ - virtual ~CCSXHHtmlTopicView(); - -/** -* @function SetViewType -* @since S60 3.2 -* Sets the view type as either normal or context view -*/ - void SetViewTypeL(TInt viewType); - -/** -* @function GetViewType -* @since S60 3.2 -* Gets the view type as either normal or context view -*/ - TInt GetViewType(); - - protected: -/** -* @function CCSXHHtmlTopicView -* @since S60 3.2 -* Perform the first phase of two phase construction -*/ - CCSXHHtmlTopicView(const TUid&,const TInt&); - -/** -* @function ConstructL -* @since S60 3.2 -* Perform the second phase construction of a htmltopicview object -*/ - void ConstructL(const TRect& aRect); - -/** -* From MEikMenuObserver -* @function DynInitMenuPaneL -* used to manage the menu when -* no item are in the list box. -* We need to delete the "Open" -* menu item in this case. -* -* @since 3.2 -* @param aResource resource ID of menu pane -* @param aMenuPane instance of menupane -*/ - void DynInitMenuPaneL(TInt aResourceId, CEikMenuPane* aMenuPane); - - - public: // Functions from base classes -/** -* From CAknView, return view id of this view -* -* @function Id -* @since 3.2 -* @return view id -*/ - TUid Id() const; - -/** - * @function HandleCommandL - * @since S60 3.2 - * takes care of command handling. - * @param aCommand command to be handled - */ - void HandleCommandL(TInt aCommand); - -/** - * @function ResourceChangeHdl - * @since S60 3.2 - * Handler for resource change - * @param aType - Type of resource change event - */ - void ResourceChangeHdl(TInt aType); - -/** - * @function ViewActivatedL - * @since S60 3.2 - * Takes any action required when this view is activated. - * Handles this view activation event from view server - * @param aPrevViewId - Specifies the view previously active. - * aCustomMessageId - Specifies the message type. - * aCustomMessage - Activation message - */ - void ViewActivatedL(const TVwsViewId& aPrevViewId, - TUid aCustomMessageId, - const TDesC8& aCustomMessage); - - -/** - * @function SetSoftKeysL - * @since S60 3.2 - * Sets SoftKeys - * @param aSoftKeys Resource Id - */ - void SetSoftKeysL(TInt aSoftKeys); - -/** - * @function GetCurrentFontSize - * @since S60 3.2 - * SetSoftKeysL - * @return Current FontSize - */ - TInt GetCurrentFontSize(); -/** -* @function SetMiddleSoftKey -* @since S60 3.2 -* This will set the Label for MSK -*/ - void SetMiddleSoftKey(TBool aValue); - -/** -* From CAknView -* @function DoDeactivate -* de-activation handler -* -* @since 3.2 -* @param aPrevViewId ID of previious view. -*/ - void DoDeactivate(); -#ifdef FF_HELP_TUTORIAL_MERGE - /** - * Lauch tutorial if exist, else popup a error message - * @since S60 3.2 - * @param None - * @return None - */ - void LaunchTutorialL(); -#endif // FF_HELP_TUTORIAL_MERGE - - protected: // functions from base classes -/** -* From CAknView -* @function DoActivateL -* activation handler -* -* @since 3.2 -* @param aPrevViewId ID of previious view. -*/ - void DoActivateL(const TVwsViewId& aPrevViewId, - TUid /* aCustomMessageId */, - const TDesC8& /* aCustomMessage */); - - - - private: - // previous view - TVwsViewId iPrevious; - CCSXHHtmlTopicContainer* iBCContainer; - - const TUid& iUid; - const TInt& iAppFlags; - - static TInt iFontSize; - - TBool iContextTopicView; - }; - -#endif // INC_CCSXHHTMLTOPICVIEW_H__ - -// End of File diff -r 0d1adf67ec1b -r 12f60d9a73b3 csxhelp/inc/CSXHLegacyTopicContainer.h --- a/csxhelp/inc/CSXHLegacyTopicContainer.h Thu Aug 19 09:42:56 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,227 +0,0 @@ -/* -* 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 -#include -#include - - -// 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 diff -r 0d1adf67ec1b -r 12f60d9a73b3 csxhelp/inc/CSXHLegacyTopicView.h --- a/csxhelp/inc/CSXHLegacyTopicView.h Thu Aug 19 09:42:56 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,147 +0,0 @@ -/* -* 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: CCSXHLegacyTopicView class declaration -* -*/ - - -#include -#include - -class CCSXHLegacyTopicContainer; - -// CLASS DECLARATION - -/** -* @class CCSXHLegacyTopicView -* This class handles RichTextView of the Csxhelp Application -*/ -class CCSXHLegacyTopicView : public CAknView - { - public: -/** -* @function NewL -* @since S60 3.2 -* Construct a CCSXHLegacyTopicView -* and return a pointer to the created object -* @param aUid - View Id -* aFlags - Resource Id -* aRect - TRect Object -* @return a CCSXHLegacyTopicView Pointer -*/ - - static CCSXHLegacyTopicView* NewL(const TUid& aUid, const TInt& - aFlags,const TRect& aRect); -/** -* From CAknView -* @function DoDeactivate -* de-activation handler -* -* @since 3.2 -* @param aPrevViewId ID of previious view. -*/ - void DoDeactivate(); - -/** -* @function ~CCSXHLegacyTopicView -* @since S60 3.2 -* Destroy the object and release all memory objects -*/ - virtual ~CCSXHLegacyTopicView(); - protected: -/** -* @function CCSXHLegacyTopicView -* @since S60 3.2 -* Perform the first phase of two phase construction -*/ CCSXHLegacyTopicView(const TUid&, const TInt&); - -/** -* @function ConstructL -* @since S60 3.2 -* Perform the second phase construction of a legacytopicview object -* @param aRect the rectangle this view will be drawn to -*/ - void ConstructL(const TRect& aRect); - - public: // Functions from base classes - /** -* From CAknView, return view id of this view -* -* @function Id -* @since 3.2 -* @return view id -*/ - TUid Id() const; - -/** - * @function HandleCommandL - * @since S60 3.2 - * takes care of command handling. - * @param aCommand command to be handled - */ - void HandleCommandL(TInt aCommand); - -/** - * @function ResourceChangeHdl - * @since S60 3.2 - * Handler for resource change - * @param aType - Type of resource change event - */ - void ResourceChangeHdl(TInt aType); - - protected: // functions from base classes -/** -* From CAknView -* @function DoActivateL -* activation handler -* -* @since 3.2 -* @param aPrevViewId ID of previious view. -*/ - void DoActivateL(const TVwsViewId& aPrevViewId, - TUid /* aCustomMessageId */, - const TDesC8& /* aCustomMessage */); - - -/** - * @function ViewActivatedL - * @since S60 3.2 - * Takes any action required when this view is activated. - * Handles this view activation event from view server - * @param aPrevViewId - Specifies the view previously active. - * aCustomMessageId - Specifies the message type. - * aCustomMessage - Activation message - */ - void ViewActivatedL(const TVwsViewId& aPrevViewId, - TUid aCustomMessageId, - const TDesC8& aCustomMessage); - -/** - * @function ViewActivatedL - * @since S60 3.2 - * Takes any action required when this view is deactivated. - * Handles this view deactivation event from view server - */ - void ViewDeactivated(); - - - private: - - CCSXHLegacyTopicContainer* iTopicContainer; - TVwsViewId iPrevious; - - const TUid& iUid; - const TInt& iAppFlags; - - }; diff -r 0d1adf67ec1b -r 12f60d9a73b3 csxhelp/inc/CsHelp.hrh --- a/csxhelp/inc/CsHelp.hrh Thu Aug 19 09:42:56 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,90 +0,0 @@ -/* -* 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: Declarations for resources of cshelp. -* -*/ - - -#ifndef CSHELP_HRH -#define CSHELP_HRH - -enum TCSXHIds - { - ECSXHOpenItem = 1, // start value must not be 0 - ECSXHOpenItemPropagated , //Propagated from container - ECSXHTOC1ListView, - ECSXHKywdTOC1ListView, - ECSXHTOC2ListView, - ECSXHSearchText, - ECSXHOpenTopicView, - ECSXHOpenTopicText, - ECSXHOpenApplicationTopics, - ECsHelpCmdFontLarge, - ECsHelpCmdFontSmall, - ECSXHOpenHyperLink, - ECSXHDummyMSK, - ECmdAiwPlaceHolder, - ECmdLast - }; - - - -// Commands -enum TCsHelpMenuCommands - { - ECsHelpCmdViewCategoryList = 0x6000, - ECsHelpCmdViewTopicList, - ECsHelpCmdViewTopic, - ECsHelpCmdViewTopicForContext, - ECsHelpCmdViewTopicForSearch, - ECsHelpCmdViewSearch, - ECsHelpCmdViewSearchResult, - - ECsHelpCmdNextTopicList, - ECsHelpCmdPreviousTopicList, - - ECsHelpCmdNextTopic, - ECsHelpCmdPreviousTopic, - - ECsHelpCmdNextIndex, - ECsHelpCmdPreviousIndex - }; - -// Tab ID for category list view and search view -enum TCsHelpTabId - { - ECsHelpCategoryTab, - ECsHelpSearchTab - }; - - -// note id -enum TCsHelpNoteId - { - EProgressNote = 1, - EInstallNote - }; - - -enum TTutorialAiwCommands { - KLaunchTutorial = 0x10208a86, //Launches tutorial as embedded application - KPlayPresentation, //Plays tutorial presentation - KPresentationExists, //Tests if the given presentation exists - KPlayDefaultPresentation, //Plays tutorial default presentation - KDefaultPresentationExists //Tests if the default presentation exists - }; - -#endif // CSHELP_HRH - -// End of File diff -r 0d1adf67ec1b -r 12f60d9a73b3 csxhelp/inc/cshelp.laf --- a/csxhelp/inc/cshelp.laf Thu Aug 19 09:42:56 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,41 +0,0 @@ -/* -* ============================================================================ -* Name : cshelp.laf -* Part of : CsHelp -* -* Description: -* This is the LAF specification file for the Cshelp app. -* -* -* Version: -* -* Copyright (C) 2002 Nokia Corporation. -* This material, including documentation and any related -* computer programs, is protected by copyright controlled by -* Nokia Corporation. All rights are reserved. Copying, -* including reproducing, storing, adapting or translating, any -* or all of this material requires the prior written consent of -* Nokia Corporation. This material also contains confidential -* information which may not be disclosed to others without the -* prior written consent of Nokia Corporation. -* -* ============================================================================ -*/ - -//d: laf data for Help application's topic view. -// Edit 16 >> -////l: main_pane_1 -//l:main_pane_1_help_item_text -// << -// -#define topic_view_font ELatinPlain12 -#define topic_view_C 215 -#define topic_view_l 4 -#define topic_view_r 5 -#define topic_view_B 21 -#define topic_view_W 167 -#define topic_view_J ELayoutAlignBidi -#define topic_view_lines 8 -#define topic_view_nextB 37 - -// End of file diff -r 0d1adf67ec1b -r 12f60d9a73b3 csxhelp/inc/csxhruntimeappwatcher.h --- a/csxhelp/inc/csxhruntimeappwatcher.h Thu Aug 19 09:42:56 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,107 +0,0 @@ -/* -* 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: observer if any install/unistall happens at help app -* runtime -* -*/ - -#ifndef CSXHRUNTIMEAPPWATCHER_H -#define CSXHRUNTIMEAPPWATCHER_H - -#include -#include - -/* - * Base class of Installation/Uninstallation - * - */ -class MInstallationObserver - { -public: - /* - * call back function, to handle update index - */ - virtual void RuntimeUpdateIndex() = 0; - }; - -/* - * Runtime indexing wather - * keep watching if user install/uninstall/modify any helps - * - */ -class CCSXHRuntimeAppWatcher : public CActive - { -public: - - /* - * default constructor - */ - CCSXHRuntimeAppWatcher(); - - /* - * destructor - */ - ~CCSXHRuntimeAppWatcher(); - - /* - * two-phase constructor - */ - static CCSXHRuntimeAppWatcher* NewL(); - - /* - * from base class CActive - * Handles an active object's request completion event - */ - void RunL(); - - /* - * from base class CActive - * Implements cancellation of an outstanding request - */ - void DoCancel(); - - /* - * start this active object - */ - void Start(); - - /* - * Set observer - * @param aObserver: App UI, notify user helps modified - * - */ - void SetObserver( MInstallationObserver* aObserver ); - -private: - - /* - * two-phase constructor - */ - void ConstructL(); - -private: - - /* - * file session - */ - RFs iFileSession; - - /* - * observer - * not owned - */ - MInstallationObserver* iObserver; - }; - -#endif // CSXHRUNTIMEAPPWATCHER_H diff -r 0d1adf67ec1b -r 12f60d9a73b3 csxhelp/loc/csxhelp.loc --- a/csxhelp/loc/csxhelp.loc Thu Aug 19 09:42:56 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,141 +0,0 @@ -/* -* Copyright (c) 2002-2004 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: Localisation file for Csxhelp -* -*/ - - -// LOCALISATION STRINGS -//d: help application name in selection grid window -//l: cell_app_pane_t1 -#define qtn_apps_grid_help "Help" - -//d: help application name in selection list window -//l: list_single_large_graphic_pane_t1 -#define qtn_apps_ls1_help "Help" - -//d: text when there is no topic -//l: popup_note_window -#define qtn_help_note_no_topic "No topic available" - -//d: text of wait note while sarching -//l: popup_note_wait_window -#define qtn_help_noteg_searching "Searching" - -//d: Command in options menu. go to categor list view -//l: list_single_pane_t1_cp2 -#define qtn_help_om_category_list "Help category list" - -//d: Command in options menu. find keywords, and go to search result view -//l: list_single_pane_t1_cp2 -#define qtn_help_om_find_topics "Find" - - -//d: Command in options menu. go to topic list view -//l: list_single_pane_t1_cp2 -#define qtn_help_om_open_category "Open" - -//d: Command in options menu. go to topic view -//l: list_single_pane_t1_cp2 -#define qtn_help_om_open_topic "Open" - -//d: Command in options menu. go to search view. -//l: list_single_pane_t1_cp2 -#define qtn_help_om_search "Search by keyword" - - -//d: Command in options menu. go to topic list view -//l: list_single_pane_t1_cp2 -#define qtn_help_om_topic_list "Topic list" - -//d: title text in help application -//l: title_pane_t2/opt9 -#define qtn_help_title_help "Help" - -//d: when help application is launched from options menu and no help topic is -//d: associated with present view, information note with this text is dsplayed. -//l: popup_note_window -#define qtn_help_note_no_topics "No help topics available" - -//d: Command in options menu. go to search view -//l: list_single_pane_t1_cp2 -//r:3.2 -#define qtn_help_om_search_xhtml "Search" - -//d: Command in options menu. go to help content view -//l: list_single_pane_t1_cp2 -//r:3.2 -#define qtn_help_om_help_contents "Help Contents" - -//d: Command in options menu. go to Application topic view -//l: list_single_pane_t1_cp2 -//r:3.2 -#define qtn_help_om_application_topics "Application Topics" - -//d: Command in options menu. To open the linked html page -//l: list_single_pane_t1_cp2 -//r:3.2 -#define qtn_help_om_open_hyperlink "Open link" - -//d: Command in options menu. To increase browser font size -//l: list_single_pane_t1_cp2 -//r:3.2 -#define qtn_help_om_increase_text "Increase text size" - -//d: Command in options menu. To decrease browser font size -//l: list_single_pane_t1_cp2 -//r:3.2 -#define qtn_help_om_decrease_text "Decrease text size" - -//d: While launching an Application from help with wrong uid/data -//d: information note with this text is dsplayed. -//l: popup_note_window -//r:3.2 -#define qtn_help_note_unable_launch "Unable to launch application" - -//d: When an Application is trying to launch from help using (HTTP)external links. -//d: information note with this text is dsplayed. -//l: popup_note_window -//r:3.2 -#define qtn_help_note_no_internet "Launching applications from internet content is not allowed" - -//d: Command for Middle SoftKey. find keywords, and go to search result view -//l: control_pane_t3/opt7 -//r:3.2 -#define qtn_help_msk_find "Find" - -//d: Command for Middle SoftKey. To open the linked html page -//l: control_pane_t3/opt7 -//r:3.2 -#define qtn_help_msk_open_hyperlink "Open link" - -//d: 1st Item in the Top Level List,Present only if Tutorial is present in the platform. -//d: 1st Item in the applications Topic List,Present only if Tutorial content is available -//for that application in the platform. -//l: navi_text_pane_t1 -//r:5.0 -#define qtn_help_toc_list_item_tutorial "Show Tutorial" - -//d: Label for wait note -//d: This note is used when user install/uninstall an application, which has helps. -//l: popup_note_wait_window -//r: 5.0 -#define qtn_help_noteg_install "Help content changed due to install/uninstallation, please restart Help application to see new app" - -//d: Collection for custom applications helps -//d: This topic is a collection for all of post-build applications -//l: list_single_pane_t1 -//r: 5.2 -#define qtn_help_toc_app_helps "Application helps" -// End of file diff -r 0d1adf67ec1b -r 12f60d9a73b3 csxhelp/rom/AiwHelpProvider.iby --- a/csxhelp/rom/AiwHelpProvider.iby Thu Aug 19 09:42:56 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,30 +0,0 @@ -/* -* Copyright (c) 2002 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: -* Main resource file for the AiwHelpProvider application. -* -* -*/ - -#ifndef __AIWHELPPROVIDER_IBY__ -#define __AIWHELPPROVIDER_IBY__ - -#ifdef RD_HELP_AIW_INTEGRATION - - -ECOM_PLUGIN(AiwHelpProvider.dll,AiwHelpProvider.RSC) - -#endif - -#endif diff -r 0d1adf67ec1b -r 12f60d9a73b3 csxhelp/rom/AiwHelpProviderResources.iby --- a/csxhelp/rom/AiwHelpProviderResources.iby Thu Aug 19 09:42:56 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,28 +0,0 @@ -/* -* Copyright (c) 2002 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: -* Main resource file for the AiwHelpProvider application. -* -* -*/ - - -#ifndef __AIWHELPPROVIDERRESOURCES_IBY__ -#define __AIWHELPPROVIDERRESOURCES_IBY__ - -#ifdef RD_HELP_AIW_INTEGRATION -data=DATAZ_\APP_RESOURCE_DIR\AiwHelpProviderPlugin.rsc APP_RESOURCE_DIR\AiwHelpProviderPlugin.rsc -#endif - -#endif diff -r 0d1adf67ec1b -r 12f60d9a73b3 csxhelp/rom/Cshelp.iby --- a/csxhelp/rom/Cshelp.iby Thu Aug 19 09:42:56 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,37 +0,0 @@ -/* -* Copyright (c) 2002 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: -* Main resource file for the CsHelp application. -* -* -*/ - - -#ifndef __CSHELP_IBY__ -#define __CSHELP_IBY__ - -#ifdef __SERIES60_HELP // Help files are put in the image only when this flag is defined - -#include - -file=ABI_DIR\BUILD_DIR\HelpEngine.dll \SHARED_LIB_DIR\HelpEngine.dll - -S60_APP_EXE(cshelp) -S60_APP_AIF_ICONS(cshelp) -S60_APP_AIF_RSC(cshelp) -S60_APP_BITMAP(cshelp) - -#endif //__SERIES60_HELP - -#endif // __CSHELP_IBY__ diff -r 0d1adf67ec1b -r 12f60d9a73b3 csxhelp/rom/CshelpResources.iby --- a/csxhelp/rom/CshelpResources.iby Thu Aug 19 09:42:56 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,41 +0,0 @@ -/* -* Copyright (c) 2002 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: -* Main resource file for the CsHelp application. -* -* -*/ - - -#ifndef __CSHELP_RESOURCES_IBY__ -#define __CSHELP_RESOURCES_IBY__ - - - -#ifdef __SERIES60_HELP // Help files are put in the image only when this flag is defined - -S60_APP_CAPTION(Cshelp) - -//Resource file(s) for CsHelp application -#ifndef RD_APPS_TO_EXES -data=ZSYSTEM\Apps\Cshelp\cshelp.rsc APP_RESOURCE_DIR\cshelp.rsc - -#else -data=DATAZ_\APP_RESOURCE_DIR\cshelp.rsc APP_RESOURCE_DIR\cshelp.rsc -#endif - - -#endif //__SERIES60_HELP - -#endif diff -r 0d1adf67ec1b -r 12f60d9a73b3 csxhelp/src/AppLauncherForCSXH.cpp --- a/csxhelp/src/AppLauncherForCSXH.cpp Thu Aug 19 09:42:56 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,453 +0,0 @@ -/* -* 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: AppLauncherForCSXH class definition -* -*/ - - -#include "AppLauncherForCSXH.h" -#include "CSXHAppUi.h" -#include - -#include -#include -#include -#include -#include -#include -#include "csxhconstants.h" -#include - - -const TInt KBackSlashesInPrefix = 3; -#ifndef __SERIES60_30__ - const TUid KUidBrowserApplication = { 0x10008D39 }; -#else - const TUid KUidBrowserApplication = { 0x1020724D }; -#endif - -const TInt KKeyBlockTime = 100000; - -enum TAppLaunchMode - { - ENoAppLaunch = 0, - EVSAMode = 1, - ECmdMode = 2, - EAppLaunchFromInternet = 3, - }; -enum TAppLauchParams - { - EParamsInvalid = 0, - EParamsNoMsg, - EParamsWithMsg, - }; - - -AppLauncherForCSXH* AppLauncherForCSXH::NewL() - { - AppLauncherForCSXH* self = new(ELeave) AppLauncherForCSXH(); - self->ConstructL(); - return self; - } - -AppLauncherForCSXH::AppLauncherForCSXH() - {} - -void AppLauncherForCSXH::ConstructL() - { - iTimer = CPeriodic::NewL( CActive::EPriorityStandard ); - } - -AppLauncherForCSXH::~AppLauncherForCSXH() - { - if(iTimer) - delete iTimer; - } - -// -------------------------------------------------------------------------- -// Launches an application based on the Application Launch Link URL -// -------------------------------------------------------------------------- -TBool AppLauncherForCSXH::LaunchAppL(const TDesC& aUrl,const TDesC& aCurrentUrl) - { - switch(GetAppLaunchModeL(aUrl,aCurrentUrl)) - { - case ENoAppLaunch: - return EFalse; - case EAppLaunchFromInternet: - HandleAppLauchFromInternetL(); - return ETrue; - case EVSAMode: - { - if(!LaunchApp(aUrl,ETrue)) - HandleFailedAppLauchL(); - return ETrue; - } - case ECmdMode: - { - if(!LaunchApp(aUrl,EFalse)) - HandleFailedAppLauchL(); - return ETrue; - } - default: - return EFalse; - } - } - -TInt AppLauncherForCSXH::GetAppLaunchModeL(const TDesC& aUrl,const TDesC& aCurrentUrl) - { - TInt Position = aUrl.Find(_L("app://vsa@localhost/")); - if(KErrNotFound != Position && 0 == Position) - { - return CheckAppLaunchFromInternetL(EVSAMode,aCurrentUrl); - } - - Position = aUrl.Find(_L("app://cmd@localhost/")); - if(KErrNotFound != Position && 0 == Position) - { - return CheckAppLaunchFromInternetL(ECmdMode,aCurrentUrl); - } - - return ENoAppLaunch; - } - -TBool AppLauncherForCSXH::LaunchApp(const TDesC& aUrl, TBool aVSAMode) - { - iParam1.Copy(KEmptyString); - iParam2.Copy(KEmptyString); - iParam3.Copy(KEmptyString); - iParam4.Copy(KEmptyString); - - switch(CheckMsgParams(aUrl)) - { - case EParamsInvalid: - return EFalse; - case EParamsNoMsg: - { - ExtractTwoParams(aUrl); - if(aVSAMode) - { - TInt32 AId,VId; - GetUid(iParam1,AId); - GetUid(iParam2,VId); - TRAPD(res,CCSXHAppUi::GetInstance()->AppLaunchL(AId,VId)); - return (res == KErrNone) ? ETrue : EFalse; - } - else - { - return LaunchCmdApp(EFalse); - } - } - case EParamsWithMsg: - { - ExtractFourParams(aUrl); - if(aVSAMode) - { - TInt32 AId,VId,MId; - GetUid(iParam1,AId); - GetUid(iParam2,VId); - GetUid(iParam3,MId); - TRAPD(res,CCSXHAppUi::GetInstance()->AppLaunchL(AId,VId,MId,iParam4)); - return (res == KErrNone) ? ETrue : EFalse; - } - else - { - return LaunchCmdApp(ETrue); - } - } - default: - return EFalse; - } - } -TBool AppLauncherForCSXH::LaunchCmdApp(TBool aParamsMode) - { - TRAPD(res,LaunchCmdAppL(aParamsMode)); - if(res != KErrNone) - return EFalse; - return ETrue; - } -TBool AppLauncherForCSXH::LaunchCmdAppL(TBool aParamsMode) - { - /*valid cases - app://cmd@localhost/APP_NAME/APP_UID - app://cmd@localhost/APP_NAME/APP_UID/MSG_UID/Parameters - */ - TApaTask task = GetCmdAppTask(); - if (task.Exists()) - {//App is already running - if(aParamsMode) - SendMsgToCmdAppTaskL(task); - - task.BringToForeground(); - return ETrue; - } - //Application has to be started - CApaCommandLine* cmdLine=CApaCommandLine::NewLC(); - cmdLine->SetExecutableNameL(iParam1); - cmdLine->SetCommandL(EApaCommandRun); - - RApaLsSession lsSession; - User::LeaveIfError(lsSession.Connect()); - CleanupClosePushL(lsSession); - User::LeaveIfError(lsSession.StartApp(*cmdLine)); - CleanupStack::PopAndDestroy(&lsSession); - CleanupStack::PopAndDestroy(cmdLine); - if(aParamsMode) - { - iCount = 0; - TCallBack timer_Callback_to_terminateApp( Timer_Callback_to_TerminateApp,this ); - StartTimer(timer_Callback_to_terminateApp); - } - - return ETrue; - } - -TInt AppLauncherForCSXH::Timer_Callback_to_TerminateApp(TAny* aPtr) - { - return static_cast( aPtr )->SendMsgToApplication(); - } - -TInt AppLauncherForCSXH::SendMsgToApplication() - { - //If parameters has to be passed then the following is required - TApaTask cmdTask = GetCmdAppTask(); - if (cmdTask.Exists()) - { - TRAPD(res,SendMsgToCmdAppTaskL(cmdTask)); - if(res != KErrNone) - return 0; - cmdTask.BringToForeground(); - iTimer->Cancel(); - } - else if(++iCount > 20) - { - iTimer->Cancel(); - } - return 0; - } - -TApaTask AppLauncherForCSXH::GetCmdAppTask() - { - TInt32 AId; - GetUid(iParam2,AId); - TApaTaskList taskList(CCSXHAppUi::GetInstance()->GetWsSession()); - TUid KtestAppUid( TUid::Uid( AId ) ); - return taskList.FindApp(KtestAppUid); - } -void AppLauncherForCSXH::SendMsgToCmdAppTaskL(TApaTask& aTask) - { - - TInt32 MId; - GetUid(iParam3,MId); - TUid KtestMsgUid( TUid::Uid( MId ) ); - HBufC8* params = CnvUtfConverter::ConvertFromUnicodeToUtf8L(iParam4); - CleanupStack::PushL(params); - aTask.SendMessage (KtestMsgUid, *params); - CleanupStack::PopAndDestroy(params); - } - -void AppLauncherForCSXH::HandleFailedAppLauchL() - { - HBufC* ErrorMessage = CCSXHAppUi::GetCoeEnv()->AllocReadResourceLC( - R_QTN_HELP_NOTE_UNABLE_TO_LAUNCH_APP); - CAknGlobalNote* note = CAknGlobalNote::NewLC(); - note->ShowNoteL(EAknGlobalInformationNote, *ErrorMessage); - CleanupStack::PopAndDestroy(note); - CleanupStack::PopAndDestroy(ErrorMessage); - } -void AppLauncherForCSXH::HandleAppLauchFromInternetL() - { - HBufC* ErrorMessage = CCSXHAppUi::GetCoeEnv()->AllocReadResourceLC( - R_QTN_HELP_NOTE_APP_LAUNCH_NOT_ALLOWED); - CAknGlobalNote* note = CAknGlobalNote::NewLC(); - note->ShowNoteL(EAknGlobalInformationNote, *ErrorMessage); - CleanupStack::PopAndDestroy(note); - CleanupStack::PopAndDestroy(ErrorMessage); - } - -TInt AppLauncherForCSXH::CheckAppLaunchFromInternetL(TInt aCurrentMode,const TDesC& /*aCurrentUrl*/ ) - { - - return aCurrentMode; - //BrowserNG is lauched for Externalhyperlinks, - //All the security issues are addresed by BrowserNG, - - /*(0 == aCurrentUrl.Find(KFileUrlPrefix) ) ? - aCurrentMode : EAppLaunchFromInternet;*/ - } - -TInt AppLauncherForCSXH::CheckMsgParams(const TDesC& aUrl) - { - /* - The following are valid cases - app://vsa@localhost/APP_UID/VIEW_UID - app://vsa@localhost/APP_UID/VIEW_UID/MSG_UID/Parameters - app://cmd@localhost/APP_NAME/APP_UID - app://cmd@localhost/APP_NAME/APP_UID/MSG_UID/Parameters - - That is, it should have exactly 4 backslashes or - >= 6 backslashes (considering the possibility that parameters - can have embedded backslashes) - */ - TBuf backSlash(KBackSlash); - TInt count = 0; - - for(TInt i = 0 ; i < aUrl.Length() ; ++i) - { - if(KErrNotFound != backSlash.Find(&aUrl[i],KBackSlashLength)) - ++count; - } - - if(count == 4) - return EParamsNoMsg; - else if (count >=6) - return EParamsWithMsg; - else - return EParamsInvalid; - } - -void AppLauncherForCSXH::ExtractTwoParams(const TDesC& aUrl) - { - /*Will be called for the following cases - app://vsa@localhost/APP_UID/VIEW_UID - app://cmd@localhost/APP_NAME/APP_UID - */ - iParam1.Copy(KEmptyString); - iParam2.Copy(KEmptyString); - - TBuf backSlash(KBackSlash); - TInt count = 0; - TInt pos; - - for(pos = 0; pos < aUrl.Length() ; ++pos) - { - if(KErrNotFound != backSlash.Find(&aUrl[pos],KBackSlashLength)) - ++count; - if(count == KBackSlashesInPrefix) - break; - } - TPtrC16 url = aUrl.Mid(pos + 1); - pos = url.Find(KBackSlash); - iParam1 = url.Left(pos); - iParam2 = url.Mid(pos + 1); - } - -void AppLauncherForCSXH::ExtractFourParams(const TDesC& aUrl) - { - /*Will be called for the following cases - app://vsa@localhost/APP_UID/VIEW_UID/MSG_UID/Parameters - app://cmd@localhost/APP_NAME/APP_UID/MSG_UID/Parameters - */ - iParam1.Copy(KEmptyString); - iParam2.Copy(KEmptyString); - iParam3.Copy(KEmptyString); - iParam4.Copy(KEmptyString); - - TBuf backSlash(KBackSlash); - TInt count = 0; - TInt pos; - - for(pos = 0; pos < aUrl.Length() ; ++pos) - { - if(KErrNotFound != backSlash.Find(&aUrl[pos],KBackSlashLength)) - ++count; - if(count == KBackSlashesInPrefix) - break; - } - - TPtrC16 url = aUrl.Mid(pos + 1); - pos = url.Find(KBackSlash); - iParam1 = url.Left(pos); - - TPtrC16 url2 = url.Mid(pos + 1); - pos = url2.Find(KBackSlash); - iParam2 = url2.Left(pos); - - TPtrC16 url3 = url2.Mid(pos + 1); - pos = url3.Find(KBackSlash); - iParam3 = url3.Left(pos); - - iParam4 = url3.Mid(pos+1); - } - -void AppLauncherForCSXH::GetUid(TPtrC aUid, TInt32& aResult) - { - TInt hexPos = aUid.Find(_L("x")); - if(KErrNotFound == hexPos) - TLex(aUid).Val(aResult); - else - { - TPtrC16 uidt = aUid.Mid(hexPos+1); - TInt64 res; - //During this operation sometimes values exceed TInt32, but the end result is always - //fits into TInt32 - TLex(uidt).Val(res,EHex); - aResult = res; - } - } - -void AppLauncherForCSXH::LaunchBrowserNGL(const TDesC& aUrl) - { - _LIT( KBrowserCmdFetchUrl, "4 " ); - HBufC* param = HBufC::NewLC( KBrowserCmdFetchUrl().Length() + - aUrl.Length() ); - TPtr paramPtr = param->Des(); - paramPtr.Copy( KBrowserCmdFetchUrl ); - paramPtr.Append( aUrl ); - - if(!SendMsgToBrowserNGL(param)) - { - RApaLsSession appArcSession; - User::LeaveIfError( appArcSession.Connect() ); - CleanupClosePushL( appArcSession ); - - TThreadId id; - User::LeaveIfError - ( - appArcSession.StartDocument(*param,KUidBrowserApplication,id ) - ); - CleanupStack::PopAndDestroy( &appArcSession ); - } - - CleanupStack::PopAndDestroy( param ); - } - -TBool AppLauncherForCSXH::SendMsgToBrowserNGL(const HBufC* aUrl) - { - TApaTaskList taskList(CCSXHAppUi::GetInstance()->GetWsSession()); - TApaTask task = taskList.FindApp(KUidBrowserApplication); - if(task.Exists()) - { - // 8-bit buffer is required. - HBufC8* param8 = HBufC8::NewLC( aUrl->Length() ); - param8->Des().Copy( *aUrl ); - task.SendMessage( TUid::Uid( 0 ), *param8 ); // Uid is not used - CleanupStack::PopAndDestroy( param8 ); - return ETrue; - } - else - return EFalse; - } - -void AppLauncherForCSXH::StartTimer(TCallBack aCallBack) - { - if( iTimer->IsActive() ) - { - iTimer->Cancel(); - } - - iTimer->Start( - TTimeIntervalMicroSeconds32( KKeyBlockTime ), - TTimeIntervalMicroSeconds32( KKeyBlockTime ), - aCallBack ); - } diff -r 0d1adf67ec1b -r 12f60d9a73b3 csxhelp/src/CSXH.cpp --- a/csxhelp/src/CSXH.cpp Thu Aug 19 09:42:56 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,66 +0,0 @@ -/* -* 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: -* -*/ - - -#include "CSXHApplication.h" -#include - -#ifdef __UI_FRAMEWORKS_V2__ - -// Create an application, and return a pointer to it -CApaApplication* NewApplication() - { - return new CCSXHApplication; - } - -TInt E32Main() - { - return EikStart::RunApplication(NewApplication); - } - -/////////////////////////////////////////////////////////////////////////////// -// -// The following is required for wins on EKA1 (using the exedll target) -// -#if defined(__WINS__) && !defined(EKA2) -EXPORT_C TInt WinsMain(TDesC* aCmdLine) - { - return EikStart::RunApplication(NewApplication, aCmdLine); - } - -TInt E32Dll(TDllReason) - { - return KErrNone; - } -#endif - -#else // __UI_FRAMEWORKS_V2__ - -// Create an application, and return a pointer to it -EXPORT_C CApaApplication* NewApplication() - { - return new CCSXHApplication; - } - -// DLL entry point, return that everything is ok -GLDEF_C TInt E32Dll(TDllReason) - { - return KErrNone; - } - -#endif // __UI_FRAMEWORKS_V2__ - diff -r 0d1adf67ec1b -r 12f60d9a73b3 csxhelp/src/CSXHAppUi.cpp --- a/csxhelp/src/CSXHAppUi.cpp Thu Aug 19 09:42:56 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,565 +0,0 @@ -/* -* 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 definition -* -*/ - - -#include "CSXHAppUi.h" -#include "CSXHGenericView.h" -#include "CSXHHtmlTopicView.h" -#include "CSXHLegacyTopicView.h" -#include "CsHelp.hrh" -#include -#include "CSXHAppUi.h" -#include "CSXHDocument.h" - -#include "CSXHHelpDataBase.h" -#include "CSXHViewIDs.h" - -#include -#include -#include -#include -#include -#include - -#include "csxhconstants.h" - -#ifdef FF_HELP_TUTORIAL_MERGE -#include - -#if defined(_DEBUG) && defined(__WINS__) -#include -#include -_LIT(KLogDir, "csxh"); -_LIT(KLogFile, "csxh.txt"); -inline void FPrint(const TRefByValue aFmt, ...) - { - VA_LIST list; - VA_START(list,aFmt); - RFileLogger::WriteFormat(KLogDir, KLogFile, EFileLoggingModeAppend, aFmt, list); - } -#define FLOG(a) {FPrint(a);} -#define FLOGF FPrint -#else //_DEBUG -#define FLOG(a) -#define FLOGF -#endif //_DEBUG -#endif // FF_HELP_TUTORIAL_MERGE -CCSXHAppUi* CCSXHAppUi::iInstance = NULL; - -// ConstructL is called by the application framework -void CCSXHAppUi::ConstructL() - { -#ifndef __SERIES60_30__ - BaseConstructL(EAknEnableSkin | EAknEnableMSK | EAknSingleClickCompatible ); -#else - BaseConstructL(EAknEnableSkin); -#endif - -#ifdef FF_HELP_TUTORIAL_MERGE - LoadTutorialService(); -#endif // FF_HELP_TUTORIAL_MERGE - SetKeyEventFlags( CAknAppUiBase::EDisableSendKeyShort | CAknAppUiBase::EDisableSendKeyLong ); - iTOC1View = CCSXHGenericView::NewL(KCSXHToc1ViewID,R_CSXH_TOC1); - AddViewL(iTOC1View); - - iTOC2View = NULL; - iKywdTOC1View = NULL; - iKywdTOC2View = NULL; - iHtmlTopicView = NULL; - iLegacyTopicView = NULL; - iLegacyContextTopicView = NULL; - iAppHelpsTOC1View = NULL; - iAppHelpsTOC2View = NULL; - - SetDefaultViewL(*iTOC1View); - - iRuntimeWatcher = CCSXHRuntimeAppWatcher::NewL(); - iRuntimeWatcher->SetObserver( this ); - iRuntimeWatcher->Start(); -#ifdef _DEBUG - RDebug::Print( _L("Help app launched") ); -#endif - } - -CCSXHAppUi::CCSXHAppUi() - { - iInstance = this; - } - -CCSXHAppUi::~CCSXHAppUi() - { -#ifdef FF_HELP_TUTORIAL_MERGE - - if(iServiceHandler) - { - delete iServiceHandler; - } - -#endif // FF_HELP_TUTORIAL_MERGE -#ifdef _DEBUG - RDebug::Print(_L("Help app ended")); -#endif - if ( iRuntimeWatcher ) - delete iRuntimeWatcher; - - } - -// -------------------------------------------------------------------------- -// Message Handler -// -------------------------------------------------------------------------- -void CCSXHAppUi::HandleCommandL(TInt aCommand) - { - switch(aCommand) - { - case EEikCmdExit: - case EAknSoftkeyExit: - case EAknSoftkeyClose: - Exit(); - break; - - case ECSXHOpenTopicText: - case ECSXHOpenItemPropagated: - case ECSXHOpenItem: - { - CAknInputBlock* inputBlock = CAknInputBlock::NewLC(); - ActivateDisplayTopicViewL(); - CleanupStack::PopAndDestroy( inputBlock ); - } - break; - case ECSXHSearchText: - { - CCSXHDocument* doc = static_cast(Document()); - doc->SetDisplayTopic(doc->GetHelpDataBase()->GetKywdTopics()); - ActivateDisplayTopicViewL(); - } - break; - default: - break; - } - } -void CCSXHAppUi::InitDisplayTopicViewL(TUid aViewID) - { - if(aViewID == KCSXHToc1ViewID) - return; - - - if(aViewID == KCSXHContextLegacyTopicViewID && iLegacyContextTopicView == NULL) - { - iLegacyContextTopicView = CCSXHLegacyTopicView::NewL (KCSXHContextLegacyTopicViewID, - R_CSHELP_TOPICFORCONTEXT, - ClientRect()); - AddViewL(iLegacyContextTopicView); - } - else if(aViewID == KCSXHToc2ViewID && iTOC2View == NULL) - { - iTOC2View = CCSXHGenericView::NewL(KCSXHToc2ViewID,R_TOPICLIST); - AddViewL(iTOC2View); - } - else if(aViewID == KCSXHToc2AppHelpsViewID && iAppHelpsTOC2View == NULL) - { - iAppHelpsTOC2View = CCSXHGenericView::NewL(KCSXHToc2AppHelpsViewID,R_TOPICLIST); - AddViewL(iAppHelpsTOC2View); - } - else if(aViewID == KCSXHKywdToc1ViewID && iKywdTOC1View == NULL) - { - iKywdTOC1View = CCSXHGenericView::NewL(KCSXHKywdToc1ViewID,R_KYWDTOC1LIST); - AddViewL(iKywdTOC1View); - } - else if(aViewID == KCSXHKywdToc2ViewID && iKywdTOC2View == NULL) - { - iKywdTOC2View = CCSXHGenericView::NewL(KCSXHKywdToc2ViewID,R_KYWDTOC2LIST); - AddViewL(iKywdTOC2View); - } - else if(aViewID == KCSXHLegacyTopicViewID && iLegacyTopicView == NULL) - { - iLegacyTopicView = CCSXHLegacyTopicView::NewL(KCSXHLegacyTopicViewID, - R_TOPICTEXTLIST,ClientRect()); - AddViewL(iLegacyTopicView); - } - - else if(aViewID == KCSXHContextHtmlTopicViewID ) - { - if(!iHtmlTopicView) - { - iHtmlTopicView = CCSXHHtmlTopicView::NewL(KCSXHHtmlTopicViewID, - R_CSHELP_HTMLTOPICFORCONTEXT, - ClientRect()); - AddViewL(iHtmlTopicView); - } - else - { - //View is already created update the softkeys to Options and Close - iHtmlTopicView->SetViewTypeL(CCSXHHtmlTopicView::EContextHtmlView); - } - } - else if(aViewID == KCSXHHtmlTopicViewID ) - { - if(!iHtmlTopicView) - { - iHtmlTopicView = CCSXHHtmlTopicView::NewL(KCSXHHtmlTopicViewID, - R_CSHELP_HTMLTOPICVIEW, - ClientRect()); - AddViewL(iHtmlTopicView); - } - else - { - //View is already created update the softkeys to Options and Back - iHtmlTopicView->SetViewTypeL(CCSXHHtmlTopicView::EHtmlView); - } - } - else if ( aViewID == KCSXHToc1AppHelpsViewID && !iAppHelpsTOC1View ) - { - iAppHelpsTOC1View = CCSXHGenericView::NewL( KCSXHToc1AppHelpsViewID, R_TOPICLIST ); - AddViewL( iAppHelpsTOC1View ); - } - } -// -------------------------------------------------------------------------- -// Activates the view corresponding to the topic to be displayed -// It also sets for recreating the container dending on the view to be -// activated, -// 1) Search Pane in Search Result View will be cleared if user -// opens the Search View. -// 2)Search Pane in Application Topics view will be cleared, if user opens -// a)Help Contents View -// b)Search View -// c)Context Senisitive view -// -------------------------------------------------------------------------- -void CCSXHAppUi::ActivateDisplayTopicViewL() - { - CCSXHDocument* doc = static_cast(Document()); - TUid viewId = doc->GetDisplayTopic()->GetViewID(); - InitDisplayTopicViewL(viewId); - - if(viewId == KCSXHKywdToc1ViewID ) - { - if(iKywdTOC2View) - iKywdTOC2View->ResetContainer(); - if(iTOC2View) - iTOC2View->ResetContainer(); - if (iAppHelpsTOC2View) - iAppHelpsTOC2View->ResetContainer(); - } - else if(viewId == KCSXHToc1ViewID || - viewId == KCSXHContextHtmlTopicViewID || - viewId == KCSXHContextLegacyTopicViewID || - viewId == KCSXHToc1AppHelpsViewID) - { - if(iTOC2View) - iTOC2View->ResetContainer(); - if (iAppHelpsTOC2View) - iAppHelpsTOC2View->ResetContainer(); - } -/* else if(viewId == KCSXHKywdToc1ViewID) - { - doc->InitProgressBarL(); - } -*/ - if(viewId == KCSXHContextHtmlTopicViewID) - viewId = KCSXHHtmlTopicViewID; - ActivateLocalViewL(viewId); - } -void CCSXHAppUi::HandleForegroundEventL(TBool aForeground) - { - // Call Base class method - CAknAppUi::HandleForegroundEventL(aForeground); - - if(!aForeground && iView && - iView->Id() != KCSXHHtmlTopicViewID - && iHtmlTopicView) - { - //put NUll first in for bug ESXU-7JA9NS - iHtmlTopicView = NULL; - // We have lost the focus - //Check if the HTML view is the last active view. If it not delete it - //to free the memory used by the browser control - RemoveView(KCSXHHtmlTopicViewID); - //delete iHtmlTopicView; - } - } -// -------------------------------------------------------------------------- -// It sets a flag in the View for recreating the container -// -------------------------------------------------------------------------- -void CCSXHAppUi::ResetTOC2ViewContainer() - { - if(iTOC2View) - iTOC2View->ResetContainer(); - } -// -------------------------------------------------------------------------- -// Context sensitive help launch handling. Help is not running -// -------------------------------------------------------------------------- -TBool CCSXHAppUi::ProcessCommandParametersL(TApaCommand aCommand, - TFileName& /* aDocumentName */, - const TDesC8& aTail) - { - if (aCommand == EApaCommandOpen) - { // when another app launches the help app - HandleContextSensitiveLaunchL(aTail); - } - return EFalse; - } - -// -------------------------------------------------------------------------- -// Context sensitive help launch handling. Help is already running -// -------------------------------------------------------------------------- -MCoeMessageObserver::TMessageResponse CCSXHAppUi::HandleMessageL( - TUint32 aClientHandleOfTargetWindowGroup, - TUid aMessageUid, - const TDesC8& aMessageParameters) - { - if (aMessageUid == KHlpAppWsMsg) - { - HandleContextSensitiveLaunchL(aMessageParameters); - return EMessageHandled; - } - return CAknViewAppUi::HandleMessageL(aClientHandleOfTargetWindowGroup, - aMessageUid, - aMessageParameters); - } - -// -------------------------------------------------------------------------- -// Opens the context topic. If no topic is avbl then toc1 view is activated -// -------------------------------------------------------------------------- -void CCSXHAppUi::HandleContextSensitiveLaunchL(const TDesC8& aContext ) - { - CCSXHDocument* doc = static_cast(Document()); - - if(doc->SetContextTopicAsDisplayTopicL(aContext)) - { - TRAPD(res,ActivateDisplayTopicViewL()); - if(res == KErrNone) - return; - } - - //No topic avaliable, activate the TOC1 View & Pop a message - doc->SetDisplayTopic(doc->GetHelpDataBase()->GetMainTopics()); - ActivateDisplayTopicViewL(); - -// HBufC* ErrorMessage = iCoeEnv->AllocReadResourceLC(R_TYPE_NO_HELP_TOPICS); -// CAknGlobalNote* note = CAknGlobalNote::NewLC(); -// note->ShowNoteL(EAknGlobalInformationNote, *ErrorMessage); - -// CleanupStack::PopAndDestroy(note); -// CleanupStack::PopAndDestroy(ErrorMessage); - } - -CCSXHAppUi* CCSXHAppUi::GetInstance() - { - return iInstance; - } -RWsSession& CCSXHAppUi::GetWsSession() - { - return iInstance->iCoeEnv->WsSession(); - } -CCoeEnv* CCSXHAppUi::GetCoeEnv() - { - return iInstance->iCoeEnv; - } - -// -------------------------------------------------------------------------- -// Launches an application based on the Application UID and a View ID -// -------------------------------------------------------------------------- -void CCSXHAppUi::AppLaunchL(TInt32& aAppId,TInt32& aVId) - { - //Convert from TInt to TUid - TUid KtestAppUid( TUid::Uid( aAppId ) ); - TUid KtestViewUid( TUid::Uid( aVId ) ); - - //Launch Application - TVwsViewId AppLaunch(KtestAppUid,KtestViewUid); - ActivateViewL(AppLaunch); - } - -// -------------------------------------------------------------------------- -// Launches an application based on the Application UID and a View ID -// -------------------------------------------------------------------------- -void CCSXHAppUi::AppLaunchL(TInt32& aAppId,TInt32& aVId, - TInt32& aMsgId, - const TBuf& aParams) - { - //Convert from TInt to TUid - TUid AplnUid( TUid::Uid( aAppId ) ); - TUid AplnViewUid( TUid::Uid( aVId ) ); - TUid MsgUid( TUid::Uid( aMsgId ) ); - - //Launch Application - TVwsViewId AppLaunch(AplnUid,AplnViewUid); - - HBufC8* params = CnvUtfConverter::ConvertFromUnicodeToUtf8L(aParams); - CleanupStack::PushL(params); - ActivateViewL(AppLaunch,MsgUid,*params); - CleanupStack::PopAndDestroy(params); - } - -void CCSXHAppUi::PropagateResourceChange(TInt aType) - { - iTOC1View->ResourceChangeHdl(aType); - if(iKywdTOC1View) - iKywdTOC1View->ResourceChangeHdl(aType); - if(iKywdTOC2View) - iKywdTOC2View->ResourceChangeHdl(aType); - if(iTOC2View) - iTOC2View->ResourceChangeHdl(aType); - if (iAppHelpsTOC2View) - iAppHelpsTOC2View->ResourceChangeHdl(aType); - if (iAppHelpsTOC1View) - iAppHelpsTOC1View->ResourceChangeHdl(aType); - if(iHtmlTopicView) - iHtmlTopicView->ResourceChangeHdl(aType); - if(iLegacyTopicView) - iLegacyTopicView->ResourceChangeHdl(aType); - if(iLegacyContextTopicView) - iLegacyContextTopicView->ResourceChangeHdl(aType); - } - -void CCSXHAppUi::RuntimeUpdateIndex() - { - CAknNoteDialog* dlg = new CAknNoteDialog(); - if (dlg != NULL) - { - dlg->SetTimeout( CAknNoteDialog::EShortTimeout ); - dlg->SetTone( CAknNoteDialog::ENoTone ); - TRAP_IGNORE(dlg->ExecuteLD(R_CSHELP_INSTALL_UNINSTALL_NOTE)); - } - } - - -#ifdef FF_HELP_TUTORIAL_MERGE -// -------------------------------------------------------------------------- -// CCSXHAppUi::NewParamListLC -// Create paramlist for provider. -// -------------------------------------------------------------------------- -CAiwGenericParamList* CCSXHAppUi::NewParamListLC( - const TCoeHelpContext& aContext) - { - TAiwVariant variant1; - TAiwVariant variant2; - variant1.Set(aContext.iMajor); - TAiwGenericParam param1(EGenericParamHelpItem, variant1); - variant2.Set(aContext.iContext); - TAiwGenericParam param2(EGenericParamHelpItem, variant2); - CAiwGenericParamList* list = CAiwGenericParamList::NewLC(); - list->AppendL(param1); - list->AppendL(param2); - return list; - } - -// -------------------------------------------------------------------------- -// CCSXHAppUi::LoadTutorialService -// Load service handler and attach interest for using tutorial service command. -// -------------------------------------------------------------------------- -void CCSXHAppUi::LoadTutorialServiceL() - { - iServiceHandler = CAiwServiceHandler::NewL(); - - // Create AIW interest - RCriteriaArray interest; - - iServiceHandler->AttachL(R_AIWTUTORIALAPP_INTEREST); - - //Tutorial AIW provider exists or not - iTutorialExists = EFalse; - iServiceHandler->GetInterest(interest); - if(interest.Count() > 0) - { - FLOGF(_L("CCSXHAppUi::LoadTutorialService() - interest.Count()=%d"), interest.Count()); - CAiwCriteriaItem* testCriteria = interest[0]; - if(iServiceHandler->NbrOfProviders(interest[0]) > 0) - { - FLOGF(_L("CCSXHAppUi::LoadTutorialService() - NbrOfProviders()=%d"), iServiceHandler->NbrOfProviders(interest[0])); - iTutorialExists = ETrue; - } - } - interest.Close(); - } - -// -------------------------------------------------------------------------- -// CCSXHAppUi::CallTutorialAiwProviderL -// If tutorial exists,call play presentation command. -// -------------------------------------------------------------------------- -void CCSXHAppUi::CallTutorialAiwProviderL() - { - CAiwGenericParamList* inlist = NewParamListLC( iTCoeHelpContext ); - - iServiceHandler->ExecuteServiceCmdL( KPlayPresentation, - *inlist, - iServiceHandler->OutParamListL() ); - CleanupStack::PopAndDestroy(); //inlist - } - -// -------------------------------------------------------------------------- -// CCSXHAppUi::IsApplicationPresentInTutorialL -// If tutorial exists,identify the presentation needed exist or not. -// -------------------------------------------------------------------------- -TBool CCSXHAppUi::IsApplicationPresentInTutorialL() - { - TBool Result = EFalse; - //__ASSERT_DEBUG( iTutorialExists, User::Panic(_L("TutAiwHlp"),-1)); - if(iTutorialExists ) - { - CAiwGenericParamList* inlist = NewParamListLC(iTCoeHelpContext) ; - - CAiwGenericParamList* outlist = CAiwGenericParamList::NewLC(); - - TUid maj = iTCoeHelpContext.iMajor; - TCoeContextName con = iTCoeHelpContext.iContext; - - FLOGF(_L("CCSXHAppUi::IsApplicationPresentInTutorialL() - 0x%08x %S"),maj,&con); - - //checks if the application specific presentation exists. - //Parameter list inlist must contain AppUid which refers to presentation. - // The other parameters are not used. - //The result is returned in outlist parameter list. - //First parameter in the outlist contains ETrue if there is presentation - //available and EFalse if there is not. - iServiceHandler->ExecuteServiceCmdL( KPresentationExists, - *inlist, *outlist ); - - FLOG(_L("CCSXHAppUi::IsApplicationPresentInTutorialL() - cp-1")); - - //__ASSERT_DEBUG( outlist->Count() > 0, User::Panic(_L("TutAiwHlpO"),-1)); - __ASSERT_DEBUG(outlist->Count(), User::Panic(_L("outlist"),0)); - - FLOG(_L("CCSXHAppUi::IsApplicationPresentInTutorialL() - cp-2")); - if( outlist->Count() > 0) - { - FLOG(_L("CCSXHAppUi::IsApplicationPresentInTutorialL() - cp-2.4")); - TAiwGenericParam param = (*outlist)[0]; - TAiwVariant variant = param.Value(); - TInt32 val(0); - - if(variant.Get(val) && val) - { - Result = ETrue; - } - FLOG(_L("CCSXHAppUi::IsApplicationPresentInTutorialL() - cp-3")); - __ASSERT_DEBUG( variant.Get(val) && val, User::Panic(_L("TutAiwHlpV"),-1)); - } - CleanupStack::PopAndDestroy(); //outlist - CleanupStack::PopAndDestroy(); //inlist - } - return Result; - } - -// -------------------------------------------------------------------------- -// CCSXHAppUi::SetHelpContext -// If tutorial exists,identify the presentation needed exist or not. -// -------------------------------------------------------------------------- -void CCSXHAppUi::SetHelpContext(TCoeHelpContext aTCoeHelpContext) - { - iTCoeHelpContext = aTCoeHelpContext; - } -#endif // FF_HELP_TUTORIAL_MERGE diff -r 0d1adf67ec1b -r 12f60d9a73b3 csxhelp/src/CSXHApplication.cpp --- a/csxhelp/src/CSXHApplication.cpp Thu Aug 19 09:42:56 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,37 +0,0 @@ -/* -* 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: CCSXHApplication class definition -* -*/ - - -#include "CSXHDocument.h" -#include "CSXHApplication.h" - -// UID for the application, this should correspond to the uid defined in the mmp file -static const TUid KUidCSXHApp = {0x10005234}; - -CApaDocument* CCSXHApplication::CreateDocumentL() - { - // Create an CSXH document, and return a pointer to it - CApaDocument* document = CCSXHDocument::NewL(*this); - return document; - } - -TUid CCSXHApplication::AppDllUid() const - { - // Return the UID for the CSXH application - return KUidCSXHApp; - } - diff -r 0d1adf67ec1b -r 12f60d9a73b3 csxhelp/src/CSXHDocument.cpp --- a/csxhelp/src/CSXHDocument.cpp Thu Aug 19 09:42:56 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,181 +0,0 @@ -/* -* 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 definition -* -*/ - - -#include "CSXHDocument.h" -#include "CSXHAppUi.h" - -#include "CSXHHelpDataBase.h" -#include "CSXHKywdTOC1.h" -#include "CSXHViewIDs.h" -#include - -#include -#include - - -// Standard Symbian OS construction sequence -CCSXHDocument* CCSXHDocument::NewL(CEikApplication& aApp) - { - CCSXHDocument* self = NewLC(aApp); - CleanupStack::Pop(self); - return self; - } - -CCSXHDocument* CCSXHDocument::NewLC(CEikApplication& aApp) - { - CCSXHDocument* self = new (ELeave) CCSXHDocument(aApp); - CleanupStack::PushL(self); - return self; - } - -CCSXHDocument::CCSXHDocument(CEikApplication& aApp) : CAknDocument(aApp) - {// no implementation required - } - -CCSXHDocument::~CCSXHDocument() - { - delete iHelpDataBase; - } - -CEikAppUi* CCSXHDocument::CreateAppUiL() - { - // Create the application user interface, and return a pointer to it, - // the framework takes ownership of this object. ConstructL of the AppUi - // object will be called by the Application Framework - iHelpAppUi = new (ELeave) CCSXHAppUi; - - HBufC* appToc = CCSXHAppUi::GetCoeEnv()->AllocReadResourceLC( R_CSHELP_TOC_APP_HELPS ); - iHelpDataBase = CCSXHHelpDataBase::NewL(CCSXHAppUi::GetCoeEnv(),AppCaption(), *appToc); - CleanupStack::PopAndDestroy( appToc ); - - iDisplayTopic = iHelpDataBase->GetMainTopics(); - iPrevTopic = NULL; - - iProgressDialog = NULL; - - return iHelpAppUi; - } -// -------------------------------------------------------------------------- -// Sets the topic to be displayed next -// -------------------------------------------------------------------------- -void CCSXHDocument::SetDisplayTopic(CCSXHHelpContentBase* aDisplayTopic) - { - iDisplayTopic = aDisplayTopic; - iPrevTopic = NULL; - - if(iDisplayTopic == NULL) - iDisplayTopic = iHelpDataBase->GetMainTopics(); - } -// -------------------------------------------------------------------------- -// Sets the topic to be displayed next and the previous topic -// The previous topic is needed to highlight the correct item in the listbox -// -------------------------------------------------------------------------- -void CCSXHDocument::SetDisplayAndPrevTopic(CCSXHHelpContentBase* aDisplayTopic) - { - iPrevTopic = iDisplayTopic; - iDisplayTopic = aDisplayTopic; - - if(iDisplayTopic == NULL) - iDisplayTopic = iHelpDataBase->GetMainTopics(); - - } - -void CCSXHDocument::SendMessageToAppUiL(TInt aCommand) - { - iHelpAppUi->ProcessCommandL(aCommand); - } - -// -------------------------------------------------------------------------- -// Sets the context topic as the next topic to be displayed -// -------------------------------------------------------------------------- -TBool CCSXHDocument::SetContextTopicAsDisplayTopicL(const TDesC8& aContextMessage) - { - CCSXHHelpContentBase* topic = iHelpDataBase->GetContextTopic(aContextMessage); - if(topic) - { - SetDisplayTopic(topic); - return ETrue; - } - return EFalse; - } -CCSXHHelpContentBase* CCSXHDocument::GetHtmlTopicForUrlL(const TDesC& url) - { - return iHelpDataBase->GetHtmlTopicForUrlL(url); - } - -void CCSXHDocument::InitProgressBarL() - { - - iProgressDialog = new(ELeave)CAknProgressDialog( - REINTERPRET_CAST(CEikDialog**,&iProgressDialog)); - iProgressDialog->PrepareLC(R_CSHELP_SEARCH_PROGRESS_NOTE); - - CEikProgressInfo* pBar = iProgressDialog->GetProgressInfoL(); - iTotalKeywordsInResultView = iHelpDataBase->InitGenerateKeywordTOC2ListL( - STATIC_CAST(CCSXHKywdTOC1*,iDisplayTopic)); - pBar->SetFinalValue(iTotalKeywordsInResultView); - iIdle = CIdle::NewL(CActive::EPriorityLow); - TCallBack callback(CallBack, this); - iIdle->Start(callback); - iProgressDialog->RunDlgLD(CAknNoteDialog::ENoTone); - } - -void CCSXHDocument::FreeProgressBarL() - { - delete iIdle; - iIdle = NULL; - if(iProgressDialog) - { - iProgressDialog->ProcessFinishedL(); - iProgressDialog = NULL; - } - } - -TInt CCSXHDocument::CallBack(TAny* aThis) - { - TInt err(KErrNone); - TBool res(EFalse); - CCSXHDocument* self = STATIC_CAST(CCSXHDocument*, aThis); - TRAP( err, res = self->DoCallBackL() ); - if(err != KErrNone ) - { - TRAP_IGNORE(self->FreeProgressBarL()); - } - return res; - } -TBool CCSXHDocument::DoCallBackL() - { - if(!iProgressDialog) - { - delete iIdle; - iIdle = NULL; - return EFalse; - } - - CEikProgressInfo* pBar= iProgressDialog->GetProgressInfoL(); - pBar->SetAndDraw(iHelpDataBase->GetKeywordSearchCount()); - - if(iHelpDataBase->GetKeywordSearchCount() >= iTotalKeywordsInResultView) - { - FreeProgressBarL(); - return EFalse; - } - - return ETrue; - } - diff -r 0d1adf67ec1b -r 12f60d9a73b3 csxhelp/src/CSXHGenericContainer.cpp --- a/csxhelp/src/CSXHGenericContainer.cpp Thu Aug 19 09:42:56 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,383 +0,0 @@ -/* -* 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: CCSXHGenericContainer class definition -* -*/ - - -#include "CSXHGenericContainer.h" -#include "CSXHGenericView.h" -#include "CSXHDocument.h" -#include "CSXHAppUi.h" -#include "CSXHHelpDataBase.h" -#include "CSXHGenericTOC1.h" -#include "CSXHGenericTOC2.h" - -#ifdef FF_HELP_TUTORIAL_MERGE -#include "CSXHHtmlTOC2.h" -#endif - -#include "CsHelp.hrh" -#include "csxhconstants.h" - -#include "CSXHViewIDs.h" -#include -#include -#include -#include - -const TInt KFindNameLength = 40; -const TInt KComponentCount = 2; - -#ifdef FF_HELP_TUTORIAL_MERGE -CCSXHGenericContainer* CCSXHGenericContainer::NewL(const TRect& aRect,CCSXHDocument& aDocument,CCSXHGenericView* aView) - { - CCSXHGenericContainer* self = CCSXHGenericContainer::NewLC(aRect,aDocument,aView); - CleanupStack::Pop(self); - return self; - } -#else -CCSXHGenericContainer* CCSXHGenericContainer::NewL(const TRect& aRect,CCSXHDocument& aDocument) - { - CCSXHGenericContainer* self = CCSXHGenericContainer::NewLC(aRect,aDocument); - CleanupStack::Pop(self); - return self; - } -#endif - -#ifdef FF_HELP_TUTORIAL_MERGE -CCSXHGenericContainer* CCSXHGenericContainer::NewLC(const TRect& aRect,CCSXHDocument& aDocument,CCSXHGenericView* aView) - { - CCSXHGenericContainer* self = new(ELeave) CCSXHGenericContainer(aDocument,aView); - CleanupStack::PushL(self); - self->ConstructL(aRect); - return self; - } -#else -CCSXHGenericContainer* CCSXHGenericContainer::NewLC(const TRect& aRect,CCSXHDocument& aDocument) - { - CCSXHGenericContainer* self = new(ELeave) CCSXHGenericContainer(aDocument); - CleanupStack::PushL(self); - self->ConstructL(aRect); - return self; - } -#endif - -#ifdef FF_HELP_TUTORIAL_MERGE -CCSXHGenericContainer::CCSXHGenericContainer(CCSXHDocument& aDocument,CCSXHGenericView* aView) : -iDocument(aDocument),iView(aView) -#else -CCSXHGenericContainer::CCSXHGenericContainer(CCSXHDocument& aDocument) : iDocument(aDocument) -#endif - {//No implementation required - } - -CCSXHGenericContainer::~CCSXHGenericContainer() - { - delete iListBox; - delete iFindPane; - } - -void CCSXHGenericContainer::ConstructL(const TRect& aRect) - { - CreateWindowL(); - - CreateAndPopulateListL(); - - iListBox->SetListBoxObserver(this); - SetRect(aRect); - ActivateL(); - } -// -------------------------------------------------------------------------- -// Does the following -// 1) Creates and populates the listbox -// 2) Highlights an item in the listbox -// 3) Check for MSK -// -------------------------------------------------------------------------- -void CCSXHGenericContainer::CreateAndPopulateListL() - { - // First phase construction - iListBox = new (ELeave) CAknSingleStyleListBox; - iListBox->SetContainerWindowL(*this); - - iListBox->ConstructL(this, 0); - iListBox->CreateScrollBarFrameL(ETrue); - iListBox->ScrollBarFrame()->SetScrollBarVisibilityL( - CEikScrollBarFrame::EOff, - CEikScrollBarFrame::EAuto); - iListBox->ItemDrawer()->ColumnData()->EnableMarqueeL(ETrue); - - CTextListBoxModel* model = iListBox->Model(); // not taking ownership - model->SetOwnershipType (ELbmOwnsItemArray); - CDesCArray* testArray = STATIC_CAST(CDesCArray*, model->ItemTextArray()); - - CCSXHGenericTOC1* displayTopic = STATIC_CAST(CCSXHGenericTOC1*,iDocument.GetDisplayTopic()); - - displayTopic->FillChildDataL(testArray); - - //Find panel Begin - CAknSearchField::TSearchFieldStyle flags(CAknSearchField::ESearch); - iFindPane = CAknSearchField::NewL(*this, flags, - NULL,KFindNameLength); - - STATIC_CAST(CAknFilteredTextListBoxModel*, iListBox->Model()) - ->CreateFilterL(iListBox, iFindPane); - - STATIC_CAST(CAknFilteredTextListBoxModel*, iListBox->Model()) - ->Filter()->HandleOfferkeyEventL(); - //Corrections to TSW Error: KMAI-6WNACA with New UI CR: EVIA-6XAJ46 - if (FeatureManager::FeatureSupported(KFeatureIdJapanese) && - (User::Language() == ELangJapanese)) - { - iFindPane->Editor().SetAknEditorInputMode(EAknEditorHiraganaKanjiInputMode); - } - else - { - iFindPane->Editor().SetAknEditorCurrentInputMode(EAknEditorTextInputMode); - } - - HightLightItemL(); - } - -void CCSXHGenericContainer::HandleListBoxEventL(CEikListBox* /*aListBox*/, TListBoxEvent aListBoxEvent) - { - switch ( aListBoxEvent ) - { - case MEikListBoxObserver::EEventEnterKeyPressed: - case MEikListBoxObserver::EEventItemSingleClicked: -#ifdef FF_HELP_TUTORIAL_MERGE - if(IsShowTutorialItemSelectedL()) - { - CCSXHAppUi::GetInstance()->CallTutorialAiwProviderL(); - } - else - -#endif - { - iDocument.SendMessageToAppUiL( ECSXHOpenItemPropagated ); - } - - break; - default: - break;// do nothing with the rest of the events - } - } - -void CCSXHGenericContainer::SizeChanged() - { - iListBox->SetRect(Rect()); - AknFind::HandleFixedFindSizeChanged(this, iListBox, iFindPane); - } - -void CCSXHGenericContainer::FocusChanged(TDrawNow aDrawNow) - { - if (iListBox) - { - iListBox->SetFocus(IsFocused(), aDrawNow); - } - if ( iFindPane ) - { - iFindPane->SetFocus( IsFocused(), aDrawNow ); - } - } - -TInt CCSXHGenericContainer::CountComponentControls() const - { - return KComponentCount; - } - -CCoeControl* CCSXHGenericContainer::ComponentControl(TInt aIndex) const - { - switch (aIndex) - { - case 0: - return iListBox; - case 1: - return iFindPane; - default: - return NULL; - } - } - -void CCSXHGenericContainer::Draw(const TRect& aRect) const - { - CWindowGc& gc = SystemGc(); - gc.Clear(aRect); - } - -TKeyResponse CCSXHGenericContainer::OfferKeyEventL(const TKeyEvent& aKeyEvent,TEventCode aType) - { - TKeyResponse result(EKeyWasNotConsumed); - - TBool needRefresh; - result = AknFind::HandleFindOfferKeyEventL(aKeyEvent, aType, - this, iListBox, iFindPane, EFalse, needRefresh); - CheckForMSK(); - if (result == EKeyWasNotConsumed) - { - result = iListBox->OfferKeyEventL (aKeyEvent, aType); - } - return result; - } - -void CCSXHGenericContainer::HandleResourceChange(TInt aType) - { - CCSXHAppUi::GetInstance()->PropagateResourceChange(aType); - - if (KAknSplitInputEnabled == aType || KAknSplitInputDisabled == aType) - { - // Bug fixing, SetFocus can't be called with these aType, it will lead to infinite loop in fep. - return; - } - - if ( IsFocused() ) - { - SetFocus( IsFocused(), EDrawNow ); - } - - } - -void CCSXHGenericContainer::HandleResourceChangeImpl(TInt aType) - { - if (aType == KEikDynamicLayoutVariantSwitch) - { - iListBox->HandleResourceChange(aType); - TRect mainRect; - SizeChanged(); - TRect statusPaneRect; - AknLayoutUtils::LayoutMetricsRect(AknLayoutUtils::EMainPane,mainRect); - SetRect(mainRect); - DrawNow(); - } - else - { - CCoeControl::HandleResourceChange(aType); - } - } -// -------------------------------------------------------------------------- -// Sets the next topic to be displayed based on the selected item -// -------------------------------------------------------------------------- -void CCSXHGenericContainer::SetDisplayTopicL() - { - TInt index = iListBox->CurrentItemIndex(); - if(KErrNotFound == index) - return; - - TBuf selectedTOC2 = iListBox->Model()->ItemText(index); - selectedTOC2 = selectedTOC2.Mid(1); - - CCSXHGenericTOC1* displayTopic = STATIC_CAST(CCSXHGenericTOC1*,iDocument.GetDisplayTopic()); - if( displayTopic->GetChildL(selectedTOC2) ) - { - iDocument.SetDisplayAndPrevTopic(displayTopic->GetChildL(selectedTOC2)); - } - } - -TInt CCSXHGenericContainer::GetNumberOfListItems() - { - return iListBox->Model()->NumberOfItems(); - } - -void CCSXHGenericContainer::SetCurrentView(CCSXHGenericView* aView) - { - iView = aView; - } - -void CCSXHGenericContainer::HightLightItemL() - { - CCSXHHelpContentBase* prevTopic = iDocument.GetPrevTopic(); - if(!prevTopic) - return; - - TInt visibleItemcount = GetNumberOfListItems(); - for (TInt index = 0; index < visibleItemcount ; ++index ) - { - TBuf txt = iListBox->Model()->ItemText(index); - txt = txt.Mid(1);//remove the '/t' - if(txt.Compare(prevTopic->GetName()) == 0) - { - if(iListBox->CurrentItemIndex() != index) - iListBox->SetCurrentItemIndex(index); - return; - } - } - } - -void CCSXHGenericContainer::CheckForMSK() - { -#ifndef __SERIES60_30__ - if(AknLayoutUtils::MSKEnabled()) - { - if(iListBox->Model()->NumberOfItems()) - { - iView->SetMiddleSoftKey(ETrue); - } - else - { - iView->SetMiddleSoftKey(EFalse); - } - } -#endif - } - -#ifdef FF_HELP_TUTORIAL_MERGE -// -------------------------------------------------------------------------- -// CCSXHAppUi::IsShowTutorialItemSelectedL -// If the selected item is a tutorial item. -// -------------------------------------------------------------------------- -TBool CCSXHGenericContainer::IsShowTutorialItemSelectedL() - { - TBool bShowTutorial = EFalse; - //TODO: - // if keyword page supported tutorial, the comments should be opened - if( 0 != GetNumberOfListItems /*&& KCSXHKywdToc2ViewID != iView->Id() */) - { - TInt index = iListBox->CurrentItemIndex(); - if(KErrNotFound == index) - return bShowTutorial; - //Get Next View - TBuf selectedTOC2 = iListBox->Model()->ItemText(index); - - selectedTOC2 = selectedTOC2.Mid(1); - CCSXHGenericTOC1* displayTopic = STATIC_CAST(CCSXHGenericTOC1*, - iDocument.GetDisplayTopic()); - TUid NextViewId = displayTopic->GetChildL(selectedTOC2)->GetViewID(); - - //Check Tutorial is present for Application topic [TOC2] - if(NextViewId == KCSXHHtmlTopicViewID) - { - CCSXHHtmlTOC2* HTMLTOC2Ptr = STATIC_CAST(CCSXHHtmlTOC2*, - displayTopic->GetChildL(selectedTOC2)); - TFileName filename; - HTMLTOC2Ptr->GetHtmlUrlL( filename ); - if( KErrNotFound != filename.Find( KTutorialFileExtn )) - { - bShowTutorial = ETrue; - TCoeHelpContext helpContext; - HTMLTOC2Ptr->GetHelpContext(helpContext); - CCSXHAppUi::GetInstance()->SetHelpContext( helpContext ); - } - } - } - return bShowTutorial; - } - -#endif // FF_HELP_TUTORIAL_MERGE - - -void CCSXHGenericContainer::MakeVisible(TBool aVisible) - { - CCoeControl::MakeVisible(aVisible); - iListBox->ScrollBarFrame()->ComponentControl(0)->MakeVisible(aVisible); - } diff -r 0d1adf67ec1b -r 12f60d9a73b3 csxhelp/src/CSXHGenericView.cpp --- a/csxhelp/src/CSXHGenericView.cpp Thu Aug 19 09:42:56 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,268 +0,0 @@ -/* -* 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: CCSXHGenericView class definition -* -*/ - - -#include "CSXHGenericView.h" -#include "CSXHGenericContainer.h" -#include "CSXHAppUi.h" -#include "CSXHDocument.h" -#include -#include "CsHelp.hrh" - -#include "CSXHHelpContentBase.h" -#include "CSXHViewIDs.h" -#include "CSXHHelpDataBase.h" - -#include -#include -#include -#include - -#ifdef FF_HELP_TUTORIAL_MERGE - -#include -#include -#include -#include - -#endif // FF_HELP_TUTORIAL_MERGE - -CCSXHGenericView* CCSXHGenericView::NewL(const TUid& aUid, - const TInt& aFlags) - { - CCSXHGenericView* self = new(ELeave) CCSXHGenericView(aUid,aFlags); - CleanupStack::PushL(self); - self->ConstructL(); - CleanupStack::Pop(self); - return self; - } - -CCSXHGenericView::CCSXHGenericView(const TUid& aUid, const TInt& aFlags) - :iResetContainerInActivate(EFalse),iUid(aUid),iAppFlags(aFlags) - {//No Implementation required - } - -void CCSXHGenericView::ConstructL() - { - BaseConstructL(iAppFlags); - - } - -CCSXHGenericView::~CCSXHGenericView() - { - if(iContainer) - { - AppUi()->RemoveFromStack(iContainer); - delete iContainer; - } - } - -TUid CCSXHGenericView::Id() const - { - return iUid; - } - -// -------------------------------- -// Message Handler -// -------------------------------- -void CCSXHGenericView::HandleCommandL(TInt aCommand) - { - switch(aCommand) - { - case EAknSoftkeyBack: - { - CCSXHDocument* doc = static_cast(AppUi()->Document()); - if(iUid == KCSXHToc2ViewID) - { - doc->SetDisplayAndPrevTopic(doc->GetHelpDataBase()->GetMainTopics()); - } - else if(iUid == KCSXHKywdToc2ViewID) - { - doc->SetDisplayAndPrevTopic(doc->GetHelpDataBase()->GetKywdTopics()); - } - else if ( iUid == KCSXHToc1AppHelpsViewID ) - { - doc->SetDisplayAndPrevTopic( doc->GetHelpDataBase()->GetMainTopics() ); - } - else if ( iUid == KCSXHToc2AppHelpsViewID ) - { - doc->SetDisplayAndPrevTopic( doc->GetHelpDataBase()->GetAppHelpsTopics() ); - } - else if ( iUid == KCSXHKywdToc1ViewID ) - { - doc->SetDisplayAndPrevTopic( doc->GetHelpDataBase()->GetMainTopics() ); - } - - - AppUi()->HandleCommandL(ECSXHOpenItem); - } - break; - case ECSXHOpenItemPropagated: //Will be called for AppUi - iContainer->SetDisplayTopicL(); - break; - case ECSXHTOC1ListView: - { - CCSXHDocument* doc = static_cast(AppUi()->Document()); - doc->SetDisplayAndPrevTopic(doc->GetHelpDataBase()->GetMainTopics()); - AppUi()->HandleCommandL(ECSXHOpenItem); - } - break; - case ECSXHOpenItem: - case ECSXHOpenTopicText: -#ifdef FF_HELP_TUTORIAL_MERGE - - if(iContainer->IsShowTutorialItemSelectedL()) - { - if(CCSXHAppUi::GetInstance()->IsApplicationPresentInTutorialL()) - { - CCSXHAppUi::GetInstance()->CallTutorialAiwProviderL(); - } - else - { - HBufC* ErrorMessage = iCoeEnv->AllocReadResourceLC( - R_TYPE_NO_HELP_TOPICS); - CAknGlobalNote* note = CAknGlobalNote::NewLC(); - note->ShowNoteL(EAknGlobalInformationNote, *ErrorMessage); - - CleanupStack::PopAndDestroy(note); - CleanupStack::PopAndDestroy(ErrorMessage); - } - } - else - -#endif // FF_HELP_TUTORIAL_MERGE - { - iContainer->SetDisplayTopicL(); - AppUi()->HandleCommandL(aCommand); - } - break; - default: - AppUi()->HandleCommandL(aCommand); - break; - } - } -// -------------------------------------------------------------------------- -// Handler for view activation. If required the container object will be -// recreated. The recreation can be due to 1) Resetting the search pane -// 2) Changing the selection of the items in the list box 3) Repopulating the -// contents of the list box -// -------------------------------------------------------------------------- -void CCSXHGenericView::DoActivateL(const TVwsViewId& /*aPrevViewId*/,TUid,const TDesC8& ) - { - CCSXHDocument* doc = static_cast(AppUi()->Document()); - if(iResetContainerInActivate) - { - delete iContainer; - iContainer = NULL; - iResetContainerInActivate = EFalse; - } - if(!iContainer) - { - if(iUid == KCSXHKywdToc2ViewID) - doc->InitProgressBarL(); - -#ifdef FF_HELP_TUTORIAL_MERGE - iContainer = CCSXHGenericContainer::NewL(ClientRect(),*doc,this); -#else // !FF_HELP_TUTORIAL_MERGE - iContainer = CCSXHGenericContainer::NewL(ClientRect(),*doc); -#endif // FF_HELP_TUTORIAL_MERGE - - /*if(iUid == KCSXHKywdToc2ViewID) - doc->FreeProgressBarL();*/ - } - iContainer->HightLightItemL(); - iContainer->MakeVisible(ETrue); - iContainer->DrawNow(); - iContainer->SetMopParent(this); - //iContainer->SetRect(ClientRect()); - iContainer->SetCurrentView(this); - AppUi()->AddToStackL(*this, iContainer); - - if(iUid == KCSXHToc1ViewID || - iUid == KCSXHKywdToc1ViewID) - { - doc->GetHelpDataBase()->ClearAllTOC1Contents(); - doc->ClearPrevTopic(); - } - - iContainer->CheckForMSK(); - - //Set the title of the view - CEikStatusPane* sp = StatusPane(); - CAknTitlePane* title = STATIC_CAST(CAknTitlePane*, - sp->ControlL(TUid::Uid(EEikStatusPaneUidTitle))); - title->SetTextL(doc->GetDisplayTopic()->GetName()); - } - -void CCSXHGenericView::DoDeactivate() - { - if(iContainer) - { - iContainer->MakeVisible(EFalse); - AppUi()->RemoveFromStack(iContainer); - } - } - -void CCSXHGenericView::ResetContainer() - { - iResetContainerInActivate = ETrue; - } -// -------------------------------------------------------------------------- -// Dynamically changing the items in the Options Menu -// -------------------------------------------------------------------------- - -void CCSXHGenericView::DynInitMenuPaneL(TInt aResourceId, CEikMenuPane* aMenuPane) - { - if ( aResourceId == R_CSXH_MENU_TOPICLIST && - iContainer->GetNumberOfListItems()== 0 ) - { - aMenuPane->DeleteMenuItem(ECSXHOpenTopicText); - } - - if ( aResourceId == R_CSXH_MENU_KYWDTOC1LIST && - iContainer->GetNumberOfListItems()== 0 ) - { - aMenuPane->DeleteMenuItem(ECSXHOpenTopicText); - } - - if ( aResourceId == R_CSXH_MENU && - iContainer->GetNumberOfListItems()== 0 ) - { - aMenuPane->DeleteMenuItem(ECSXHOpenItem); - } - - if ( aResourceId == R_CSXH_MENU_KYWDTOC2LIST && - iContainer->GetNumberOfListItems()== 0 ) - { - aMenuPane->DeleteMenuItem(ECSXHOpenTopicText); - } - } -// -------------------------------------------------------------------------- -// MSK Handler Handling -// -------------------------------------------------------------------------- -void CCSXHGenericView::SetMiddleSoftKey(TBool aValue) - { - Cba()->MakeCommandVisible(ECSXHOpenTopicText,aValue); - Cba()->DrawDeferred(); - } -void CCSXHGenericView::ResourceChangeHdl(TInt aType) - { - if(iContainer) - iContainer->HandleResourceChangeImpl(aType); - } - - diff -r 0d1adf67ec1b -r 12f60d9a73b3 csxhelp/src/CSXHHtmlTopicContainer.cpp --- a/csxhelp/src/CSXHHtmlTopicContainer.cpp Thu Aug 19 09:42:56 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,703 +0,0 @@ -/* -* 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: CCSXHHtmlTopicContainer class definition -* -*/ - - -#include "CSXHHtmlTOC2.h" -#include "CSXHHtmlTOC1.h" -#include "CSXHDocument.h" -#include "CSXHAppUi.h" -#include "CSXHHtmlTopicView.h" -#include "CSXHViewIDs.h" -#include -#include "CsHelp.hrh" -#include "CSXHHtmlTopicContainer.h" -#include "AppLauncherForCSXH.h" -#include "csxhconstants.h" - - -#include -#include -#include - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -_LIT(KContentType,"text/html"); -_LIT(KCsstextToRemovePathinfo,""); - - -CBlankContainer::CBlankContainer() - { - } - -CBlankContainer::~CBlankContainer() - { - } - - -void CBlankContainer::Draw( const TRect& aRect ) const - { - CWindowGc& gc = SystemGc(); - TRect rect = Rect(); - gc.Clear(rect); - } - - -// Standard construction sequence -CCSXHHtmlTopicContainer* CCSXHHtmlTopicContainer::NewL(const TRect& aRect,CCSXHDocument -&aDocument,CCSXHHtmlTopicView *aView) - { - CCSXHHtmlTopicContainer* self = CCSXHHtmlTopicContainer::NewLC(aRect,aDocument,aView); - CleanupStack::Pop(self); - return self; - } - -CCSXHHtmlTopicContainer* CCSXHHtmlTopicContainer::NewLC(const TRect& aRect,CCSXHDocument -&aDocument,CCSXHHtmlTopicView *aView) - { - CCSXHHtmlTopicContainer* self = new (ELeave) CCSXHHtmlTopicContainer(aDocument,aView); - CleanupStack::PushL(self); - self->ConstructL(aRect); - return self; - } - -CCSXHHtmlTopicContainer::CCSXHHtmlTopicContainer(CCSXHDocument &aDocument,CCSXHHtmlTopicView *aView) - : iTopic(NULL),iDocument(aDocument),iView(aView) - ,iAppLauncher(NULL), iLoadHtml(EFalse), iPrevPageCount(0), iBack(EFalse) - ,iContentLoading(ENoContent) - - { - // no implementation required - } - -CCSXHHtmlTopicContainer::~CCSXHHtmlTopicContainer() - { - if(iBrCtrl) - { - iBrCtrl->SetFocus(EFalse); - iBrCtrl->RemoveLoadEventObserver(this); - delete iBrCtrl; - iBrLibrary.Close(); - } - - delete iAppLauncher; - - delete iBlankContainer; - - } - -void CCSXHHtmlTopicContainer::ConstructL( const TRect& aRect ) - { - // Create a window for this application view - CreateWindowL(); - - // Set the windows size - SetRect(aRect); - if( KErrNone != iBrLibrary.Load( _L( "BrowserEngine.dll" ) ) ) - { - HBufC* ErrorMessage = CCSXHAppUi::GetCoeEnv()->AllocReadResourceLC( - R_CSHELP_RETRIEVE_NO_MEMORY_TEXT ); - CAknGlobalNote* note = CAknGlobalNote::NewLC(); - note->ShowNoteL( EAknGlobalInformationNote, *ErrorMessage ); - CleanupStack::PopAndDestroy( note ); - CleanupStack::PopAndDestroy( ErrorMessage ); - iDocument.SetDisplayTopic( iDocument.GetPrevTopic() ); - CCSXHAppUi::GetInstance()->HandleCommandL( ECSXHOpenItem ); - User::Leave( KErrNoMemory ); - } - -#ifdef __WINS__ - TLibraryFunction result = iBrLibrary.Lookup( 10 ); -#else - TLibraryFunction result = iBrLibrary.Lookup( 1 ); -#endif - - FuncPtr_CreateBrowserControlL fptr = ( FuncPtr_CreateBrowserControlL )result; - - iBrCtrl = ( *fptr )( - this,aRect, - TBrCtlDefs::ECapabilityDisplayScrollBar| - TBrCtlDefs::ECapabilityClientResolveEmbeddedURL| -#ifndef __SERIES60_30__ - TBrCtlDefs::ECapabilityCursorNavigation| - TBrCtlDefs::ECapabilityWebKitLite| -#endif - TBrCtlDefs::ECapabilityClientNotifyURL, - TBrCtlDefs::ECommandIdBase, this, this, NULL, this - ); - iBrCtrl->SetBrowserSettingL( TBrCtlDefs::ESettingsCSSFetchEnabled, 1 ); - iBrCtrl->AddLoadEventObserverL( this ); - - - SetSelectedFontSizeL( iView->GetCurrentFontSize() ); - iBrCtrl->MakeVisible( ETrue ); - - iBlankContainer = new ( ELeave ) CBlankContainer(); - iBlankContainer->SetRect( Rect() ); - - ShowBrowser(); - - ActivateL(); - } - -void CCSXHHtmlTopicContainer::Draw(const TRect& /*aRect*/) const - { - CWindowGc& gc = SystemGc(); - TRect rect = Rect(); - gc.Clear(rect); - } -void CCSXHHtmlTopicContainer::SetAndLoadInitialTopicL(CCSXHHtmlTOC2* aTopic) - { - iTopic = aTopic; - TRAPD(err,LoadHtmlL()); - if( KErrNone != err ) - { - HBufC* ErrorMessage = CCSXHAppUi::GetCoeEnv()->AllocReadResourceLC( - R_CSHELP_RETRIEVE_NO_MEMORY_TEXT); - CAknGlobalNote* note = CAknGlobalNote::NewLC(); - note->ShowNoteL(EAknGlobalInformationNote, *ErrorMessage); - CleanupStack::PopAndDestroy(note); - CleanupStack::PopAndDestroy(ErrorMessage); - iDocument.SetDisplayTopic(iDocument.GetPrevTopic()); - CCSXHAppUi::GetInstance()->HandleCommandL(ECSXHOpenItem); - User::Leave(KErrNoMemory); - } - - } - -void CCSXHHtmlTopicContainer::LoadHtmlL() - { - iBrCtrl->MakeVisible( EFalse ); - SetContentLoadState( EContentLoading ); - HBufC8 *htmlBuffer = STATIC_CAST(HBufC8*,iTopic->GetTopicContentL()); - if(htmlBuffer) - { - CleanupStack::PushL(htmlBuffer); - TUid uid; - uid.iUid = KCharacterSetIdentifierIso88591; - _LIT8(KContentType,"text/html"); - TDataType dataType(KContentType()); - iTopic->GetHtmlUrlL(iUrlNoAnchors); - iBack = EFalse; - ClearHistoryL(); - iLoadHtml = ETrue; - - //RUNTIME - //if it is context sensitive launch, Add CSS content to remove - //Application launch link. - if(iView->GetViewType() == CCSXHHtmlTopicView::EContextHtmlView) - { - HBufC8* ContextHtmlbuffer = HBufC8::NewLC(htmlBuffer->Size() + 100); - TPtr8 bufferPtr = ContextHtmlbuffer->Des(); - bufferPtr.Copy(KCsstextToRemovePathinfo); - bufferPtr.Append(htmlBuffer->Des()); - iBrCtrl->LoadDataL(iUrlNoAnchors,*ContextHtmlbuffer,dataType,uid); - CleanupStack::PopAndDestroy(ContextHtmlbuffer); - } - else - { - iBrCtrl->LoadDataL(iUrlNoAnchors,*htmlBuffer,dataType,uid); - } - CleanupStack::PopAndDestroy(htmlBuffer); - } - else - { - iTopic->GetHtmlUrlL(iUrlNoAnchors); - iBrCtrl->LoadUrlL(iUrlNoAnchors); - } - CheckForMSK(); - } - -TKeyResponse CCSXHHtmlTopicContainer::OfferKeyEventL(const TKeyEvent & -aKeyEvent,TEventCode aType ) - { - TKeyResponse result(EKeyWasNotConsumed); - - if ((aKeyEvent.iCode == EKeyEnter )&& (aType == EEventKey) - && (IsHyperLinkFocused())) - { - HandleCommandOpenHyperLinkL(); - CheckForMSK(); - return EKeyWasConsumed; - } - - if(iBrCtrl) - { - result = iBrCtrl->OfferKeyEventL(aKeyEvent, aType); - CheckForMSK(); - } - return result; - } - -TInt CCSXHHtmlTopicContainer::CountComponentControls() const - { - return 2; - } - -CCoeControl* CCSXHHtmlTopicContainer::ComponentControl(TInt aIndex) const - { - switch (aIndex) - { - case 0: - return iBottomControl; - case 1: - return iTopControl; - default: - return NULL; - } - } - -void CCSXHHtmlTopicContainer::HandleResourceChange(TInt aType) - { - CCSXHAppUi::GetInstance()->PropagateResourceChange(aType); - } -void CCSXHHtmlTopicContainer::HandleResourceChangeImpl(TInt aType) - { - if (aType == KEikDynamicLayoutVariantSwitch) - { - iBrCtrl->HandleResourceChange(aType); - TRect mainRect; - TRect statusPaneRect; - AknLayoutUtils::LayoutMetricsRect(AknLayoutUtils::EMainPane,mainRect); - SetRect(mainRect); - if(iBrCtrl) -#ifndef __SERIES60_30__ - iBrCtrl->SetRect(Rect()); -#else - iBrCtrl->SetRect(mainRect); -#endif - DrawNow(); - } - else - { - CCoeControl::HandleResourceChange(aType); - } - } - -void CCSXHHtmlTopicContainer::SizeChanged() - { -#ifndef __SERIES60_30__ - if( iBrCtrl ) - { - if ( iContentLoading != EContentLoading ) - { - iBlankContainer->SetRect( Rect() ); - iBrCtrl->SetRect( Rect() ); - iBrCtrl->MakeVisible( ETrue ); - } - else - { - //Update the title bar - CEikStatusPane* sp = CCSXHAppUi::GetInstance()->StatusPane(); - CAknTitlePane* titlePane = NULL; - TRAPD( err, titlePane = STATIC_CAST(CAknTitlePane*, - sp->ControlL( TUid::Uid( EEikStatusPaneUidTitle ) ) ) ); - if ( KErrNone == err ) - { - //If can't set Null text to title, no other good way to do further, - //so just ignore this leave - TRAP_IGNORE( titlePane->SetTextL( KNullDesC ) ); - } - iBlankContainer->SetRect( Rect() ); - iBrCtrl->SetRect( Rect() ); - } - } -#endif - } - -void CCSXHHtmlTopicContainer::HandleCommandBackL() - { - iBrCtrl->HandleCommandL(TBrCtlDefs::ECommandIdBase + TBrCtlDefs::ECommandBack); - } - - -TBool CCSXHHtmlTopicContainer::IsPrevPageAvbl() - { - if (iPrevPageCount > 0) - { - return ETrue; - } - else - { - return EFalse; - } - } - - - -void CCSXHHtmlTopicContainer::ClearHistoryL() - { - iBrCtrl->HandleCommandL(TBrCtlDefs::ECommandIdBase + TBrCtlDefs::ECommandClearHistory); - iPrevPageCount = 0; - } - -TBool CCSXHHtmlTopicContainer::ResolveEmbeddedLinkL(const TDesC& /*aEmbeddedUrl*/, - const TDesC& /*aCurrentUrl*/, - TBrCtlLoadContentType /*aLoadContentType*/, - MBrCtlLinkContent& /*aEmbeddedLinkContent*/) - { - return EFalse; - } -// -------------------------------------------------------------------------- -// Handling for -// 1) Compressed HTML content -// 2) Application Launch Links -// 3) External Hyperlinks -// -------------------------------------------------------------------------- -TBool CCSXHHtmlTopicContainer::ResolveLinkL(const TDesC& aUrl, const TDesC& aCurrentUrl, - MBrCtlLinkContent& aBrCtlLinkContent) - { -#ifdef FF_HELP_TUTORIAL_MERGE - if( KErrNotFound != aUrl.Find( KTutorialFileExtn )) - { - iView->LaunchTutorial(); - return ETrue; - } -#endif // FF_HELP_TUTORIAL_MERGE - if(NULL == iAppLauncher) - { - iAppLauncher = AppLauncherForCSXH::NewL(); - } - //Handling for application launch. - if(iAppLauncher->LaunchAppL(aUrl,aCurrentUrl)) - return ETrue;//Link is resolved locally. - - if(CheckForExternalLinkL(aUrl)) - return ETrue;//Link is resolved locally. - - //Remove the Anchor, if any - TInt DotPos = aUrl.LocateReverseF('.'); - TInt HashPos = aUrl.LocateReverseF('#'); - if(KErrNotFound != HashPos && HashPos > DotPos ) - { - //Direct assignment does not work - iUrlNoAnchors.Copy(KEmptyString); - iUrlNoAnchors.Append(aUrl.Mid(0,HashPos)); - } - else - { - //Direct assignment does not work - iUrlNoAnchors.Copy(KEmptyString); - iUrlNoAnchors.Append(aUrl); - } - - HBufC8 *htmlBuffer = CCSXHHtmlTOC2::GetContentsFromUrlL(iUrlNoAnchors,CCSXHAppUi::GetCoeEnv(),iFeatureControl); - if(htmlBuffer) - { - TPtrC p(NULL,0); - aBrCtlLinkContent.HandleResolveComplete(KContentType,p,htmlBuffer); - delete htmlBuffer; - iLoadHtml = EFalse; - if (iBack) - { - iPrevPageCount--; - iBack = EFalse; - } - else - { - iPrevPageCount++; - } - - return ETrue;//Link is resolved locally. - } - - return EFalse; - } - -void CCSXHHtmlTopicContainer::CancelFetchL() - { - if (iBrCtrl) - { - iBrCtrl->HandleCommandL( - (TInt)TBrCtlDefs::ECommandCancelFetch + (TInt)TBrCtlDefs::ECommandIdBase ); - } - } - -void CCSXHHtmlTopicContainer::CancelAll() - { - - } - - -void CCSXHHtmlTopicContainer::HandleResolveComplete(const TDesC& /*aContentType*/, - const TDesC& /*aCharset*/, - const HBufC8* /*aContentBuf*/) - { - - } - -void CCSXHHtmlTopicContainer::HandleResolveError(TInt /*aError*/) - { - - } -void CCSXHHtmlTopicContainer::RefreshL(CCSXHHtmlTOC2 *aTopic) - { - SetAndLoadInitialTopicL(aTopic); - } - -// -------------------------------------------------------------------------- -// This callback function is used for the following -// 1) When an HTML page is loaded, this callback function will be called. If -// this callback is invoked for hyperlink navigation, then the display topic -// has to be updated. For example, the Application Topics option menu is -// dependent on the dipslay topic. -// 2) Updation of the softkey from Options-Close to Options-Back (& Vice-Versa) -// in the context view as a result of hyperlink traveral -// -------------------------------------------------------------------------- -void CCSXHHtmlTopicContainer::HandleBrowserLoadEventL(TBrCtlDefs::TBrCtlLoadEvent aLoadEvent, - TUint /*aSize*/, TUint16 /*aTransactionId*/) - { - if(aLoadEvent == TBrCtlDefs::EEventLoadFinished) - { - ShowBrowser(); - SetContentLoadState( EContentLoadFinished ); - if ( IsVisible() ) - { - HBufC* title = iBrCtrl->PageInfoLC(TBrCtlDefs::EPageInfoTitle); - if(!title) - { - CleanupStack::PopAndDestroy(title); - return; - } - - //Update the title bar - CEikStatusPane* sp = CCSXHAppUi::GetInstance()->StatusPane(); - CAknTitlePane* titlePane = STATIC_CAST(CAknTitlePane*, - sp->ControlL(TUid::Uid(EEikStatusPaneUidTitle))); - titlePane->SetTextL(*title); - CleanupStack::PopAndDestroy(title); - } - - //For the context sensitive view, the softkey texts need to be changed. - //add label iLoadHtml for ESNN-7N9CLN.If the html is opened by - //loadHtmlL, the iLoadHtml will be set to ETrue, which - //can guarantee the RSK keep as "CLOSE" when context is sensitive. - if ((!iLoadHtml) && (iView->GetViewType() == CCSXHHtmlTopicView::EContextHtmlView)) - { - iView->SetViewTypeL(IsPrevHtmlPageAvblL() ? - CCSXHHtmlTopicView::EHtmlView : CCSXHHtmlTopicView::EContextHtmlView); - } - - //TSW Error:TKOI-74KE89: Help crashes when closing after viewing a link topic - //When user presses back keys very quickly, TOC2 objects use to destroy and - //then browser call back function triggers which leads to crash. This check - //will avoid crash. - TUid viewId = iDocument.GetDisplayTopic()->GetViewID(); - if (viewId == KCSXHToc1ViewID || viewId == KCSXHKywdToc1ViewID - || viewId == KCSXHToc2ViewID || viewId == KCSXHKywdToc2ViewID - || viewId == KCSXHToc1AppHelpsViewID || viewId == KCSXHToc2AppHelpsViewID) - { - return; - } - - //When user clicks on Application Topics, application topics - //corresponding to the topic being displayed has to be opened - //Hence update the Display topic information if required. - - //Check if this event is triggered for the first load after construction - TFileName url; - iTopic->GetHtmlUrlL(url); - if(url.Compare(iUrlNoAnchors) == 0) - { - iDocument.SetDisplayTopic(iTopic); - iNewTopic = NULL; - //Move the code from SetAndLoadInitialTopicL - //TSW Error:EJZG-7E2BUV - ClearHistoryL(); - return; - } - - iNewTopic = iDocument.GetHtmlTopicForUrlL(iUrlNoAnchors); - CheckForMSK(); - } - // Only when loadhtml is called, in that condition, last-displayed content may show; - // then we should hide browser. - else if ( iContentLoading == EContentLoading ) - { - HideBrowser(); - } - } - -CCSXHHelpContentBase* CCSXHHtmlTopicContainer::GetCurrActiveObject() - { - return iNewTopic; - } -// -------------------------------------------------------------------------- -// Back Key Handling -// -------------------------------------------------------------------------- -TBool CCSXHHtmlTopicContainer::HandleBackKeyL() - { - //When this view is initially created, the HTML content is loaded - //using the LoadDataL function and hence it will not be part of the - //History stack but all other subsequest navigation by the user - //using the hyperlinks will be part of the History Stack - if(IsPrevPageAvbl()) - { - iBack = ETrue; - TRAPD(res,HandleCommandBackL()); - if(res == KErrNone) - return ETrue; - else - ClearHistoryL(); - } - ClearHistoryL(); - - return EFalse; - } -TBool CCSXHHtmlTopicContainer::IsPrevHtmlPageAvblL() - { - if(IsPrevPageAvbl()) - return ETrue; - - return EFalse; - } - -void CCSXHHtmlTopicContainer::SetSelectedFontSizeL(TInt aValue) - { - iBrCtrl->SetBrowserSettingL(TBrCtlDefs::ESettingsFontSize,aValue); - } - -TInt CCSXHHtmlTopicContainer::GetCurrentValueL(TInt aSetting) - { - return iBrCtrl->BrowserSettingL(aSetting); - } - -void CCSXHHtmlTopicContainer::UpdateSoftkeyL(TBrCtlKeySoftkey /*aKeySoftkey*/, - const TDesC& /*aLabel*/, - TUint32 /*aCommandId*/, - TBrCtlSoftkeyChangeReason /*aBrCtlSoftkeyChangeReason*/) - { - } - -void CCSXHHtmlTopicContainer::UpdateBrowserVScrollBarL(TInt /*aDocumentHeight*/, - TInt /*aDisplayHeight*/, - TInt /*aDisplayPosY*/ ) - { - if(iBrCtrl) - CheckForMSK(); -} -void CCSXHHtmlTopicContainer::UpdateBrowserHScrollBarL(TInt /*aDocumentWidth*/, - TInt /*aDisplayWidth*/, - TInt /*aDisplayPosX*/ ) - { - if(iBrCtrl) - CheckForMSK(); - } -void CCSXHHtmlTopicContainer::NotifyLayoutChange( TBrCtlLayout /*aNewLayout*/ ) - { - } - -void CCSXHHtmlTopicContainer::UpdateTitleL( const TDesC& /*aTitle*/ ) - { - } - -void CCSXHHtmlTopicContainer::CheckForMSK() - { - if(IsHyperLinkFocused()) - { - iView->SetMiddleSoftKey(ETrue); - } - else - { - iView->SetMiddleSoftKey(EFalse); - } - } - -TBool CCSXHHtmlTopicContainer::IsHyperLinkFocused() - { - if(TBrCtlDefs::EElementAnchor == iBrCtrl->FocusedElementType()) - return ETrue; - else - return EFalse; - } - -void CCSXHHtmlTopicContainer::HandleCommandOpenHyperLinkL() - { - iBrCtrl->HandleCommandL(TBrCtlDefs::ECommandIdBase + TBrCtlDefs::ECommandOpen); - } - -TBool CCSXHHtmlTopicContainer::CheckForExternalLinkL(const TDesC& aUrl) - { - TBool Result = EFalse; - - if( KErrNotFound != aUrl.Find(_L("http://")) | - KErrNotFound != aUrl.Find(_L("https://")) | - KErrNotFound != aUrl.Find(_L("ftp://"))) - { - iAppLauncher->LaunchBrowserNGL(aUrl); - Result = ETrue; - } - - return Result; - } - -void CCSXHHtmlTopicContainer::SetContentLoadState( TContentLoadState aLoadState ) - { - if ( iContentLoading == aLoadState ) - { - return; - } - else if ( NeedRefresh( aLoadState ) ) - { - iContentLoading = aLoadState; - SizeChanged(); - } - else - { - iContentLoading = aLoadState; - } - } - -TBool CCSXHHtmlTopicContainer::NeedRefresh( const TContentLoadState aNewLoadState ) const - { - if ( - ( iContentLoading == EContentLoading && aNewLoadState != EContentLoading ) - ||( iContentLoading != EContentLoading && aNewLoadState == EContentLoading ) - ) - return ETrue; - else - return EFalse; - } - -void CCSXHHtmlTopicContainer::HideBrowser() - { - SetTopAndBottomContainer( iBlankContainer, iBrCtrl ); - } - -void CCSXHHtmlTopicContainer::ShowBrowser() - { - SetTopAndBottomContainer( iBrCtrl, iBlankContainer ); - } - -void CCSXHHtmlTopicContainer::SetTopAndBottomContainer( CCoeControl* aTopControl, - CCoeControl* aBottomControl ) - { - iTopControl = aTopControl; - iBottomControl = aBottomControl; - } - -//end of the file - diff -r 0d1adf67ec1b -r 12f60d9a73b3 csxhelp/src/CSXHHtmlTopicView.cpp --- a/csxhelp/src/CSXHHtmlTopicView.cpp Thu Aug 19 09:42:56 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,378 +0,0 @@ -/* -* 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: CCSXHHtmlTopicView class definition -* -*/ - -// INCLUDES -#include "CSXHHtmlTopicView.h" -#include "CSXHHtmlTopicContainer.h" -#include "CSXHHtmlTOC2.h" -#include "CSXHAppUi.h" -#include "CSXHDocument.h" -#include -#include "CsHelp.hrh" - -#include "CSXHViewIDs.h" -#include "CSXHKywdTOC1.h" -#include "CSXHHelpDataBase.h" -#include "CSXHContextTopic.h" -#include "CSXHHtmlTOC2.h" -#include "CSXHHtmlTOC1.h" - -#include -#include -#include -#include -#include -#include - -#include -#include -#include -#include -TInt CCSXHHtmlTopicView::iFontSize = TBrCtlDefs::EFontSizeLevelLarger; - -CCSXHHtmlTopicView* CCSXHHtmlTopicView::NewL(const TUid& aUid, const TInt& aFlags,const -TRect& aRect) - { - CCSXHHtmlTopicView* temp = new(ELeave) CCSXHHtmlTopicView(aUid,aFlags); - CleanupStack::PushL(temp); - temp->ConstructL(aRect); - CleanupStack::Pop(temp); - return temp; - } - -CCSXHHtmlTopicView::CCSXHHtmlTopicView(const TUid& aUid, const TInt& aFlags): - iUid(aUid),iAppFlags(aFlags) - { - } -CCSXHHtmlTopicView::~CCSXHHtmlTopicView() - { - if(iBCContainer) - { - delete iBCContainer; - iBCContainer = NULL; - } - } - -void CCSXHHtmlTopicView::ConstructL(const TRect& /*aRect*/) - { - BaseConstructL(iAppFlags); - } - -void CCSXHHtmlTopicView::SetViewTypeL(TInt type) - { - if(type == iContextTopicView) - return; - - if(type == EContextHtmlView) - { - iContextTopicView = ETrue; - SetSoftKeysL(R_CSHELP_SOFTKEYS_OPTIONS_CLOSE_OPENLINK); - } - else - { - iContextTopicView = EFalse; - SetSoftKeysL(R_CSHELP_SOFTKEYS_OPTIONS_BACK_OPENLINK); - } - } - -TInt CCSXHHtmlTopicView::GetViewType() - { - return iContextTopicView ? EContextHtmlView : EHtmlView; - } - -TUid CCSXHHtmlTopicView::Id() const - { - return iUid; - } -// -------------------------------------------------------------------------- -// Launches an application based on the Application UID and a View ID -// -------------------------------------------------------------------------- -void CCSXHHtmlTopicView::HandleCommandL(TInt aCommand ) - { - switch(aCommand) - { - case EAknSoftkeyBack: - { - if(iBCContainer->HandleBackKeyL()) - return; - CCSXHDocument *doc = static_cast(AppUi()->Document()); - //if not the current view, return - TUid viewId = doc->GetDisplayTopic()->GetViewID(); - if( viewId != KCSXHHtmlTopicViewID && viewId != KCSXHKywdToc2ViewID ) - { - return; - } - CCSXHHtmlTOC2 *displayTopic = STATIC_CAST(CCSXHHtmlTOC2*,doc->GetDisplayTopic()); - CCSXHKywdTOC1* kywdParent = displayTopic->GetKywdParent(); - if(kywdParent) - { - doc->SetDisplayAndPrevTopic(kywdParent); - AppUi()->HandleCommandL(ECSXHOpenItem); - } - else - { - HandleCommandL(ECSXHOpenApplicationTopics); - } - break; - } - case ECSXHOpenApplicationTopics: - { - CCSXHDocument *doc = static_cast(AppUi()->Document()); - if(iBCContainer->GetCurrActiveObject()) - { - doc->SetDisplayTopic(iBCContainer->GetCurrActiveObject()); - CCSXHAppUi::GetInstance()->ResetTOC2ViewContainer(); - } - CCSXHHtmlTOC2 *displayTopic = STATIC_CAST(CCSXHHtmlTOC2*,doc->GetDisplayTopic()); - doc->SetDisplayAndPrevTopic(displayTopic->GetParent()); - AppUi()->HandleCommandL(ECSXHOpenItem); - } - break; - case ECSXHTOC1ListView: - { - CCSXHDocument *doc = static_cast(AppUi()->Document()); - if(iBCContainer->GetCurrActiveObject()) - { - doc->SetDisplayTopic(iBCContainer->GetCurrActiveObject()); - CCSXHAppUi::GetInstance()->ResetTOC2ViewContainer(); - } - - CCSXHHtmlTOC2 *displayTopic = STATIC_CAST(CCSXHHtmlTOC2*,doc->GetDisplayTopic()); - //These two steps are necessary to set the correct display and prev topics - doc->SetDisplayTopic(displayTopic->GetParent()); - doc->SetDisplayAndPrevTopic(doc->GetHelpDataBase()->GetMainTopics()); - AppUi()->HandleCommandL(ECSXHOpenItem); - } - break; - case ECsHelpCmdFontLarge: - { - TInt CurrentFontSize = iBCContainer->GetCurrentValueL(TBrCtlDefs::ESettingsFontSize); - iBCContainer->SetSelectedFontSizeL(++CurrentFontSize); - iFontSize = CurrentFontSize; - } - break; - case ECsHelpCmdFontSmall: - { - TInt CurrentFontSize = iBCContainer->GetCurrentValueL(TBrCtlDefs::ESettingsFontSize); - iBCContainer->SetSelectedFontSizeL(--CurrentFontSize); - iFontSize = CurrentFontSize; - } - break; - case ECSXHOpenHyperLink: - { - iBCContainer->HandleCommandOpenHyperLinkL(); - } - break; - case ECSXHSearchText: - { - CCSXHDocument *doc = static_cast(AppUi()->Document()); - if(iBCContainer->GetCurrActiveObject()) - { - doc->SetDisplayTopic(iBCContainer->GetCurrActiveObject()); - CCSXHAppUi::GetInstance()->ResetTOC2ViewContainer(); - } - } - AppUi()->HandleCommandL( aCommand ); - break; - case EAknSoftkeyExit: - case EAknSoftkeyClose: - AppUi()->HandleCommandL( aCommand ); - break; - default: - break; - } - } -// -------------------------------------------------------------------------- -// Handlign for view activation. For a context view, the actual display topic -// has to be modified -// -------------------------------------------------------------------------- -void CCSXHHtmlTopicView::DoActivateL(const TVwsViewId& aPrevViewId,TUid,const TDesC8&) - { - iPrevious = aPrevViewId; - CCSXHDocument *doc = static_cast(AppUi()->Document()); - - if(!iBCContainer) - { - TRAPD(Result,iBCContainer = CCSXHHtmlTopicContainer::NewL(ClientRect(),*doc,this)); - if(KErrNone != Result) - return; - } - - //Set the correct display topic here for context sensitive launch - if(doc->GetDisplayTopic()->GetViewID() == KCSXHContextHtmlTopicViewID) - { - CCSXHContextTopic *topic = STATIC_CAST(CCSXHContextTopic*,doc->GetDisplayTopic()); - doc->SetDisplayTopic(topic->GetTopic()); - iContextTopicView = ETrue; - } - else - { - iContextTopicView = EFalse; - } - - CCSXHHtmlTOC2 *displayTopic = STATIC_CAST(CCSXHHtmlTOC2*,doc->GetDisplayTopic()); - TRAPD(err,iBCContainer->SetAndLoadInitialTopicL(displayTopic)); - - if( KErrNone != err ) - { - delete iBCContainer; - iBCContainer = NULL; - return; - } - if( iContextTopicView ) - { - SetSoftKeysL(R_CSHELP_SOFTKEYS_OPTIONS_CLOSE_OPENLINK); - } - else - { - SetSoftKeysL(R_CSHELP_SOFTKEYS_OPTIONS_BACK_OPENLINK); - } - iBCContainer->SetMopParent(this); - iBCContainer->SetRect(ClientRect()); - AppUi()->AddToStackL(*this, iBCContainer); - iBCContainer->MakeVisible(ETrue); - } - -void CCSXHHtmlTopicView::DoDeactivate() - { - if(iBCContainer) - { - iBCContainer->MakeVisible(EFalse); - TRAP_IGNORE(iBCContainer->CancelFetchL()); - // FEP causes crash if it still hold the observer. - // fix as FEP suggested. - iBCContainer->SetFocus( EFalse ); - AppUi()->RemoveFromStack(iBCContainer); - } - } -// -------------------------------------------------------------------------- -// When a view which was previously activated, goes to background and gets -// activated again, the DoActivateL will not be called only ViewActivatedL -// will be called. Special handling is required for the context view for the -// scenario, open context help from any application, with out changing the -// help view, open context help from another application, the contents of the -// context view has to be refreshed with the new topic -// -------------------------------------------------------------------------- -void CCSXHHtmlTopicView::ViewActivatedL(const TVwsViewId& aPrevViewId, - TUid aCustomMessageId, - const TDesC8& aCustomMessage) - { - - if(iBCContainer) - { - //This handling is required for the following scenario - //Context sensitive help launch more than once with no - //other view navigation in the help application - CCSXHDocument *doc = static_cast(AppUi()->Document()); - if(doc->GetDisplayTopic()->GetViewID() == KCSXHContextHtmlTopicViewID) - { - CCSXHContextTopic *topic = static_cast(doc->GetDisplayTopic()); - doc->SetDisplayTopic(topic->GetTopic()); - CCSXHHtmlTOC2 *displayTopic = STATIC_CAST(CCSXHHtmlTOC2*,doc->GetDisplayTopic()); - iBCContainer->RefreshL(displayTopic); - SetSoftKeysL(R_CSHELP_SOFTKEYS_OPTIONS_CLOSE_OPENLINK); - } - iBCContainer->CheckForMSK(); - } - CAknView::ViewActivatedL(aPrevViewId,aCustomMessageId,aCustomMessage); - } - -void CCSXHHtmlTopicView::SetSoftKeysL(TInt aSoftKeys) - { - if( Cba() ) - { - Cba()->SetCommandSetL( aSoftKeys ); - Cba()->DrawDeferred(); - } - } -// -------------------------------------------------------------------------- -// Dynamically updating Options menu item -// -------------------------------------------------------------------------- -void CCSXHHtmlTopicView::DynInitMenuPaneL(TInt aResourceId, CEikMenuPane* aMenuPane) - { - - if( R_CSXH_MENU_HTMLTOPICVIEW == aResourceId) - { - TInt CurrentFontSize = iBCContainer->GetCurrentValueL(TBrCtlDefs::ESettingsFontSize); - - if(CurrentFontSize == TBrCtlDefs::EFontSizeLevelNormal) - { - aMenuPane->SetItemDimmed(ECsHelpCmdFontSmall,ETrue); - } - else if(CurrentFontSize == TBrCtlDefs::EFontSizeLevelAllLarge) - { - aMenuPane->SetItemDimmed(ECsHelpCmdFontLarge,ETrue); - } - - if(!iBCContainer->IsHyperLinkFocused()) - { - aMenuPane->SetItemDimmed(ECSXHOpenHyperLink,ETrue); - } - } - } -// -------------------------------------------------------------------------- -// MSK Handling -// -------------------------------------------------------------------------- -void CCSXHHtmlTopicView::SetMiddleSoftKey(TBool aValue) - { -#ifndef __SERIES60_30__ - if(AknLayoutUtils::MSKEnabled()) - { - Cba()->MakeCommandVisible(ECSXHOpenHyperLink,aValue); - Cba()->DrawDeferred(); - } -#endif - } - -TInt CCSXHHtmlTopicView::GetCurrentFontSize() - { - return iFontSize; - } - -void CCSXHHtmlTopicView::ResourceChangeHdl(TInt aType) - { - if(iBCContainer) - iBCContainer->HandleResourceChangeImpl(aType); - } - -#ifdef FF_HELP_TUTORIAL_MERGE - // -------------------------------------------------------------------------- -// CCSXHAppUi::LaunchTutorial -// Lauch tutorial if exist, else popup a error message. -// -------------------------------------------------------------------------- -void CCSXHHtmlTopicView::LaunchTutorialL() - { - CCSXHDocument *doc = static_cast(AppUi()->Document()); - CCSXHHtmlTOC2 *displayTopic = STATIC_CAST(CCSXHHtmlTOC2*,doc->GetDisplayTopic()); - TCoeHelpContext helpContext; - displayTopic->GetHelpContext(helpContext); - CCSXHAppUi::GetInstance()->SetHelpContext(helpContext); - if( CCSXHAppUi::GetInstance()->IsApplicationPresentInTutorialL() ) - { - CCSXHAppUi::GetInstance()->CallTutorialAiwProviderL(); - } - else - { - HBufC* ErrorMessage = iCoeEnv->AllocReadResourceLC(R_TYPE_NO_HELP_TOPICS); - CAknGlobalNote* note = CAknGlobalNote::NewLC(); - note->ShowNoteL(EAknGlobalInformationNote, *ErrorMessage); - - CleanupStack::PopAndDestroy(note); - CleanupStack::PopAndDestroy(ErrorMessage); - } - } -#endif // FF_HELP_TUTORIAL_MERGE diff -r 0d1adf67ec1b -r 12f60d9a73b3 csxhelp/src/CSXHLegacyTopicContainer.cpp --- a/csxhelp/src/CSXHLegacyTopicContainer.cpp Thu Aug 19 09:42:56 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,364 +0,0 @@ -/* -* 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 definition -* -*/ - - -#include "CSXHLegacyTOC2.h" -#include "CSXHLegacyTopicContainer.h" -#include "CSXHDocument.h" - -#include "CSXHAppUi.h" - -#include -#include -#include -#include -#include -#include //Dynamic layout functions -#include -#include -#include -#include -#include -#include - -CCSXHLegacyTopicContainer* CCSXHLegacyTopicContainer::NewL(const TRect& -aRect,CCSXHDocument &aDocument,CCSXHLegacyTOC2 *aTopic) - { - CCSXHLegacyTopicContainer* self = CCSXHLegacyTopicContainer::NewLC(aRect,aDocument,aTopic); - CleanupStack::Pop(self); - return self; - } - -CCSXHLegacyTopicContainer* CCSXHLegacyTopicContainer::NewLC(const TRect& -aRect,CCSXHDocument &aDocument,CCSXHLegacyTOC2 *aTopic) - { - CCSXHLegacyTopicContainer* self = new (ELeave) CCSXHLegacyTopicContainer(aDocument,aTopic); - CleanupStack::PushL(self); - self->ConstructL(aRect); - return self; - } - -CCSXHLegacyTopicContainer::CCSXHLegacyTopicContainer(CCSXHDocument -&aDocument,CCSXHLegacyTOC2 *aTopic):iDocument(aDocument),iTopic(aTopic) - { - } - -void CCSXHLegacyTopicContainer::ConstructL(const TRect& aRect/*, CRichText* aText*/) - { - CreateWindowL(); - TRect rect(0,0,0,0); - // Temporary rect is passed. Correct rect is set in SizeChanged. - iSkinContext = CAknsBasicBackgroundControlContext::NewL( - KAknsIIDQsnBgAreaMain , rect, EFalse); - - iText = STATIC_CAST(CRichText*,iTopic->GetTopicContentL()); - - GetTextFormat(); - - iEdwin = new(ELeave) CEikEdwin(); - TInt flags(CEikEdwin::EKeepDocument | - CEikEdwin::EUserSuppliedText | - CEikEdwin::ENoAutoSelection | - CEikEdwin::EAvkonDisableCursor | - CEikEdwin::EReadOnly | - CEikEdwin::EDisplayOnly); - - if ( iText == NULL ) - { - flags = flags & ~CEikEdwin::EUserSuppliedText; - } - - iEdwin->SetContainerWindowL(*this); - - iEdwin->ConstructL(flags); - iEdwin->CreatePreAllocatedScrollBarFrameL()->SetScrollBarVisibilityL( - CEikScrollBarFrame::EOff, - CEikScrollBarFrame::EAuto); - SetTextL(iText); - if( iText != NULL ) - { - FormatRichTextL(*iText); - } - SetRect(aRect); - ActivateL(); - } - -CCSXHLegacyTopicContainer::~CCSXHLegacyTopicContainer() - { - delete iEdwin; - delete iSkinContext; - } - -void CCSXHLegacyTopicContainer::RefreshL(CCSXHLegacyTOC2 *aTopic) - { - iTopic = aTopic; - iText = STATIC_CAST(CRichText*,iTopic->GetTopicContentL()); - SetTextL(iText); - if( iText != NULL ) - { - FormatRichTextL(*iText); - } - SizeChanged(); - } - -void CCSXHLegacyTopicContainer::SetTextL(CRichText* aText) - { - if( aText == NULL ) - { - HBufC* errorMessage = iCoeEnv->AllocReadResourceLC( R_TYPE_NO_HELP_TOPICS ); - iEdwin->SetTextL( errorMessage ); - CleanupStack::PopAndDestroy( errorMessage ); - } - else - { - iEdwin->SetDocumentContentL(*aText, CEikEdwin::EUseText); - iEdwin->SetCursorPosL(0, EFalse); - } - } - -void CCSXHLegacyTopicContainer::FocusChanged(TDrawNow aDrawNow) - { - if (iEdwin) - { - iEdwin->SetFocus(IsFocused(), aDrawNow); - } - } - -void CCSXHLegacyTopicContainer::GetTextFormat() - { - - TAknMultiLineTextLayout layoutToUse; - if( AknLayoutUtils::ScalableLayoutInterfaceAvailable() ) - { - - TAknTextLineLayout layoutnew1 = AknLayoutScalable_Apps::help_list_pane_t1(0).LayoutLine(); - - - TAknLayoutScalableParameterLimits limits1 = - AknLayoutScalable_Apps::help_list_pane_t1_ParamLimits(); - - TInt numberoflines = limits1.LastRow() + 1; - - layoutnew1.iNumberOfLinesShown = numberoflines ; - - layoutToUse.iC = layoutnew1.iC; - layoutToUse.il = layoutnew1.il; - layoutToUse.ir = layoutnew1.ir; - layoutToUse.iB = layoutnew1.iB; - layoutToUse.iW = layoutnew1.iW; - layoutToUse.iJ = layoutnew1.iJ; - layoutToUse.iFont = layoutnew1.iFont; - layoutToUse.iBaselineSkip = layoutnew1.iBaselineSkip; - layoutToUse.iNumberOfLinesShown = layoutnew1.iNumberOfLinesShown; - } - else - { - layoutToUse = AppLayout::Multiline_Help_texts_Line_1(0); - } - - const CFont* font = AknLayoutUtils::FontFromId(layoutToUse.FontId() /*iFont*/, NULL); - iCharFormat.iFontSpec = font->FontSpecInTwips(); - iCharFormatMask.SetAttrib(EAttFontTypeface); - iCharFormatMask.SetAttrib(EAttFontHeight); - - TRgb color; - MAknsSkinInstance* skin = AknsUtils::SkinInstance(); - TInt error = AknsUtils::GetCachedColor(skin, color, KAknsIIDQsnTextColors, - EAknsCIQsnTextColorsCG6 ); - if(error==KErrNone) - iCharFormat.iFontPresentation.iTextColor = color; - - iCharFormatMask.SetAttrib(EAttColor); - iCharFormatMask.SetAttrib(EAttFontPosture); - } -void CCSXHLegacyTopicContainer::FormatRichTextL( CRichText& aText ) - { - TInt length = aText.DocumentLength(); - length++; - // Apply the general formatting rules... - aText.ApplyCharFormatL( iCharFormat, iCharFormatMask, 0, length ); - - TParaFormatMask paraFormatMask; - paraFormatMask.SetAttrib( EAttBullet ); - CParaFormat *paraFormat = new ( ELeave ) CParaFormat; - CleanupStack::PushL(paraFormat); - TInt paraCount = aText.ParagraphCount(); - for(TInt i = 0; i < paraCount ; ++i) - { - TInt paraLength; - TInt paraStart = aText.CharPosOfParagraph(paraLength,i); - - aText.GetParagraphFormatL(paraFormat,paraStart); - if(paraFormat->iBullet) - { - TBullet* bullet = new ( ELeave ) TBullet; - CleanupStack::PushL(bullet); - bullet->iColor = iCharFormat.iFontPresentation.iTextColor; - bullet->iHeightInTwips = iCharFormat.iFontSpec.iHeight; - - CParaFormat* paraFormatNew = new ( ELeave ) CParaFormat; - paraFormatNew->iBullet = bullet; // ownership xfer - - CleanupStack::Pop(); - CleanupStack::PushL(paraFormatNew); - - aText.ApplyParaFormatL( paraFormatNew, paraFormatMask, paraStart, paraLength - 1); - CleanupStack::PopAndDestroy(paraFormatNew); - } - } - CleanupStack::PopAndDestroy(paraFormat); - } - - -void CCSXHLegacyTopicContainer::SizeChanged() - { - if(iSkinContext) - iSkinContext->SetRect(Rect()); - if(iEdwin) - { - TRect clientrect = Rect(); - if(AknLayoutUtils::LayoutMirrored()) - { - clientrect.iTl.iX = clientrect.iTl.iX + (iEdwin->ScrollBarFrame() - ->ScrollBarBreadth(CEikScrollBar::EVertical))* 1.1; - } - else - { - TInt RectWidth = clientrect.Width() - (iEdwin->ScrollBarFrame() - ->ScrollBarBreadth(CEikScrollBar::EVertical))* 1.1; - - clientrect.SetWidth(RectWidth); - } - - iEdwin->SetRect(clientrect); - TRAP_IGNORE(iEdwin->ForceScrollBarUpdateL()); - } - } - -// --------------------------------------------------------- -// CCsHelpTopicContainer::OfferKeyEventL(...) -// Processing a key event -// -// (other items were commented in a header). -// --------------------------------------------------------- -TKeyResponse CCSXHLegacyTopicContainer::OfferKeyEventL( - const TKeyEvent& aKeyEvent, - TEventCode aType) - { - TKeyResponse result(EKeyWasConsumed); - - switch (aKeyEvent.iCode) - { - case EKeyUpArrow: - iEdwin->MoveDisplayL(TCursorPosition::EFLineUp); - iEdwin->UpdateScrollBarsL(); - break; - case EKeyDownArrow: - iEdwin->MoveDisplayL(TCursorPosition::EFLineDown); - iEdwin->UpdateScrollBarsL(); - break; - default: - result = iEdwin->OfferKeyEventL(aKeyEvent, aType); - } - - return result; - } - - -// --------------------------------------------------------- -// CCsHelpTopicContainer::CountComponentControls() const -// -// -// (other items were commented in a header). -// --------------------------------------------------------- -// -TInt CCSXHLegacyTopicContainer::CountComponentControls() const - { - return 1; // return nbr of controls inside this container - } - -// --------------------------------------------------------- -// CCsHelpTopicContainer::ComponentControl(TInt aIndex) const -// -// (other items were commented in a header). -// --------------------------------------------------------- -// -CCoeControl* CCSXHLegacyTopicContainer::ComponentControl(TInt aIndex) const - { - switch ( aIndex ) - { - case 0: - return iEdwin; - default: - return NULL; - } - } - -// --------------------------------------------------------- -// CCsHelpTopicContainer::Draw(..) -// -// (other items were commented in a header). -// --------------------------------------------------------- -// -void CCSXHLegacyTopicContainer::Draw(const TRect& aRect) const - { - CWindowGc& gc = SystemGc(); - gc.Clear(aRect); - MAknsSkinInstance* skin = AknsUtils::SkinInstance(); - if (iSkinContext) - {//Draw the skin background - AknsDrawUtils::Background( - skin, iSkinContext, this, gc, aRect); - } - } -void CCSXHLegacyTopicContainer::HandleResourceChange(TInt aType) - { - CCSXHAppUi::GetInstance()->PropagateResourceChange(aType); - } - -void CCSXHLegacyTopicContainer::HandleResourceChangeImpl(TInt aType) - { - if(aType == KEikDynamicLayoutVariantSwitch) - { - iEdwin->HandleResourceChange(aType); - TRect mainRect; - AknLayoutUtils::LayoutMetricsRect(AknLayoutUtils::EMainPane,mainRect); - SetRect(mainRect); - } - else - { - CCoeControl::HandleResourceChange(aType); - } - - } - - -// --------------------------------------------------------- -// CCsHelpTopicContainer::MopSupplyObject() -// Pass skin information if need. -// --------------------------------------------------------- - -TTypeUid::Ptr CCSXHLegacyTopicContainer::MopSupplyObject(TTypeUid aId) - { - if (aId.iUid == MAknsControlContext::ETypeId && iSkinContext) - { - return MAknsControlContext::SupplyMopObject(aId, iSkinContext); - } - - return CCoeControl::MopSupplyObject(aId); - } -// End of File diff -r 0d1adf67ec1b -r 12f60d9a73b3 csxhelp/src/CSXHLegacyTopicView.cpp --- a/csxhelp/src/CSXHLegacyTopicView.cpp Thu Aug 19 09:42:56 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,213 +0,0 @@ -/* -* 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: CCSXHLegacyTopicView class definition -* -*/ - - -// INCLUDES -#include "CSXHLegacyTopicView.h" -#include "CSXHLegacyTopicContainer.h" -#include "CSXHAppUi.h" -#include "CSXHDocument.h" -#include -#include "CsHelp.hrh" - -#include "CSXHHelpContentBase.h" -#include "CSXHLegacyTOC2.h" -#include "CSXHLegacyTOC1.h" -#include "CSXHViewIDs.h" -#include "CSXHHelpDataBase.h" -#include "CSXHContextTopic.h" - -#include - -CCSXHLegacyTopicView* CCSXHLegacyTopicView::NewL(const TUid& aUid, - const TInt& aFlags,const TRect& aRect) - { - CCSXHLegacyTopicView* temp = new(ELeave) CCSXHLegacyTopicView(aUid,aFlags); - CleanupStack::PushL(temp); - temp->ConstructL(aRect); - CleanupStack::Pop(temp); - return temp; - } - -CCSXHLegacyTopicView::CCSXHLegacyTopicView(const TUid& aUid, const TInt& aFlags) - : iUid(aUid),iAppFlags(aFlags) - { - } - -CCSXHLegacyTopicView::~CCSXHLegacyTopicView() - { - } - -void CCSXHLegacyTopicView::ConstructL(const TRect& /*aRect*/) - { - BaseConstructL(iAppFlags); - } - -TUid CCSXHLegacyTopicView::Id() const - { - return iUid; - } -// -------------------------------------------------------------------------- -// Launches an application based on the Application UID and a View ID -// -------------------------------------------------------------------------- -void CCSXHLegacyTopicView::HandleCommandL(TInt aCommand) - { - switch(aCommand) - { - case ECSXHOpenApplicationTopics: - { - CCSXHDocument* doc = static_cast(AppUi()->Document()); - CCSXHLegacyTOC2* displayTopic = STATIC_CAST(CCSXHLegacyTOC2*,doc->GetDisplayTopic()); - CCSXHLegacyTOC1* toc1 = displayTopic->GetLegacyParent(); - if(toc1) - { - doc->SetDisplayAndPrevTopic(toc1); - AppUi()->HandleCommandL(ECSXHOpenItem); - } - else - { - //Handling will be same as EAknSoftkeyBack - HandleCommandL(EAknSoftkeyBack); - } - break; - } - case EAknSoftkeyBack: - { - CCSXHDocument* doc = static_cast(AppUi()->Document()); - CCSXHLegacyTOC2* displayTopic = STATIC_CAST(CCSXHLegacyTOC2*,doc->GetDisplayTopic()); - doc->SetDisplayAndPrevTopic(displayTopic->GetParent()); - AppUi()->HandleCommandL(ECSXHOpenItem); - } - break; - case ECSXHTOC1ListView: - { - CCSXHDocument* doc = static_cast(AppUi()->Document()); - CCSXHLegacyTOC2* displayTopic = STATIC_CAST(CCSXHLegacyTOC2*,doc->GetDisplayTopic()); - CCSXHGenericTOC1* toc1 = displayTopic->GetLegacyParent(); - if(!toc1) - toc1 = displayTopic->GetParent(); - doc->SetDisplayTopic(toc1); - doc->SetDisplayAndPrevTopic(doc->GetHelpDataBase()->GetMainTopics()); - AppUi()->HandleCommandL(ECSXHOpenItem); - } - break; - default: - AppUi()->HandleCommandL(aCommand); - break; - } - } - -// -------------------------------------------------------------------------- -// Handlign for view activation. For a context view, the actual display topic -// has to be modified -// -------------------------------------------------------------------------- -void CCSXHLegacyTopicView::DoActivateL(const TVwsViewId& aPrevViewId,TUid /* aCustomMessageId */, - const TDesC8& /* aCustomMessage */) - { - iPrevious = aPrevViewId; - CCSXHDocument* doc = static_cast(AppUi()->Document()); - //Set the correct display topic here for context sensitive launch - if(iUid == KCSXHContextLegacyTopicViewID) - { - CCSXHContextTopic* topic = STATIC_CAST(CCSXHContextTopic*,doc->GetDisplayTopic()); - doc->SetDisplayTopic(topic->GetTopic()); - } - - if(!iTopicContainer) - { - CCSXHLegacyTOC2* displayTopic = STATIC_CAST(CCSXHLegacyTOC2*,doc->GetDisplayTopic()); - iTopicContainer = CCSXHLegacyTopicContainer::NewL(ClientRect(),*doc,displayTopic); - } - - iTopicContainer->SetMopParent(this); - iTopicContainer->SetRect(ClientRect()); - AppUi()->AddToStackL(*this, iTopicContainer); - iTopicContainer->MakeVisible(ETrue); - - //Set the title of the view - CEikStatusPane* sp = StatusPane(); - CAknTitlePane* title = STATIC_CAST(CAknTitlePane*, - sp->ControlL(TUid::Uid(EEikStatusPaneUidTitle))); - title->SetTextL(doc->GetDisplayTopic()->GetName()); - - //MSK: Should be Inactive in this view - //TSW Error:EAJA-6XLFTW : - //S60 3.2 Help: Selection key opens Option menu in Topic view - //If MSK is not defined, "." appears in the MSK, - //On Middle key press, Options menu items are shown to the user -#ifndef __SERIES60_30__ - if(AknLayoutUtils::MSKEnabled()) - { - Cba()->MakeCommandVisible(ECSXHDummyMSK,EFalse); - Cba()->DrawDeferred(); - } -#endif - } - -void CCSXHLegacyTopicView::DoDeactivate() - { - if(iTopicContainer) - { - iTopicContainer->MakeVisible(EFalse); - AppUi()->RemoveFromStack(iTopicContainer); - delete iTopicContainer; - iTopicContainer = NULL; - } - } -// -------------------------------------------------------------------------- -// When a view which was previously activated, goes to background and gets -// activated again, the DoActivateL will not be called only ViewActivatedL -// will be called. Special handling is required for the context view for the -// scenario, open context help from any application, with out changing the -// help view, open context help from another application, the contents of the -// context view has to be refreshed with the new topic -// -------------------------------------------------------------------------- -void CCSXHLegacyTopicView::ViewActivatedL(const TVwsViewId& aPrevViewId, - TUid aCustomMessageId, - const TDesC8& aCustomMessage) - { - if(iTopicContainer && iUid == KCSXHContextLegacyTopicViewID) - { - CCSXHDocument* doc = static_cast(AppUi()->Document()); - - if(doc->GetDisplayTopic()->GetViewID() == KCSXHContextLegacyTopicViewID) - { - CCSXHContextTopic* topic = STATIC_CAST(CCSXHContextTopic*,doc->GetDisplayTopic()); - doc->SetDisplayTopic(topic->GetTopic()); - CCSXHLegacyTOC2* displayTopic = STATIC_CAST(CCSXHLegacyTOC2*,doc->GetDisplayTopic()); - iTopicContainer->RefreshL(displayTopic); - } - - //Set the title of the view - CEikStatusPane* sp = StatusPane(); - CAknTitlePane* title = STATIC_CAST(CAknTitlePane*, - sp->ControlL(TUid::Uid(EEikStatusPaneUidTitle))); - title->SetTextL(doc->GetDisplayTopic()->GetName()); - } - - CAknView::ViewActivatedL(aPrevViewId,aCustomMessageId,aCustomMessage); - } -void CCSXHLegacyTopicView::ViewDeactivated() - { - CAknView::ViewDeactivated(); - } -void CCSXHLegacyTopicView::ResourceChangeHdl(TInt aType) - { - if(iTopicContainer) - iTopicContainer->HandleResourceChangeImpl(aType); - } - diff -r 0d1adf67ec1b -r 12f60d9a73b3 csxhelp/src/csxhruntimeappwatcher.cpp --- a/csxhelp/src/csxhruntimeappwatcher.cpp Thu Aug 19 09:42:56 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,87 +0,0 @@ -/* -* 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: CCSXHRuntimeAppWatcher class definition -* -*/ - - -#include "csxhruntimeappwatcher.h" -#include "csxhconstants.h" - -// ======================================================================== -// CCSXHRuntimeAppWatcher -// ======================================================================== -// -CCSXHRuntimeAppWatcher::CCSXHRuntimeAppWatcher() - : CActive( CActive::EPriorityIdle ) - { - } - -CCSXHRuntimeAppWatcher::~CCSXHRuntimeAppWatcher() - { - if ( IsActive() ) - Cancel(); - iFileSession.Close(); - } - -CCSXHRuntimeAppWatcher* CCSXHRuntimeAppWatcher::NewL() - { - CCSXHRuntimeAppWatcher* self = new ( ELeave ) CCSXHRuntimeAppWatcher(); - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop( self ); - return self; - } - -void CCSXHRuntimeAppWatcher::ConstructL() - { - CActiveScheduler::Add( this ); - User::LeaveIfError( iFileSession.Connect() ); - } - -void CCSXHRuntimeAppWatcher::RunL() - { - // iStatus equals to KErrNone means completion - // - if ( iStatus == KErrNone ) - { - iObserver->RuntimeUpdateIndex(); - Start(); - } - - } - -void CCSXHRuntimeAppWatcher::DoCancel() - { - iFileSession.NotifyChangeCancel( iStatus ); - } - -void CCSXHRuntimeAppWatcher::Start() - { - // Requests a notification of change to files or directories - // Addition or deletion of a directory entry, or changing or formatting a disk - // - TBuf obsrvPath; - obsrvPath.Append( TChar('?') ); - obsrvPath.Append( KInstallPath ); - iFileSession.NotifyChange( ENotifyEntry, iStatus, obsrvPath ); - - // starts - SetActive(); - } - -void CCSXHRuntimeAppWatcher::SetObserver( MInstallationObserver* aObserver ) - { - iObserver = aObserver; - } diff -r 0d1adf67ec1b -r 12f60d9a73b3 group/bld.inf --- a/group/bld.inf Thu Aug 19 09:42:56 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,18 +0,0 @@ -/* -* Copyright (c) 2009 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: -* -*/ - -#include "../csxhelp/group/bld.inf" diff -r 0d1adf67ec1b -r 12f60d9a73b3 helps_info/helps_metadata/helps_metadata.mrp --- a/helps_info/helps_metadata/helps_metadata.mrp Thu Aug 19 09:42:56 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,22 +0,0 @@ -# -# Copyright (c) 2009 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: -# - -component helps_metadata -source \sf\app\helps\helps_info\helps_metadata -source \sf\app\helps\package_definition.xml -source \sf\app\helps\distribution.policy.s60 -notes_source \component_defs\release.src -ipr T diff -r 0d1adf67ec1b -r 12f60d9a73b3 layers.sysdef.xml --- a/layers.sysdef.xml Thu Aug 19 09:42:56 2010 +0300 +++ b/layers.sysdef.xml Tue Aug 31 15:06:12 2010 +0300 @@ -1,13 +1,16 @@ - ]> - + - + + + + diff -r 0d1adf67ec1b -r 12f60d9a73b3 package_definition.xml --- a/package_definition.xml Thu Aug 19 09:42:56 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,23 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - diff -r 0d1adf67ec1b -r 12f60d9a73b3 symhelp/helpmodel/TestData/Source/ER5Help/General/Symbols page.mbm Binary file symhelp/helpmodel/TestData/Source/ER5Help/General/Symbols page.mbm has changed diff -r 0d1adf67ec1b -r 12f60d9a73b3 symhelp/helpmodel/TestData/Source/ER5Help/epochlp.alp.tmp --- a/symhelp/helpmodel/TestData/Source/ER5Help/epochlp.alp.tmp Thu Aug 19 09:42:56 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,38 +0,0 @@ - - - - - 0x10006000 - - \work\help\ - \epoc32\wins\c\system\help\ - \work\help\ - \work\help\temp\ - - - - agen-hlp.rtf - bomb-hlp.rtf - calc-hlp.rtf - comm-hlp.rtf - cont-hlp.rtf - data-hlp.rtf - dial-hlp.rtf - dict-hlp.rtf - gen--hlp.rtf - hard-hlp.rtf - jott-hlp.rtf - prog-hlp.rtf - rec--hlp.rtf - shet-hlp.rtf - sket-hlp.rtf - spel-hlp.rtf - syst-hlp.rtf - time-hlp.rtf - word-hlp.rtf - xtra-hlp.rtf - - EPOCHlp - \work\help\uk.alc.xml - - diff -r 0d1adf67ec1b -r 12f60d9a73b3 symhelp/helpmodel/TestData/Source/ER5Help/epochlp.alp.xml.bak --- a/symhelp/helpmodel/TestData/Source/ER5Help/epochlp.alp.xml.bak Thu Aug 19 09:42:56 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,19 +0,0 @@ - - - - - 0x10006000 - - H:\aleppo\work\help\ - H:\epoc32\wins\c\system\help\ - H:\aleppo\work\help\ - H:\aleppo\work\help\temp\ - - - - sket-hlp.rtf - - EPOCHlp - H:\aleppo\work\help\uk.alc.xml - - diff -r 0d1adf67ec1b -r 12f60d9a73b3 symhelp/helpmodel/TestData/Source/ER5Help/epochlp.tmp --- a/symhelp/helpmodel/TestData/Source/ER5Help/epochlp.tmp Thu Aug 19 09:42:56 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,8 +0,0 @@ -inputdirectory c:\aleppo\work\help\ -outputdirectory c:\epoc32\wins\c\documents\ -outputfile EPOCHlp -sourcefile agen-hlp bomb-hlp calc-hlp comm-hlp cont-hlp data-hlp dial-hlp dict-hlp gen--hlp hard-hlp jott-hlp prog-hlp rec--hlp shet-hlp sket-hlp spel-hlp syst-hlp time-hlp word-hlp xtra-hlp -orderfile EPOCHlp.order -graphicsdirectory c:\aleppo\work\help\ -workingdirectory c:\aleppo\work\help\temp\ -customizationfile c:\aleppo\work\help\uk.alc diff -r 0d1adf67ec1b -r 12f60d9a73b3 symhelp/helpmodel/TestData/Source/ER5Help/uk.alc.tmp --- a/symhelp/helpmodel/TestData/Source/ER5Help/uk.alc.tmp Thu Aug 19 09:42:56 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ - - - - - - - - -Tip: -Note: -Important: - diff -r 0d1adf67ec1b -r 12f60d9a73b3 symhelp/helpmodel/documentation/HLPMODEL test code.rtf Binary file symhelp/helpmodel/documentation/HLPMODEL test code.rtf has changed diff -r 0d1adf67ec1b -r 12f60d9a73b3 sysdef_1_4_0.dtd --- a/sysdef_1_4_0.dtd Thu Aug 19 09:42:56 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,86 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff -r 0d1adf67ec1b -r 12f60d9a73b3 sysdef_1_5_1.dtd --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/sysdef_1_5_1.dtd Tue Aug 31 15:06:12 2010 +0300 @@ -0,0 +1,88 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff -r 0d1adf67ec1b -r 12f60d9a73b3 systemDefinition.xml --- a/systemDefinition.xml Thu Aug 19 09:42:56 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,33 +0,0 @@ - - - - - - - - -]> - - - -&layer_file; - - -&targetDefinition_file; - - - - -&defaultbuild_file; - - - - - -&defaultclean_file; - - - - diff -r 0d1adf67ec1b -r 12f60d9a73b3 systemDefinitionLayer.xml --- a/systemDefinitionLayer.xml Thu Aug 19 09:42:56 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,7 +0,0 @@ - - - - - - - diff -r 0d1adf67ec1b -r 12f60d9a73b3 userguide/Userguide.pro --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/userguide/Userguide.pro Tue Aug 31 15:06:12 2010 +0300 @@ -0,0 +1,75 @@ +# +# Copyright (c) 2009 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: +# + +TEMPLATE = app +QT += webkit xmlpatterns +CONFIG += hb +TRANSLATIONS = userguide.ts common.ts +#add "precompile_header" to CONFIG + +TARGET = Userguide +DEPENDPATH += . +INCLUDEPATH += ./inc + +# PRECOMPILED_HEADER = pch.h + +# Input +HEADERS += inc/HelpMainWindow.h \ + inc/BrowserWrapper.h \ + inc/HelpContentsView.h \ + inc/HelpCategoryView.h \ + inc/HelpDocumentLoader.h \ + inc/HelpCommon.h \ + inc/HelpDataProvider.h \ + inc/HelpUtils.h \ + inc/HelpProxyModel.h \ + inc/HelpStandardItem.h \ + inc/HelpKeywordView.h \ + inc/HelpBaseView.h + +SOURCES += src/main.cpp \ + src/HelpMainWindow.cpp \ + src/BrowserWrapper.cpp \ + src/HelpContentsView.cpp \ + src/HelpCategoryView.cpp \ + src/HelpDocumentLoader.cpp \ + src/HelpDataProvider.cpp \ + src/HelpUtils.cpp \ + src/HelpProxyModel.cpp \ + src/HelpStandardItem.cpp \ + src/HelpKeywordView.cpp \ + src/HelpBaseView.cpp + +symbian { + + TARGET.UID3 = 0x10005234 + TARGET.CAPABILITY = CAP_APPLICATION + TARGET.EPOCHEAPSIZE = 0x020000 0x1000000 + + CONFIG += mobility + MOBILITY = systeminfo + INCLUDEPATH += /sf/mw/webruntime/wrt/runtimecore + INCLUDEPATH += /sf/mw/webruntime/wrt + DEFINES += CWRT_BUILDING_TENONE + LIBS += -lRuntimeCore -lezip -lxqservice -lxqserviceutil -lcone -leikcore -lmediaclientaudio -leikcoctl -leiksrv -lapparc -lavkon -lefsrv -lcharconv -lws32 -lhal -lgdi -lapgrfx + include(rom/userguide.pri) + SKINICON = qtg_large_help +} + +RESOURCES += resources/Userguide.qrc + +debug: DESTDIR = ./debug +release: DESTDIR = ./release diff -r 0d1adf67ec1b -r 12f60d9a73b3 userguide/inc/BrowserWrapper.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/userguide/inc/BrowserWrapper.h Tue Aug 31 15:06:12 2010 +0300 @@ -0,0 +1,53 @@ +/* +* Copyright (c) 2009 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: +* +*/ + +#ifndef BROWSERWRAPPER_H +#define BROWSERWRAPPER_H + +#include +#include + +#include + +class BrowserWrapper : public HbView +{ + Q_OBJECT + +public: + BrowserWrapper(); + ~BrowserWrapper(); + +public: + void init(); + +public: + void setHtml(const QString& html, const QUrl& url); + void clearHistory(); + bool canGoBack(); + void back(); + +signals: + void linkClicked(const QUrl &url); + void urlChanged(const QUrl&); + +private: + QGraphicsWebView* mWebView; + QStack mHistory; + +}; + +#endif //MYTEXTBROWSER_H diff -r 0d1adf67ec1b -r 12f60d9a73b3 userguide/inc/HelpBaseView.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/userguide/inc/HelpBaseView.h Tue Aug 31 15:06:12 2010 +0300 @@ -0,0 +1,56 @@ +/* +* Copyright (c) 2009 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: +* +*/ + +#ifndef HELPBATHVIEW_H +#define HELPBATHVIEW_H + +#include + +#include "HelpCommon.h" +#include "HelpDocumentLoader.h" + +class HbToolBar; + +class HelpBaseView : public HbView +{ + Q_OBJECT + +public: + HelpBaseView(); + ~HelpBaseView(); + +signals: + void activateView(HelpViewName viewName); + +signals: // from tollbar event + void showAllList(); + void showFindList(); + +private slots: // handle tollbar event + void onToolbarAll() { emit showAllList(); }; + void onToolbarFind() { emit showFindList(); }; + void onToolbarOnlineSupport(); + +protected: + void initBaseDocMl(); + +protected: + HelpUIBuilder mBuilder; + HbToolBar* mToolBar; +}; + +#endif //HELPBATHVIEW_H diff -r 0d1adf67ec1b -r 12f60d9a73b3 userguide/inc/HelpCategoryView.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/userguide/inc/HelpCategoryView.h Tue Aug 31 15:06:12 2010 +0300 @@ -0,0 +1,56 @@ +/* +* Copyright (c) 2009 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: +* +*/ + +#ifndef HELPCATEGORYVIEW_H +#define HELPCATEGORYVIEW_H + +#include + +#include "HelpDocumentLoader.h" + +class HbTreeView; +class QStandardItem; + +class HelpCategoryView : public HelpBaseView +{ + Q_OBJECT + +public: + HelpCategoryView(); + ~HelpCategoryView(); + void init(); + +private: + void initDocMl(); + void initAllList(); + +private: + void expandCollapseAllList(QStandardItem* item, bool expand); + void updateExpandCollapseAction(bool expand); + +private slots: // handle list event + void onAllListActivated(const QModelIndex& index); + +private slots: // handle menu event + void onExpandOrCollapseAll(); + +private: + HbTreeView* mListAll; + int mExpandCount; +}; + +#endif //HELPCATEGORYVIEW_H diff -r 0d1adf67ec1b -r 12f60d9a73b3 userguide/inc/HelpCommon.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/userguide/inc/HelpCommon.h Tue Aug 31 15:06:12 2010 +0300 @@ -0,0 +1,103 @@ +/* +* Copyright (c) 2009 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: +* +*/ + +#ifndef HELPCOMMON_H +#define HELPCOMMON_H + +#include + +//const +const int APPPRIORITY = 2001; +// words +const char* const BACKSLASH = "/"; +const char* const SPECIALCHAR = "+"; +const char* const HASHMARK = "#"; +const char* const COLON = ":"; +// help content file name +const char* const XHTMLPATH = "resource/xhtml/"; +const char* const CONTENTSZIP = "contents.zip"; +const char* const INDEXXML = "index.xml"; +const char* const KEYWORDXML = "keywords.xml"; +const char* const METAXML = "meta.xml"; + +// path +const char* const PATH_ROOT = "z:/"; +const char* const PATH_TRANSLATIONS = "Z:/resource/qt/translations/"; + +// URL +const char* const URL_HEADER_APP = "app://"; +const char* const URL_HEADER_HTTP = "http://"; +const char* const URL_HEADER_HTTPS = "https://"; +const char* const URL_HEADER_FTP = "ftp://"; +const char* const URL_HEADER_LOCAL = "file:///"; +const char* const URL_LINK_SUPPORT= "Link to Nokia.com/support"; + +// text +const char* const TXT_BUTTON_ALL = "txt_common_button_all"; +const char* const TXT_BUTTON_FIND = "txt_common_button_find"; +const char* const TXT_BUTTON_LINK_SUPPORT = "txt_user_guide_button_link_to_nokiacomsupport"; +const char* const TXT_SETLABEL_SEARCH = "txt_user_guide_setlabel_search"; +const char* const TXT_SETLABEL_SEARCH_RESULTS = "txt_user_guide_setlabel_search_results"; +const char* const TXT_APPLICATIONS = "txt_user_guide_list_applications"; +const char* const TXT_COLLAPSE_ALL = "txt_user_guide_opt_collapse_all"; +const char* const TXT_EXPAND_ALL = "txt_user_guide_opt_expand_all"; + +// docml +const char* const QRC_DOCML_BASE = ":/xml/baseView.docml"; +const char* const QRC_DOCML_CATEGORY = ":/xml/categoryView.docml"; +const char* const QRC_DOCML_KEYWORD = ":/xml/keywordView.docml"; +const char* const QRC_DOCML_CONTENTS = ":/xml/contentsView.docml"; +const char* const QRC_DOCML_TOOLBAR = ":/xml/toolbar.docml"; +const char* const DOCML_VIEW_NAME = "view_help"; +const char* const DOCML_ACTION_ALL = "action_all"; +const char* const DOCML_ACTION_SEARCH = "action_find"; +const char* const DOCML_ACTION_LINK_NOKIA = "action_online_support"; +const char* const DOCML_LIST_CATEGORY_ALL = "list_category_all"; +const char* const DOCML_LIST_SEARCH = "list_search"; +const char* const DOCML_SEARCH_PANEL = "search_panel"; +const char* const DOCML_TOOLBAR = "toolbar"; +const char* const DOCML_BROWSER_CONTENTS = "browser_contents"; +const char* const DOCML_BROWSER = "browser"; +const char* const DOCML_LAYOUT_SEARCH = "layout_find"; +const char* const DOCML_LAYOUT_SEARCH_NO_SRHPAL = "layout_find_no_searchpanel"; +const char* const DOCML_GROUPBOX = "groupBox"; +const char* const DOCML_LAYOUT_SEARCH_NO_MATCH = "layout_find_no_match"; +const char* const DOCML_LAYOUT_SEARCH_NO_SRHPAL_NO_MATCH = "layout_find_no_searchpanel_no_match"; +const char* const DOCML_NO_MATCH_LABEL = "no_match_label"; +const char* const DOCML_ACTION_EXPAND_COLLAPSE_ALL = "action_expand_collapse_all"; + + +// enum + +enum HelpViewName +{ + HelpViewCategory = 0, + HelpViewKeyword, + HelpViewContents, + PreviousView = 100 +}; + +enum HelpItemRole +{ + UidRole = Qt::UserRole + 1, + PriorityRole, + HrefRole, + KeywordRole +}; + +#endif //HELPCOMMON_H + diff -r 0d1adf67ec1b -r 12f60d9a73b3 userguide/inc/HelpContentsView.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/userguide/inc/HelpContentsView.h Tue Aug 31 15:06:12 2010 +0300 @@ -0,0 +1,64 @@ +/* +* Copyright (c) 2009 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: +* +*/ + +#ifndef HELPCONTENTSVIEW_H +#define HELPCONTENTSVIEW_H + +#include + +#include + +#include "HelpDocumentLoader.h" + +class BrowserWrapper; + +class HelpContentsView : public HelpBaseView +{ + Q_OBJECT + +public: + HelpContentsView(); + ~HelpContentsView(); + +public: + void init(); + +private: + void initDocMl(); + void initBackAction(); + +private: + bool openApplication(const QUrl& url); + bool openExternalLink(const QUrl& url); + void openHelpContent(const QUrl& url=QUrl()); + +private slots: // handle system event + void onViewReady(); + +private slots: // handle button action + void onBackAction(); + +private slots: // handle browser event + void onLinkClicked(const QUrl& url); + void onUrlChanged(const QUrl& url); + +private: + BrowserWrapper* mBrowser; + HbAction* mSoftKeyAction; +}; + +#endif //HELPCONTENTSVIEW_H diff -r 0d1adf67ec1b -r 12f60d9a73b3 userguide/inc/HelpDataProvider.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/userguide/inc/HelpDataProvider.h Tue Aug 31 15:06:12 2010 +0300 @@ -0,0 +1,77 @@ +/* +* Copyright (c) 2009 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: +* +*/ + +#ifndef HELPDATAPROVIDER_H +#define HELPDATAPROVIDER_H + +class HelpModel; +class HelpItems; +class HelpProxyModel; +class QStandardItemModel; +class HelpStandardItem; + +class HelpDataProvider +{ +private: + HelpDataProvider(); + ~HelpDataProvider(); + +public: + static HelpDataProvider* instance(); + static void destroyInstance(); + +public: + void createHelpCategory(); + QAbstractItemModel* getCategoryData(); + QAbstractItemModel* getSearchData(const QString& key=QString()); + void setHelpContentUrl(const QString& uid, const QString& href); + void getHelpContentData(QString& content, QString& url); + +private: + //construct 1st category + void constructCategory(); + //construct help category in rom + void constructBuiltInCategory(const QString& path, const QStringList& uidList, const QStringList& titleList); + //construct help category for 3rd party application + void constructAppCategory(const QString& path, QStringList& uidList); + void constructBuiltInCategoryItem(const QString& uid, const QString& title); + + //construct 2nd category + void constructCategory2(HelpStandardItem* itemParent); + void constructCategory2Item(HelpStandardItem* itemParent); + + //construct keyword list + void constructKeywordModel(const QString& title, const QString& uid, const QString& href); + + //parse xml + void parseCategoryIndexXml(const QString& path, QStringList& uidList, QStringList& titleList); + void parseCategory2IndexXml(const QString& path, QStringList& hrefList, QStringList& titleList); + void parseBuiltInMetaxml(const QString& path, int& priority); + void parseAppMetaxml(const QString& path, QString& title); + +private: + QStandardItemModel* mHelpModel; //category tree model + QStandardItemModel* mKeywordModel; //keyword list model + HelpProxyModel* mSearhResultModel; //search result proxy model of keyword model + HelpStandardItem* mAppItem; + QString mHelpContentRoot; + QString mLastSrhKey; + QStringList mUpdateUidList; + +}; + +#endif //HELPDATAPROVIDER_H diff -r 0d1adf67ec1b -r 12f60d9a73b3 userguide/inc/HelpDocumentLoader.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/userguide/inc/HelpDocumentLoader.h Tue Aug 31 15:06:12 2010 +0300 @@ -0,0 +1,47 @@ +/* +* Copyright (c) 2009 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: +* +*/ + +#ifndef HELPDOCUMENTLOADER_H +#define HELPDOCUMENTLOADER_H + +#include + +class HelpDocumentLoader : public HbDocumentLoader +{ +private: + virtual QObject* createObject(const QString& type, const QString& name); +}; + +class HelpUIBuilder +{ +public: + void setObjectTree(QObjectList roots); + QObjectList load(const QString& fileName); + QObjectList load(const QString& fileName, const QString& section); + QGraphicsWidget* findWidget(const QString& name); + QObject* findObject(const QString& name); + +public: + template T findWidget(const QString& name) { return qobject_cast(findWidget(name)); } + template T findObject(const QString& name) { return qobject_cast(findObject(name)); } + +private: + HelpDocumentLoader mDocLoader; +}; + + +#endif //HELPDOCUMENTLOADER_H diff -r 0d1adf67ec1b -r 12f60d9a73b3 userguide/inc/HelpKeywordView.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/userguide/inc/HelpKeywordView.h Tue Aug 31 15:06:12 2010 +0300 @@ -0,0 +1,83 @@ +/* +* Copyright (c) 2009 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: +* +*/ + +#ifndef HELPKEYWORDVIEW_H +#define HELPKEYWORDVIEW_H + +#include + +#include "HelpDocumentLoader.h" + +class HbListView; +class HbSearchPanel; +class HbStaticVkbHost; +class HbLabel; + +class HelpKeywordView : public HelpBaseView +{ + Q_OBJECT + +public: + HelpKeywordView(); + ~HelpKeywordView(); + void init(); + void loadAllContent(); + +private: + void initDocMl(); + void initSearchList(); + void initSearchPanel(); + void initBackAction(); + void initVirtualKeyboard(); + +private: + HbLabel* label(); + +private: + void updateVisibleItems(bool visible); + void ResetSearchPanel(); + void updateLabelPos(); + void showToolBar(bool visible); + +private slots: + void onOrientationChanged(Qt::Orientation orientation); + +private slots: // handle system event + void onViewReady(); + +private slots: // handle button action + void onBackAction(); + +private slots: // handle list event + void onSearchListActivated(const QModelIndex& index); + +private slots: // handle search panel event + void onSearchPanelExitClicked(); + void onSearchPanelCriteriaChanged(const QString &criteria); + +private slots: // handle virtual keyboard event + void onHandleKeypadOpen(); + void onHandleKeypadClose(); + +private: + HbListView* mListSearch; + HbSearchPanel* mSearchPanel; + HbAction* mSoftKeyAction; + HbStaticVkbHost* mVirtualKeyboard; +}; + +#endif //HELPKEYWORDVIEW_H diff -r 0d1adf67ec1b -r 12f60d9a73b3 userguide/inc/HelpMainWindow.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/userguide/inc/HelpMainWindow.h Tue Aug 31 15:06:12 2010 +0300 @@ -0,0 +1,62 @@ +/* +* Copyright (c) 2009 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: +* +*/ + +#ifndef HELPMAINWINDOW_H +#define HELPMAINWINDOW_H + +#include + +#include "HelpCommon.h" +#include "HelpDocumentLoader.h" + +class HelpBaseView; +class HelpCategoryView; +class HelpKeywordView; +class HelpContentsView; + +class HelpMainWindow : public HbMainWindow +{ + Q_OBJECT + +public: + HelpMainWindow(); + ~HelpMainWindow(); + +private slots: + void onActivateView(HelpViewName viewName); + void saveActivity(); + +private: // activate views + void activateCategoryView(); + void activateKeywordView(); + void activateContentsView(); + +private: + void connectViewSignal(const HelpBaseView *view); + +private slots: // handle view event + void onShowAllList(); + void onShowFindList(); + +private: + HelpCategoryView* mCategoryView; + HelpKeywordView* mKeywordView; + HelpContentsView* mContentsView; + HelpViewName mPreviousViewName; +}; + +#endif //HELPMAINWINDOW_H diff -r 0d1adf67ec1b -r 12f60d9a73b3 userguide/inc/HelpProxyModel.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/userguide/inc/HelpProxyModel.h Tue Aug 31 15:06:12 2010 +0300 @@ -0,0 +1,34 @@ +/* +* Copyright (c) 2009 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: +* +*/ + +#ifndef HELPPROXYMODEL_H +#define HELPPROXYMODEL_H + +#include + +class HelpProxyModel : public QSortFilterProxyModel +{ + Q_OBJECT +public: + HelpProxyModel(QObject * parent = 0); + ~HelpProxyModel(); + +protected: + bool filterAcceptsRow(int sourceRow, const QModelIndex &sourceParent) const; +}; + +#endif //HELPPROXYMODEL_H diff -r 0d1adf67ec1b -r 12f60d9a73b3 userguide/inc/HelpStandardItem.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/userguide/inc/HelpStandardItem.h Tue Aug 31 15:06:12 2010 +0300 @@ -0,0 +1,32 @@ +/* +* Copyright (c) 2009 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: +* +*/ + +#ifndef HELPSTANDARDITEM_H +#define HELPSTANDARDITEM_H + +#include + +class HelpStandardItem : public QStandardItem +{ +public: + HelpStandardItem(const QString& text); + ~HelpStandardItem(); + bool operator<(const QStandardItem & other) const; +}; + +#endif //HELPSTANDARDITEM_H + diff -r 0d1adf67ec1b -r 12f60d9a73b3 userguide/inc/HelpUtils.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/userguide/inc/HelpUtils.h Tue Aug 31 15:06:12 2010 +0300 @@ -0,0 +1,37 @@ +/* +* Copyright (c) 2009 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: +* +*/ + +#ifndef HELPUTILS_H +#define HELPUTILS_H + +#include + +class HelpUtils +{ +public: + static void loadHtmlFromZipFile(const QString& path, const QString& htmlFile, QString& htmlContent); + static int launchApplication(const QString& appUid); + static bool suppportFeatureID(int featureID); + static QString rootPath(); + static QString UILocaleFromQtToSymbian(); + static Qt::Orientation defaultOrientation(); + static Qt::SortOrder sortOrder(); + static int findStr(const QString& strFrom, const QString& strToFind); + static int compareStr(const QString& str1, const QString& str2); +}; + +#endif //HELPUTILS_H diff -r 0d1adf67ec1b -r 12f60d9a73b3 userguide/resources/Userguide.qrc --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/userguide/resources/Userguide.qrc Tue Aug 31 15:06:12 2010 +0300 @@ -0,0 +1,9 @@ + + + + xml/categoryView.docml + xml/keywordView.docml + xml/contentsView.docml + xml/baseView.docml + + \ No newline at end of file diff -r 0d1adf67ec1b -r 12f60d9a73b3 userguide/resources/images/qtg_mono_link_nokia.svg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/userguide/resources/images/qtg_mono_link_nokia.svg Tue Aug 31 15:06:12 2010 +0300 @@ -0,0 +1,18 @@ + + + +]> + + + + + + + diff -r 0d1adf67ec1b -r 12f60d9a73b3 userguide/resources/images/qtg_mono_search.svg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/userguide/resources/images/qtg_mono_search.svg Tue Aug 31 15:06:12 2010 +0300 @@ -0,0 +1,7 @@ + + + + + + + diff -r 0d1adf67ec1b -r 12f60d9a73b3 userguide/resources/images/qtg_mono_show_all.svg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/userguide/resources/images/qtg_mono_show_all.svg Tue Aug 31 15:06:12 2010 +0300 @@ -0,0 +1,21 @@ + + + +]> + + + + + + + + + + + + + + diff -r 0d1adf67ec1b -r 12f60d9a73b3 userguide/resources/xml/baseView.docml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/userguide/resources/xml/baseView.docml Tue Aug 31 15:06:12 2010 +0300 @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff -r 0d1adf67ec1b -r 12f60d9a73b3 userguide/resources/xml/categoryView.docml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/userguide/resources/xml/categoryView.docml Tue Aug 31 15:06:12 2010 +0300 @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff -r 0d1adf67ec1b -r 12f60d9a73b3 userguide/resources/xml/contentsView.docml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/userguide/resources/xml/contentsView.docml Tue Aug 31 15:06:12 2010 +0300 @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff -r 0d1adf67ec1b -r 12f60d9a73b3 userguide/resources/xml/keywordView.docml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/userguide/resources/xml/keywordView.docml Tue Aug 31 15:06:12 2010 +0300 @@ -0,0 +1,99 @@ + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+
+ + + + + + + + + + + + + + +
+
+ + + + + + + + + + + + + + + +
+
+ + + + + + + + + + + + + + +
+ + + + + + + + +
diff -r 0d1adf67ec1b -r 12f60d9a73b3 userguide/rom/userguide.iby --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/userguide/rom/userguide.iby Tue Aug 31 15:06:12 2010 +0300 @@ -0,0 +1,31 @@ +/* +* Copyright (c) 2009 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: +* +*/ + +#ifndef __HELP_IBY__ +#define __HELP_IBY__ + +#include + +#define HB_UPGRADABLE_APP_REG_RSC(NAME) data=DATAZ_\PRIVATE\10003A3F\IMPORT\APPS\ ## NAME ## _reg.rsc Private\10003a3f\import\apps\ ## NAME ## _reg.rsc + +file=ABI_DIR\BUILD_DIR\Userguide.exe SHARED_LIB_DIR\Userguide.exe + + +HB_UPGRADABLE_APP_REG_RSC(Userguide) + +#endif + diff -r 0d1adf67ec1b -r 12f60d9a73b3 userguide/rom/userguide.pri --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/userguide/rom/userguide.pri Tue Aug 31 15:06:12 2010 +0300 @@ -0,0 +1,23 @@ +# Copyright (c) 2009 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: +# Rom exports for Help +# + +symbian { + HELP_IBY_DIR = $$section(PWD, ":", 1) + BLD_INF_RULES.prj_exports += "$${LITERAL_HASH}include " + BLD_INF_RULES.prj_exports += "$$HELP_IBY_DIR/userguide.iby CORE_APP_LAYER_IBY_EXPORT_PATH(userguide.iby)" + BLD_INF_RULES.prj_exports += "$$HELP_IBY_DIR/userguide_resources.iby LANGUAGE_APP_LAYER_IBY_EXPORT_PATH(userguide_resources.iby)" +} diff -r 0d1adf67ec1b -r 12f60d9a73b3 userguide/rom/userguide_resources.iby --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/userguide/rom/userguide_resources.iby Tue Aug 31 15:06:12 2010 +0300 @@ -0,0 +1,28 @@ +/* +* Copyright (c) 2009 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: +* +*/ + +#ifndef USERGUIDE_RESOURCES +#define USERGUIDE_RESOURCES + + +#include + +data=DATAZ_\QT_TRANSLATIONS_DIR\userguide.qm QT_TRANSLATIONS_DIR\userguide.qm +data=DATAZ_\APP_RESOURCE_DIR\Userguide.RSC APP_RESOURCE_DIR\Userguide.rsc + + +#endif // USERGUIDE_RESOURCES \ No newline at end of file diff -r 0d1adf67ec1b -r 12f60d9a73b3 userguide/src/BrowserWrapper.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/userguide/src/BrowserWrapper.cpp Tue Aug 31 15:06:12 2010 +0300 @@ -0,0 +1,95 @@ +/* +* Copyright (c) 2009 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: +* +*/ + +#include +#include +#include +#include + +#include "HelpDocumentLoader.h" +#include "HelpCommon.h" +#include "BrowserWrapper.h" + +#ifdef Q_OS_SYMBIAN +#include +#endif + +BrowserWrapper::BrowserWrapper() +{ +} + +BrowserWrapper::~BrowserWrapper() +{ +} + +void BrowserWrapper::init() +{ +#ifdef Q_OS_SYMBIAN + WRT::WrtController* wrtController = new WRT::WrtController(this, WRT::GraphicsWebView); + mWebView = wrtController->graphicsWebView(); +#else + mWebView = new QGraphicsWebView(); +#endif + mWebView->page()->setLinkDelegationPolicy(QWebPage::DelegateAllLinks); + mWebView->page()->mainFrame()->setScrollBarPolicy(Qt::Horizontal, Qt::ScrollBarAlwaysOff); + mWebView->page()->mainFrame()->setScrollBarPolicy(Qt::Vertical, Qt::ScrollBarAlwaysOff); + mWebView->settings()->setAttribute(QWebSettings::PluginsEnabled, true); + mWebView->settings()->setAttribute(QWebSettings::JavascriptEnabled, true); + mWebView->settings()->setAttribute(QWebSettings::DeveloperExtrasEnabled, true); + mWebView->settings()->setAttribute(QWebSettings::JavascriptCanOpenWindows, true); + connect(mWebView, SIGNAL(linkClicked(const QUrl&)), this, SIGNAL(linkClicked(const QUrl&))); + + QGraphicsLinearLayout* vLayout = new QGraphicsLinearLayout(this); + vLayout->setOrientation(Qt::Vertical); + vLayout->addItem(mWebView); + vLayout->setContentsMargins(0,0,0,0); + setLayout(vLayout); +} + +void BrowserWrapper::setHtml(const QString& html, const QUrl& url) +{ + mWebView->setHtml(html, url); + + if(!mHistory.count() || mHistory.top()!=url) + { + mHistory.append(url); + } +} + +void BrowserWrapper::clearHistory() +{ + mHistory.clear(); +} + +bool BrowserWrapper::canGoBack() +{ + return (mHistory.count() > 1); +} + +void BrowserWrapper::back() +{ + if(canGoBack()) + { + mHistory.pop(); + QUrl url = mHistory.top(); + emit urlChanged(url); + } +} + + +// end of file + diff -r 0d1adf67ec1b -r 12f60d9a73b3 userguide/src/HelpBaseView.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/userguide/src/HelpBaseView.cpp Tue Aug 31 15:06:12 2010 +0300 @@ -0,0 +1,61 @@ +/* +* Copyright (c) 2009 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: +* +*/ + +#include +#include +#include + +#include "HelpBaseView.h" + +////////////////////////////////////////////////////////////////////////////////////////////// + +HelpBaseView::HelpBaseView() +{ +} + +HelpBaseView::~HelpBaseView() +{ +} + + +//////////////////////////////////////////////////////////////////////////////////////////// + +void HelpBaseView::initBaseDocMl() +{ + // Create widget hierarchy + setObjectName( DOCML_VIEW_NAME ); + + // List existing root elements - this allows us to refer to objects in the XML + // which are created outside the document. + QObjectList roots; + roots.append( this ); + + mBuilder.setObjectTree(roots); + + mBuilder.load(QRC_DOCML_BASE); +} + +void HelpBaseView::onToolbarOnlineSupport() +{ + HbNotificationDialog *notificationDialog = new HbNotificationDialog(); + notificationDialog->setParent(this); + notificationDialog->setTitle(URL_LINK_SUPPORT); + notificationDialog->show(); +} + + +// end of file diff -r 0d1adf67ec1b -r 12f60d9a73b3 userguide/src/HelpCategoryView.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/userguide/src/HelpCategoryView.cpp Tue Aug 31 15:06:12 2010 +0300 @@ -0,0 +1,133 @@ +/* +* Copyright (c) 2009 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: +* +*/ + +#include +#include + +#include +#include +#include + +#include +#include +#include +#include + +#include "HelpDataProvider.h" + +#include "HelpCategoryView.h" + + +////////////////////////////////////////////////////////////////////////////////////////////// + +HelpCategoryView::HelpCategoryView() : +mListAll(NULL), +mExpandCount(0) +{ +} + +HelpCategoryView::~HelpCategoryView() +{ +} + + +//////////////////////////////////////////////////////////////////////////////////////////// + +void HelpCategoryView::init() +{ + initDocMl(); + initAllList(); +} + +void HelpCategoryView::initDocMl() +{ + initBaseDocMl(); + mBuilder.load(QRC_DOCML_CATEGORY); +} + +void HelpCategoryView::initAllList() +{ + mListAll = mBuilder.findWidget(DOCML_LIST_CATEGORY_ALL); + mListAll->setHorizontalScrollBarPolicy(HbScrollArea::ScrollBarAlwaysOff); + mListAll->setModel(HelpDataProvider::instance()->getCategoryData()); + connect(mListAll, SIGNAL(activated(const QModelIndex&)), this, SLOT(onAllListActivated(const QModelIndex&))); +} + +//////////////////////////////////////////////////////////////////////////////////////////// + +void HelpCategoryView::expandCollapseAllList(QStandardItem* item, bool expand) +{ + if(item->rowCount() <= 0) + { + return; + } + mListAll->setExpanded(item->index(),expand); + for(int i = 0; i < item->rowCount(); i++) + { + expandCollapseAllList(item->child(i),expand); + } +} + +void HelpCategoryView::updateExpandCollapseAction(bool expand) +{ + HbAction* allAction = mBuilder.findObject(DOCML_ACTION_EXPAND_COLLAPSE_ALL); + allAction->setText(expand ? hbTrId(TXT_EXPAND_ALL) : hbTrId(TXT_COLLAPSE_ALL)); +} + +//////////////////////////////////////////////////////////////////////////////////////////// +// handle list event + +void HelpCategoryView::onAllListActivated(const QModelIndex& index) +{ + if(!index.isValid() || // invalid + index.child(0,0).isValid()) // this is a node + { + if(index.parent().isValid()) + { + return; + } + + if(mListAll->isExpanded(index)) + { + mExpandCount++; + } + else + { + mExpandCount--; + } + updateExpandCollapseAction(mExpandCount == 0); + return; + } + + QString uid = mListAll->model()->data(index, UidRole).toString(); + QString href = mListAll->model()->data(index, HrefRole).toString(); + HelpDataProvider::instance()->setHelpContentUrl(uid, href); + emit activateView(HelpViewContents); +} + +//////////////////////////////////////////////////////////////////////////////////////////// +// handle menu event +void HelpCategoryView::onExpandOrCollapseAll() +{ + bool needExpand = (mExpandCount == 0); + QStandardItemModel* model = (QStandardItemModel*)(mListAll->model()); + expandCollapseAllList(model->invisibleRootItem(),needExpand); + mExpandCount = needExpand ? model->invisibleRootItem()->rowCount() : 0; + updateExpandCollapseAction(mExpandCount == 0); +} + +// end of file diff -r 0d1adf67ec1b -r 12f60d9a73b3 userguide/src/HelpContentsView.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/userguide/src/HelpContentsView.cpp Tue Aug 31 15:06:12 2010 +0300 @@ -0,0 +1,167 @@ +/* +* Copyright (c) 2009 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: +* +*/ + +#include +#include +#include +#include + +#include +#include +#include + +#include "BrowserWrapper.h" +#include "HelpDataProvider.h" +#include "HelpUtils.h" +#include "HelpContentsView.h" + +HelpContentsView::HelpContentsView() : mBrowser(NULL) +{ +} + +HelpContentsView::~HelpContentsView() +{ +} + +void HelpContentsView::init() +{ + initDocMl(); + initBackAction(); + mBrowser = mBuilder.findWidget(DOCML_BROWSER_CONTENTS); + mBrowser->init(); + + connect(mBrowser, SIGNAL(linkClicked(const QUrl&)), this, SLOT(onLinkClicked(const QUrl&))); + connect(mBrowser, SIGNAL(urlChanged(const QUrl&)), this, SLOT(onUrlChanged(const QUrl&))); + connect(mainWindow(), SIGNAL(viewReady()), this, SLOT(onViewReady())); +} + +void HelpContentsView::initDocMl() +{ + initBaseDocMl(); + mBuilder.load(QRC_DOCML_CONTENTS); +} + +void HelpContentsView::initBackAction() +{ + mSoftKeyAction = new HbAction(Hb::BackNaviAction ); + connect(mSoftKeyAction, SIGNAL(triggered()), this, SLOT(onBackAction())); +} + +/////////////////////////////////////////////////////////////////////////////////////// + +bool HelpContentsView::openApplication(const QUrl& url) +{ + QString str = url.toString(); + if(str.startsWith(URL_HEADER_APP)) + { + //app://cmd@localhost/APP_NAME/APP_UID + QString appUid = str.section(BACKSLASH, -1,-1); + if(appUid.contains("0x", Qt::CaseInsensitive)) + { + appUid.remove(0,2); + } + int error = HelpUtils::launchApplication(appUid); + if(error != 0) + { + qDebug() << "AIW-ERROR: AppMgrClient:test: Send failed" << error; + } + return true; + } + + return false; +} + +bool HelpContentsView::openExternalLink(const QUrl& url) +{ + QString str = url.toString(); + if(str.startsWith(URL_HEADER_HTTP) || + str.startsWith(URL_HEADER_HTTPS) || + str.startsWith(URL_HEADER_FTP)) + { + return true; + } + + return false; +} + +void HelpContentsView::openHelpContent(const QUrl& url) +{ + QString html; + QString urlStr = url.toString(); + HelpDataProvider::instance()->getHelpContentData(html, urlStr); + mBrowser->setHtml(html, urlStr); +} + +//////////////////////////////////////////////////////////////////////////////////////////// + +void HelpContentsView::onViewReady() +{ + if(isVisible()) + { + setNavigationAction(mSoftKeyAction); + openHelpContent(); + } + else + { + mBrowser->clearHistory(); + } +} + +/////////////////////////////////////////////////////////////////////////////////////// + +void HelpContentsView::onBackAction() +{ + if(mBrowser->canGoBack()) + { + mBrowser->back(); + } + else + { + emit activateView(PreviousView); + } +} + +/////////////////////////////////////////////////////////////////////////////////////// + +void HelpContentsView::onLinkClicked(const QUrl& url) +{ + // try to open as application + if(openApplication(url)) + { + return; + } + + // try to open as remote link + if(openExternalLink(url)) + { + return; + } + + // try to open as local link + { + openHelpContent(url); + return; + } +} + +void HelpContentsView::onUrlChanged(const QUrl& url) +{ + openHelpContent(url); +} + + +// end of file diff -r 0d1adf67ec1b -r 12f60d9a73b3 userguide/src/HelpDataProvider.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/userguide/src/HelpDataProvider.cpp Tue Aug 31 15:06:12 2010 +0300 @@ -0,0 +1,510 @@ +/* +* Copyright (c) 2009 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: +* +*/ + +#include +#include +#include +#include +#include +#include + +#include "HelpUtils.h" +#include "HelpCommon.h" +#include "HelpProxyModel.h" +#include "HelpStandardItem.h" + +#include "HelpDataProvider.h" + + +HelpDataProvider::HelpDataProvider() +{ + mHelpModel = new QStandardItemModel(); + mKeywordModel = new QStandardItemModel(); + mSearhResultModel = new HelpProxyModel(); + mSearhResultModel->setSourceModel(mKeywordModel); + mAppItem = NULL; +} + +HelpDataProvider::~HelpDataProvider() +{ + delete mHelpModel; + delete mSearhResultModel; + delete mKeywordModel; +} + + +/////////////////////////////////////////////////////////////////////////////////////// + +HelpDataProvider* gHelpDataProviderInstance = NULL; + +HelpDataProvider* HelpDataProvider::instance() +{ + if(!gHelpDataProviderInstance) + { + gHelpDataProviderInstance = new HelpDataProvider(); + } + + return gHelpDataProviderInstance; +} + +void HelpDataProvider::destroyInstance() +{ + delete gHelpDataProviderInstance; + gHelpDataProviderInstance = NULL; +} + + +/////////////////////////////////////////////////////////////////////////////////////// + +QAbstractItemModel* HelpDataProvider::getCategoryData() +{ + return mHelpModel; +} + +QAbstractItemModel* HelpDataProvider::getSearchData(const QString& key) +{ + if(key == mLastSrhKey) + { + return mSearhResultModel; + } + + mLastSrhKey = key; + mSearhResultModel->setFilterRegExp(key); + + + return mSearhResultModel; +} + +void HelpDataProvider::setHelpContentUrl(const QString& uid, const QString& href) +{ + QUrl url = QUrl::fromLocalFile(uid+BACKSLASH+href); + mHelpContentRoot = url.toString(); +} + +void HelpDataProvider::getHelpContentData(QString& content, QString& url) +{ + // url + if(url.isEmpty()) + { + url = mHelpContentRoot; + } + url.remove(URL_HEADER_LOCAL); + + // uid + QString uid = url.section(BACKSLASH, 0, -3); + uid.append(BACKSLASH + url.section(BACKSLASH, -2,-2)); + + // href + QString href = url.section(BACKSLASH, -1,-1); + int anchorPos = href.indexOf(HASHMARK); + if(anchorPos != -1) + { + href = href.section(HASHMARK, 0, 0); + } + + QString path(uid); + path.append(BACKSLASH); + path.append(CONTENTSZIP); + HelpUtils::loadHtmlFromZipFile(path , href, content); +} + + +/////////////////////////////////////////////////////////////////////////////////////// + +void HelpDataProvider::createHelpCategory() +{ + constructCategory(); + + mHelpModel->setSortRole(Qt::DisplayRole); + + constructCategory2((HelpStandardItem*)mHelpModel->invisibleRootItem()); + + if(mAppItem) + { + mHelpModel->appendRow(mAppItem); + mAppItem->sortChildren(0, HelpUtils::sortOrder()); + constructCategory2(mAppItem); + } + + mKeywordModel->sort(0, HelpUtils::sortOrder()); +} + +void HelpDataProvider::constructCategory() +{ + QFileInfoList driveList = QDir::drives(); + QDir dir; + QString lang = HelpUtils::UILocaleFromQtToSymbian(); + + QString path(HelpUtils::rootPath()); + path.append(XHTMLPATH); + path.append(lang); + + QStringList uidList; + QStringList titleList; + parseCategoryIndexXml(path, uidList, titleList); + + //scan other root path and construct 3rd party help + foreach(QFileInfo fi, driveList) + { + path.clear(); + path.append(fi.absolutePath()); + path.append(XHTMLPATH); + path.append(lang); + dir.setPath(path); + if(dir.exists()) + { + if(QString::compare(fi.absolutePath(), HelpUtils::rootPath(), Qt::CaseInsensitive) == 0) + { + continue; + } + constructAppCategory(path, uidList); + } + } + + constructBuiltInCategory(path, uidList, titleList); + + mHelpModel->setSortRole(PriorityRole); + mHelpModel->sort(0, HelpUtils::sortOrder()); +} + +void HelpDataProvider::constructBuiltInCategory(const QString& path, const QStringList& uidList, const QStringList& titleList) +{ + if(uidList.count() != titleList.count()) + { + //ToDo + return; + } + + for(int i = 0; i < uidList.count(); i++) + { + if(mUpdateUidList.contains(uidList[i])) + { + continue; + } + + QString uid(path); + uid.append(BACKSLASH); + uid.append(uidList[i]); + + constructBuiltInCategoryItem(uid, titleList[i]); + } +} + +void HelpDataProvider::constructAppCategory(const QString& path, QStringList& uidList) +{ + QDir dir(path); + if(!dir.exists()) + { + return; + } + + QStringList uidDirList = dir.entryList(); + QString pathUid; + foreach(QString uid, uidDirList) + { + pathUid.clear(); + pathUid.append(path); + pathUid.append(BACKSLASH); + pathUid.append(uid); + + QString titleStr; + parseAppMetaxml(pathUid, titleStr); + if(titleStr.isEmpty()) + { + continue; + } + + if(uidList.contains(uid) || mUpdateUidList.contains(uid)) + { + mUpdateUidList.append(uid); + constructBuiltInCategoryItem(pathUid, titleStr); + continue; + } + + HelpStandardItem* item = NULL; + item = new HelpStandardItem(titleStr); + + if(!item) + { + //no memory + return; + } + + item->setData(pathUid, UidRole); + + if(!mAppItem) + { + mAppItem = new HelpStandardItem(qtTrId(TXT_APPLICATIONS)); + if(!mAppItem) + { + //no memory + return; + } + mAppItem->setData(APPPRIORITY, PriorityRole); + } + mAppItem->appendRow(item); + } +} + +void HelpDataProvider::constructBuiltInCategoryItem(const QString& uid, const QString& title) +{ + int priority; + parseBuiltInMetaxml(uid, priority); + + HelpStandardItem* item = NULL; + item = new HelpStandardItem(title); + + if(!item) + { + //no memory + return; + } + item->setData(uid, UidRole); + item->setData(priority, PriorityRole); + mHelpModel->appendRow(item); +} + +void HelpDataProvider::constructCategory2(HelpStandardItem* itemParent) +{ + int count = itemParent->rowCount(); + for(int i =0; i < count; i++) + { + HelpStandardItem* item = (HelpStandardItem*)itemParent->child(i); + constructCategory2Item(item); + } +} + +void HelpDataProvider::constructCategory2Item(HelpStandardItem* itemParent) +{ + QStringList hrefList; + QStringList titleList; + + QString uid = itemParent->data(UidRole).toString(); + parseCategory2IndexXml(uid, hrefList, titleList); + + if(hrefList.count() == 0 || hrefList.count() != titleList.count()) + { + return; + } + + for(int i = 0; i < hrefList.count(); i++) + { + HelpStandardItem* item = NULL; + item = new HelpStandardItem(titleList[i]); + if(!item) + { + //no memory + return; + } + item->setData(hrefList[i], HrefRole); + item->setData(uid, UidRole); + itemParent->appendRow(item); + constructKeywordModel(titleList[i], uid, hrefList[i]); + } + + itemParent->sortChildren(0, HelpUtils::sortOrder()); +} + +void HelpDataProvider::constructKeywordModel(const QString& title, const QString& uid, const QString& href) +{ + HelpStandardItem* item = NULL; + item = new HelpStandardItem(title); + if(!item) + { + //no memory + return; + } + item->setData(uid, UidRole); + item->setData(href, HrefRole); + mKeywordModel->appendRow(item); +} + +void HelpDataProvider::parseCategoryIndexXml(const QString& path, QStringList& uidList, QStringList& titleList) +{ + QString pathIndex(path); + pathIndex.append(BACKSLASH); + pathIndex.append(INDEXXML); + + QFile file(pathIndex); + if (!file.open(QIODevice::ReadOnly)) { + return; + } + + //parse index xml to a stringlist, each string include id and navtitle and seperate by "specilchar" + QXmlQuery query; + query.bindVariable("inputdoc", &file); + + query.setQuery("doc($inputdoc)/collections/collection/xs:string(@id)"); + if(!query.isValid()) + { + return; + } + if(!query.evaluateTo(&uidList)) + { + return; + } + + query.setQuery("doc($inputdoc)/collections/collection/xs:string(@navtitle)"); + if(!query.isValid()) + { + return; + } + if(!query.evaluateTo(&titleList)) + { + return; + } + + QStringList featureIdLst; + + query.setQuery("doc($inputdoc)/collections/collection/number(@FeatureId)"); + if(!query.isValid()) + { + return; + } + if(!query.evaluateTo(&featureIdLst)) + { + return; + } + + if(featureIdLst.count() != uidList.count()) + { + return; + } + + for(int i = featureIdLst.count() - 1; i >= 0; i--) + { + int featureID = featureIdLst.at(i).toInt(); + if(!HelpUtils::suppportFeatureID(featureID)) + { + uidList.removeAt(i); + titleList.removeAt(i); + } + } +} + +void HelpDataProvider::parseCategory2IndexXml(const QString& path, QStringList& hrefList, QStringList& titleList) +{ + QString pathIndex(path); + pathIndex.append(BACKSLASH); + pathIndex.append(INDEXXML); + + QFile file(pathIndex); + if (!file.open(QIODevice::ReadOnly)) { + return; + } + + //parse index xml to a stringlist, each string include href and navtitle and seperate by "specilchar" + QXmlQuery query; + query.bindVariable("inputdoc", &file); + + query.setQuery("doc($inputdoc)/topics/topicref/xs:string(@href)"); + if(!query.isValid()) + { + return; + } + if(!query.evaluateTo(&hrefList)) + { + return; + } + + query.setQuery("doc($inputdoc)/topics/topicref/xs:string(@navtitle)"); + if(!query.isValid()) + { + return; + } + if(!query.evaluateTo(&titleList)) + { + return; + } + + QStringList featureIdLst; + + query.setQuery("doc($inputdoc)/topics/topicref/number(@FeatureId)"); + if(!query.isValid()) + { + return; + } + if(!query.evaluateTo(&featureIdLst)) + { + return; + } + + if(featureIdLst.count() != hrefList.count()) + { + return; + } + + for(int i = featureIdLst.count() - 1; i >= 0; i--) + { + int featureID = featureIdLst.at(i).toInt(); + if(!HelpUtils::suppportFeatureID(featureID)) + { + hrefList.removeAt(i); + titleList.removeAt(i); + } + } +} + +void HelpDataProvider::parseBuiltInMetaxml(const QString& path, int& priority) +{ + QString pathMetaxml(path); + pathMetaxml.append(BACKSLASH); + pathMetaxml.append(METAXML); + + priority = -1; + + QFile file(pathMetaxml); + if (!file.open(QIODevice::ReadOnly)) + { + return; + } + + QXmlQuery query; + QString str; + query.bindVariable("inputdoc", &file); + + query.setQuery("doc($inputdoc)/meta/number(priority)"); + if(query.isValid() && query.evaluateTo(&str)) + { + priority = str.toInt(); + } +} + +void HelpDataProvider::parseAppMetaxml(const QString& path, QString& title) +{ + QString pathMetaxml(path); + pathMetaxml.append(BACKSLASH); + pathMetaxml.append(METAXML); + QFile file(pathMetaxml); + if (!file.open(QIODevice::ReadOnly)) { + return; + } + + //parse meta xml, get the title string + QXmlQuery query; + query.bindVariable("inputdoc", &file); + query.setQuery("doc($inputdoc)/meta/string(title)"); + if(!query.isValid()) + { + return; + } + + if(!query.evaluateTo(&title)) + { + return; + } +} diff -r 0d1adf67ec1b -r 12f60d9a73b3 userguide/src/HelpDocumentLoader.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/userguide/src/HelpDocumentLoader.cpp Tue Aug 31 15:06:12 2010 +0300 @@ -0,0 +1,73 @@ +/* +* Copyright (c) 2009 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: +* +*/ + +#include "HelpCategoryView.h" +#include "HelpContentsView.h" +#include "BrowserWrapper.h" + +#include "HelpDocumentLoader.h" + + +//////////////////////////////////////////////////////////////////////////////////////////// + +QObject* HelpDocumentLoader::createObject(const QString& type, const QString& name) +{ + if(type == BrowserWrapper::staticMetaObject.className()) + { + QObject* object = new BrowserWrapper; + object->setObjectName(name); + return object; + } + + return HbDocumentLoader::createObject(type, name); +} + + +//////////////////////////////////////////////////////////////////////////////////////////// +void HelpUIBuilder::setObjectTree(QObjectList roots) +{ + mDocLoader.setObjectTree(roots); +} + +QObjectList HelpUIBuilder::load(const QString& fileName) +{ + bool ok = false; + QObjectList list = mDocLoader.load(fileName, &ok); + Q_ASSERT_X(ok, "Help", "HelpUIBuilder load file"); + return list; +} + +QObjectList HelpUIBuilder::load(const QString& fileName, const QString& section) +{ + bool ok = false; + QObjectList list = mDocLoader.load(fileName, section, &ok); + Q_ASSERT_X(ok, "Help", "HelpUIBuilder load section"); + return list; +} + +QGraphicsWidget* HelpUIBuilder::findWidget(const QString& name) +{ + return mDocLoader.findWidget(name); +} + +QObject* HelpUIBuilder::findObject(const QString& name) +{ + return mDocLoader.findObject(name); +} + +// end of file + diff -r 0d1adf67ec1b -r 12f60d9a73b3 userguide/src/HelpKeywordView.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/userguide/src/HelpKeywordView.cpp Tue Aug 31 15:06:12 2010 +0300 @@ -0,0 +1,283 @@ +/* +* Copyright (c) 2009 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: +* +*/ + +#include +#include + +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include + +#include "HelpDataProvider.h" +#include "HelpProxyModel.h" + +#include "HelpKeywordView.h" + + +////////////////////////////////////////////////////////////////////////////////////////////// + +HelpKeywordView::HelpKeywordView() : +mListSearch(NULL), +mSearchPanel(NULL) +{ +} + +HelpKeywordView::~HelpKeywordView() +{ +} + + +//////////////////////////////////////////////////////////////////////////////////////////// + +void HelpKeywordView::init() +{ + initDocMl(); + initBackAction(); + initSearchList(); + initSearchPanel(); + initVirtualKeyboard(); + + connect(mainWindow(), SIGNAL(viewReady()), this, SLOT(onViewReady())); +} + +void HelpKeywordView::initDocMl() +{ + initBaseDocMl(); + mBuilder.load(QRC_DOCML_KEYWORD); +} + +void HelpKeywordView::initBackAction() +{ + mSoftKeyAction = new HbAction(Hb::BackNaviAction); + connect(mSoftKeyAction, SIGNAL(triggered()), this, SLOT(onBackAction())); +} + +void HelpKeywordView::initSearchList() +{ + mListSearch = mBuilder.findWidget(DOCML_LIST_SEARCH); + mListSearch->setHorizontalScrollBarPolicy(HbScrollArea::ScrollBarAlwaysOff); + mListSearch->setModel(HelpDataProvider::instance()->getSearchData()); + connect(mListSearch, SIGNAL(activated(const QModelIndex&)), this, SLOT(onSearchListActivated(const QModelIndex&))); +} +void HelpKeywordView::initSearchPanel() +{ + mSearchPanel = mBuilder.findWidget(DOCML_SEARCH_PANEL); + connect(mSearchPanel, SIGNAL(exitClicked()), this, SLOT(onSearchPanelExitClicked())); + connect(mSearchPanel, SIGNAL(criteriaChanged(const QString&)), this, SLOT(onSearchPanelCriteriaChanged(const QString&))); +} + +void HelpKeywordView::initVirtualKeyboard() +{ + mVirtualKeyboard = new HbStaticVkbHost(this); + connect(mVirtualKeyboard, SIGNAL(keypadOpened()), this, SLOT(onHandleKeypadOpen())); + connect(mVirtualKeyboard, SIGNAL(keypadClosed()), this, SLOT(onHandleKeypadClose())); +} + +HbLabel* HelpKeywordView::label() +{ + return mBuilder.findWidget(DOCML_NO_MATCH_LABEL); +} + +void HelpKeywordView::loadAllContent() +{ + showToolBar(false); + mBuilder.load(QRC_DOCML_KEYWORD, DOCML_LAYOUT_SEARCH); + ResetSearchPanel(); + +} + +//////////////////////////////////////////////////////////////////////////////////////////// + +void HelpKeywordView::updateVisibleItems(bool visible) +{ + static Hb::SceneItems items = Hb::TitleBarItem | Hb::StatusBarItem; + if(visible) + { + showItems(items); + } + else + { + hideItems(items); + } +} + +void HelpKeywordView::ResetSearchPanel() +{ + foreach(QGraphicsItem *obj, mSearchPanel->childItems()) + { + QGraphicsWidget *const widget = static_cast(obj); + if(widget != NULL) + { + HbLineEdit *const lineEdit = qobject_cast(widget); + if(lineEdit != NULL) + { + lineEdit->setText(""); + lineEdit->setFocus(); + break; + } + } + } +} + +void HelpKeywordView::updateLabelPos() +{ + HbDeviceProfile profile = HbDeviceProfile::profile(mainWindow()); + qreal unValue = profile.unitValue(); + if(mainWindow()->orientation() == Qt::Vertical) + { + if(mVirtualKeyboard->keypadStatus() == HbVkbHost::HbVkbStatusClosed) + { + label()->setContentsMargins(0,30 * unValue,0,0); + } + else + { + label()->setContentsMargins(0,10 * unValue,0,0); + } + } + else + { + if(mVirtualKeyboard->keypadStatus() == HbVkbHost::HbVkbStatusClosed) + { + label()->setContentsMargins(0,10 * unValue,0,0); + } + else + { + label()->setContentsMargins(0,0,0,0); + label()->setAlignment(label()->alignment() | Qt::AlignVCenter); + } + } +} + +void HelpKeywordView::showToolBar(bool visible) +{ + Hb::SceneItems items = Hb::ToolBarItem; + if(visible) + { + showItems(items); + } + else + { + hideItems(items); + } +} + +//////////////////////////////////////////////////////////////////////////////////////////// +// handle system event + +void HelpKeywordView::onViewReady() +{ + if(isVisible()) + { + setNavigationAction(mSoftKeyAction); + } +} + +/////////////////////////////////////////////////////////////////////////////////////// +// handle button back action + +void HelpKeywordView::onBackAction() +{ + emit activateView(HelpViewCategory); +} + + +//////////////////////////////////////////////////////////////////////////////////////////// +// handle list event + +void HelpKeywordView::onSearchListActivated(const QModelIndex& index) +{ + if(!index.isValid() || // invalid + index.child(0,0).isValid()) // this is a node + { + return; + } + + QString uid = mListSearch->model()->data(index, UidRole).toString(); + QString href = mListSearch->model()->data(index, HrefRole).toString(); + HelpDataProvider::instance()->setHelpContentUrl(uid, href); + emit activateView(HelpViewContents); +} + + +//////////////////////////////////////////////////////////////////////////////////////////// +// handle search panel event + +void HelpKeywordView::onSearchPanelExitClicked() +{ + if(mListSearch->model()->rowCount() == 0) + { + mBuilder.load(QRC_DOCML_KEYWORD, DOCML_LAYOUT_SEARCH_NO_SRHPAL_NO_MATCH); + } + else + { + mBuilder.load(QRC_DOCML_KEYWORD, DOCML_LAYOUT_SEARCH_NO_SRHPAL); + } + showToolBar(true); +} + +void HelpKeywordView::onSearchPanelCriteriaChanged(const QString &criteria) +{ + HelpDataProvider::instance()->getSearchData(criteria); + if(mListSearch->model()->rowCount() == 0) + { + mBuilder.load(QRC_DOCML_KEYWORD, DOCML_LAYOUT_SEARCH_NO_MATCH); + } + else + { + mBuilder.load(QRC_DOCML_KEYWORD, DOCML_LAYOUT_SEARCH); + } + showToolBar(false); +} + +//////////////////////////////////////////////////////////////////////////////////////////// +// handle virtual keyboard event + +void HelpKeywordView::onHandleKeypadOpen() +{ + updateVisibleItems(false); + qreal heightToSet = mainWindow()->layoutRect().height() - mVirtualKeyboard->keyboardArea().height(); + this->setMaximumHeight(heightToSet); + updateLabelPos(); +} + +void HelpKeywordView::onHandleKeypadClose() +{ + updateVisibleItems(true); + qreal mainHeight = mainWindow()->layoutRect().height(); + qreal toolbarHeight = toolBar()->size().height(); + qreal height = mainHeight - ( toolBar()->isVisible() ? toolbarHeight : 0); + this->setMaximumHeight(height); + updateLabelPos(); +} + +void HelpKeywordView::onOrientationChanged(Qt::Orientation orientation) +{ + Q_UNUSED(orientation); + updateLabelPos(); +} + +// end of file diff -r 0d1adf67ec1b -r 12f60d9a73b3 userguide/src/HelpMainWindow.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/userguide/src/HelpMainWindow.cpp Tue Aug 31 15:06:12 2010 +0300 @@ -0,0 +1,165 @@ +/* +* Copyright (c) 2009 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: +* +*/ + +#include +#include +#include +#include +#include + +#include "HelpBaseView.h" +#include "HelpCategoryView.h" +#include "HelpKeywordView.h" +#include "HelpContentsView.h" + +#include "HelpMainWindow.h" +#include "HelpDataProvider.h" + +HelpMainWindow::HelpMainWindow() : +mCategoryView(NULL), +mKeywordView(NULL), +mContentsView(NULL) +{ + QObject::connect(qApp, SIGNAL(aboutToQuit()), this, SLOT(saveActivity())); + HelpDataProvider::instance()->createHelpCategory(); + activateCategoryView(); +} + +HelpMainWindow::~HelpMainWindow() +{ + HelpDataProvider::destroyInstance(); +} + +void HelpMainWindow::onActivateView(HelpViewName viewName) +{ + switch(viewName) + { + case HelpViewCategory: + activateCategoryView(); + break; + case HelpViewKeyword: + activateKeywordView(); + break; + case HelpViewContents: + activateContentsView(); + break; + case PreviousView: + { + onActivateView(mPreviousViewName); + } + break; + default: + HbApplication::exit(); + break; + } +} + +void HelpMainWindow::activateCategoryView() +{ + if(!mCategoryView) + { + mCategoryView = new HelpCategoryView(); + addView(mCategoryView); + mCategoryView->init(); + emit currentViewChanged(mCategoryView); + connectViewSignal(mCategoryView); + } + + mPreviousViewName = HelpViewCategory; + setCurrentView(mCategoryView); +} + +void HelpMainWindow::activateKeywordView() +{ + if(!mKeywordView) + { + mKeywordView = new HelpKeywordView(); + addView(mKeywordView); + mKeywordView->init(); + connectViewSignal(mKeywordView); + } + + mPreviousViewName = HelpViewKeyword; + setCurrentView(mKeywordView); +} + +void HelpMainWindow::activateContentsView() +{ + if(!mContentsView) + { + mContentsView = new HelpContentsView(); + addView(mContentsView); + mContentsView->init(); + + connectViewSignal(mContentsView); + } + setCurrentView(mContentsView); +} + +void HelpMainWindow::connectViewSignal(const HelpBaseView *view) +{ + connect(this, SIGNAL(orientationChanged(Qt::Orientation)), view, SLOT(onOrientationChanged(Qt::Orientation))); + connect(view, SIGNAL(activateView(HelpViewName)), this, SLOT(onActivateView(HelpViewName))); + + connect(view, SIGNAL(showAllList()), this, SLOT(onShowAllList())); + connect(view, SIGNAL(showFindList()), this, SLOT(onShowFindList())); +} + + +//////////////////////////////////////////////////////////////////////////////////// +// handle view event + +void HelpMainWindow::onShowAllList() +{ + activateCategoryView(); +} + +void HelpMainWindow::onShowFindList() +{ + activateKeywordView(); + mKeywordView->loadAllContent(); +} + +void HelpMainWindow::saveActivity() +{ + HbActivityManager* activityManager = qobject_cast(qApp)->activityManager(); + + // clean up any previous versions of this activity from the activity manager. + bool ok = activityManager->removeActivity("UserGuideMainView"); + if ( !ok ) + { + //qFatal("Remove failed" ); + } + + // get a screenshot for saving to the activity manager + QVariantHash metadata; + metadata.insert("screenshot", QPixmap::grabWidget(this, rect())); + + // save any data necessary to save the state + QByteArray serializedActivity; + QDataStream stream(&serializedActivity, QIODevice::WriteOnly | QIODevice::Append); + + // add the activity to the activity manager + ok = activityManager->addActivity("UserGuideMainView", serializedActivity, metadata); + if ( !ok ) + { + qFatal("Add failed" ); + } +} + +// end of file + diff -r 0d1adf67ec1b -r 12f60d9a73b3 userguide/src/HelpProxyModel.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/userguide/src/HelpProxyModel.cpp Tue Aug 31 15:06:12 2010 +0300 @@ -0,0 +1,65 @@ +/* +* Copyright (c) 2009 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: +* +*/ + +#include +#include + +#include "HelpUtils.h" +#include "HelpCommon.h" +#include "HelpProxyModel.h" + +HelpProxyModel::HelpProxyModel(QObject * parent):QSortFilterProxyModel(parent) +{ +} + +HelpProxyModel::~HelpProxyModel() +{ +} + +bool HelpProxyModel::filterAcceptsRow(int sourceRow, + const QModelIndex &sourceParent) const +{ + QModelIndex index = sourceModel()->index(sourceRow, 0, sourceParent); + + switch(filterRole()) + { + case KeywordRole: + { + QStringList keywordLst = sourceModel()->data(index, KeywordRole).toStringList(); + + foreach(QString str, keywordLst) + { + if(HelpUtils::findStr(str, filterRegExp().pattern()) != -1) + { + return true; + } + } + return false; + } + case Qt::DisplayRole: + { + QString title = sourceModel()->data(index, Qt::DisplayRole).toString(); + if(HelpUtils::findStr(title, filterRegExp().pattern()) != -1) + { + return true; + } + return false; + } + default: + return QSortFilterProxyModel::filterAcceptsRow(sourceRow, sourceParent); + } +} diff -r 0d1adf67ec1b -r 12f60d9a73b3 userguide/src/HelpStandardItem.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/userguide/src/HelpStandardItem.cpp Tue Aug 31 15:06:12 2010 +0300 @@ -0,0 +1,48 @@ +/* +* Copyright (c) 2009 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: +* +*/ + +#include "HelpUtils.h" +#include "HelpCommon.h" +#include "HelpStandardItem.h" + +HelpStandardItem::HelpStandardItem(const QString& text) : QStandardItem(text) +{ +} + +HelpStandardItem::~HelpStandardItem() +{ +} + +bool HelpStandardItem::operator<(const QStandardItem & other) const +{ + const int role = model() ? model()->sortRole() : Qt::DisplayRole; + switch(role) + { + case Qt::DisplayRole: + if(HelpUtils::compareStr(text(), other.text()) < 0) + { + return true; + } + break; + case UidRole: + case HrefRole: + case KeywordRole: + default: + return QStandardItem::operator<(other); + } + return false; +} diff -r 0d1adf67ec1b -r 12f60d9a73b3 userguide/src/HelpUtils.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/userguide/src/HelpUtils.cpp Tue Aug 31 15:06:12 2010 +0300 @@ -0,0 +1,289 @@ +/* +* Copyright (c) 2009 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: +* +*/ + +#include +#include +#include + +#include + +#include "HelpUtils.h" + + +///////////////////////////////////////////////////////////////////////////////////////////////////////// + +#ifdef Q_OS_SYMBIAN + +#include +#include + +#include +#include +#include + +void LoadFileFromZipL(const TDesC& aZipName, const TDesC& aFileName, QString& desBuffer) + { + + // open the zip file + RFs& fs = CEikonEnv::Static()->FsSession(); + CZipFile* zipFile = CZipFile::NewL(fs, aZipName); + CleanupStack::PushL(zipFile); + TInt err = zipFile->OpenL(); + + if(err == KErrNone) + { + CZipFileMember* member = zipFile->MemberL(aFileName); + if(member) // member exist + { + CleanupStack::PushL(member); + + RZipFileMemberReaderStream* stream; + zipFile->GetInputStreamL(member, stream); + CleanupStack::PushL(stream); + + HBufC8* buffer = HBufC8::NewLC(member->UncompressedSize()); + TPtr8 ptr(buffer->Des()); + User::LeaveIfError(stream->Read(ptr, member->UncompressedSize())); + + QByteArray byteArray((const char*)buffer->Ptr(), buffer->Length()); + desBuffer.append(byteArray); + + CleanupStack::PopAndDestroy(buffer); + CleanupStack::PopAndDestroy(stream); + CleanupStack::PopAndDestroy(member); + } + } + + zipFile->Close(); + CleanupStack::PopAndDestroy(zipFile); + + } + +void FixPathSlash(TDes& aPath) + { + for(TInt i=0; i iso_to_symbian_map; + iso_to_symbian_map.insert("en_GB" ,ELangEnglish); + iso_to_symbian_map.insert("fr_FR" ,ELangFrench); + iso_to_symbian_map.insert("de_DE" ,ELangGerman); + iso_to_symbian_map.insert("es_ES" ,ELangSpanish); + iso_to_symbian_map.insert("it_IT" ,ELangItalian); + iso_to_symbian_map.insert("sv_SE" ,ELangSwedish); + iso_to_symbian_map.insert("da_DK" ,ELangDanish); + iso_to_symbian_map.insert("no_NO" ,ELangNorwegian); + iso_to_symbian_map.insert("fi_FI" ,ELangFinnish); + iso_to_symbian_map.insert("en_US" ,ELangAmerican); + iso_to_symbian_map.insert("fr_CH" ,ELangSwissFrench); + iso_to_symbian_map.insert("de_CH" ,ELangSwissGerman); + iso_to_symbian_map.insert("pt_PT" ,ELangPortuguese); + iso_to_symbian_map.insert("tr_TR" ,ELangTurkish); + iso_to_symbian_map.insert("is_IS" ,ELangIcelandic); + iso_to_symbian_map.insert("ru_RU" ,ELangRussian); + iso_to_symbian_map.insert("hu_HU" ,ELangHungarian); + iso_to_symbian_map.insert("nl_NL" ,ELangDutch); + iso_to_symbian_map.insert("nl_BE" ,ELangBelgianFlemish); + iso_to_symbian_map.insert("en_AU" ,ELangAustralian); + iso_to_symbian_map.insert("fr_BE" ,ELangBelgianFrench); + iso_to_symbian_map.insert("de_AT" ,ELangAustrian); + iso_to_symbian_map.insert("en_NZ" ,ELangNewZealand); + iso_to_symbian_map.insert("fr" ,ELangInternationalFrench); + iso_to_symbian_map.insert("cs_CZ" ,ELangCzech); + iso_to_symbian_map.insert("sk_SK" ,ELangSlovak); + iso_to_symbian_map.insert("pl_PL" ,ELangPolish); + iso_to_symbian_map.insert("sl_SI" ,ELangSlovenian); + iso_to_symbian_map.insert("zh_TW" ,ELangTaiwanChinese); + iso_to_symbian_map.insert("zh_HK" ,ELangHongKongChinese); + iso_to_symbian_map.insert("zh_CN" ,ELangPrcChinese); + iso_to_symbian_map.insert("ja_JP" ,ELangJapanese); + iso_to_symbian_map.insert("th_TH" ,ELangThai); + iso_to_symbian_map.insert("af" ,ELangAfrikaans); + iso_to_symbian_map.insert("sq_AL" ,ELangAlbanian); + iso_to_symbian_map.insert("am_ET" ,ELangAmharic); + iso_to_symbian_map.insert("ar_AE" ,ELangArabic); + iso_to_symbian_map.insert("hy_AM" ,ELangArmenian); + iso_to_symbian_map.insert("tl_PH" ,ELangTagalog); + iso_to_symbian_map.insert("be_BY" ,ELangBelarussian); + iso_to_symbian_map.insert("bn" ,ELangBengali); + iso_to_symbian_map.insert("bg_BG" ,ELangBulgarian); + iso_to_symbian_map.insert("my_MM" ,ELangBurmese); + iso_to_symbian_map.insert("ca_ES" ,ELangCatalan); + iso_to_symbian_map.insert("hr_HR" ,ELangCroatian); + iso_to_symbian_map.insert("en_CA" ,ELangCanadianEnglish); + iso_to_symbian_map.insert( "en" ,ELangInternationalEnglish); + iso_to_symbian_map.insert("en_ZA" ,ELangSouthAfricanEnglish); + iso_to_symbian_map.insert("et_EE" ,ELangEstonian); + iso_to_symbian_map.insert("fa_IR" ,ELangFarsi); + iso_to_symbian_map.insert("fr_CA" ,ELangCanadianFrench); + iso_to_symbian_map.insert("gd_GB" ,ELangScotsGaelic); + iso_to_symbian_map.insert("ka_GE" ,ELangGeorgian); + iso_to_symbian_map.insert("el_GR" ,ELangGreek); + iso_to_symbian_map.insert("el_GR" ,ELangCyprusGreek); + iso_to_symbian_map.insert("gu_IN" ,ELangGujarati); + iso_to_symbian_map.insert("he_IL" ,ELangHebrew); + iso_to_symbian_map.insert("hi_IN" ,ELangHindi); + iso_to_symbian_map.insert("id_ID" ,ELangIndonesian); + iso_to_symbian_map.insert("ga_IE" ,ELangIrish); + iso_to_symbian_map.insert("it_CH" ,ELangSwissItalian); + iso_to_symbian_map.insert("kn_IN" ,ELangKannada); + iso_to_symbian_map.insert("kk_KZ" ,ELangKazakh); + iso_to_symbian_map.insert("km_KH" ,ELangKhmer); + iso_to_symbian_map.insert("ko_KR" ,ELangKorean); + iso_to_symbian_map.insert("lo_LA" ,ELangLao); + iso_to_symbian_map.insert("lv_LV" ,ELangLatvian); + iso_to_symbian_map.insert("lt_LT" ,ELangLithuanian); + iso_to_symbian_map.insert("mk_MK" ,ELangMacedonian); + iso_to_symbian_map.insert("ms_MY" ,ELangMalay); + iso_to_symbian_map.insert("ml_IN" ,ELangMalayalam); + iso_to_symbian_map.insert("mr_IN" ,ELangMarathi); + iso_to_symbian_map.insert("mo_MD" ,ELangMoldavian); + iso_to_symbian_map.insert("mn_MN" ,ELangMongolian); + iso_to_symbian_map.insert("nn_NO" ,ELangNorwegianNynorsk); + iso_to_symbian_map.insert("pt_BR" ,ELangBrazilianPortuguese); + iso_to_symbian_map.insert("pa" ,ELangPunjabi); + iso_to_symbian_map.insert("ro_RO" ,ELangRomanian); + iso_to_symbian_map.insert("sr_YU" ,ELangSerbian); + iso_to_symbian_map.insert("si_LK" ,ELangSinhalese); + iso_to_symbian_map.insert("so_SO" ,ELangSomali); + iso_to_symbian_map.insert( "es" ,ELangInternationalSpanish); + iso_to_symbian_map.insert( "es" ,ELangLatinAmericanSpanish); + iso_to_symbian_map.insert("sw" ,ELangSwahili); + iso_to_symbian_map.insert("sv_FI" ,ELangFinlandSwedish); + iso_to_symbian_map.insert("ta_IN" ,ELangTamil); + iso_to_symbian_map.insert("te_IN" ,ELangTelugu); + iso_to_symbian_map.insert("bo_CN" ,ELangTibetan); + iso_to_symbian_map.insert("ti_ER" ,ELangTigrinya); + iso_to_symbian_map.insert("tr_GR" ,ELangCyprusTurkish); + iso_to_symbian_map.insert("tk_TM" ,ELangTurkmen); + iso_to_symbian_map.insert("uk_UA" ,ELangUkrainian); + iso_to_symbian_map.insert("ur_PK" ,ELangUrdu); + iso_to_symbian_map.insert("vi_VN" ,ELangVietnamese); + iso_to_symbian_map.insert("cy_GB" ,ELangWelsh); + iso_to_symbian_map.insert("zu_ZA" ,ELangZulu); + iso_to_symbian_map.insert("st_LS" ,ELangSouthSotho); + iso_to_symbian_map.insert("eu_ES" ,ELangBasque); + iso_to_symbian_map.insert("gl_ES" ,ELangGalician); + iso_to_symbian_map.insert("en" ,ELangEnglish_Apac); + iso_to_symbian_map.insert("en_TW" ,ELangEnglish_Taiwan); + iso_to_symbian_map.insert("en_HK" ,ELangEnglish_HongKong); + iso_to_symbian_map.insert("en_CN" ,ELangEnglish_Prc); + iso_to_symbian_map.insert("en_JP" ,ELangEnglish_Japan); + iso_to_symbian_map.insert("en_TH" ,ELangEnglish_Thailand); + iso_to_symbian_map.insert("ms" ,ELangMalay_Apac); + + QString langName = QLocale::system().name(); + return QString("%1").arg(iso_to_symbian_map.value(langName),2,10,QChar('0')); +#else + return QString("%1").arg(1,2,10,QChar('0')); +#endif +} + +int HelpUtils::launchApplication(const QString& appUid) +{ +#ifdef Q_OS_SYMBIAN + + QString uriStr("appto://"); + uriStr.append(appUid); + QUrl uri(uriStr); + + XQApplicationManager appmgr; + XQAiwRequest* req5 = appmgr.create(uri, false); + + QList args; + args << uri.encodedQuery(); + req5->setArguments(args); + + if (!req5->send()) + { + return req5->lastError(); + } +#else + Q_UNUSED(appUid); +#endif + return 0; +} + +bool HelpUtils::suppportFeatureID(int featureID) +{ +#ifdef Q_OS_SYMBIAN + if(featureID == -1) + { + return true; + } + QtMobility::QSystemInfo sysInfo; + return sysInfo.hasFeatureSupported((QtMobility::QSystemInfo::Feature)featureID); +#else + Q_UNUSED(featureID); + return true; +#endif +} + +Qt::Orientation HelpUtils::defaultOrientation() +{ + return Qt::Vertical; +} + +Qt::SortOrder HelpUtils::sortOrder() +{ + return Qt::AscendingOrder; +} + +int HelpUtils::findStr(const QString& strFrom, const QString& strToFind) +{ + return HbStringUtil::findC(strFrom, strToFind); +} + +int HelpUtils::compareStr(const QString& str1, const QString& str2) +{ + return HbStringUtil::compareC(str1, str2); +} + +// end of file diff -r 0d1adf67ec1b -r 12f60d9a73b3 userguide/src/HelpUtils_win.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/userguide/src/HelpUtils_win.cpp Tue Aug 31 15:06:12 2010 +0300 @@ -0,0 +1,27 @@ +/* +* Copyright (c) 2009 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: +* +*/ + +#include "HelpUtils.h" + +void HelpUtils::loadHtmlFromZipFile(const QString& path, const QString& htmlFile, QString& htmlContent) +{ + Q_UNUSED(path); + Q_UNUSED(htmlFile); + Q_UNUSED(htmlContent); + return; +} + diff -r 0d1adf67ec1b -r 12f60d9a73b3 userguide/src/main.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/userguide/src/main.cpp Tue Aug 31 15:06:12 2010 +0300 @@ -0,0 +1,48 @@ +/* +* Copyright (c) 2009 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: +* +*/ + +#include +#include +#include + +#include + +#include "HelpCommon.h" +#include "HelpMainWindow.h" + +int main(int argc, char *argv[]) +{ + HbApplication app(argc, argv); + + QString lang = QLocale::system().name(); + + // init translator with current system language + QTranslator* translatorCommon = new QTranslator(); + translatorCommon->load("common_"+lang, PATH_TRANSLATIONS); + qApp->installTranslator(translatorCommon); + + QTranslator* translatorSelf = new QTranslator(); + translatorSelf->load("userguide_"+lang, PATH_TRANSLATIONS); + qApp->installTranslator(translatorSelf); + + HelpMainWindow mainWindow; + mainWindow.show(); + + return app.exec(); +} + +// end of file