--- a/camerauis/cameraapp/generic/src/CamUserSceneSetupContainer.cpp Thu Aug 19 09:36:57 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,503 +0,0 @@
-/*
-* Copyright (c) 2007-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: Implements container for the user scene setup list.*
-*/
-
-
-// INCLUDE FILES
-#include "CamUserSceneSetupContainer.h"
-#include "CamUserSceneSetupItemArray.h"
-#include "CamAppController.h"
-#include "CamSettings.hrh"
-#include "Cam.hrh"
-#include "CamPanic.h"
-#include <aknlists.h>
-#include <AknIconArray.h>
-#include <barsread.h>
-#include <aknview.h>
-#include "CameraUiConfigManager.h"
-
-#include "CamUtility.h"
-
-
-// ================= MEMBER FUNCTIONS =======================
-
-// ---------------------------------------------------------
-// CCamUserSceneSetupContainer::NewLC
-// Symbian two-phased constructor.
-// ---------------------------------------------------------
-//
-CCamUserSceneSetupContainer* CCamUserSceneSetupContainer::NewLC
-( const TRect& aRect, TInt aResourceId,
- CCamAppController& aController,
- CAknView& aView )
- {
- CCamUserSceneSetupContainer* self =
- new ( ELeave ) CCamUserSceneSetupContainer( aController,
- aView );
- CleanupStack::PushL( self );
- self->ConstructL( aRect, aResourceId );
- return self;
- }
-
-// ---------------------------------------------------------
-// CCamUserSceneSetupContainer::NewL
-// Symbian two-phased constructor.
-// ---------------------------------------------------------
-//
-CCamUserSceneSetupContainer* CCamUserSceneSetupContainer::NewL
-( const TRect& aRect, TInt aResourceId,
- CCamAppController& aController,
- CAknView& aView )
- {
- CCamUserSceneSetupContainer* self =
- CCamUserSceneSetupContainer::NewLC
- ( aRect, aResourceId, aController,
- aView );
- CleanupStack::Pop( self );
- return self;
- }
-
-// ---------------------------------------------------------
-// CCamUserSceneSetupContainer::~CCamUserSceneSetupContainer
-// Destructor
-// ---------------------------------------------------------
-//
-CCamUserSceneSetupContainer::~CCamUserSceneSetupContainer()
- {
- PRINT( _L("Camera => ~CCamUserSceneSetupContainer" ))
- delete iUserSceneSetupList;
- delete iUserSceneSetupItemArray;
- PRINT( _L("Camera <= ~CCamUserSceneSetupContainer" ))
- }
-
-// ---------------------------------------------------------
-// CCamUserSceneSetupContainer::HandleChangeInItemArrayOrVisibilityL
-// Handles a change in the item list visibility.
-// ---------------------------------------------------------
-//
-void CCamUserSceneSetupContainer::UpdateDisplayL()
- {
- ListBox()->DrawNow();
- }
-
-// ---------------------------------------------------------
-// CCamUserSceneSetupContainer::TitlePaneTextResourceId
-// Returns the resource Id of the title for this container.
-// ---------------------------------------------------------
-//
-TInt CCamUserSceneSetupContainer::TitlePaneTextResourceId()
- {
- return iTitleResourceId;
- }
-
-// ---------------------------------------------------------
-// CCamUserSceneSetupContainer::UpdateListItems
-// Updates the list items with the settings model values.
-// ---------------------------------------------------------
-//
-void CCamUserSceneSetupContainer::UpdateListItems( void )
- {
- TInt listItemCount = iUserSceneSetupItemArray->Count();
- TInt i;
- for ( i = 0; i < listItemCount; ++i )
- {
- UpdateListItem( i );
- }
- }
-
-// ---------------------------------------------------------
-// CCamUserSceneSetupContainer::UpdateCurrentListItem
-// Updates the current list item with it's associated
-// settings model value.
-// ---------------------------------------------------------
-//
-void CCamUserSceneSetupContainer::UpdateCurrentListItem()
- {
- CEikButtonGroupContainer* cba = CEikButtonGroupContainer::Current();
- if ( cba )
- {
- CEikCba* eikCba = static_cast<CEikCba*>( cba->ButtonGroup() );
- if( eikCba )
- {
- // Hide LSK for single clickable settings
- eikCba->EnableItemSpecificSoftkey( ETrue );
- }
- }
- TInt selectedItemIndex = iUserSceneSetupList->CurrentItemIndex();
- UpdateListItem( selectedItemIndex );
- }
-
-// ---------------------------------------------------------
-// CCamUserSceneSetupContainer::HandleListBoxEventL
-// Handles a list box event.
-// ---------------------------------------------------------
-//
-void CCamUserSceneSetupContainer::HandleListBoxEventL
-( CEikListBox* /*aListBox*/, TListBoxEvent aEventType )
- {
- switch( aEventType )
- {
- case EEventEnterKeyPressed: // fallthrough
- case EEventItemDoubleClicked:
- case EEventItemSingleClicked:
- {
- HandleSelectionL();
- }
- break;
-
- default:
- break;
- }
- }
-
-// ---------------------------------------------------------
-// CCamUserSceneSetupContainer::HandleSelectionL
-// Handles the user selection of a list item.
-// ---------------------------------------------------------
-//
-void CCamUserSceneSetupContainer::HandleSelectionL( void )
- {
- TInt CommandId = CommandIdForActivatingCurrentItemControl();
- CEikButtonGroupContainer* cba = CEikButtonGroupContainer::Current();
- if ( cba && CommandId != ECamCmdCaptureSetupFlashUser )
- {
- CEikCba* eikCba = static_cast<CEikCba*>( cba->ButtonGroup() );
- if( eikCba )
- {
- // Make LSK visible for the sliders.
- // Sliders, like exposure compensation, are not listboxes,
- // thus single click cannot be disabled for those.
- // All setting items, except flash, are double clickable and
- // they have a visible LSK
- eikCba->EnableItemSpecificSoftkey( EFalse );
- }
- }
- iView.HandleCommandL( CommandId );
- }
-
-
-
-// ---------------------------------------------------------
-// CCamUserSceneSetupContainer::CCamUserSceneSetupContainer
-// C++ constructor
-// ---------------------------------------------------------
-//
-CCamUserSceneSetupContainer::CCamUserSceneSetupContainer
-( CCamAppController& aController,
- CAknView& aView )
-: CCamContainerBase( aController, aView )
- {
-
- }
-
-// ---------------------------------------------------------
-// CCamUserSceneSetupContainer::ConstructL
-// 2nd phase constructor
-// ---------------------------------------------------------
-//
-void CCamUserSceneSetupContainer::ConstructL
-( const TRect& aRect, TInt aResourceId )
- {
- const TInt KSettingItemArrayGranularity = 5;
-
- CCamContainerBase::BaseConstructL( aRect );
-
- //CreateWindowL();
-
- // Create the listbox in the right style
- iUserSceneSetupList = new ( ELeave ) CAknSettingStyleListBox;
- iUserSceneSetupList->ConstructL( this, CEikListBox::ELeftDownInViewRect );
-
- TPoint pos = iEikonEnv->EikAppUi()->ClientRect().iTl;
- TSize size = iUserSceneSetupList->MinimumSize();
- SetExtent( pos, size );
-
-
- // Setup the scroll bar
- iUserSceneSetupList->CreateScrollBarFrameL( ETrue );
- iUserSceneSetupList->ScrollBarFrame()->
- SetScrollBarVisibilityL( CEikScrollBarFrame::EOn,
- CEikScrollBarFrame::EAuto );
-
- iTitleResourceId = aResourceId;
-
-
- // get array of supported resources from psi
- RArray<TInt> userSceneResourceIds;
- CleanupClosePushL( userSceneResourceIds );
-
- User::LeaveIfError( CamUtility::GetPsiIntArrayL( ECamPsiUserSceneResourceIds, userSceneResourceIds ) );
-
- // ...get the number of items in this user scene setup list.
- TInt itemCount = userSceneResourceIds.Count();
- iUserSceneSetupItemArray = new ( ELeave )
- CCamUserSceneSetupItemArray( itemCount );
- iUserSceneSetupItemArray->ConstructL();
-
- // Make the icon array
- CArrayPtrFlat<CGulIcon>* iconArray = new ( ELeave )
- CAknIconArray( KSettingItemArrayGranularity );
- CleanupStack::PushL( iconArray );
-
- // Create all the user scene setup list items defined in the resource.
- TInt i;
- for ( i=0; i < itemCount; ++i )
- {
- CCamUserSceneSetupListItem* listItem =
- CCamUserSceneSetupListItem::NewL( userSceneResourceIds[i] );
- CleanupStack::PushL( listItem );
- // Ownership is transferred
- iUserSceneSetupItemArray->AppendL( listItem );
- CleanupStack::Pop( listItem );
- }
-
-
- // Update the display
- UpdateDisplayL();
-
- // Looks like we have no choice but to give ownership
- // of this to the listbox.
- // There is no flag as there is for the item data
- ListBox()->ItemDrawer()->FormattedCellData()->SetIconArrayL( iconArray );
-
- // iconArray now has ownership transferred
- CleanupStack::Pop( iconArray );
-
- CleanupStack::PopAndDestroy( &userSceneResourceIds );
-
- CTextListBoxModel* model= iUserSceneSetupList->Model();
- model->SetItemTextArray( iUserSceneSetupItemArray );
- // Ownership retained by SettingItemList
- model->SetOwnershipType( ELbmDoesNotOwnItemArray );
-
- TAknLayoutRect layoutRect;
- layoutRect.LayoutRect( TRect(
- TPoint( 0, 0 ), iAvkonAppUi->ClientRect().Size() ),
- AKN_LAYOUT_WINDOW_list_gen_pane( 0 ) );
- iUserSceneSetupList->SetRect( layoutRect.Rect() );
-
- ListBox()->SetCurrentItemIndex( 0 );
- ListBox()->SetListBoxObserver( this );
- ListBox()->UpdateScrollBarsL();
-
- SetRect( aRect );
- ActivateL();
-
- UpdateListItems();
- }
-
-
-
-// ---------------------------------------------------------
-// CCamUserSceneSetupContainer::UpdateListItem
-// Updates a list item with its corresponding settings model value.
-// ---------------------------------------------------------
-//
-void CCamUserSceneSetupContainer::UpdateListItem( TInt aIndex )
- {
- // Get the current value for this list item from the settings model.
- // ...get settings model id for list item.
- TInt settingsModelId =
- iUserSceneSetupItemArray->At( aIndex )->SettingsModelTypeId();
- if ( settingsModelId != ECamSettingItemUserSceneReset )
- {
- // ...use id to get current value.
- TInt currentVal = iController.IntegerSettingValue( settingsModelId );
-
- // Update list item with the current value.
- iUserSceneSetupItemArray->At( aIndex )->SetCurrentValue( currentVal );
- }
- }
-
-
-// ----------------------------------------------------
-// CCamUserSceneSetupContainer::CommandIdForActivatingCurrentItemControl
-// Returns the command id for activating the current list item control.
-// ----------------------------------------------------
-//
-TInt CCamUserSceneSetupContainer::CommandIdForActivatingCurrentItemControl()
- {
- // Get the settings model type id for the selected item.
- // ...get settings model id for list item.
- TInt currentIndex = iUserSceneSetupList->CurrentItemIndex();
-
- // ...get settings model id for list item.
- TInt settingsModelId =
- iUserSceneSetupItemArray->At( currentIndex )->
- SettingsModelTypeId();
- // Convert settings model id to command id that activates the
- // control for the selected item.
- TInt commandId = -1;
- switch ( settingsModelId )
- {
- case ECamSettingItemUserSceneBasedOnScene:
- {
- commandId = ECamCmdCaptureSetupSceneUser;
- }
- break;
- case ECamSettingItemUserSceneWhitebalance:
- {
- commandId = ECamCmdCaptureSetupWhiteBalanceUser;
- }
- break;
- case ECamSettingItemUserSceneExposure:
- {
- commandId = ECamCmdCaptureSetupExposureUser;
- }
- break;
- case ECamSettingItemUserSceneColourFilter:
- {
- commandId = ECamCmdCaptureSetupColourFilterUser;
- }
- break;
- case ECamSettingItemUserSceneFlash:
- {
- commandId = ECamCmdCaptureSetupFlashUser;
- }
- break;
- case ECamSettingItemUserSceneReset:
- {
- commandId = ECamCmdUserSceneReset;
- }
- break;
- case ECamSettingItemUserSceneBrightness:
- {
- commandId = ECamCmdCaptureSetupBrightnessUser;
- }
- break;
- case ECamSettingItemUserSceneContrast:
- {
- commandId = ECamCmdCaptureSetupContrastUser;
- }
- break;
-
- case ECamSettingItemUserSceneImageSharpness:
- {
- commandId = ECamCmdCaptureSetupImageSharpnessUser;
- }
- break;
-
- case ECamSettingItemUserSceneLightSensitivity:
- {
- commandId = ECamCmdCaptureSetupLightSensitivityUser;
- }
- break;
- case ECamSettingItemUserSceneDefault:
- {
- commandId = ECamCmdSetUserDefault;
- }
- break;
- default:
- {
- CamPanic( ECamPanicCaptureSetupMenuUnknownItem );
- }
- }
- return commandId;
- }
-
-
-
-// ---------------------------------------------------------
-// CCamUserSceneSetupContainer::CountComponentControls
-// ---------------------------------------------------------
-//
-TInt CCamUserSceneSetupContainer::CountComponentControls() const
- {
- return CCamContainerBase::CountComponentControls() + 1;
- }
-
-// ---------------------------------------------------------
-// CCamUserSceneSetupContainer::ComponentControl
-// ---------------------------------------------------------
-//
-CCoeControl* CCamUserSceneSetupContainer::ComponentControl
-( TInt aIndex ) const
- {
- CCoeControl* control = CCamContainerBase::ComponentControl( aIndex );
- if( control )
- return control;
- switch( aIndex )
- {
- case 1:
- {
- control = iUserSceneSetupList;
- }
- break;
- default:
- break;
- }
-
- return control;
- }
-
-// ---------------------------------------------------------------------------
-// CCamUserSceneSetupContainer::OfferKeyEventL
-// Key event handling
-// ---------------------------------------------------------------------------
-//
-TKeyResponse CCamUserSceneSetupContainer::OfferKeyEventL(
- const TKeyEvent& aKeyEvent,
- TEventCode aType )
- {
- if ( aType == EEventKey &&
- ( aKeyEvent.iScanCode == EStdKeyEnter ||
- aKeyEvent.iScanCode == EStdKeyNkpEnter ) )
- {
- HandleSelectionL();
- return EKeyWasConsumed;
- }
- else if ( aKeyEvent.iScanCode == EStdKeyUpArrow ||
- aKeyEvent.iScanCode == EStdKeyDownArrow )
- {
- return iUserSceneSetupList->OfferKeyEventL( aKeyEvent, aType );
- }
- else
- {
- return EKeyWasNotConsumed;
- }
- }
-
-// ---------------------------------------------------------------------------
-// CCamUserSceneSetupContainer::ListBox
-// Returns a pointer to the list box
-// ---------------------------------------------------------------------------
-//
-CEikFormattedCellListBox* CCamUserSceneSetupContainer::ListBox()
- {
- return ( iUserSceneSetupList );
- }
-
-// ---------------------------------------------------------------------------
-// CCamUserSceneSetupContainer::IsUserSceneResetHighlighted
-// Returns wheather user scene restore is highlighted
-// ---------------------------------------------------------------------------
-//
-TBool CCamUserSceneSetupContainer::IsUserSceneResetHighlighted()
- {
- TInt currentIndex = iUserSceneSetupList->CurrentItemIndex();
- // ...get settings model id for list item.
- TInt settingsModelId =
- iUserSceneSetupItemArray->At( currentIndex )->SettingsModelTypeId();
- if ( settingsModelId == ECamSettingItemUserSceneReset )
- {
- return ETrue;
- }
- else
- {
- return EFalse;
- }
- }
-
-// End of File