csxhelp/src/CSXHGenericContainer.cpp
branchRCL_3
changeset 17 12f60d9a73b3
parent 16 0d1adf67ec1b
child 18 cbffe13eac63
--- 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 <eikclbd.h>
-#include <aknlists.h>
-#include <featmgr.h>
-#include <AknPriv.hrh>
-
-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<KMaxFileName> 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<KMaxFileName> 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<KMaxFileName> 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);
-    }