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; - } -