vtuis/videotelui/src/features/prefs/cvtuitransparentsettingpage.cpp
branchRCL_3
changeset 25 779871d1e4f4
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/vtuis/videotelui/src/features/prefs/cvtuitransparentsettingpage.cpp	Wed Sep 01 12:29:12 2010 +0100
@@ -0,0 +1,206 @@
+/*
+* 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:  Transparent camera setting page.
+*
+*/
+
+
+
+#include "cvtuitransparentsettingpage.h"
+#include "mvtuisettingpageobserver.h"
+#include "VtUiLayout.h"
+#include <cvtlogger.h>
+#include <aknsettingpage.h>
+#include <aknlayoutscalable_apps.cdl.h>
+#include <layoutmetadata.cdl.h>
+
+
+/**
+*  CVtUiTransparentSettingPage
+*
+*  Transparent camera setting page. Extends class CAknTransparentCameraSettingPage
+*  with position related functionality.
+*
+*  @since S60 v3.2
+*/
+void CVtUiTransparentSettingPage::HandleLayoutChangeL()
+    {
+    GetTheLayoutData();
+    }
+
+// -----------------------------------------------------------------------------
+// CVtUiTransparentSettingPage::CVtUiTransparentSettingPage
+// -----------------------------------------------------------------------------
+//
+CVtUiTransparentSettingPage::CVtUiTransparentSettingPage( TInt aResourceID, 
+     TInt& aCurrentSelectionIndex, const MDesCArray* aItemArray) :
+     CAknTransparentCameraSettingPage( aResourceID,
+     aCurrentSelectionIndex, aItemArray )
+     {
+     }
+
+// -----------------------------------------------------------------------------
+// CVtUiTransparentSettingPage::ConstructL
+// -----------------------------------------------------------------------------
+//            
+void CVtUiTransparentSettingPage::ConstructL()
+    {
+    CAknTransparentCameraSettingPage::ConstructL();
+    }
+    
+
+// -----------------------------------------------------------------------------
+// CVtUiTransparentSettingPage::~CVtUiTransparentSettingPage
+// -----------------------------------------------------------------------------
+//            
+CVtUiTransparentSettingPage::~CVtUiTransparentSettingPage()
+    {
+    }
+
+// -----------------------------------------------------------------------------
+// CVtUiNumberEntryControl::SetNumberEntryControlObserver
+// -----------------------------------------------------------------------------
+//
+void CVtUiTransparentSettingPage::SetSettingPageEventStateObserver( 
+    MVtUiSettingPageObserver* aObserver )
+    {
+    iSettingPageObserver = aObserver;
+    }
+
+// -----------------------------------------------------------------------------
+// CVtUiTransparentSettingPage::GetTheLayoutData
+// -----------------------------------------------------------------------------
+//
+void CVtUiTransparentSettingPage::GetTheLayoutData()
+    {
+    // Varieties
+    TInt labelVariety = 6;
+    TInt listboxVariety = 6;
+
+    if ( Layout_Meta_Data::IsLandscapeOrientation() )
+        {
+        labelVariety = 5;
+        listboxVariety = 5;
+        }
+       
+    // Rect for label and shadow text   
+    TRect labelRect = RectFromLayout( AknLayoutScalable_Apps::
+       aid_placing_vt_set_title( labelVariety ) );
+    
+    // Rect for listbox control
+    TRect listBoxRect = RectFromLayout( AknLayoutScalable_Apps::
+        aid_placing_vt_set_content( listboxVariety ) );
+   
+     // Get text label from parent class
+    CEikLabel* textLabel = TextLabel();
+   
+    // Set label's new positions
+    if ( textLabel )
+    	{
+    	textLabel->SetPosition( labelRect.iTl );	
+    	}
+    
+    // Get shadow text from parent class
+    CEikLabel* shadowText = ShadowText();
+   
+    // Set shadow text's new positions if shadow text exists
+    if( shadowText )
+        {
+        // This information should come from layout, but
+        // also AknSettingPage does the positioning in this way.
+        labelRect.Move( 1, 1 );
+        shadowText->SetPosition( labelRect.iTl );
+        }
+    
+    // Set new rect for listbox control
+    ListBoxControl()->SetRect( listBoxRect );
+    }
+    
+// -----------------------------------------------------------------------------
+// CVtUiTransparentSettingPage::DynamicInitL
+// -----------------------------------------------------------------------------
+//
+void CVtUiTransparentSettingPage::DynamicInitL()
+  {
+  	GetTheLayoutData();
+  }
+
+// -----------------------------------------------------------------------------
+// CVtUiTransparentSettingPage::HandleControlEventL
+// -----------------------------------------------------------------------------
+//
+void CVtUiTransparentSettingPage::HandleControlEventL( CCoeControl* /*aControl*/,
+    TCoeEvent aEventType )
+    {
+    __VTPRINTENTER( "CVtUiTransparentSettingPage.HandleControlEventL" )
+     if ( aEventType == EEventStateChanged )
+        {
+        if ( iSettingPageObserver )
+            {
+            iSettingPageObserver->ListStateChangedL();
+            }
+        __VTPRINT( DEBUG_GEN, " CVtUiTransparentSettingPage.EEventStateChanged" )
+        }
+    
+    __VTPRINTEXIT( "CVtUiTransparentSettingPage.HandleControlEventL" )
+    }
+
+// -----------------------------------------------------------------------------
+// CVtUiTransparentSettingPage::HandleResourceChange
+// -----------------------------------------------------------------------------
+//
+void CVtUiTransparentSettingPage::HandleResourceChange(TInt aType)
+    {
+    CAknTransparentCameraSettingPage::HandleResourceChange(aType);
+    GetTheLayoutData();
+    }
+
+// -----------------------------------------------------------------------------
+// CVtUiTransparentSettingPage::RectFromLayout
+// -----------------------------------------------------------------------------
+// 
+TRect CVtUiTransparentSettingPage::RectFromLayout(
+    const TAknWindowComponentLayout& aComponentLayout ) const
+    {
+    __VTPRINTENTER( "CVtUiTransparentSettingPage.RectFromLayout" )
+      
+    TInt main_pane_variety( 0 );
+    if ( Layout_Meta_Data::IsLandscapeOrientation() )
+            {
+            main_pane_variety = 4;
+            }
+
+    TAknWindowComponentLayout layout1 =
+        AknLayoutScalable_Apps::main_pane( main_pane_variety );
+    TAknWindowComponentLayout layout2 =
+        AknLayoutScalable_Apps::main_video_tele_pane();
+
+    TAknWindowLineLayout layout =
+        TAknWindowComponentLayout::Compose(
+         TAknWindowComponentLayout::Compose( layout1, layout2 ), aComponentLayout ).
+            LayoutLine();
+    
+    TRect screen;
+    AknLayoutUtils::LayoutMetricsRect( AknLayoutUtils::EScreen, screen );
+    TAknLayoutRect layoutRect;
+    layoutRect.LayoutRect( screen, layout );
+    
+    // setting page is window owning control and its position is relative to mainpane
+    // layotdata is instead relative to screen
+    TRect rect( layoutRect.Rect() ); 
+    rect.Move( -PositionRelativeToScreen() );
+    
+    __VTPRINTEXIT( "CVtUiTransparentSettingPage.RectFromLayout" ) 
+    return rect;
+   }