sl@0: // Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies). sl@0: // All rights reserved. sl@0: // This component and the accompanying materials are made available sl@0: // under the terms of "Eclipse Public License v1.0" sl@0: // which accompanies this distribution, and is available sl@0: // at the URL "http://www.eclipse.org/legal/epl-v10.html". sl@0: // sl@0: // Initial Contributors: sl@0: // Nokia Corporation - initial contribution. sl@0: // sl@0: // Contributors: sl@0: // sl@0: // Description: sl@0: // sl@0: sl@0: #ifndef __GRAPHICSCONTEXTCHECKER_H__ sl@0: #define __GRAPHICSCONTEXTCHECKER_H__ sl@0: sl@0: #include sl@0: #include sl@0: #include sl@0: sl@0: class CGraphicsContextChecker : public CBase, sl@0: public MWsGraphicsContext, sl@0: public MWsTextCursor, sl@0: public MWsFader, sl@0: public MWsDrawAnnotationObserver sl@0: { sl@0: public: sl@0: static CGraphicsContextChecker* NewL(MWsGraphicDrawerEnvironment& aEnv); sl@0: ~CGraphicsContextChecker(); sl@0: sl@0: void SetGraphicsContext(MWsGraphicsContext* aGraphicsContext); sl@0: const MWsGraphicsContext* GraphicsContext() const; sl@0: void SetTextCursor(MWsTextCursor* aTextCursor); sl@0: const MWsTextCursor* TextCursor() const; sl@0: void SetFader(MWsFader* aFader); sl@0: const MWsFader* Fader() const; sl@0: sl@0: public: //MWsObjectProvider sl@0: TAny* ResolveObjectInterface(TUint aTypeId); sl@0: public: //MWsGraphicsContext sl@0: void BitBlt(const TPoint& aDestPos, const CFbsBitmap& aSourceBitmap); sl@0: void BitBlt(const TPoint& aDestPos, const CFbsBitmap& aSourceBitmap, const TRect& aSourceRect); sl@0: void BitBltMasked(const TPoint& aDestPos, const CFbsBitmap& aSourceBitmap, const TRect& aSourceRect, const CFbsBitmap& aMaskBitmap, TBool aInvertMask); sl@0: void BitBltMasked(const TPoint& aDestPos, const CFbsBitmap& aSourceBitmap, const TRect& aSourceRect, const CFbsBitmap& aMaskBitmap, const TPoint& aMaskPos); sl@0: void ResetClippingRegion(); sl@0: void Clear(); sl@0: void Clear(const TRect& aRect); sl@0: void ResetBrushPattern(); sl@0: void ResetFont(); sl@0: void DrawArc(const TRect& aRect, const TPoint& aStart, const TPoint& aEnd); sl@0: void DrawPie(const TRect& aRect, const TPoint& aStart, const TPoint& aEnd); sl@0: void DrawBitmap(const TRect& aDestRect, const CFbsBitmap& aSourceBitmap); sl@0: void DrawBitmap(const TRect& aDestRect, const CFbsBitmap& aSourceBitmap, const TRect& aSourceRect); sl@0: void DrawBitmapMasked(const TRect& aDestRect, const CFbsBitmap& aSourceBitmap, const TRect& aSourceRect, const CFbsBitmap& aMaskBitmap, TBool aInvertMask); sl@0: void DrawRoundRect(const TRect& aRect, const TSize& aEllipse); sl@0: void DrawPolyLine(const TArray& aPointList); sl@0: void DrawPolyLineNoEndPoint(const TArray& aPointList); sl@0: void DrawPolygon(const TArray& aPointList, TFillRule aFillRule=EAlternate); sl@0: void DrawEllipse(const TRect& aRect); sl@0: void DrawLine(const TPoint& aStart, const TPoint& aEnd); sl@0: void DrawLineTo(const TPoint& aPoint); sl@0: void DrawLineBy(const TPoint& aVector); sl@0: void DrawRect(const TRect& aRect); sl@0: void DrawText(const TDesC& aText, const TTextParameters* aParam); sl@0: void DrawText(const TDesC& aText, const TTextParameters* aParam, const TPoint& aPosition); sl@0: void DrawText(const TDesC& aText, const TTextParameters* aParam, const TRect& aClipRect); sl@0: void DrawText(const TDesC& aText, const TTextParameters* aParam, const TRect& aClipFillRect, TInt aBaselineOffset, TTextAlign aHrz=ELeft, TInt aMargin=0); sl@0: void DrawTextVertical(const TDesC& aText, const TTextParameters* aParam, TBool aUp); sl@0: void DrawTextVertical(const TDesC& aText, const TTextParameters* aParam, const TPoint& aPosition, TBool aUp); sl@0: void DrawTextVertical(const TDesC& aText, const TTextParameters* aParam, const TRect& aClipRect, TBool aUp); sl@0: void DrawTextVertical(const TDesC& aText, const TTextParameters* aParam, const TRect& aClipRect, TInt aBaselineOffset, TBool aUp, TTextAlign aVert=ELeft, TInt aMargin=0); sl@0: void DrawTextVertical(const TDesC& aText,const TTextParameters* aParam, const TRect& aClipRect, TInt aBaselineOffset, TInt aTextWidth, TBool aUp, TTextAlign aVert=ELeft, TInt aMargin=0); sl@0: void MoveTo(const TPoint& aPoint); sl@0: void MoveBy(const TPoint& aVector); sl@0: void Plot(const TPoint& aPoint); sl@0: void Reset(); sl@0: void SetBrushColor(const TRgb& aColor); sl@0: void SetBrushOrigin(const TPoint& aOrigin); sl@0: void SetBrushStyle(TBrushStyle aBrushStyle); sl@0: void SetClippingRegion(const TRegion& aRegion); sl@0: void SetDrawMode(TDrawMode aDrawMode); sl@0: void SetOrigin(const TPoint& aPoint = TPoint(0, 0)); sl@0: void SetPenColor(const TRgb& aColor); sl@0: void SetPenStyle(TPenStyle aPenStyle); sl@0: void SetPenSize(const TSize& aSize); sl@0: void SetTextShadowColor(const TRgb& aColor); sl@0: void SetCharJustification(TInt aExcessWidth, TInt aNumChars); sl@0: void SetWordJustification(TInt aExcessWidth, TInt aNumGaps); sl@0: void SetUnderlineStyle(TFontUnderline aUnderlineStyle); sl@0: void SetStrikethroughStyle(TFontStrikethrough aStrikethroughStyle); sl@0: void SetBrushPattern(const CFbsBitmap& aBitmap); sl@0: void SetBrushPattern(TInt aFbsBitmapHandle); sl@0: void SetFont(const CFont* aFont); sl@0: void CopyRect(const TPoint& aOffset, const TRect& aRect); sl@0: void UpdateJustification(const TDesC& aText, const TTextParameters* aParam); sl@0: void UpdateJustificationVertical(const TDesC& aText, const TTextParameters* aParam, TBool aUp); sl@0: void SetFontNoDuplicate(const CFont* aFont); sl@0: TBool HasBrushPattern() const; sl@0: TBool HasFont() const; sl@0: TRgb BrushColor() const; sl@0: TRgb PenColor() const; sl@0: TRgb TextShadowColor() const; sl@0: TInt GetError(); sl@0: TPoint Origin() const; sl@0: const TRegion& ClippingRegion(); sl@0: TInt Push(); sl@0: void Pop(); sl@0: public: //MWsTextCursor sl@0: void DrawTextCursor(const TTextCursorInfo& aTextCursorInfo); sl@0: public: //MWsFader sl@0: void SetFadingParameters(const TDesC8& aData); sl@0: void FadeArea(const TRegion& aRegion); sl@0: public: //MWsDrawAnnotationObserver sl@0: void WindowRedrawStart(const MWsWindowTreeNode& aWindowTreeNode, const TRegion& aRegion); sl@0: void WindowRedrawEnd(const MWsWindowTreeNode& aWindowTreeNode); sl@0: void WindowAnimRedrawStart(const MWsWindowTreeNode& aWindowTreeNode, const TRegion& aRegion); sl@0: void WindowAnimRedrawEnd(const MWsWindowTreeNode& aWindowTreeNode); sl@0: void SpriteRedrawStart(const MWsWindowTreeNode& aWindowTreeNode, const TRegion& aRegion); sl@0: void SpriteRedrawEnd(const MWsWindowTreeNode& aWindowTreeNode); sl@0: void SpriteFlash(const MWsWindowTreeNode& aWindowTreeNode, TBool aFlashOn); sl@0: void SegmentRedrawStart(const TRegion& aRegion); sl@0: void SegmentRedrawEnd(); sl@0: sl@0: private: sl@0: enum TDrawingTarget sl@0: { sl@0: ETargetNone, sl@0: ETargetWindow, sl@0: ETargetWindowAnim, sl@0: ETargetWindowSprite, sl@0: ETargetFloatingSprite, sl@0: }; sl@0: private: sl@0: CGraphicsContextChecker(); sl@0: private: sl@0: MWsGraphicsContext* iContext; sl@0: MWsTextCursor* iTextCursor; sl@0: MWsFader* iFader; sl@0: TDrawingTarget iTarget; sl@0: }; sl@0: sl@0: #endif //__GRAPHICSCONTEXTCHECKER_H__