--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/wvuing/wvuiave/AppSrc/CCALayoutInfo.cpp Thu Dec 17 08:41:52 2009 +0200
@@ -0,0 +1,1044 @@
+/*
+* 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: Layout and render info for Chat Listbox's item drawer and view
+*
+*
+*/
+
+
+// INCLUDE FILES
+#include "CCALayoutInfo.h"
+#include "LayoutDebugPrint.h"
+
+#include <AknUtils.h>
+#include <AppLayout.cdl.h> //cdl
+#include <F32FILE.H>
+#include <AknLayoutScalable_Apps.cdl.h>
+
+// CONSTANTS
+
+// ================= MEMBER FUNCTIONS =======================
+
+// -----------------------------------------------------------------------------
+// CCALayoutInfo::NewL
+// Two-phased constructor.
+// -----------------------------------------------------------------------------
+//
+CCALayoutInfo* CCALayoutInfo::NewL( TChatListBoxLayout::TLayout aLayoutID )
+ {
+ CCALayoutInfo* self = new ( ELeave ) CCALayoutInfo( aLayoutID );
+ CleanupStack::PushL( self );
+ self->ConstructL();
+ CleanupStack::Pop( self );
+ return self;
+ }
+
+// -----------------------------------------------------------------------------
+// CCALayoutInfo::~CCALayoutInfo
+// Destructor
+// -----------------------------------------------------------------------------
+//
+CCALayoutInfo::~CCALayoutInfo()
+ {
+ if ( iReadingPane )
+ {
+ iReadingPane->Reset();
+ delete iReadingPane;
+ }
+
+ if ( iWrittingPane )
+ {
+ iWrittingPane->Reset();
+ delete iWrittingPane;
+ }
+
+ if ( iReadingField )
+ {
+ iReadingField->Reset();
+ delete iReadingField;
+ }
+
+ if ( iReadingPaneTextsLine1 )
+ {
+ iReadingPaneTextsLine1->Reset();
+ delete iReadingPaneTextsLine1;
+ }
+
+ if ( iIMTextElements )
+ {
+ iIMTextElements->Reset();
+ delete iIMTextElements;
+ }
+
+ if ( iWrittingPaneTextsLine )
+ {
+ iWrittingPaneTextsLine->Reset();
+ delete iWrittingPaneTextsLine;
+ }
+
+ if ( iIMWritingFieldLine1 )
+ {
+ iIMWritingFieldLine1->Reset();
+ delete iIMWritingFieldLine1;
+ }
+
+ if ( iIMWritingFieldLine3 )
+ {
+ iIMWritingFieldLine3->Reset();
+ delete iIMWritingFieldLine3;
+ }
+
+ if ( iIMNaviPaneTextsLine1 )
+ {
+ iIMNaviPaneTextsLine1->Reset();
+ delete iIMNaviPaneTextsLine1;
+ }
+
+ if ( iIMNaviPaneTextsLine2 )
+ {
+ iIMNaviPaneTextsLine2->Reset();
+ delete iIMNaviPaneTextsLine2;
+ }
+ }
+
+// -----------------------------------------------------------------------------
+// CCALayoutInfo::CCALayoutInfo
+// C++ constructor can NOT contain any code, that might leave.
+// -----------------------------------------------------------------------------
+//
+CCALayoutInfo::CCALayoutInfo( TChatListBoxLayout::TLayout aLayoutID ) :
+ iLayoutID( aLayoutID )
+ {
+ }
+
+// -----------------------------------------------------------------------------
+// CCALayoutInfo::ConstructL
+// Second phase constructor
+// -----------------------------------------------------------------------------
+//
+void CCALayoutInfo::ConstructL()
+ {
+ SetupMainPaneRect();
+ FillLayoutL();
+ LogLayoutL();
+ }
+
+// ---------------------------------------------------------
+// CCALayoutInfo::LayoutID
+// (other items were commented in a header).
+// ---------------------------------------------------------
+//
+TInt CCALayoutInfo::LayoutID()
+ {
+ return iLayoutID;
+ }
+
+// ---------------------------------------------------------
+// CCALayoutInfo::Mirrored
+// (other items were commented in a header).
+// ---------------------------------------------------------
+//
+TBool CCALayoutInfo::Mirrored()
+ {
+ return iMirrored;
+ }
+
+// ---------------------------------------------------------
+// CCALayoutInfo::LayoutChangedL
+// (other items were commented in a header).
+// ---------------------------------------------------------
+//
+void CCALayoutInfo::LayoutChangedL( TInt /*aType = 0*/ )
+ {
+ LAYOUT_DP_TXT( "CCALayoutInfo::LayoutChangedL" );
+
+ FillLayoutL();
+
+ TAknLayoutRect myLayoutRect;
+
+ TAknLayoutRect myLine;
+
+ iMirrored = AknLayoutUtils::LayoutMirrored();
+
+ //update MainPaneRect
+ SetupMainPaneRect();
+
+ TAknWindowLineLayout readingPane = im_reading_pane( iLayoutID );
+
+ myLayoutRect.LayoutRect( iMainPaneRect, readingPane );
+
+ //line height
+ TAknWindowLineLayout lineLayout = im_reading_field( 0 );
+
+ myLine.LayoutRect( myLayoutRect.Rect(), lineLayout );
+
+ iLineHeight = myLine.Rect().Height();
+
+ LAYOUT_DP( D_LAYOUT_LIT( "CCALayoutInfo::LayoutChangedL iLineHeight:%d" )
+ , iLineHeight );
+
+ //Max Lines
+
+ iMaxLines = myLayoutRect.Rect().Height() / iLineHeight;
+
+ LAYOUT_DP( D_LAYOUT_LIT( "CCALayoutInfo::LayoutChangedL iMaxLines:%d" )
+ , iMaxLines );
+
+ // NickFont
+
+ TAknTextLineLayout myMessageHeaderLayout =
+ IM_reading_pane_texts_Line_1( 1 );
+ iNickFont = AknLayoutUtils::FontFromId( myMessageHeaderLayout.FontId() );
+
+ // MaxLineWidth
+
+ TAknLayoutText myTextLayout;
+ TAknLayoutText myTextLayout2;
+
+ myTextLayout.LayoutText( myLine.Rect(), myMessageHeaderLayout );
+
+ iMaxLineWidth = myTextLayout.TextRect().Width();
+
+ LAYOUT_DP( D_LAYOUT_LIT( "CCALayoutInfo::LayoutChangedL iMaxLineWidth:%d" )
+ , iMaxLineWidth );
+
+ // IconSkip
+ myMessageHeaderLayout = IM_reading_pane_texts_Line_1( 2 );
+
+ myTextLayout2.LayoutText( myLine.Rect(), myMessageHeaderLayout );
+
+ if ( iMirrored )
+ {
+ iIconSkip = myTextLayout.TextRect().iBr.iX
+ - myTextLayout2.TextRect().iBr.iX;
+ }
+ else
+ {
+ iIconSkip = myTextLayout2.TextRect().iTl.iX
+ - myTextLayout.TextRect().iTl.iX;
+ }
+
+ LAYOUT_DP( D_LAYOUT_LIT( "CCALayoutInfo::LayoutChangedL iIconSkip:%d" )
+ , iIconSkip );
+
+ // MsgFont
+
+ TAknTextLineLayout myMessageLayout = IM_reading_pane_texts_Line_2();
+ iMsgFont = AknLayoutUtils::FontFromId( myMessageLayout.FontId() );
+
+ //Indent
+ //normal message text with indent
+ myTextLayout.LayoutText( myLine.Rect(), myMessageLayout );
+
+ //header with full width
+ myMessageHeaderLayout = IM_reading_pane_texts_Line_1( 1 );
+ myTextLayout2.LayoutText( myLine.Rect(), myMessageHeaderLayout );
+
+ if ( iMirrored )
+ {
+ iIndent = myTextLayout2.TextRect().iBr.iX
+ - myTextLayout.TextRect().iBr.iX;
+ }
+ else
+ {
+ iIndent = myTextLayout.TextRect().iTl.iX
+ - myTextLayout2.TextRect().iTl.iX;
+ }
+ LAYOUT_DP( D_LAYOUT_LIT( "CCALayoutInfo::LayoutChangedL iIndent:%d" )
+ , iIndent );
+
+ // MaxNickWidth
+
+ myMessageHeaderLayout = IM_reading_pane_texts_Line_1( 0 );
+
+ myTextLayout.LayoutText( myLine.Rect(), myMessageHeaderLayout );
+
+ iMaxNickWidth = myTextLayout.TextRect().Width() + iIndent;
+ // - myTextLayout2.TextRect().iTl.iX;
+
+ LAYOUT_DP( D_LAYOUT_LIT( "CCALayoutInfo::LayoutChangedL iMaxNickWidth:%d" )
+ , iMaxNickWidth );
+
+ LAYOUT_DP_TXT( "CCALayoutInfo::LayoutChangedL over" );
+ }
+
+// ---------------------------------------------------------
+// CCALayoutInfo::NickFont
+// (other items were commented in a header).
+// ---------------------------------------------------------
+//
+const CFont* CCALayoutInfo::NickFont()
+ {
+ return iNickFont;
+ }
+
+// ---------------------------------------------------------
+// CCALayoutInfo::MessageFont
+// (other items were commented in a header).
+// ---------------------------------------------------------
+//
+const CFont* CCALayoutInfo::MessageFont()
+ {
+ return iMsgFont;
+ }
+
+// ---------------------------------------------------------
+// CCALayoutInfo::LineHeight
+// (other items were commented in a header).
+// ---------------------------------------------------------
+//
+TInt CCALayoutInfo::LineHeight()
+ {
+ return iLineHeight;
+ }
+
+// ---------------------------------------------------------
+// CCALayoutInfo::MaxLineWidth
+// (other items were commented in a header).
+// ---------------------------------------------------------
+//
+TInt CCALayoutInfo::MaxLineWidth()
+ {
+ return iMaxLineWidth;
+ }
+
+// ---------------------------------------------------------
+// CCALayoutInfo::MaxNickWidth
+// (other items were commented in a header).
+// ---------------------------------------------------------
+//
+TInt CCALayoutInfo::MaxNickWidth()
+ {
+ return iMaxNickWidth;
+ }
+
+// ---------------------------------------------------------
+// CCALayoutInfo::MaxLines
+// (other items were commented in a header).
+// ---------------------------------------------------------
+//
+TInt CCALayoutInfo::MaxLines()
+ {
+ return iMaxLines;
+ }
+
+// ---------------------------------------------------------
+// CCALayoutInfo::MainPaneRect
+// (other items were commented in a header).
+// ---------------------------------------------------------
+//
+TRect CCALayoutInfo::MainPaneRect()
+ {
+ return TRect( iMainPaneRect );
+ }
+
+// ---------------------------------------------------------
+// CCALayoutInfo::SetLayoutID
+// (other items were commented in a header).
+// ---------------------------------------------------------
+//
+void CCALayoutInfo::SetLayoutID( TChatListBoxLayout::TLayout aLayout )
+ {
+ iLayoutID = aLayout;
+ TRAPD( err, LayoutChangedL() );
+ if ( err != KErrNone )
+ {
+ CActiveScheduler::Current()->Error( err );
+ }
+ }
+
+// ---------------------------------------------------------
+// CCALayoutInfo::Indent
+// (other items were commented in a header).
+// ---------------------------------------------------------
+//
+TInt CCALayoutInfo::Indent()
+ {
+ return iIndent;
+ }
+
+// ---------------------------------------------------------
+// CCALayoutInfo::ScreenRect
+// (other items were commented in a header).
+// ---------------------------------------------------------
+//
+TRect CCALayoutInfo::ScreenRect()
+ {
+ return iScreenRect;
+ }
+
+// ---------------------------------------------------------
+// CCALayoutInfo::SetEditorVisibility
+// (other items were commented in a header).
+// ---------------------------------------------------------
+//
+void CCALayoutInfo::SetEditorVisibility( TBool aVisible )
+ {
+ iEditorVisibility = aVisible;
+ }
+
+// ---------------------------------------------------------
+// CCALayoutInfo::EditorVisibility
+// (other items were commented in a header).
+// ---------------------------------------------------------
+//
+TBool CCALayoutInfo::EditorVisibility()
+ {
+ return iEditorVisibility;
+ }
+
+// ---------------------------------------------------------
+// CCALayoutInfo::SetupMainPaneRect
+// (other items were commented in a header).
+// ---------------------------------------------------------
+//
+void CCALayoutInfo::SetupMainPaneRect()
+ {
+ AknLayoutUtils::LayoutMetricsRect( AknLayoutUtils::EMainPane,
+ iMainPaneRect );
+ _LIT( KMain, "MainPane" );
+
+ iMainPaneRect.Move( -iMainPaneRect.iTl.iX, -iMainPaneRect.iTl.iY );
+
+ DPRect( KMain, iMainPaneRect );
+
+ TRect myControlPane;
+ AknLayoutUtils::LayoutMetricsRect( AknLayoutUtils::EControlPane,
+ myControlPane );
+ _LIT( KControlPane, "ControlPane" );
+ DPRect( KControlPane, myControlPane );
+ //this is screen relative lets move back to origin.
+ }
+
+// ---------------------------------------------------------
+// CCALayoutInfo::im_reading_pane
+// (other items were commented in a header).
+// ---------------------------------------------------------
+//
+TAknWindowLineLayout CCALayoutInfo::im_reading_pane( TInt aIndex_H )
+ {
+ return ( *iReadingPane )[ aIndex_H ];
+ }
+
+// ---------------------------------------------------------
+// CCALayoutInfo::im_reading_field
+// (other items were commented in a header).
+// ---------------------------------------------------------
+//
+TAknWindowLineLayout CCALayoutInfo::im_reading_field( TInt aIndex_t )
+ {
+ return ( *iReadingField )[ aIndex_t ];
+ }
+
+// ---------------------------------------------------------
+// CCALayoutInfo::IM_text_elements
+// (other items were commented in a header).
+// ---------------------------------------------------------
+//
+TAknWindowLineLayout CCALayoutInfo::IM_text_elements( TInt aLineIndex )
+ {
+ return ( *iIMTextElements )[ aLineIndex ];
+ }
+
+// ---------------------------------------------------------
+// CCALayoutInfo::IM_reading_pane_texts_Line_1
+// (other items were commented in a header).
+// ---------------------------------------------------------
+//
+TAknTextLineLayout CCALayoutInfo::IM_reading_pane_texts_Line_1( TInt aCommon1 )
+ {
+ return ( *iReadingPaneTextsLine1 )[ aCommon1 ];
+ }
+
+// ---------------------------------------------------------
+// CCALayoutInfo::IM_reading_pane_texts_Line_2
+// (other items were commented in a header).
+// ---------------------------------------------------------
+//
+TAknTextLineLayout CCALayoutInfo::IM_reading_pane_texts_Line_2()
+ {
+ return iReadingPaneTextsLine2;
+ }
+
+// ---------------------------------------------------------
+// CCALayoutInfo::IM_text_elements_Line_1
+// (other items were commented in a header).
+// ---------------------------------------------------------
+//
+TAknWindowLineLayout CCALayoutInfo::IM_text_elements_Line_1()
+ {
+ return AppLayout::IM_text_elements_Line_1();
+ }
+
+// ---------------------------------------------------------
+// CCALayoutInfo::IM_text_elements_Line_2
+// (other items were commented in a header).
+// ---------------------------------------------------------
+//
+TAknWindowLineLayout CCALayoutInfo::IM_text_elements_Line_2()
+ {
+ return AppLayout::IM_text_elements_Line_2();
+ }
+
+// ---------------------------------------------------------
+// CCALayoutInfo::IM_reading_field_highlight_graphics_Line_1
+// (other items were commented in a header).
+// ---------------------------------------------------------
+//
+TAknWindowLineLayout CCALayoutInfo::IM_reading_field_highlight_graphics_Line_1(
+ const TRect& aParentRect )
+ {
+ return AppLayout::IM_reading_field_highlight_graphics_Line_1( aParentRect );
+ }
+
+// ---------------------------------------------------------
+// CCALayoutInfo::IM_reading_field_highlight_graphics_Line_2
+// (other items were commented in a header).
+// ---------------------------------------------------------
+//
+TAknWindowLineLayout CCALayoutInfo::IM_reading_field_highlight_graphics_Line_2(
+ const TRect& aParentRect )
+ {
+ return AppLayout::IM_reading_field_highlight_graphics_Line_2( aParentRect );
+ }
+
+// ---------------------------------------------------------
+// CCALayoutInfo::im_writing_pane
+// (other items were commented in a header).
+// ---------------------------------------------------------
+//
+TAknWindowLineLayout CCALayoutInfo::im_writing_pane( TInt aCommon1 )
+ {
+ return ( *iWrittingPane )[ aCommon1 ];
+ }
+
+// ---------------------------------------------------------
+// CCALayoutInfo::IM_writing_field_elements_Line_1
+// (other items were commented in a header).
+// ---------------------------------------------------------
+//
+TAknWindowLineLayout CCALayoutInfo::IM_writing_field_elements_Line_1(
+ TInt aIndex_H )
+ {
+ return ( *iIMWritingFieldLine1 )[ aIndex_H ];
+ }
+
+// ---------------------------------------------------------
+// CCALayoutInfo::IM_writing_field_elements_Line_2
+// (other items were commented in a header).
+// ---------------------------------------------------------
+//
+TAknWindowLineLayout CCALayoutInfo::IM_writing_field_elements_Line_2()
+ {
+ return iIMWritingFieldLine2;
+ }
+
+// ---------------------------------------------------------
+// CCALayoutInfo::IM_writing_field_elements_Line_3
+// (other items were commented in a header).
+// ---------------------------------------------------------
+//
+TAknWindowLineLayout CCALayoutInfo::IM_writing_field_elements_Line_3(
+ TInt aIndex_H )
+ {
+ return ( *iIMWritingFieldLine3 )[ aIndex_H ];
+ }
+
+// ---------------------------------------------------------
+// CCALayoutInfo::Multiline_IM_writing_pane_texts_Line_1
+// (other items were commented in a header).
+// ---------------------------------------------------------
+//
+TAknMultiLineTextLayout CCALayoutInfo::Multiline_IM_writing_pane_texts_Line_1(
+ TInt aNumberOfLinesShown )
+ {
+ return ( *iWrittingPaneTextsLine )[ aNumberOfLinesShown ];
+ }
+
+// ---------------------------------------------------------
+// CCALayoutInfo::IM_navi_pane_texts_Line_1
+// (other items were commented in a header).
+// ---------------------------------------------------------
+//
+TAknTextLineLayout CCALayoutInfo::IM_navi_pane_texts_Line_1(
+ TInt aIndex_C, TInt /*aIndex_W*/ )
+ {
+ return ( *iIMNaviPaneTextsLine1 )[ aIndex_C ];
+ }
+
+// ---------------------------------------------------------
+// CCALayoutInfo::LogLayout
+// (other items were commented in a header).
+// ---------------------------------------------------------
+//
+void CCALayoutInfo::LogLayoutL()
+ {
+#ifdef _DEBUG
+
+ _LIT( K1, "im_reading_pane( 0 ) " );
+ DPLayout( K1, AppLayout::im_reading_pane( 0 ) );
+ DPLayout( K1, im_reading_pane( 0 ) );
+ _LIT( K2, "im_reading_pane( 1 ) " );
+ DPLayout( K2, AppLayout::im_reading_pane( 1 ) );
+ DPLayout( K2, im_reading_pane( 1 ) );
+ _LIT( K3, "im_reading_pane( 2 ) " );
+ DPLayout( K3, AppLayout::im_reading_pane( 2 ) );
+ DPLayout( K3, im_reading_pane( 2 ) );
+
+ _LIT( KWP1, "im_writing_pane( 0 )" );
+ DPLayout( KWP1, AppLayout::im_writing_pane( 0 ) );
+ DPLayout( KWP1, im_writing_pane( 0 ) );
+ _LIT( KWP2, "im_writing_pane( 1 )" );
+ DPLayout( KWP2, AppLayout::im_writing_pane( 1 ) );
+ DPLayout( KWP2, im_writing_pane( 1 ) );
+
+ _LIT( K4, "im_reading_field( 0 ) " );
+ DPLayout( K4, AppLayout::im_reading_field( 0 ) );
+ DPLayout( K4, im_reading_field( 0 ) );
+ _LIT( K5, "im_reading_field( 1 ) " );
+ DPLayout( K5, AppLayout::im_reading_field( 1 ) );
+ DPLayout( K5, im_reading_field( 1 ) );
+ _LIT( K6, "im_reading_field( 2 ) " );
+ DPLayout( K6, AppLayout::im_reading_field( 2 ) );
+ DPLayout( K6, im_reading_field( 2 ) );
+ _LIT( K7, "im_reading_field( 3 ) " );
+ DPLayout( K7, AppLayout::im_reading_field( 3 ) );
+ DPLayout( K7, im_reading_field( 3 ) );
+ _LIT( K8, "im_reading_field( 4 ) " );
+ DPLayout( K8, AppLayout::im_reading_field( 4 ) );
+ DPLayout( K8, im_reading_field( 4 ) );
+ _LIT( K9, "im_reading_field( 5 ) " );
+ DPLayout( K9, AppLayout::im_reading_field( 5 ) );
+ DPLayout( K9, im_reading_field( 5 ) );
+ _LIT( K10, "im_reading_field( 6 ) " );
+ DPLayout( K10, AppLayout::im_reading_field( 6 ) );
+ DPLayout( K10, im_reading_field( 6 ) );
+
+ TAknLayoutScalableParameterLimits limits(
+ AknLayoutScalable_Apps::list_im_single_pane_ParamLimits() );
+
+ if ( 7 <= limits.LastRow() )
+ {
+ _LIT( K11, "im_reading_field( 7 ) " );
+ DPLayout( K11, AppLayout::im_reading_field( 7 ) );
+ DPLayout( K11, im_reading_field( 7 ) );
+ }
+
+ _LIT( KRPT0, "IM_reading_pane_texts_Line_1( 0 )" );
+ DPLayout( KRPT0, AppLayout::IM_reading_pane_texts_Line_1( 0 ) );
+ DPLayout( KRPT0, IM_reading_pane_texts_Line_1( 0 ) );
+ _LIT( KRPT1, "IM_reading_pane_texts_Line_1( 1 )" );
+ DPLayout( KRPT1, AppLayout::IM_reading_pane_texts_Line_1( 1 ) );
+ DPLayout( KRPT1, IM_reading_pane_texts_Line_1( 1 ) );
+ _LIT( KRPT2, "IM_reading_pane_texts_Line_1( 2 )" );
+ DPLayout( KRPT2, AppLayout::IM_reading_pane_texts_Line_1( 2 ) );
+ DPLayout( KRPT2, IM_reading_pane_texts_Line_1( 2 ) );
+ _LIT( KRPT3, "IM_reading_pane_texts_Line_2()" );
+ DPLayout( KRPT3, AppLayout::IM_reading_pane_texts_Line_2() );
+ DPLayout( KRPT3, IM_reading_pane_texts_Line_2() );
+
+ _LIT( KIMT1, "IM_text_elements( 0 )" );
+ DPLayout( KIMT1, AppLayout::IM_text_elements( 0 ) );
+ DPLayout( KIMT1, IM_text_elements( 0 ) );
+ _LIT( KIMT2, "IM_text_elements( 1 )" );
+ DPLayout( KIMT2, AppLayout::IM_text_elements( 1 ) );
+ DPLayout( KIMT2, IM_text_elements( 1 ) );
+ _LIT( KIMT3, "IM_text_elements( 2 )" );
+ DPLayout( KIMT3, AppLayout::IM_text_elements( 2 ) );
+ DPLayout( KIMT3, IM_text_elements( 2 ) );
+
+ _LIT( KMWPT0, "Multiline_IM_writing_pane_texts_Line_1( 0 )" );
+ DPLayout( KMWPT0, AppLayout::Multiline_IM_writing_pane_texts_Line_1( 0 ) );
+ DPLayout( KMWPT0, Multiline_IM_writing_pane_texts_Line_1( 0 ) );
+
+ _LIT( KMWPT1, "Multiline_IM_writing_pane_texts_Line_1( 1 )" );
+ DPLayout( KMWPT1, AppLayout::Multiline_IM_writing_pane_texts_Line_1( 1 ) );
+ DPLayout( KMWPT1, Multiline_IM_writing_pane_texts_Line_1( 1 ) );
+
+ _LIT( KMWPT2, "Multiline_IM_writing_pane_texts_Line_1( 2 )" );
+ DPLayout( KMWPT2, AppLayout::Multiline_IM_writing_pane_texts_Line_1( 2 ) );
+ DPLayout( KMWPT2, Multiline_IM_writing_pane_texts_Line_1( 2 ) );
+
+ _LIT( KWFL10, "IM_writing_field_elements_Line_1( 0 )" );
+ DPLayout( KWFL10, AppLayout::IM_writing_field_elements_Line_1( 0 ) );
+ DPLayout( KWFL10, IM_writing_field_elements_Line_1( 0 ) );
+
+ _LIT( KWFL11, "IM_writing_field_elements_Line_1( 1 )" );
+ DPLayout( KWFL11, AppLayout::IM_writing_field_elements_Line_1( 1 ) );
+ DPLayout( KWFL11, IM_writing_field_elements_Line_1( 1 ) );
+
+ _LIT( KWFL2, "IM_writing_field_elements_Line_2()" );
+ DPLayout( KWFL2, AppLayout::IM_writing_field_elements_Line_2() );
+ DPLayout( KWFL2, IM_writing_field_elements_Line_2() );
+
+ _LIT( KWFL30, "IM_writing_field_elements_Line_3( 0 )" );
+ DPLayout( KWFL30, AppLayout::IM_writing_field_elements_Line_3( 0 ) );
+ DPLayout( KWFL30, IM_writing_field_elements_Line_3( 0 ) );
+
+ _LIT( KWFL31, "IM_writing_field_elements_Line_3( 1 )" );
+ DPLayout( KWFL31, AppLayout::IM_writing_field_elements_Line_3( 1 ) );
+ DPLayout( KWFL31, IM_writing_field_elements_Line_3( 1 ) );
+
+ HBufC* myStr = HBufC::NewLC( 60 );
+ TPtr myPtr = myStr->Des();
+
+ _LIT( KNPTL, "IM_navi_pane_texts_Line_1( " );
+ _LIT( KNPTL0, "AppLayout::" );
+ _LIT( KNPTL1, ", 0 )" );
+ _LIT( KNPTL2, ", 1 )" );
+ TInt i( 0 );
+ for ( i = 0; i < 10; i++ )
+ {
+ myPtr.Copy( KNPTL0() );
+ myPtr.Append( KNPTL() );
+ myPtr.AppendNum( i );
+ myPtr.Append( KNPTL1() );
+ DPLayout( myPtr, IM_navi_pane_texts_Line_1( i , 0 ) );
+
+ myPtr.Copy( KNPTL() );
+ myPtr.AppendNum( i );
+ myPtr.Append( KNPTL1() );
+ DPLayout( myPtr, IM_navi_pane_texts_Line_1( i , 0 ) );
+ }
+ for ( i = 0; i < 10; i++ )
+ {
+ myPtr.Copy( KNPTL0() );
+ myPtr.Append( KNPTL() );
+ myPtr.AppendNum( i );
+ myPtr.Append( KNPTL2() );
+ DPLayout( myPtr, IM_navi_pane_texts_Line_1( i , 1 ) );
+
+ myPtr.Copy( KNPTL() );
+ myPtr.AppendNum( i );
+ myPtr.Append( KNPTL2() );
+ DPLayout( myPtr, IM_navi_pane_texts_Line_1( i , 1 ) );
+ }
+
+ CleanupStack::PopAndDestroy( myStr );
+
+#endif // _DEBUG
+ }
+
+// ---------------------------------------------------------
+// CCALayoutInfo::DPLayout
+// (other items were commented in a header).
+// ---------------------------------------------------------
+//
+void CCALayoutInfo::DPLayout( const TDesC& aStr, const TAknTextLineLayout aLayout )
+ {
+ TPtrC myStr( aStr );
+ LAYOUT_DP( D_LAYOUT_LIT(
+ "%S iC il ir iB iW iJ iFont iBaselineSkip iNumberOfLinesShown" )
+ , &myStr );
+ LAYOUT_DP( D_LAYOUT_LIT( "%d %d %d %d %d %d %d %d %d" ), aLayout.iC
+ , aLayout.il
+ , aLayout.ir
+ , aLayout.iB
+ , aLayout.iW
+ , aLayout.iJ
+ , aLayout.iFont
+ , aLayout.iBaselineSkip
+ , aLayout.iNumberOfLinesShown );
+ }
+
+// ---------------------------------------------------------
+// CCALayoutInfo::DPLayout
+// (other items were commented in a header).
+// ---------------------------------------------------------
+//
+void CCALayoutInfo::DPLayout( const TDesC& aStr,
+ const TAknWindowLineLayout aLayout )
+ {
+ TPtrC myStr( aStr );
+ LAYOUT_DP( D_LAYOUT_LIT( "%S iC il it ir ib iW iH" ), &myStr );
+ LAYOUT_DP( D_LAYOUT_LIT( "%d %d %d %d %d %d %d" )
+ , aLayout.iC
+ , aLayout.il
+ , aLayout.it
+ , aLayout.ir
+ , aLayout.ib
+ , aLayout.iW
+ , aLayout.iH );
+ }
+
+// ---------------------------------------------------------
+// CCALayoutInfo::DPRect
+// (other items were commented in a header).
+// ---------------------------------------------------------
+//
+void CCALayoutInfo::DPRect( const TDesC& aStr, const TRect& aRect )
+ {
+ TPtrC myStr( aStr );
+ LAYOUT_DP( D_LAYOUT_LIT( "%S TRect %d %d %d %d" ), &myStr
+ , aRect.iTl.iX, aRect.iTl.iY, aRect.iBr.iX, aRect.iBr.iY );
+ }
+
+// ---------------------------------------------------------
+// CCALayoutInfo::FillLayoutL
+// (other items were commented in a header).
+// ---------------------------------------------------------
+//
+void CCALayoutInfo::FillLayoutL()
+ {
+ AknLayoutUtils::LayoutMetricsRect( AknLayoutUtils::EScreen, iScreenRect );
+ if ( iLastScreenRect != iScreenRect )
+ {
+ FillReadingPaneL();
+ FillWrittingPaneL();
+ FillReadingFieldL();
+ FillReadingPaneTextsLine1L();
+ FillReadingPaneTextsLine2();
+ FillIMTextElementsL();
+ FillWrittingPaneTextsLineL();
+ FillIMWritingFieldLine1L();
+ FillIMWritingFieldLine2();
+ FillIMWritingFieldLine3L();
+ FillIMNaviPaneTextsLineL();
+ }
+ iLastScreenRect = iScreenRect;
+ }
+
+// ---------------------------------------------------------
+// CCALayoutInfo::FillReadingPaneL
+// (other items were commented in a header).
+// ---------------------------------------------------------
+//
+void CCALayoutInfo::FillReadingPaneL()
+ {
+ if ( iReadingPane )
+ {
+ iReadingPane->Reset();
+ delete iReadingPane;
+ iReadingPane = NULL;
+ }
+
+ iReadingPane = new( ELeave )CArrayFixFlat<TAknWindowLineLayout>( 3 );
+ for ( TInt i( 0 ); i < 3; i++ )
+ {
+ iReadingPane->AppendL( AppLayout::im_reading_pane( i ) );
+ }
+ }
+
+// ---------------------------------------------------------
+// CCALayoutInfo::FillReadingFieldL
+// (other items were commented in a header).
+// ---------------------------------------------------------
+//
+void CCALayoutInfo::FillReadingFieldL()
+ {
+ if ( iReadingField )
+ {
+ iReadingField->Reset();
+ delete iReadingField;
+ iReadingField = NULL;
+ }
+
+ TAknLayoutScalableParameterLimits limits(
+ AknLayoutScalable_Apps::list_im_single_pane_ParamLimits() );
+
+ // items from FirstRow to LastRow
+ iReadingField = new( ELeave )CArrayFixFlat<TAknWindowLineLayout>(
+ limits.LastRow() - limits.FirstRow() + 1 );
+
+ for ( TInt i( limits.FirstRow() ); i <= limits.LastRow(); ++i )
+ {
+ iReadingField->AppendL( AppLayout::im_reading_field( i ) );
+ }
+ }
+
+// ---------------------------------------------------------
+// CCALayoutInfo::FillReadingPaneTextsLine1
+// (other items were commented in a header).
+// ---------------------------------------------------------
+//
+void CCALayoutInfo::FillReadingPaneTextsLine1L()
+ {
+ if ( iReadingPaneTextsLine1 )
+ {
+ iReadingPaneTextsLine1->Reset();
+ delete iReadingPaneTextsLine1;
+ iReadingPaneTextsLine1 = NULL;
+ }
+
+ iReadingPaneTextsLine1 = new( ELeave )CArrayFixFlat<TAknTextLineLayout>( 3 );
+ for ( TInt i( 0 ); i < 3; i++ )
+ {
+ iReadingPaneTextsLine1->AppendL(
+ AppLayout::IM_reading_pane_texts_Line_1( i ) );
+ }
+ }
+
+// ---------------------------------------------------------
+// CCALayoutInfo::FillIMTextElementsL
+// (other items were commented in a header).
+// ---------------------------------------------------------
+//
+void CCALayoutInfo::FillIMTextElementsL()
+ {
+ if ( iIMTextElements )
+ {
+ iIMTextElements->Reset();
+ delete iIMTextElements;
+ iIMTextElements = NULL;
+ }
+
+ iIMTextElements = new( ELeave )CArrayFixFlat<TAknWindowLineLayout>( 3 );
+ for ( TInt i( 0 ); i < 3; i++ )
+ {
+ iIMTextElements->AppendL( AppLayout::IM_text_elements( i ) );
+ }
+ }
+
+// ---------------------------------------------------------
+// CCALayoutInfo::FillReadingPaneTextsLine2
+// (other items were commented in a header).
+// ---------------------------------------------------------
+//
+void CCALayoutInfo::FillReadingPaneTextsLine2()
+ {
+ iReadingPaneTextsLine2 = AppLayout::IM_reading_pane_texts_Line_2();
+ }
+
+// ---------------------------------------------------------
+// CCALayoutInfo::FillWrittingPaneTextsLineL
+// (other items were commented in a header).
+// ---------------------------------------------------------
+//
+void CCALayoutInfo::FillWrittingPaneTextsLineL()
+ {
+ if ( iWrittingPaneTextsLine )
+ {
+ iWrittingPaneTextsLine->Reset();
+ delete iWrittingPaneTextsLine;
+ iWrittingPaneTextsLine = NULL;
+ }
+
+ iWrittingPaneTextsLine = new( ELeave )CArrayFixFlat<TAknMultiLineTextLayout>( 3 );
+ for ( TInt i( 0 ); i < 3; i++ )
+ {
+ iWrittingPaneTextsLine->AppendL(
+ AppLayout::Multiline_IM_writing_pane_texts_Line_1( i ) );
+ }
+ }
+
+// ---------------------------------------------------------
+// CCALayoutInfo::FillIMWritingFieldLine1
+// (other items were commented in a header).
+// ---------------------------------------------------------
+//
+void CCALayoutInfo::FillIMWritingFieldLine1L()
+ {
+ if ( iIMWritingFieldLine1 )
+ {
+ iIMWritingFieldLine1->Reset();
+ delete iIMWritingFieldLine1;
+ iIMWritingFieldLine1 = NULL;
+ }
+
+ iIMWritingFieldLine1 = new( ELeave )CArrayFixFlat<TAknWindowLineLayout>( 3 );
+ for ( TInt i( 0 ); i < 2; i++ )
+ {
+ iIMWritingFieldLine1->AppendL(
+ AppLayout::IM_writing_field_elements_Line_1( i ) );
+ }
+ }
+
+// ---------------------------------------------------------
+// CCALayoutInfo::FillIMWritingFieldLine2
+// (other items were commented in a header).
+// ---------------------------------------------------------
+//
+void CCALayoutInfo::FillIMWritingFieldLine2()
+ {
+ iIMWritingFieldLine2 =
+ AppLayout::IM_writing_field_elements_Line_2();
+ iIMWritingFieldLine2.iH = 1;
+ iIMWritingFieldLine2.iW = ELayoutP;
+ iIMWritingFieldLine2.iC = 221;
+ }
+
+// ---------------------------------------------------------
+// CCALayoutInfo::FillIMWritingFieldLine3L
+// (other items were commented in a header).
+// ---------------------------------------------------------
+//
+void CCALayoutInfo::FillIMWritingFieldLine3L()
+ {
+ if ( iIMWritingFieldLine3 )
+ {
+ iIMWritingFieldLine3->Reset();
+ delete iIMWritingFieldLine3;
+ iIMWritingFieldLine3 = NULL;
+ }
+
+ iIMWritingFieldLine3 = new ( ELeave ) CArrayFixFlat< TAknWindowLineLayout >(
+ 3 );
+ for ( TInt i( 0 ); i < 2; i++ )
+ {
+ iIMWritingFieldLine3->AppendL(
+ AppLayout::IM_writing_field_elements_Line_3( i ) );
+ }
+ }
+
+// ---------------------------------------------------------
+// CCALayoutInfo::FillWrittingPaneL
+// (other items were commented in a header).
+// ---------------------------------------------------------
+//
+void CCALayoutInfo::FillWrittingPaneL()
+ {
+ if ( iWrittingPane )
+ {
+ iWrittingPane->Reset();
+ delete iWrittingPane;
+ iWrittingPane = NULL;
+ }
+
+ iWrittingPane = new( ELeave )CArrayFixFlat<TAknWindowLineLayout>( 2 );
+ for ( TInt i( 0 ); i < 2; i++ )
+ {
+ iWrittingPane->AppendL( AppLayout::im_writing_pane( i ) );
+ }
+ }
+
+// ---------------------------------------------------------
+// CCALayoutInfo::FillIMNaviPaneTextsLine
+// (other items were commented in a header).
+// ---------------------------------------------------------
+//
+void CCALayoutInfo::FillIMNaviPaneTextsLineL()
+ {
+ // fader colors from LAF. These are hardcoded as the LAF (impl.) adviced.
+ const TInt16 colors[] = { 234, 232, 230, 228, 226, 0, 226, 227, 228, 229 };
+
+ if ( iIMNaviPaneTextsLine1 )
+ {
+ iIMNaviPaneTextsLine1->Reset();
+ delete iIMNaviPaneTextsLine1;
+ iIMNaviPaneTextsLine1 = NULL;
+ }
+
+ iIMNaviPaneTextsLine1 =
+ new ( ELeave ) CArrayFixFlat<TAknTextLineLayout>( 10 );
+
+ TAknTextLineLayout text;
+ for ( TInt i( 0 ); i < 10; i++ )
+ {
+ text = AknLayoutScalable_Apps::navi_pane_im_t1();
+ text.iC = colors[ i ];
+ iIMNaviPaneTextsLine1->AppendL( text );
+ }
+ }
+
+// End of File