diff -r 000000000000 -r 094583676ce7 wvuing/wvuiave/AppSrc/CCALayoutInfo.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/wvuing/wvuiave/AppSrc/CCALayoutInfo.h Thu Dec 17 08:41:52 2009 +0200 @@ -0,0 +1,231 @@ +/* +* 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: Utility for selecting smile icon and converting +* between smile id and smile string. +* +*/ + + +#ifndef CCALAYOUTINFO_H +#define CCALAYOUTINFO_H + +// INCLUDES + +#include "MCALayoutInfo.h" +#include "TCAChatListBoxLayout.h" +#include "MCALayoutChangeObserver.h" + +#include +#include +// FORWARD DECLARATIONS + +// CLASS DECLARATION + +/** +* Layout and render info for Chat Listbox's item drawer and view +* Helps to calculate and draw items. +* +* @lib chat.app +* @since 2.8 +*/ +class CCALayoutInfo : public CBase, + public MCALayoutInfo, + public MCALayoutChangeObserver + { + public: // Constructors and destructor + + /** + * Two-phased constructor using default smile icon array. + */ + static CCALayoutInfo* NewL( TChatListBoxLayout::TLayout aLayoutID ); + + /** + * Destructor. + */ + virtual ~CCALayoutInfo(); + + public: // New methods + + + public: // from MCALayoutInfo + + void SetLayoutID( TChatListBoxLayout::TLayout aLayout ); + + TInt LayoutID(); + + TBool Mirrored(); + + const CFont* NickFont(); + + const CFont* MessageFont(); + + TInt LineHeight(); + + TInt MaxLineWidth(); + + TInt MaxNickWidth(); + + TInt MaxLines(); + + TRect MainPaneRect(); + + TInt Indent(); + + TRect ScreenRect(); + + void SetEditorVisibility( TBool aVisible ); + + TBool EditorVisibility(); + + TAknWindowLineLayout im_reading_pane( TInt aIndex_H ); + + TAknWindowLineLayout im_reading_field( TInt aIndex_t ); + + TAknWindowLineLayout IM_text_elements( TInt aLineIndex ); + + TAknTextLineLayout IM_reading_pane_texts_Line_1( TInt aCommon1 ); + + TAknTextLineLayout IM_reading_pane_texts_Line_2(); + + TAknWindowLineLayout IM_text_elements_Line_1(); + + TAknWindowLineLayout IM_text_elements_Line_2(); + + TAknWindowLineLayout IM_reading_field_highlight_graphics_Line_1( + const TRect& aParentRect ); + + TAknWindowLineLayout IM_reading_field_highlight_graphics_Line_2( + const TRect& aParentRect ); + + TAknWindowLineLayout im_writing_pane( TInt aCommon1 ); + + TAknWindowLineLayout IM_writing_field_elements_Line_1( TInt aIndex_H ); + + TAknWindowLineLayout IM_writing_field_elements_Line_2(); + + TAknWindowLineLayout IM_writing_field_elements_Line_3( TInt aIndex_H ); + + TAknMultiLineTextLayout Multiline_IM_writing_pane_texts_Line_1( + TInt aNumberOfLinesShown ); + + TAknTextLineLayout IM_navi_pane_texts_Line_1( TInt aIndex_C, TInt aIndex_W ); + + void DPLayout( const TDesC& aStr, const TAknTextLineLayout aLayout ); + + void DPLayout( const TDesC& aStr, const TAknWindowLineLayout aLayout ); + + void DPRect( const TDesC& aStr, const TRect& aRect ); + public: // from MCALayoutChangeObserver + + virtual void LayoutChangedL( TInt aType = 0 ); + + private: // Constructors and destructor + + /** + * C++ constructor. + */ + CCALayoutInfo( TChatListBoxLayout::TLayout aLayoutID ); + + /** + * Second-phased constructor + */ + void ConstructL(); + + private: // New methods + + void LogLayoutL(); + + void FillLayoutL(); + + void FillReadingPaneL(); + + void FillReadingFieldL(); + + void FillReadingPaneTextsLine1L(); + + void FillReadingPaneTextsLine2(); + + void FillIMTextElementsL(); + + void FillWrittingPaneTextsLineL(); + + void FillIMWritingFieldLine1L(); + + void FillIMWritingFieldLine2(); + + void FillIMWritingFieldLine3L(); + + void FillWrittingPaneL(); + + void FillIMNaviPaneTextsLineL(); + + void SetupMainPaneRect(); + + private: // Data + + TChatListBoxLayout::TLayout iLayoutID; + + TBool iMirrored; + + // doesn't own + const CFont* iNickFont; + + const CFont* iMsgFont; + + TInt iLineHeight; + + TInt iMaxLineWidth; + + TInt iMaxNickWidth; + + TInt iMaxLines; + + TRect iMainPaneRect; + + TRect iScreenRect; + + TRect iLastScreenRect; + + TInt iIconSkip; + + TInt iIndent; + + CArrayFixFlat* iReadingPane; + + CArrayFixFlat* iWrittingPane; + + CArrayFixFlat* iReadingField; + + CArrayFixFlat* iReadingPaneTextsLine1; + + CArrayFixFlat* iIMTextElements; + + TAknTextLineLayout iReadingPaneTextsLine2; + + CArrayFixFlat* iWrittingPaneTextsLine; + + CArrayFixFlat* iIMWritingFieldLine1; + + TAknWindowLineLayout iIMWritingFieldLine2; + + CArrayFixFlat* iIMWritingFieldLine3; + + CArrayFixFlat* iIMNaviPaneTextsLine1; + + CArrayFixFlat* iIMNaviPaneTextsLine2; + + TBool iEditorVisibility; + }; + +#endif // CCALAYOUTINFO_H