diff -r e1e28b0273b0 -r 93fff7023be8 AppInc/CDrawOneByOne.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/AppInc/CDrawOneByOne.h Fri Oct 15 10:18:29 2010 +0900 @@ -0,0 +1,146 @@ +/* +* Copyright (c) 2009 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: Juha Kauppinen, Mika Hokkanen +* +* Description: Photo Browser +* +*/ + +#ifndef DRAWONEBYONE_H +#define DRAWONEBYONE_H + +// INCLUDES +#include +#include +#include "ImagicContainerBrowser.h" +#include "CDrawMagGlass.h" + + + +class CDrawMagGlass; + +struct TDrawOneByOneXY + { + float iX; + float iY; + }; + +// CLASS DECLARATION + +/** + * CDrawOneByOne + * + */ +class CDrawOneByOne : public CBase + { +public: + // Constructors and destructor + + /** + * Destructor. + */ + ~CDrawOneByOne(); + + /** + * Two-phased constructor. + */ + static CDrawOneByOne* NewL(CImagicContainerBrowser* aContainer, TInt& aCurrentIndex); + + /** + * Two-phased constructor. + */ + static CDrawOneByOne* NewLC(CImagicContainerBrowser* aContainer, TInt& aCurrentIndex); + +private: + + /** + * Constructor for performing 1st stage construction + */ + CDrawOneByOne(CImagicContainerBrowser* aContainer, TInt& aCurrentIndex); + + /** + * EPOC default constructor for performing 2nd stage construction + */ + void ConstructL(CImagicContainerBrowser* aContainer, TInt& aCurrentIndex); + void CheckImageLocation(/*float& aImageWidth, float& aImageHeight*/); + void HandleMovingKeysOnebyOne(); + +public: + void InitDrawOnebyOne(TReal aDrawZoom, TReal aInPictureX, TReal aInPictureY); + void DrawOnebyOneL(const TSize &aSize); + TBool IsDrawingNeededOneByOne(); + float GetMovingStep(); + float GetImgeFlowLocation(); + void SetImgeFlowLocation(float aValue); + TDrawOneByOneXY GetDrawOneByOneXY(); + TDrawOneByOneXY GetDrawOneByOneTargetXY(); + void SetDrawOneByOneTargetXY(TDrawOneByOneXY aValue); + void ChangeDrawOneByOneTargetX(float aValue); + void ChangeDrawOneByOneTargetY(float aValue); + float GetDrawOneByOneZoom(); + void SetDrawOneByOneZoom(float aValue); + float GetDrawOneByOneTargetZoom(); + void SetDrawOneByOneTargetZoom(float aValue); + float GetDrawOneByOneWidth(); + void SetDrawOneByOneWidth(float aValue); + float GetDrawOneByOneHeight(); + void SetDrawOneByOneHeight(float aValue); + + TBool IsMagGlassOn(); + void SetMagGlassStatus(TBool aValue); + TBool IsMagGlassPrevStateOn(); + void SetMagGlassPrevStatus(TBool aValue); + CDrawMagGlass* GetMagGlass(); + void KeyPressed(); + void KeyReleased(); + void KeyEvent(); + + + +private: + CImagicContainerBrowser* iContainer; + CDrawMagGlass* iMagGlass; + + float iMovingSpeed; + float iMovingStep; + + float iZoomingStep; + float iZoomingSpeed; + float iScalingSpeed; + float iOneByOneFlow; + + TDrawOneByOneXY iDrawOneByOneXY; + TDrawOneByOneXY iDrawOneByOneTargetXY; + float iDrawOneByOneZoom;//Used for image scaling in OneByOne mode + float iDrawOneByOneTargetZoom;//Used for image zooming in OneByOne mode + float iDrawOnebyOneW, iDrawOnebyOneH;//OneByOne mode image size Widht and Height + float iInPictureX, iInPictureY; + //when moving in picture zoomed in, this defines value how we can go over the image boundary + float iBorder; + //Size of the screen, when moving in picture zoomed in + float iScreenW; + float iScreenH; + float iImageWidth; + float iImageHeight; + float iFadeColor; + //MagGlass + TBool iMagGlassOn; + TBool iMagGlassOnPrev; + float iFlowThresHold; + TReal iMenuAlpha; + +public: + static const float KMaxMagGlassZoomFactor; + + }; + +#endif // DRAWONEBYONE_H