diff -r 000000000000 -r 2e3d3ce01487 systemsettings/gssensorplugin/src/gssensensorscontainer.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/systemsettings/gssensorplugin/src/gssensensorscontainer.cpp Tue Feb 02 10:12:00 2010 +0200 @@ -0,0 +1,179 @@ +/* +* 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: Sensors activation status view container +* +*/ + + +// INCLUDE FILES +#include "gssensensorscontainer.h" +#include "gssensorpluginmodel.h" +#include "gssensorplugin.hrh" +#include "gssensorplugin_debug.h" + +#include +#include +#include // for KUidGS +#include +#include + + +// CONSTANTS + +// ========================= MEMBER FUNCTIONS ================================ + +// --------------------------------------------------------------------------- +// CGSSenSensorsContainer::CGSSenSensorsContainer +// Default constructor +// --------------------------------------------------------------------------- +// +CGSSenSensorsContainer::CGSSenSensorsContainer( CGSSensorPluginModel* aModel ) : + iModel ( aModel ) + { + TRACE_( "[GSSensorPlugin] CGSSenSensorsContainer::CGSSenSensorsContainer()" ); + } + +// --------------------------------------------------------------------------- +// CGSSenSensorsContainer::ConstructL +// Symbian OS two phased constructor +// --------------------------------------------------------------------------- +// +void CGSSenSensorsContainer::ConstructL( const TRect& aRect ) + { + TRACE_( "[GSSensorPlugin] CGSSenSensorsContainer::ConstructL()" ); + // Has to create listbox before calling BaseConstructL because base class + // uses iListBox + iListBox = new( ELeave ) CAknSettingStyleListBox; + BaseConstructL( aRect, R_GS_SENSORS_VIEW_TITLE, R_GS_SENSORS_STATUS_LBX ); + TRACE_( "[GSSensorPlugin] CGSSenSensorsContainer::ConstructL() - return" ); + } + +// --------------------------------------------------------------------------- +// CGSSenSensorsContainer::~CGSSenSensorsContainer() +// Destructor +// --------------------------------------------------------------------------- +// +CGSSenSensorsContainer::~CGSSenSensorsContainer() + { + TRACE_( "[GSSensorPlugin] CGSSenSensorsContainer::~CGSSenSensorsContainer()" ); + if ( iSensorStatusItems ) + { + delete iSensorStatusItems; + } + if ( iListboxItemArray ) + { + delete iListboxItemArray; + } + + iModel = NULL; + TRACE_( "[GSSensorPlugin] CGSSenSensorsContainer::~CGSSenSensorsContainer() - return" ); + } + +// --------------------------------------------------------------------------- +// CGSSenSensorsContainer::ConstructListBoxL() +// --------------------------------------------------------------------------- +// +void CGSSenSensorsContainer::ConstructListBoxL( TInt aResLbxId ) + { + TRACE_( "[GSSensorPlugin] CGSSenSensorsContainer::ConstructListBoxL()" ); + iListBox->ConstructL( this, EAknListBoxSelectionList ); + iListboxItemArray = CGSListBoxItemTextArray::NewL( + aResLbxId, *iListBox, *iCoeEnv ); + iListBox->Model()->SetItemTextArray( iListboxItemArray ); + iListBox->Model()->SetOwnershipType( ELbmDoesNotOwnItemArray ); + + iSensorStatusItems = iCoeEnv->ReadDesC16ArrayResourceL( + R_GS_SENSOR_ACTIVE_STATUS ); + + CreateListBoxItemsL(); + TRACE_( "[GSSensorPlugin] CGSSenSensorsContainer::ConstructListBoxL() - return" ); + } + +// --------------------------------------------------------------------------- +// CGSSenSensorsContainer::CreateListBoxItemsL +// --------------------------------------------------------------------------- +// +void CGSSenSensorsContainer::CreateListBoxItemsL() + { + TRACE_( "[GSSensorPlugin] CGSSenSensorsContainer::CreateListBoxItemsL()" ); + MakeSensorsSelectionItemL(); + TRACE_( "[GSSensorPlugin] CGSSenSensorsContainer::CreateListBoxItemsL() - return" ); + } + +// --------------------------------------------------------------------------- +// CGSSenSensorsContainer::UpdateListBoxL +// --------------------------------------------------------------------------- +// +void CGSSenSensorsContainer::UpdateListBoxL( TInt aFeatureId ) + { + TRACE_( "[GSSensorPlugin] CGSSenSensorsContainer::UpdateListBoxL()" ); + switch( aFeatureId ) + { + case KGSSenorsActive: + MakeSensorsSelectionItemL(); + break; + default: + break; + } + iListBox->HandleItemAdditionL(); + TRACE_( "[GSSensorPlugin] CGSSenSensorsContainer::UpdateListBoxL() - return" ); + } + +// --------------------------------------------------------------------------- +// CGSSenSensorsContainer::MakeSensorsSelectionItemL +// --------------------------------------------------------------------------- +// +void CGSSenSensorsContainer::MakeSensorsSelectionItemL() + { + TRACE_( "[GSSensorPlugin] CGSSenSensorsContainer::MakeSensorsSelectionItemL()" ); + HBufC* dynamicText = HBufC::NewLC( KGSBufSize128 ); + TPtr ptrBuffer ( dynamicText->Des() ); + + // Get sensors status and set corresponding text + const TInt active = iModel->SensorActiveStatusL(); + ptrBuffer = ( *iSensorStatusItems )[active]; + + // Finally, set the dynamic text + iListboxItemArray->SetDynamicTextL( KGSSenorsActive, ptrBuffer ); + + CleanupStack::PopAndDestroy( dynamicText ); + + // And add to listbox + iListboxItemArray->SetItemVisibilityL( KGSSenorsActive, + CGSListBoxItemTextArray::EVisible ); + TRACE_( "[GSSensorPlugin] CGSSenSensorsContainer::MakeSensorsSelectionItemL() - return" ); + } + +// --------------------------------------------------------------------------- +// CGSSenSensorsContainer::GetHelpContext +// Gets Help context +// --------------------------------------------------------------------------- +// +void CGSSenSensorsContainer::GetHelpContext( TCoeHelpContext& aContext ) const + { + TRACE_( "[GSSensorPlugin] CGSSenSensorsContainer::GetHelpContext()" ); + aContext.iMajor = KUidGS; + aContext.iContext = KSSET_HLP_MAIN_VIEW; + TRACE_( "[GSSensorPlugin] CGSSenSensorsContainer::GetHelpContext() - return" ); + } + +// --------------------------------------------------------------------------- +// CGSSenSensorsContainer::CurrentFeatureId +// --------------------------------------------------------------------------- +// +TInt CGSSenSensorsContainer::CurrentFeatureId( ) const + { + TRACE_( "[GSSensorPlugin] CGSSenSensorsContainer::CurrentFeatureId()" ); + return iListboxItemArray->CurrentFeature( ); + }