appinstaller/AppMngr2/src/appmngr2installedcontainer.cpp
author Pat Downey <patd@symbian.org>
Wed, 01 Sep 2010 12:22:02 +0100
branchRCL_3
changeset 26 8b7f4e561641
parent 0 ba25891c3a9e
permissions -rw-r--r--
Revert incorrect RCL_3 drop: Revision: 201033 Kit: 201035

/*
* Copyright (c) 2008-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:   Container for list view that shows installed applications
*
*/


#include "appmngr2installedcontainer.h" // CAppMngr2InstalledContainer
#include "appmngr2installedview.h"      // CAppMngr2InstalledView
#include "appmngr2model.h"              // CAppMngr2Model
#include <appmngr2appinfo.h>            // CAppMngr2AppInfo
#include <appmngr2common.hrh>           // Command IDs
#include <eiktxlbm.h>                   // CTextListBoxModel
#include <aknlists.h>                   // CAknDoubleLargeStyleListBox
#include <appmngr2.rsg>                 // Resource IDs
#include <csxhelp/am.hlp.hrh>           // Help contexts


// ======== MEMBER FUNCTIONS ========

// ---------------------------------------------------------------------------
// CAppMngr2InstalledContainer::NewL()
// ---------------------------------------------------------------------------
//
CAppMngr2InstalledContainer* CAppMngr2InstalledContainer::NewL(
        CAppMngr2InstalledView& aView )
    {
    CAppMngr2InstalledContainer* self = new (ELeave) CAppMngr2InstalledContainer( aView );
    CleanupStack::PushL( self );
    self->ConstructL( aView );
    CleanupStack::Pop( self );
    return self;
    }

// ---------------------------------------------------------------------------
// CAppMngr2InstalledContainer::~CAppMngr2InstalledContainer()
// ---------------------------------------------------------------------------
//
CAppMngr2InstalledContainer::~CAppMngr2InstalledContainer()
    {
    }

// ---------------------------------------------------------------------------
// CAppMngr2InstalledContainer::OfferKeyEventL()
// ---------------------------------------------------------------------------
//
TKeyResponse CAppMngr2InstalledContainer::OfferKeyEventL(
        const TKeyEvent& aKeyEvent, TEventCode aType )
    {
    TKeyResponse response = EKeyWasNotConsumed;
    switch( aKeyEvent.iCode )
        {
        case EKeyOK:    // Middle softkey
            HandleGenericCommandL( EAppMngr2CmdViewDetails );
            break;
            
        case EKeyBackspace:
            HandleGenericCommandL( EAppMngr2CmdUninstall );
            break;

        default:
            response = CAppMngr2ListContainer::OfferKeyEventL( aKeyEvent, aType );
            break;
        }
    return response;
    }

// ---------------------------------------------------------------------------
// CAppMngr2InstalledContainer::GetHelpContext()
// ---------------------------------------------------------------------------
//
void CAppMngr2InstalledContainer::GetHelpContext( TCoeHelpContext& aContext ) const
    {
    const TUid KAppMngr2AppUid = { KAppMngr2AppUidValue };
    aContext.iMajor = KAppMngr2AppUid;
    aContext.iContext = KAM_HLP_INSTALLED;
    }

// ---------------------------------------------------------------------------
// CAppMngr2InstalledContainer::HandleListBoxEventL()
// ---------------------------------------------------------------------------
//
void CAppMngr2InstalledContainer::HandleListBoxEventL( CEikListBox* aListBox,
        TListBoxEvent aEventType )
    {
    switch( aEventType )
        {
        case EEventItemSingleClicked:
        case EEventEnterKeyPressed:
            HandleGenericCommandL( EAppMngr2CmdViewDetails );
            break;

        default:
            CAppMngr2ListContainer::HandleListBoxEventL( aListBox, aEventType );
            break;
        }
    }

// ---------------------------------------------------------------------------
// CAppMngr2InstalledContainer::CurrentItem()
// ---------------------------------------------------------------------------
//
CAppMngr2InfoBase& CAppMngr2InstalledContainer::CurrentItem() const
    {
    // panics if list box is empty
    return Model().AppInfo( iListBox->CurrentItemIndex() );
    }

// ---------------------------------------------------------------------------
// CAppMngr2InstalledContainer::ListEmptyTextResourceId()
// ---------------------------------------------------------------------------
//
TInt CAppMngr2InstalledContainer::ListEmptyTextResourceId() const
    {
    return R_AM_INSTALLED_VIEW_EMPTY;
    }

// ---------------------------------------------------------------------------
// CAppMngr2InstalledContainer::ItemCount()
// ---------------------------------------------------------------------------
//
TInt CAppMngr2InstalledContainer::ItemCount() const
    {
    return Model().AppInfoCount();
    }

// ---------------------------------------------------------------------------
// CAppMngr2InstalledContainer::ItemInfo()
// ---------------------------------------------------------------------------
//
CAppMngr2InfoBase& CAppMngr2InstalledContainer::ItemInfo( TInt aIndex )
    {
    return Model().AppInfo( aIndex );
    }

// ---------------------------------------------------------------------------
// CAppMngr2InstalledContainer::CAppMngr2InstalledContainer()
// ---------------------------------------------------------------------------
//
CAppMngr2InstalledContainer::CAppMngr2InstalledContainer( CAppMngr2InstalledView& aView )
        : CAppMngr2ListContainer( aView )
    {
    }

// ---------------------------------------------------------------------------
// CAppMngr2InstalledContainer::ConstructL()
// ---------------------------------------------------------------------------
//
void CAppMngr2InstalledContainer::ConstructL( CAppMngr2InstalledView& aView )
    {
    SetMopParent( &aView );
    CAppMngr2ListContainer::ConstructL( aView.ClientRect() );
    }