diff -r 8173571d354e -r 1fc85118c3ae landmarksui/app/src/CLmkLbWithFilterContainer.cpp --- a/landmarksui/app/src/CLmkLbWithFilterContainer.cpp Thu Aug 19 09:48:36 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,287 +0,0 @@ -/* -* Copyright (c) 2002-2010 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 methods for implementing container with -* find/searchbox -* -*/ - -// INCLUDE FILES - -#include -#include -#include -#include "CLmkDocument.h" -#include "landmarks.hrh" -#include "CLmkAppUi.h" -#include "CLmkAppSelectorImplBase.h" -#include "CLmkLbWithFilterContainer.h" -#include -#include "Debug.h" - -// CONSTANTS -namespace { -#if defined(_DEBUG) -_LIT( KPanicText, "CLmkLbWithFilterContainer" ); - -void Panic( TPanicCode aReason ) - { - User::Panic( KPanicText, aReason ); - } -#endif -} // namespace -// ================= MEMBER FUNCTIONS ======================= - -// ---------------------------------------------------------------------------- -// CLmkLbWithFilterContainer::CLmkBaseContainer -// ---------------------------------------------------------------------------- -// -CLmkLbWithFilterContainer::CLmkLbWithFilterContainer( - MLmkKeyProcessor& aKeyProcessor, - const TDesC& aHelpContext ) - :CLmkBaseContainer( aKeyProcessor, aHelpContext ) - { - } - -// ---------------------------------------------------------------------------- -// CLmkLbWithFilterContainer::ConstructL -// Symbian 2nd phase constructor can leave. -// ---------------------------------------------------------------------------- -// -void CLmkLbWithFilterContainer::ConstructL( const TRect& aRect ) - { - CLmkBaseContainer::BaseConstructL(); - CreateWindowL(); - - // Get the skin instance - iSkinInstance = AknsUtils::SkinInstance(); - - // Create background control context for skinning the background - iBackgroundSkinContext = CAknsBasicBackgroundControlContext::NewL( - KAknsIIDQsnBgAreaMain, aRect, ETrue ); - - iIsNeedToReDraw = ETrue; - - CLmkAppUi* lmkAppUi = static_cast( ViewAppUi() ); - CPosLandmarkDatabase& db = lmkAppUi->Document().LmDbL(); - CLmkSender& sender = lmkAppUi->LmkSender(); - SetupSelectorAndListL( db, sender ); - - SetupTitlePaneL(); - SetupNaviPaneL(); - SetupFindBoxL(); - - // enable scroll arrows - CEikScrollBarFrame* sBFrame = iListBox->CreateScrollBarFrameL( ETrue ); - sBFrame->SetScrollBarVisibilityL( CEikScrollBarFrame::EOn, - CEikScrollBarFrame::EAuto ); - - SetRect( aRect ); - ActivateL(); - } - -// ---------------------------------------------------------------------------- -// CLmkLbWithFilterContainer::~CLmkLbWithFilterContainer -// ---------------------------------------------------------------------------- -// -CLmkLbWithFilterContainer::~CLmkLbWithFilterContainer() - { - delete iNaviDeco; - delete iFindBox; - delete iBackgroundSkinContext; - } -// ---------------------------------------------------------------------------- -// CLmkLbWithFilterContainer::ListBox() -// ---------------------------------------------------------------------------- -// -CEikTextListBox& CLmkLbWithFilterContainer::ListBox() - { - __ASSERT_DEBUG( iListBox, Panic( KLmkPanicNullMember ) ); - return *iListBox; - } - -// ---------------------------------------------------------------------------- -// CLmkLbWithFilterContainer::OfferKeyEventL -// ---------------------------------------------------------------------------- -// -TKeyResponse CLmkLbWithFilterContainer::OfferKeyEventL( - const TKeyEvent& aKeyEvent, - TEventCode aType ) - { - DEBUG( CLmkLbWithFilterContainer::OfferKeyEventL start ); - TKeyResponse result( EKeyWasNotConsumed ); - if ( ( aType == EEventKey || aType == EEventKeyUp) ) - { - if(( iFindBox->TextLength() > 0 || - aKeyEvent.iCode != EKeyBackspace ) && iFindBox->IsVisible()) - { - result = iFindBox->OfferKeyEventL(aKeyEvent, aType); - } - else if( aKeyEvent.iCode == EKeyBackspace ) - { - CLmkAppSelectorImplBase& selector = SelectorImpl(); - TInt markedCount( selector.ListMarkedItemCountL() ); - - DEBUG1( CLmkLbWithFilterContainer::OfferKeyEventL markedCount = %d,markedCount); - CEikMenuBar* menuBar = MenuBar(); - if( menuBar ) - { - if( MenuBar()->ItemSpecificCommandsEnabled()) - { - return EKeyWasConsumed; - } - } - if( markedCount <= 0) - { - return EKeyWasConsumed; - } - selector.ProcessCommandL( ELmkCmdDeleteLm ); - return EKeyWasConsumed; - } - } - if ( result == EKeyWasNotConsumed ) - { - result = CLmkBaseContainer::OfferKeyEventL( aKeyEvent, aType ); - if( aKeyEvent.iScanCode == EStdKeyHash ) - { - UpdateMskContainerL(); - } - } - DEBUG1( CLmkLbWithFilterContainer::OfferKeyEventL End result=%d,result ); - return result; - } - -// ---------------------------------------------------------------------------- -// CLmkLbWithFilterContainer::SizeChanged() -// Called by framework when the view size is changed -// ---------------------------------------------------------------------------- -// -void CLmkLbWithFilterContainer::SizeChanged() - { - __ASSERT_DEBUG( iListBox, Panic( KLmkPanicNullMember ) ); - const TRect rect(Rect()); - - AknFind::HandleFixedFindSizeChanged( - this, - static_cast( iListBox ), - iFindBox ); - - if (iListBox && iFindBox && iFindBox->IsVisible()) - { - AknLayoutUtils::LayoutControl(iListBox, rect, - AKN_LAYOUT_WINDOW_list_gen_pane(1)); - AknLayoutUtils::LayoutControl(iFindBox, rect, - AKN_LAYOUT_WINDOW_find_pane); - if (iFindBox->IsVisible() && iListBox->IsVisible()) - { - // The correct line position to use is 2, which corresponds - // EABColumn in Avkon (not a public enumeration, - // hence hard-coding used here) - const TInt KSeparatorLinePos = 2; - iFindBox->SetLinePos(KSeparatorLinePos); - } - } - else if (iListBox) - { - AknLayoutUtils::LayoutControl(iListBox, rect, - AKN_LAYOUT_WINDOW_list_gen_pane(0)); - } - if (iListBox) - { - STATIC_CAST(CAknFilteredTextListBoxModel*,iListBox->Model())->Filter()->SetParentControl(this); - } - SelectorImpl().HandleScreenSizeChange(); - } - -// ---------------------------------------------------------------------------- -// CLmkLbWithFilterContainer::CountComponentControls -// ---------------------------------------------------------------------------- -// -TInt CLmkLbWithFilterContainer::CountComponentControls() const - { - return 2; // return nbr of controls inside this container - } - -// ---------------------------------------------------------------------------- -// CLmkLbWithFilterContainer::ComponentControl -// ---------------------------------------------------------------------------- -// -CCoeControl* CLmkLbWithFilterContainer::ComponentControl( TInt aIndex ) const - { - switch ( aIndex ) - { - case 0: - { - return iListBox; - } - case 1: - { - return iFindBox; - } - default: - { - return NULL; - } - } - } - -// ---------------------------------------------------------------------------- -// CLmkLbWithFilterContainer::SetupFindBoxL -// ---------------------------------------------------------------------------- -// -void CLmkLbWithFilterContainer::SetupFindBoxL() - { - iFindBox = SelectorImpl().CreateFindBoxL(*this); - } - - -// --------------------------------------------------------- -// CLmkLbWithFilterContainer::Draw(const TRect& aRect) const -// --------------------------------------------------------- -// -void CLmkLbWithFilterContainer::Draw(const TRect& /*aRect*/) const - { - if(iIsNeedToReDraw) - { - CWindowGc& gc = SystemGc(); - - AknsDrawUtils::Background( iSkinInstance, - iBackgroundSkinContext, this, gc, Rect() ); - - iIsNeedToReDraw = EFalse; - } - } - -#ifdef RD_SCALABLE_UI_V2 -// --------------------------------------------------------- -// CLmkLbWithFilterContainer::SetListBoxObserver -// --------------------------------------------------------- -// -void CLmkLbWithFilterContainer::SetListBoxObserver(MEikListBoxObserver* aObserver) - { - __ASSERT_DEBUG( aObserver, Panic( KLmkPanicNullMember ) ); - iListBox->SetListBoxObserver(aObserver); - } -#endif//RD_SCALABLE_UI_V2 - -// ---------------------------------------------------------------------------- -// CLmkLbWithFilterContainer::UpdateMskContainerForFilterL() -// ---------------------------------------------------------------------------- -// -void CLmkLbWithFilterContainer::UpdateMskContainerForFilterL() - { - iSearchInitiated = ETrue; - UpdateMskContainerL(); - iSearchInitiated = EFalse; - } -// End of File