diff -r ebe688cedc25 -r 7fdbb852d323 messagingappbase/msgeditor/viewinc/MsgEditorCustomDraw.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/messagingappbase/msgeditor/viewinc/MsgEditorCustomDraw.h Wed Sep 01 12:31:54 2010 +0100 @@ -0,0 +1,157 @@ +/* +* 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: MsgEditorCustomDraw declaration +* +*/ + + + +#ifndef CMSGEDITORCUSTOMDRAW_H +#define CMSGEDITORCUSTOMDRAW_H + +// ========== INCLUDE FILES ================================ + +#include +#include + +// ========== CONSTANTS ==================================== + +// ========== MACROS ======================================= + +// ========== DATA TYPES =================================== + +// ========== FUNCTION PROTOTYPES ========================== + +// ========== FORWARD DECLARATIONS ========================= +class CGulIcon; +class CEikEdwin; + +// ========== CLASS DECLARATION ============================ + +/** +* Implementation of MFormCustomDraw +* Class is used to draw editor lines to text editor. +* +* @since 3.1 +*/ +NONSHARABLE_CLASS(CMsgEditorCustomDraw): public CBase, + public MFormCustomDraw + { + public: + + /** + * Static constructor. + * + * @param aParentCustomDraw IN Parent Custom drawer. + * + * @return pointer to instance + */ + static CMsgEditorCustomDraw* NewL( const MFormCustomDraw* aParentCustomDraw, + const CEikEdwin* aParentControl,const TInt aControlType ); + + /** + * Destructor + */ + virtual ~CMsgEditorCustomDraw(); + + /** + * Resolves editor line layout from LAF. + */ + void ResolveLayouts(); + + /** + * Notifies custom draw that skin has changed. + */ + void SkinChanged(); + + public: // Functions from base classes + + /** + * From MFormCustomDraw + * See frmtlay.h for more information. + */ + void DrawBackground( const TParam& aParam, + const TRgb& aRgb, + TRect& aDrawn ) const; + + /** + * From MFormCustomDraw + * See frmtlay.h for more information. + */ + void DrawText( const TParam& aParam, + const TLineInfo& aLineInfo, + const TCharFormat& aFormat, + const TDesC& aText, + const TPoint& aTextOrigin, + TInt aExtraPixels ) const; + + /** + * From MFormCustomDraw + * See frmtlay.h for more information. + */ + + void DrawText( const TParam& aParam, const TLineInfo& aLineInfo, + const TCharFormat& aFormat, const TDesC& aText, const TInt aStart, + const TInt aEnd, const TPoint& aTextOrigin, TInt aExtraPixels ) const; + + /** + * From MFormCustomDraw + * See frmtlay.h for more information. + */ + void DrawLineGraphics( const TParam& aParam, + const TLineInfo& aLineInfo ) const; + + /** + * From MFormCustomDraw + * See frmtlay.h for more information. + */ + TRgb SystemColor( TUint aColorIndex, + TRgb aDefaultColor) const; + + private: + + /** + * C++ contructor + */ + CMsgEditorCustomDraw( const MFormCustomDraw* aParentCustomDraw, + const CEikEdwin* aParentControl,const TInt aControlType ); + + /** + * 2nd phase constructor + */ + void ConstructL(); + + /** + * Draws editor lines. + */ + void DrawEditorLines( const TParam& aParam ) const; + + private: // data + + const MFormCustomDraw* iParentCustomDraw; + + TRect iFirstLineRect; + TInt iLineDelta; + + CGulIcon* iIcon; + + const CEikEdwin* iParentControl; + TInt iControlType; + + }; + + +#endif // CMSGEDITORCUSTOMDRAW_H + +// End of File