vtuis/videotelui/src/features/prefs/cvtuiprefsettinglistbase.cpp
changeset 18 d9b6a8729acd
parent 4 6dc066157ed4
child 23 c378a0498b84
child 27 dcbddbbaf8fd
--- a/vtuis/videotelui/src/features/prefs/cvtuiprefsettinglistbase.cpp	Tue Jan 26 12:01:21 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,360 +0,0 @@
-/*
-* Copyright (c) 2007 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:  Softkey UI feature implementation.
-*
-*/
-
-
-#include    <cvtengmodel.h>
-#include    <mvtengcamerapreferences.h>
-#include    <eikenv.h>
-#include    <cvtlogger.h>
-#include    <avkon.hrh>
-
-#include    "cvtuiprefsettinglistbase.h"
-#include    "CVtUiAppUi.h"
-#include    "cvtuitransparentsettingpage.h"
-#include    "CVtUiMainControl.h"
-#include    "CVtUiContextControl.h"
-#include    "cvtuifeaturemanager.h"
-#include    "VtUiLayout.h"
-
-#include    <layoutmetadata.cdl.h>
-
-// constants
-static const TInt KMaxNumberOfArrayItems = 5;
-static const TInt KMaxNumberOfActiveItems = 5;
-
-// ---------------------------------------------------------------------------
-// CVtUiPrefSettingListBase::~CVtUiPrefSettingListBase
-// ---------------------------------------------------------------------------
-// 
-CVtUiPrefSettingListBase::~CVtUiPrefSettingListBase()
-    {
-    __VTPRINTENTER( "CVtUiPrefSettingListBase.~CVtUiPrefSettingListBase" )
-    delete iViewfinderBitmap;
-    delete iSettingPage;
-    iActiveItems.Close();
-    __VTPRINTEXIT( "CVtUiPrefSettingListBase.~CVtUiPrefSettingListBase" )
-    }
-
-// ---------------------------------------------------------------------------
-// CVtUiPrefSettingListBase::InitFeatureL
-// ---------------------------------------------------------------------------
-// 
-void CVtUiPrefSettingListBase::InitFeatureL()
-    {
-    __VTPRINTENTER( "CVtUiPrefSettingListBase.InitFeatureL" )
-    ResizeBackroundBitmapRect();
-    __VTPRINTEXIT( "CVtUiPrefSettingListBase.InitFeatureL" )
-    }
-
-// ---------------------------------------------------------------------------
-// CVtUiPrefSettingListBase::IsPendingCmd
-// ---------------------------------------------------------------------------
-//
-TBool CVtUiPrefSettingListBase::IsPendingCmd()
-    {
-    return iPendingSettingChangeCmd;
-    }
-
-// ---------------------------------------------------------------------------
-// CVtUiPrefSettingListBase::HandlePendingCmd
-// ---------------------------------------------------------------------------
-//
-void CVtUiPrefSettingListBase::HandlePendingCmdL()
-    {
-    SettingPageItemChangedL( iOriginalSelection );
-    }
-
-// ---------------------------------------------------------------------------
-// CVtUiPrefSettingListBase::HandleSettingPageEventL
-// ---------------------------------------------------------------------------
-//
-void CVtUiPrefSettingListBase::HandleSettingPageEventL(
-    CAknSettingPage* /*aSettingPage*/, TAknSettingPageEvent aEventType )
-    {
-    __VTPRINTENTER( "CVtUiPrefSettingListBase.HandleSettingPageEventL" )
-    const TInt currentItem = iSettingPage->ListBoxControl()->CurrentItemIndex();      
-    switch ( aEventType )
-        {
-        case EEventSettingCancelled:
-             {
-             if ( iOriginalSelection != currentItem )
-                {
-                // Set back to orginal selection
-                SettingPageItemChangedL( iOriginalSelection );
-                iCurrentSelection = iOriginalSelection;
-                }
-             Stop();
-             break;   
-             }     
-         case EEventSettingChanged:
-             {
-             SettingPageItemChangedL( currentItem );
-             iOriginalSelection = currentItem;
-             Stop();
-             break;
-             }
-         case EEventSettingOked:
-             {
-             // Check if the current selection has changed
-             if ( iOriginalSelection != currentItem )
-                 {       
-                 SettingPageItemChangedL( currentItem );
-                 iOriginalSelection = currentItem;
-                 iCurrentSelection = currentItem;
-                 }                 
-             Stop();                 
-             break;
-             }
-         default:
-             break;
-        }
-    __VTPRINTEXIT( "CVtUiPrefSettingListBase.HandleSettingPageEventL" )        
-    }
-
-// ---------------------------------------------------------------------------
-// CVtUiPrefSettingListBase::ListStateChangedL
-// ---------------------------------------------------------------------------
-//
-void CVtUiPrefSettingListBase::ListStateChangedL()
-    {
-    __VTPRINTENTER( "CVtUiPrefSettingListBase.ListStateChangedL" )
-    // Check if new item is focused in the selection list
-    
-    const TInt currentItem = iSettingPage->ListBoxControl()->CurrentItemIndex();
-    if ( iCurrentSelection != currentItem )
-        {
-        // Update current selection
-        iCurrentSelection = currentItem;
-        // Adjust frame
-        SettingPageItemChangedL( currentItem );    
-        }    
-    __VTPRINTEXIT( "CVtUiPrefSettingListBase.ListStateChangedL" )
-    }
-
-// ---------------------------------------------------------------------------
-// CVtUiPrefSettingListBase::StartSettingPageL
-// ---------------------------------------------------------------------------
-//
-void CVtUiPrefSettingListBase::StartSettingPageL()
-    {
-    __VTPRINTENTER( "CVtUiPrefSettingListBase.StartSettingPageL" )
-    // Swap image places if needed
-    iAppUi.SwitchViewFinderToMainPaneL();
-	    
-    // Get context control's window priority and position
-    iWindowPriority = iAppUi.ContextControl().DrawableWindow()
-        ->OrdinalPriority();
-    iWindowPosition = iAppUi.ContextControl().DrawableWindow()
-        ->OrdinalPosition();
-    
-    // Rise context control's window priority othwerwise setting page will be
-    // drawn partially over the context control window.
-    iAppUi.ContextControl().DrawableWindow()->SetOrdinalPosition( 
-        iWindowPosition, iWindowPriority + 1 );
-
-    // Creates setting page
-    CreateSettingPageL();
-    // Launch setting page.
-    iSettingPage->ExecuteLD( CAknSettingPage::EUpdateWhenAccepted, EFalse );
-    iSettingPage = NULL;
-    __VTPRINTEXIT( "CVtUiPrefSettingListBase.StartSettingPageL" )
-    }
-
-// ---------------------------------------------------------------------------
-// CVtUiPrefSettingListBase::StopSettingPageL
-//    
-//
-void CVtUiPrefSettingListBase::StopSettingPageL()
-    {
-    __VTPRINTENTER( "CVtUiPrefSettingListBase.StopSettingPageL" )
-    // Swap image places if needed  
-    iAppUi.RestoreViewFinderL();
-    
-    if ( iSettingPage)
-        {
-        // Cancell the setting page
-        TKeyEvent keyEvent;
-        keyEvent.iCode =  EKeyEscape;
-        iSettingPage->OfferKeyEventL( keyEvent, EEventKey );
-        }
-        
-    // Set contex control's window priority and position back to orginal value.
-    iAppUi.ContextControl().DrawableWindow()->SetOrdinalPosition( 
-       iWindowPosition, iWindowPriority );
-    __VTPRINTEXIT( "CVtUiPrefSettingListBase.StopSettingPageL" )
-    }
-
-// ---------------------------------------------------------------------------
-// CVtUiPrefSettingListBase::SizeChanged
-// ---------------------------------------------------------------------------
-//
-void CVtUiPrefSettingListBase::SizeChanged()
-    {
-    __VTPRINTENTER( "CVtUiPrefSettingListBase.SizeChanged" )
-    ResizeBackroundBitmapRect();
-    // Set new coordinates and size
-    iSettingPage->SetBitmapPositionAndClipRect( iBitmapTopLeftCorner,
-        iBitmapClippingRect );
-    iSettingPage->HandleLayoutChangeL();
-    __VTPRINTEXIT( "CVtUiPrefSettingListBase.SizeChanged" )
-    }
-
-// ---------------------------------------------------------------------------
-// CVtUiPrefSettingListBase::UpdateBackground
-// ---------------------------------------------------------------------------
-//
-void CVtUiPrefSettingListBase::UpdateBackground( CFbsBitmap* aFrame )
-    {
-    __VTPRINTENTER( "CVtUiPrefSettingListBase.UpdateBackground" )
-    if ( aFrame )
-        {
-        // aFrame is valid only in this callback, the bitmap
-        // must be copied for use as the setting page background
-        iViewfinderBitmap->Duplicate( aFrame->Handle() );
-        if ( iSettingPage )
-            {
-            // Update background
-            iSettingPage->ChangeBackground( iViewfinderBitmap );
-            }
-        }
-    __VTPRINTEXIT( "CVtUiPrefSettingListBase.UpdateBackground" )        
-    }
-    
-// ---------------------------------------------------------------------------
-// CVtUiPrefSettingListBase::UpdateSettingL
-// ---------------------------------------------------------------------------
-// 
-void CVtUiPrefSettingListBase::UpdateSettingL()
-    {
-    // if no active items do nothing
-    if ( iActiveItems.Count() > 0 )
-        {
-        // user change the focuse in the list but not
-        // select it indeed
-        if( iOriginalSelection != iCurrentSelection )  
-            SettingPageItemChangedL( iCurrentSelection );
-        else
-        // yes,user has tapped down the OK button to choose a item
-            SettingPageItemChangedL( iOriginalSelection );        
-        }
-    }
-        
-// ---------------------------------------------------------------------------
-// CVtUiPrefSettingListBase::CVtUiPrefSettingListBase
-// ---------------------------------------------------------------------------
-//
-CVtUiPrefSettingListBase::CVtUiPrefSettingListBase( CVtUiFeatureManager&
-    aFeatureManager,  TVtUiFeatureId aFeatureId ) : CVtUiFeatureBase(
-    aFeatureId, aFeatureManager ), iActiveItems( KMaxNumberOfActiveItems ), 
-    iBitmapTopLeftCorner( 0, 0 ), iAppUi( aFeatureManager.AppUi() ),iPendingSettingChangeCmd( EFalse )
-    {
-    __VTPRINTENTER( "CVtUiPrefSettingListBase.CVtUiPrefSettingListBase" )   
-    __VTPRINTEXIT( "CVtUiPrefSettingListBase.CVtUiPrefSettingListBase" )
-    }
-
-
-// ---------------------------------------------------------------------------
-// CVtUiPrefSettingListBase::ConstructL
-// ---------------------------------------------------------------------------
-//
-void CVtUiPrefSettingListBase::ConstructL()
-    {
-    __VTPRINTENTER( "CVtUiPrefSettingListBase.ConstructL" )
-    BaseConstructL();
-    // Get camera preferences extension.
-    iCameraPref = static_cast<MVtEngCameraPreferences*> (iFeatureManager.
-        AppUi().Model().Extension( KVtEngExtensionCameraPreferences ) );
-    // Create backgound bitmap
-    iViewfinderBitmap = new ( ELeave ) CFbsBitmap();
-    __VTPRINTEXIT( "CVtUiPrefSettingListBase.ConstructL" )
-    }
-     
-// ---------------------------------------------------------------------------
-// CVtUiPrefSettingListBase::ReadAndAppendItemL
-// ---------------------------------------------------------------------------
-//
-void CVtUiPrefSettingListBase::ReadAndAppendItemL( CDesCArray& aItems,
-    TInt aResId )
-    {
-    __VTPRINTENTER( "CVtUiPrefSettingListBase.ReadAndAppendItemL" )
-    HBufC* text = iAppUi.GetEikonEnv()->AllocReadResourceLC( aResId );
-    aItems.AppendL( *text );
-    CleanupStack::PopAndDestroy(); // text
-    __VTPRINTEXIT( "CVtUiPrefSettingListBase.ReadAndAppendItemL" )
-    }    
-    
-// ---------------------------------------------------------------------------
-// CVtUiPrefSettingListBase::CreateSettingPageL
-// ---------------------------------------------------------------------------
-//
-void CVtUiPrefSettingListBase::CreateSettingPageL()
-    {
-    __VTPRINTENTER( "CVtUiPrefSettingListBase.CreateSettingPageL" )
-    CDesCArray* selectionArray = new ( ELeave ) 
-        CDesCArraySeg( KMaxNumberOfArrayItems );
-    CleanupStack::PushL( selectionArray );
-    // Set items must be called before CurrentSelection function
-    // Otherwise iActiveItems array is not populated
-    iActiveItems.Reset();
-    SetItemsL( *selectionArray );
-    TInt resourceId = SettingPageResId();
-    
-    // Current selection is needed when a new item is focused in the list
-    iCurrentSelection = iOriginalSelection;
-    TInt current( CurrentSelection() );
-    if ( !iSettingPage )
-        {
-        iSettingPage = new ( ELeave ) CVtUiTransparentSettingPage( resourceId,
-            iCurrentSelection, selectionArray );
-        iSettingPage->ConstructL();
-        iSettingPage->SetSettingPageObserver( this );
-        iSettingPage->SetSettingPageEventStateObserver( this );
-        }
-     CleanupStack::PopAndDestroy(); // selectionArray        
-     ResizeBackroundBitmapRect();
-     iSettingPage->SetBitmapPositionAndClipRect( iBitmapTopLeftCorner, 
-        iBitmapClippingRect );            
-    __VTPRINTEXIT( "CVtUiPrefSettingListBase.CreateSettingPageL" )
-    }
-
-// ---------------------------------------------------------------------------
-// CVtUiPrefSettingListBase::ShrinkBackroundBitmapRect
-// ---------------------------------------------------------------------------
-//    
-void CVtUiPrefSettingListBase::ResizeBackroundBitmapRect()
-    {
-    __VTPRINTENTER( "CVtUiPrefSettingListBase.ResizeBackroundBitmapRect" )
-    TRect parent( iAppUi.MainControl().Size() );
-    TAknWindowLineLayout rect;
-    TAknLayoutRect iStreamLayout;
-    VtUiLayout::GetSecondWindowStreamLayout( rect, ETrue );
-    iStreamLayout.LayoutRect( parent, rect );
-    
-    // In landscape rect from layout doesn't work 
-    // for some reason
-    if ( Layout_Meta_Data::IsLandscapeOrientation() )
-        {
-        iBitmapClippingRect = parent;
-        }
-    else
-        {
-        iBitmapClippingRect = iStreamLayout.Rect();
-        }
-    
-    iBitmapTopLeftCorner = iStreamLayout.Rect().iTl;
-    __VTPRINTEXIT( "CVtUiPrefSettingListBase.ResizeBackroundBitmapRect" )
-    }