diff -r 000000000000 -r dd21522fd290 webengine/pagescaler/inc/minimapgenerator.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/webengine/pagescaler/inc/minimapgenerator.h Mon Mar 30 12:54:55 2009 +0300 @@ -0,0 +1,247 @@ +/* +* Copyright (c) 2005 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of the License "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: +* +*/ + + + +#ifndef CMINIMAPGENERATOR_H +#define CMINIMAPGENERATOR_H + +// INCLUDES + +#include + +#include "minimapscaler.h" + +// CONSTANTS + +// MACROS + +// DATA TYPES + +// FUNCTION PROTOTYPES + +// FORWARD DECLARATIONS + +class CMinimap; +class CFbsBitGc; +class CFbsBitmap; +class CFbsBitmapDevice; +class CWindowGc; +class CMinimapGenerator; +class CMinimapOOMCollector; + +// CLASS DECLARATION + + +/** +* +* +* @lib webkit.dll +* @since 3.1 +*/ +class CMinimapGenerator : public CBase, MMinimapScalerCallback + { + public: // Constructors and destructor + + /** + * Two-phased constructor. + */ + static CMinimapGenerator* NewL(CMinimap& aMinimap); + + /** + * Destructor. + */ + virtual ~CMinimapGenerator(); + + public: // New functions + + + /** + * + * @since 3.1 + * @param + * @return + */ + void SetKeepBitmap(TBool aKeepBitmaps); + + + /** + * + * @since 3.1 + * @param + * @return + */ + void Invalidate(); + + /** + * + * @since 3.1 + * @param + * @return + */ + void UpdateL(TBool aScrolling=EFalse); + + /** + * + * @since 3.1 + * @param + * @return + */ + void ScrollL(); + + /** + * + * @since 3.1 + * @param + * @return + */ + void Clear(); + + + /** + * @since 3.1 + * @param + * @return + */ + void Draw(CFbsBitGc& aGc, const TRect& aTo) const; + void Draw(CWindowGc& aGc, const TRect& aTo) const; + + /** + * + * @since 3.1 + * @param + * @return + */ + void SetKeepsBitmaps(TBool aKeepBitmaps); + + /** + * + * @since 3.1 + * @param + * @return + */ + TBool KeepsBitmaps() const; + + /** + * + * @since now + * @param + * @return + */ + void DrawColoringMask(CFbsBitGc& aGc, const TRect& aMinimapViewportOnDoc) const; + void DrawColoringMask(CWindowGc& aGc, const TRect& aMinimapViewportOnDoc) const; + + /** + * + * @since now + * @param + * @return + */ + void VisitArea(const TRect &aArea); + + /** + * @since 3.1 + * @param + * @return the scaled copy of the page + */ + CFbsBitmap* ScaledPage() const; + + + /** + * @since 3.1 + * @param + * @return size of the document being scaled + */ + TSize DocSize() const { return iDocSize; } + + private: // Functions from MMinimapScalerCallback + + void ScalingCompletedL(CFbsBitmap& aResult, const TRect& aTargetRect); + + public: + + TBool StartAsyncBufferUpdateL(); + + private: + + TBool FastBufferUpdateL(); + TBool CheckAndCreateBitmapsL(); + public: + void DeleteUnscaledBitmap(); + void DeleteBufferBitmap(); + +#ifdef __OOM__ + TBool IsCollectingMemory(); + void CollectMemory(); +#endif + + private: + void InvalidateBuffers(); + void CalcBufferPosition(); + TRect BufferRect() const; + template void DrawT(GC& aGc, const TRect& aTo) const; + template void DrawColoringMaskT(GC& aGc, const TRect& aMinimapViewportOnDoc) const; + + private: + + /** + * C++ constructor. + */ + CMinimapGenerator(CMinimap& aMinimap); + + /** + * By default Symbian 2nd phase constructor is private. + */ + void ConstructL(); + + + private: // Data + + CMinimap* iMinimap; // not owned + CMinimapScaler* iScaler; // owned + + CFbsBitmap* iUnscaledBitmap; //owned + CFbsBitmapDevice* iUnscaledBitmapDevice; //owned + CFbsBitGc* iUnscaledBitmapGc; //owned + CFbsBitmap* iBufferBitmap; //owned + CFbsBitmapDevice* iBufferBitmapDevice; //owned + CFbsBitGc* iBufferBitmapGc; //owned + + CIdle* iAsyncUpdateStarted; // owned + + RRegion iValidLQRegion; + RRegion iValidHQRegion; + + TPoint iBufferPos; + + TSize iDocSize; + + TBool iKeepsBitmaps; + + TInt iLastHQUpdatePos; + + /** + * Maps the visited regions. Used to control mmap coloring. + */ + RRegion iVisitedRegion; + + CMinimapOOMCollector* iOOMCollector; + }; + +#endif // CMINIMAPGENERATOR_H + +// End of File