phoneuis/easydialing/tsrc/edta/inc/edta_screentextbuffer.h
branchRCL_3
changeset 3 8871b09be73b
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phoneuis/easydialing/tsrc/edta/inc/edta_screentextbuffer.h	Fri Feb 19 22:50:26 2010 +0200
@@ -0,0 +1,96 @@
+/*
+* Copyright (c) 2010 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:  Easy dialing test application.
+*
+*/
+
+#ifndef __EDTA_SCREENTEXTBUFFER_H__
+#define __EDTA_SCREENTEXTBUFFER_H__
+
+// INCLUDES
+#include <coecntrl.h>
+#include <eiklabel.h>
+#include <coecntrl.h>
+#include <gdi.h>
+#include <eiksbobs.h>
+
+// FORWARD DECLARATIONS
+class CEikScrollBarFrame;
+class CFont;
+class TBidiText;
+class CAknsBasicBackgroundControlContext;
+
+// CONSTANTS
+const TInt KEdtaMaxLineWidth = 200;
+
+
+// CLASS DECLARATION
+class CEdtaScreenTextBuffer : public CCoeControl, public MEikScrollBarObserver
+    {
+    
+public:
+    static CEdtaScreenTextBuffer* NewL( const TRect& aRect );
+    static CEdtaScreenTextBuffer* NewLC( const TRect& aRect );
+    
+public:
+    CEdtaScreenTextBuffer();
+    ~CEdtaScreenTextBuffer();
+
+    void ConstructL( const TRect& aRect );
+    void HandleResourceChange(TInt aType);
+    void WriteLineL( TRefByValue<const TDesC> aText,... ); // text wrapping, was: const TDesC& aText
+    void DeleteLastLine(TInt aCount = 1);
+    TKeyResponse OfferKeyEventL( const TKeyEvent& aKeyEvent, TEventCode aModifiers );
+    
+protected:
+    
+    virtual void FocusChanged(TDrawNow aDrawNow);
+    
+private:
+    
+    void SizeChanged();
+
+    void Draw( const TRect& aRect ) const;
+    void ActivateL();
+    void HandleScrollEventL ( CEikScrollBar* aScrollBar, TEikScrollEvent aEventType);
+    TTypeUid::Ptr MopSupplyObject(TTypeUid aId);
+    
+private:
+    void CalculateL(const TRect& aRect);
+    void UpdateScrollIndicatorL();
+
+    
+    
+private: // Data
+
+    CArrayPtr<HBufC>* iText;
+    CArrayFixFlat<TInt>* iScreenStarts;
+    TInt iCurrentScreen;
+    TBool iDoNotShowLastLineAgain;
+    CGraphicsContext::TTextAlign iTextAlign;
+    CEikScrollBarFrame* iSBFrame;
+    const CFont* iFont; // not owned
+    
+    TInt iLineWidth;
+    TInt iBaseLineDelta;
+    TInt iTopBaseLineX;
+    TInt iTopBaseLineY;
+    TInt iLinesPerScreen;
+    
+    };
+
+
+#endif // __EDTA_SCREENTEXTBUFFER_H__
+
+// End of File