diff -r 000000000000 -r dd21522fd290 webengine/pagescaler/inc/minimap.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/webengine/pagescaler/inc/minimap.h Mon Mar 30 12:54:55 2009 +0300 @@ -0,0 +1,381 @@ +/* +* 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 CMINIMAP_H +#define CMINIMAP_H + +// INCLUDES +#include "pagescaler.h" + +#include +#include +#include + +// CONSTANTS + +// MACROS + +// DATA TYPES + +// FUNCTION PROTOTYPES + +// FORWARD DECLARATIONS + +class CWindowGc; +class CMinimapGenerator; +class CFbsBitGc; +class CFbsBitmap; +class CFbsBitmapDevice; +class CMinimapTimer; + + +// CLASS DECLARATION + +/** +* +* +* @lib pagescaler.dll +* @since 3.1 +*/ +class CMinimap : public CPageScaler + { + public: // Constructors and destructor + + /** + * Two-phased constructor. + */ + static CMinimap* NewL(MPageScalerCallback& aCallback, TDisplayMode aMode, TBool aLowQuality ); + + /** + * Destructor. + */ + virtual ~CMinimap(); + + public: // New functions + + + /** + * + * @since 3.1 + * @param + * @return + */ + void SetVisibleUntil(TTimeIntervalMicroSeconds32 aUntil); + + /** + * + * @since 3.1 + * @param + * @return + */ + void SetVisible(TBool aVisible); + + /** + * + * @since 3.1 + * @param + * @return + */ + inline TBool Visible() const; + + /** + * + * @since 3.1 + * @param + * @return + */ + inline void SetZoomOutLevel(TInt aPercent); + + /** + * + * @since 3.1 + * @param + * @return + */ + inline TInt ZoomOutLevel() const; + + /** + * + * @since 3.1 + * @param + * @return + */ + void SetPercentSize(TInt aWidthPercent, TInt aHeightPercent); + + /** + * + * @since 3.1 + * @param + * @return + */ + void SetTransparency(TInt aPercent); + + /** + * + * @since 3.1 + * @param + * @return + */ + inline TInt Transparency() const; + + /** + * + * @since 3.1 + * @param + * @return + */ + TRect Rect() const; + + /** + * + * @since 3.1 + * @param + * @return + */ + TRect MinimapRect() const; + + + /** + * + * @since 3.1 + * @param + * @return + */ + TRect IndicatorRect() const; + + /** + * + * @since 3.1 + * @param + * @return + */ + void SetRelativePosition(TInt aXDist, TInt aYDist, TPosition aPosition); + + /** + * + * @since 3.1 + * @param + * @return + */ + void DocumentStarted(); + + /** + * + * @since 3.1 + * @param + * @return + */ + void DocumentChangedL(); + + /** + * + * @since 3.1 + * @param + * @return + */ + void DocumentCompleted(); + + /** + * + * @since 3.1 + * @param + * @return + */ + void DocumentViewportMoved(); + + /** + * @since 3.1 + * @param + * @return + */ + void Draw(CWindowGc& aGc, const TRect& aRect) const; + + /** + * + * @since 3.1 + * @param + * @return + */ + TRect ViewportOnDocument() const; + + + /** + * @since 3.1 + * @param + * @return the scaled copy of the page + */ + CFbsBitmap* ScaledPage() const; + + /** + * @since 3.1 + * @return + */ + TRect ContainerRect() const; + + /** + * @since 3.1 + * @return + */ + void SetContainerRect(const TRect& aRect); + + /** + * @since 3.1 + * @return + */ + TBool FullScreenMode() const; + + /** + * @since 3.1 + * @return + */ + void SetFullScreenMode(TBool aFullScreen); + + + /** + * @since 3.1 + * @return + */ + void UpdateNow(); + +#ifdef __OOM__ + void DeleteMinimapBitmap(); +#endif + + TBool LowQuality() const { return iLowQuality; } + + protected: + + /** + * C++ constructor. + */ + CMinimap(MPageScalerCallback& aCallback, TDisplayMode aMode, TBool aLowQuality); + + /** + * By default Symbian 2nd phase constructor is private. + */ + void ConstructL(); + + private: + friend class CMinimapGenerator; + + TRect FromDocCoords(const TRect& aFrom) const; + TPoint FromDocCoords(const TPoint& aFrom) const; + TSize FromDocCoords(const TSize& aFrom) const; + TRect ToDocCoords(const TRect& aFrom) const; + TPoint ToDocCoords(const TPoint& aFrom) const; + TSize ToDocCoords(const TSize& aFrom) const; + + void CheckAndCreateMinimapBitmapsL(); + TBool CheckAndCreateBitmapL(TSize aSize, CFbsBitmap*& aBm, CFbsBitmapDevice*& aDev, CFbsBitGc*& aGc); + + void InitColoringL(const TSize aSize); + + inline MPageScalerCallback& Callback() const; + + TSize CalcSize() const; + TRect CalcViewportOnDocument() const; + + void DocumentChangedCbL(); + void UpdateCbTimerCbL(); + void UpdateTimerCbL(); + void VisibilityTimerCbL(); + + void UpdateTransparency(); + + TRect ViewportOnMinimap() const; + + template void DrawT(GC& aGc, const TRect& aRect) const; + + TInt BorderWidth() const; + + void ConstructSprite(); + + public: + + TBool IsDocumentComplete() const { return iDocumentComplete; } + + private: // Data + + // callbacks + MPageScalerCallback* iCallback; + + // generator + CMinimapGenerator* iGenerator; // owned + + // zoom level of the minimap in percent + TInt iZoomOutLevel; + + // transparency in percent + TInt iTransparency; + + // distance from the viewport edges (d<0 => right, bottom) + TInt iXDist; + TInt iYDist; + + // is it visible + TBool iVisible; + + TDisplayMode iDisplayMode; + + CFbsBitmap* iMinimapBitmap; //owned + CFbsBitmapDevice* iMinimapBitmapDevice; //owned + CFbsBitGc* iMinimapBitmapGc; //owned + + CFbsBitmap* iMinimapMaskBitmap; //owned + CFbsBitmapDevice* iMinimapMaskBitmapDevice; //owned + CFbsBitGc* iMinimapMaskBitmapGc; //owned + + // Minimap coloring + CFbsBitmap *iMinimapColoringBitmap; // owned + CFbsBitmap *iMinimapColoringBitmapMask; // owned + CFbsBitmapDevice* iMinimapColoringBitmapMaskDevice; //owned + CFbsBitGc* iMinimapColoringBitmapMaskGc; //owned + + + TRect iViewportOnDocument; + + TBool iNeedsUpdate; + + CMinimapTimer* iUpdateTimer; //owned + CMinimapTimer* iUpdateCbTimer; //owned + CMinimapTimer* iVisibilityTimer; //owned + + CMinimapTimer* iFadeTimer; //owned + TBool iFadeDirection; //owned + + TBool iDocumentComplete; + + TInt iWidthPercent; + TInt iHeightPercent; + + TRect iContainerRect; + + TBool iFullScreenMode; + TBool iMinimapUpdating; + + TBool iLowQuality; + + RWsSprite iSprite; + }; + +#include "minimap.inl" + +#endif // CMINIMAP_H + +// End of File