memana/analyzetoolclient/configurationappgui/src/atconfigurationappguisettingitemlist.cpp
author Matti Laitinen <matti.t.laitinen@nokia.com>
Thu, 11 Feb 2010 15:51:35 +0200
changeset 0 f0f2b8682603
permissions -rw-r--r--
Add initial version of AnalyzeTool client under EPL

/*
* 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 <avkon.hrh>
#include <avkon.rsg>
#include <eikmenup.h>
#include <aknappui.h>
#include <eikcmobs.h>
#include <barsread.h>
#include <stringloader.h>
#include <aknpopupfieldtext.h>
#include <eikenv.h>
#include <eikappui.h>
#include <aknviewappui.h>
#include <aknslidersettingpage.h> 
#include <atconfigurationappgui.rsg>

#include "atconfigurationappguisettingitemlist.h"
#include "atconfigurationappguisettingitemlistsettings.h"
#include "atconfigurationappgui.hrh"
#include "atconfigurationappguisettingitemlist.hrh"
#include "atconfigurationappguisettingitemlistview.h"
#include "atlog.h"

// -----------------------------------------------------------------------------
// CATConfigurationAppGuiSettingItemList::CATConfigurationAppGuiSettingItemList()
// Construct the CATConfigurationAppGuiSettingItemList instance.
// -----------------------------------------------------------------------------
//
CATConfigurationAppGuiSettingItemList::CATConfigurationAppGuiSettingItemList( 
        CATConfigurationAppGuiSettingItemListSettings& aSettings, 
        MEikCommandObserver* aCommandObserver )
    : iSettings( aSettings ), iCommandObserver( aCommandObserver )
    {
    LOGSTR1( "ATCU CATConfigurationAppGuiSettingItemList::CATConfigurationAppGuiSettingItemList()" );
    }

// -----------------------------------------------------------------------------
// CATConfigurationAppGuiSettingItemList::~CATConfigurationAppGuiSettingItemList()
// Destructor.
// -----------------------------------------------------------------------------
//
CATConfigurationAppGuiSettingItemList::~CATConfigurationAppGuiSettingItemList()
    {
    LOGSTR1( "ATCU CATConfigurationAppGuiSettingItemList::~CATConfigurationAppGuiSettingItemList()" );
    }

// -----------------------------------------------------------------------------
// CATConfigurationAppGuiSettingItemList::SizeChanged()
// Handle system notification that the container's size has changed.
// -----------------------------------------------------------------------------
//
void CATConfigurationAppGuiSettingItemList::SizeChanged()
    {
    LOGSTR1( "ATCU CATConfigurationAppGuiSettingItemList::SizeChanged()" );
    
    if ( ListBox() ) 
        {
        ListBox()->SetRect( Rect() );
        }
    }

// -----------------------------------------------------------------------------
// CATConfigurationAppGuiSettingItemList::CreateSettingItemL()
// Create one setting item at a time, identified by id.
// -----------------------------------------------------------------------------
//
CAknSettingItem* CATConfigurationAppGuiSettingItemList::CreateSettingItemL( 
	TInt aId )
    {
    LOGSTR1( "ATCU CATConfigurationAppGuiSettingItemList::CreateSettingItemL()" );
    
    switch ( aId )
        {
        case EATConfigurationAppGuiSettingItemListViewBinarySetting1:
            {
            CAknBinaryPopupSettingItem* item = new ( ELeave ) 
                CAknBinaryPopupSettingItem( 
                    aId,
                    iSettings.BinarySetting1() );
            return item;
            }
        case EATConfigurationAppGuiSettingItemListViewEnumeratedTextPopup1:
            {
            //CAknEnumeratedTextPopupSettingItem* item = new ( ELeave ) 
            //CAknEnumeratedTextPopupSettingItem( aId, iSettings.EnumeratedTextPopup1() );
            CAknTextSettingItem* item = new (ELeave) CAknTextSettingItem( aId, iSettings.EnumeratedTextPopup1() );
            return item;
            }
        }
        
    return NULL;
    }

// -----------------------------------------------------------------------------
// CATConfigurationAppGuiSettingItemList::EditItemL()
// Edit the setting item identified by the given id.
// -----------------------------------------------------------------------------
//
void CATConfigurationAppGuiSettingItemList::EditItemL ( TInt aIndex, 
	TBool aCalledFromMenu )
    {
    LOGSTR1( "ATCU CATConfigurationAppGuiSettingItemList::EditItemL()" );
    
    CAknSettingItem* item = ( *SettingItemArray() )[aIndex];

    if ( ListBox()->CurrentItemIndex() == 1 )// Update interval
        {
        TInt setting( iSettings.UpdateInterval() );
        CAknSliderSettingPage* settPage = new (ELeave) CAknSliderSettingPage
                  ( R_ATCONFIGURATION_APP_GUI_SLIDER_SETTING_PAGE, setting );
        CleanupStack::PushL( settPage );
        
        TBool accepted = settPage ->ExecuteLD
            ( CAknSettingPage::EUpdateWhenChanged );
        
        if ( accepted )
            {
            iSettings.SetUpdateIntervalL( setting );    
            }
        CleanupStack::Pop( settPage );
        item->LoadL();
        item->UpdateListBoxTextL();
        }
    else
        {
        switch ( item->Identifier() )
            {
            }
        
        CAknSettingItemList::EditItemL( aIndex, aCalledFromMenu );

        switch ( item->Identifier() )
            {
            }

        item->StoreL();
        SaveSettingValuesL();  
        }
    }

// -----------------------------------------------------------------------------
// CATConfigurationAppGuiSettingItemList::ChangeSelectedItemL()
// Handle the "Change" option on the Options menu.
// -----------------------------------------------------------------------------
//
void CATConfigurationAppGuiSettingItemList::ChangeSelectedItemL()
    {
    LOGSTR1( "ATCU CATConfigurationAppGuiSettingItemList::ChangeSelectedItemL()" );
    
    if ( ListBox()->CurrentItemIndex() >= 0 )
        {
        EditItemL( ListBox()->CurrentItemIndex(), ETrue );
        }
    }

// -----------------------------------------------------------------------------
// CATConfigurationAppGuiSettingItemList::LoadSettingValuesL()
// Load the initial contents of the setting items.
// -----------------------------------------------------------------------------
//
void CATConfigurationAppGuiSettingItemList::LoadSettingValuesL()
    {
    LOGSTR1( "ATCU CATConfigurationAppGuiSettingItemList::LoadSettingValuesL()" );
    // Load values into iSettings
    }

// -----------------------------------------------------------------------------
// CATConfigurationAppGuiSettingItemList::SaveSettingValuesL()
// Save the contents of the setting items.
// -----------------------------------------------------------------------------
//
void CATConfigurationAppGuiSettingItemList::SaveSettingValuesL()
    {
    LOGSTR1( "ATCU CATConfigurationAppGuiSettingItemList::SaveSettingValuesL()" );
    // Store values from iSettings
    }

// -----------------------------------------------------------------------------
// CATConfigurationAppGuiSettingItemList::HandleResourceChange()
// Handle global resource changes.
// -----------------------------------------------------------------------------
//
void CATConfigurationAppGuiSettingItemList::HandleResourceChange( TInt aType )
    {
    LOGSTR1( "ATCU CATConfigurationAppGuiSettingItemList::HandleResourceChange()" );
    CAknSettingItemList::HandleResourceChange( aType );
    SetRect( iAvkonViewAppUi->View( TUid::Uid( EATConfigurationAppGuiSettingItemListViewId ) )->ClientRect() );
    }
                
// -----------------------------------------------------------------------------
// CATConfigurationAppGuiSettingItemList::OfferKeyEventL()
// Handle key event.
// -----------------------------------------------------------------------------
//
TKeyResponse CATConfigurationAppGuiSettingItemList::OfferKeyEventL( 
    const TKeyEvent& aKeyEvent, TEventCode aType )
    {
    LOGSTR1( "ATCU CATConfigurationAppGuiSettingItemList::OfferKeyEventL()" );
    
    if ( aKeyEvent.iCode == EKeyLeftArrow 
        || aKeyEvent.iCode == EKeyRightArrow )
        {
        // Allow the tab control to get the arrow keys
        return EKeyWasNotConsumed;
        }

    return CAknSettingItemList::OfferKeyEventL( aKeyEvent, aType );
    }

// End of File