wvuing/wvuiave/AppSrc/CCALayoutInfo.h
changeset 0 094583676ce7
--- /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 <e32base.h>
+#include <AknLayout2Def.h>
+// 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<TAknWindowLineLayout>* iReadingPane;
+
+        CArrayFixFlat<TAknWindowLineLayout>* iWrittingPane;
+
+        CArrayFixFlat<TAknWindowLineLayout>* iReadingField;
+
+        CArrayFixFlat<TAknTextLineLayout>* iReadingPaneTextsLine1;
+
+        CArrayFixFlat<TAknWindowLineLayout>* iIMTextElements;
+
+        TAknTextLineLayout iReadingPaneTextsLine2;
+
+        CArrayFixFlat<TAknMultiLineTextLayout>* iWrittingPaneTextsLine;
+
+        CArrayFixFlat<TAknWindowLineLayout>* iIMWritingFieldLine1;
+
+        TAknWindowLineLayout iIMWritingFieldLine2;
+
+        CArrayFixFlat<TAknWindowLineLayout>* iIMWritingFieldLine3;
+
+        CArrayFixFlat<TAknTextLineLayout>* iIMNaviPaneTextsLine1;
+
+        CArrayFixFlat<TAknTextLineLayout>* iIMNaviPaneTextsLine2;
+
+        TBool iEditorVisibility;
+    };
+
+#endif  // CCALAYOUTINFO_H