diff -r 79859ed3eea9 -r 919f36ff910f webengine/osswebengine/webkit/s60/webview/WebPagePinchZoomHandler.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/webengine/osswebengine/webkit/s60/webview/WebPagePinchZoomHandler.h Wed Sep 01 12:28:30 2010 +0100 @@ -0,0 +1,125 @@ +/* +* Copyright (c) 2008 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: Implements pinch functionality +* +*/ + + + +#ifndef WEBPAGEPINCHZOOMHANDLER_H +#define WEBPAGEPINCHZOOMHANDLER_H + +// INCLUDES +#include +#include +#include +#include + +// MACROS + +// FORWARD DECLARATIONS +class WebView; + + +// CLASS DECLARATION +class WebPagePinchZoomHandler: public CBase { +public: // Constructor and destructor + + /** + * Two-phased constructor. + **/ + static WebPagePinchZoomHandler* NewL(WebView* webView); + + /** + * Destructor. + **/ + virtual ~WebPagePinchZoomHandler(); + +private: // Constructors + + /** + * C++ default constructor. + **/ + WebPagePinchZoomHandler(WebView* webView); + + /** + * By default Symbian 2nd phase constructor is private. + **/ + void constructL(); + +public: // New functions + + /** + * Handler for Pinch event + **/ + void handlePinchGestureEventL(const TStmGestureEvent& aGesture); + + /** + * Handler for PinchEnter event + **/ + void handlePinchGestureL(const TStmGestureEvent& aGesture); + + /** + * Handler for PinchExit event + **/ + void handlePinchGestureExitL(const TStmGestureEvent& aGesture); + + /** + * to set the zoom level for bitmap zooming + **/ + void setZoomLevelL(TInt zoomLevel); + + /** + * to update the bitmap + **/ + void updateBitmap(); + + /** + * to get the pinch step size corresponding to a pinch gesture + **/ + TInt getPinchZoomStepSize(); + + /** + * to query whether pinch is active: + * pinch is active once GestureEnter for pinch is received. And it is active until the pinch expiry timer gets expired + **/ + TBool isPinchActive(); + + /** + * handler for pinch exit timer expiry + **/ + void handlepinchExitWaitTimer(); + + /** + * To get the pinch center + **/ + TPoint pinchCenter() {return m_pinchCenter;}; + +private: + + WebView* m_webView; // <> + CPeriodic* m_bitmapUpdateTimer; // <> + CPeriodic* m_pinchExitWaitTimer; // <> + TInt m_pinchFactor; + int m_zoomOutBaseLevel; + bool m_pinchCenterSet; + TInt m_zoomStepSize; + bool m_pinchActive; + TPoint m_pinchCenter; + +}; + +#endif //WEBPAGEPINCHZOOMHANDLER_H + +// End of File