diff -r 000000000000 -r 094583676ce7 wvuing/wvuiave/AppSrc/CCALayoutInfo.cpp --- /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 +#include //cdl +#include +#include + +// 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( 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( + 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( 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( 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( 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( 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( 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( 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