diff -r 79859ed3eea9 -r 919f36ff910f webengine/osswebengine/WebKit/s60/webview/WebView.h --- a/webengine/osswebengine/WebKit/s60/webview/WebView.h Tue Aug 31 16:17:46 2010 +0300 +++ b/webengine/osswebengine/WebKit/s60/webview/WebView.h Wed Sep 01 12:28:30 2010 +0100 @@ -23,10 +23,11 @@ #include #include #include "platform/Shared.h" -#include "BrCtlDefs.h" -#include "pagescaler.h" +#include +#include "PageScaler.h" #include "Timer.h" -#include "MemoryManager.h" +#include +#include namespace WebCore { @@ -38,6 +39,11 @@ class Frame; } +namespace KJS +{ + class PausedTimeouts; +} + class CPluginHandler; class WebPreferences; class WebBackForwardList; @@ -66,6 +72,9 @@ class WebPageFullScreenHandler; class WebFrameView; class WebFrameBridge; +class WebPagePinchZoomHandler; +class CThumbnailGenerator; +class PluginSkin; const TUint KMouseEventFired = 0x00000001; @@ -158,6 +167,7 @@ void scrollBuffer(TPoint aTo, TPoint aFrom, TBool aMayUseCopyScroll); TRect offscreenRect() const {return m_offscreenrect;} CPageScaler* pageScaler() const{ return m_pageScaler; } + CThumbnailGenerator* pageThumbnailGenerator()const { return m_thumbnailGenerator;} //void updateScrollBarsL(CEikScrollBar::TOrientation aOrientation, const TInt aThumbPos, const int aScrollSpan); int scalingFactor() const; void openUrl(const TDesC& url); @@ -294,13 +304,6 @@ void closeToolBarL(); /** - * HandlePointerBufferReadyL - * From CCoeControl - * - */ - void HandlePointerBufferReadyL(); - - /** * HandlePointerEventL * From CCoeControl * @@ -312,7 +315,7 @@ * * */ - void setViewIsScrolling(bool scrolling) { m_viewIsScrolling = scrolling; }; + void setViewIsScrolling(bool scrolling); /** * Return if the user is currently scrolling @@ -349,7 +352,45 @@ * Collects offscreen bitmap */ void collectOffscreenbitmapL(CFbsBitmap& snapshot); + + /** + * To get the pinch zoom handler + */ + WebPagePinchZoomHandler* pinchZoomHandler() { return m_pinchZoomHandler; } + + /** + * To set the Bitmap zooming for Pinch + */ + void setPinchBitmapZoomLevelL(int zoomLevel); + + /** + * To set the Bitmap zooming In for Pinch + */ + void setPinchBitmapZoomIn(int zoomLevel); + + /** + * To set the Bitmap zooming Out for Pinch + */ + void setPinchBitmapZoomOutL(int zoomLevel); + + TBool isPinchZoom() {return m_isPinchZoom; } + + /** + * Creates the checkerboard + */ + void createCheckerBoardL(); + + /** + * Destroys the checkerboard + */ + void destroyCheckerBoard(); + + /** + * Starts the checkerboard timer. End of this timer, checkerboard will be destroyed. + */ + void startCheckerBoardDestroyTimer(); + void scrollStatus(bool status); public: // from MPageScalerCallback /** * @@ -472,7 +513,8 @@ bool handleMSK(const TKeyEvent& keyevent, TEventCode eventcode, WebCore::Frame* frame); void sendMouseEventToEngineIfNeeded(TPointerEvent::TType eventType, TPoint pos, WebCore::Frame* frame); void setFocusedNodeUnderCursor(WebCore::Frame* frame); - + void waitTimerCB(WebCore::Timer* t); + void calculateZoomRect(TRect &aOldRect, TRect &aNewRect, TInt aOldZoom, TInt aNewZoom); public: void sendMouseEventToEngine(TPointerEvent::TType eventType, TPoint pos, WebCore::Frame* frame); void fepTimerFired(WebCore::Timer*); @@ -493,6 +535,15 @@ void clearKeyEventFired() { m_firedEvent &= ~KKeyEventFired; } void clearEventFired() { m_firedEvent = 0; } + void wait(double t); + + // JavaScript timers - pause and resume + void pauseJsTimers(); + void resumeJsTimers(); + bool jsTimersPaused() { return (m_jsTimeouts) ? true : false; } + void resetJsTimers() { m_jsTimeouts = 0; } + + WebCoreGraphicsContext* getGraphicsContext() {return m_webcorecontext; } private: WebCore::Page* m_page; WebFrameView* m_frameView; @@ -560,14 +611,12 @@ int m_startZoomLevel; bool m_dirtyZoomMode; bool m_zoomLevelChangedByUser; - bool m_isPluginsVisible; bool m_historyLoad; bool m_redirectWithLockedHistory; // full screen mode WebPageFullScreenHandler* m_pageFullScreenHandler; // owned bool m_viewIsScrolling; bool m_viewIsFastScrolling; - TPoint* m_ptrbuffer; // synchronous requests bool m_synchRequestPending; @@ -576,6 +625,29 @@ bool m_allowRepaints; bool m_prevEditMode; int m_firedEvent; + + CActiveSchedulerWait* m_waiter; + WebCore::Timer* m_waitTimer; + + //Pinch Zoom Handler + WebPagePinchZoomHandler* m_pinchZoomHandler; + TBool m_isPinchZoom; + TRealPoint m_pinchDocDelta; + int m_drawsMissed; + CThumbnailGenerator* m_thumbnailGenerator; + + CFbsBitmap *m_checkerBoardBitmap; + CFbsBitmapDevice *m_checkerBoardDevice; + CFbsBitGc *m_checkerBoardGc; + + CPeriodic *m_checkerBoardDestroyTimer; + + TBool m_isPinchZoomOut; + + // JavaScript (DOMWindowTimer) timers + KJS::PausedTimeouts* m_jsTimeouts; + + TBool m_scrollingstatus; }; #endif