--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/webengine/osswebengine/WebCore/page/symbian/WebCoreGraphicsContext.h Mon Mar 30 12:54:55 2009 +0300
@@ -0,0 +1,148 @@
+/*
+* Copyright (c) 2006 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 __WEBCOREGC
+#define __WEBCOREGC
+
+#include "bitstd.h"
+#include "bitdev.h"
+
+#include "WebCoreWidget.h"
+
+struct TWebCoreSavedContext
+ {
+ TRect iClippingRect;
+ TPoint iOrigin;
+ TBool iHasClipping;
+ MScrollView* iScrollView;
+ };
+
+//Wrapper class for CFbsBitGc
+class WebCoreGraphicsContext : public CBase
+{
+
+public:
+ static WebCoreGraphicsContext* NewL(CFbsBitmapDevice* aBitmapDevice, CFbsBitmap* aBitmap, MScrollView* aView);
+ static WebCoreGraphicsContext* NewL(CFbsBitGc& aGc, CFbsBitmap* aBitmap, MScrollView* aView);
+
+ virtual ~WebCoreGraphicsContext();
+
+ CFbsBitmap* contentBuffer() const
+ {
+ return iOffscreenBitmap;
+ }
+
+ CFbsBitGc& gc() const
+ {
+ return *iBitmapContext;
+ }
+
+ MScrollView& view() const
+ {
+ return *iScrollView;
+ }
+
+ void resized()
+ {
+ iBitmapContext->Resized();
+ }
+
+ void setClippingRect(const TRect& aClip)
+ {
+ iHasClipping = ETrue;
+ iClippingRect = aClip;
+ iBitmapContext->SetClippingRect(iClippingRect);
+ }
+
+ TRect clippingRect() const
+ {
+ return iClippingRect;
+ }
+
+ TBool hasClipping() const
+ {
+ return iHasClipping;
+ }
+
+ void cancelClipping()
+ {
+ iHasClipping = EFalse;
+ iBitmapContext->CancelClipping();
+ }
+
+ void setOrigin(TPoint aOrigin)
+ {
+ iOrigin = aOrigin;
+ iBitmapContext->SetOrigin(iOrigin);
+ }
+
+ TPoint origin() const
+ {
+ return iOrigin;
+ }
+
+ TWebCoreSavedContext save()
+ {
+ TWebCoreSavedContext save;
+ save.iClippingRect = iClippingRect;
+ save.iHasClipping = iHasClipping;
+ save.iOrigin = iOrigin;
+ save.iScrollView = iScrollView;
+ return save;
+ }
+
+ void restore(const TWebCoreSavedContext& aSave)
+ {
+ iBitmapContext->SetOrigin(aSave.iOrigin);
+ iOrigin = aSave.iOrigin;
+
+ if (!aSave.iHasClipping && iHasClipping)
+ {
+ iBitmapContext->CancelClipping();
+ }
+ else
+ {
+ iBitmapContext->SetClippingRect(aSave.iClippingRect);
+ }
+
+ iClippingRect = aSave.iClippingRect;
+ iHasClipping = aSave.iHasClipping;
+ }
+
+ void setView(MScrollView& aView)
+ {
+ iScrollView = &aView;
+ }
+
+ protected:
+
+ WebCoreGraphicsContext(CFbsBitmap* aBitmap, MScrollView* aView);
+
+ void ConstructL(CFbsBitmapDevice *aBitmapDevice);
+ void ConstructL(CFbsBitGc& aGc);
+
+ private:
+ CFbsBitGc* iBitmapContext;
+ CFbsBitmap* iOffscreenBitmap;
+ MScrollView* iScrollView;
+ TBool iGcOwned;
+ TRect iClippingRect;
+ TPoint iOrigin;
+ TBool iHasClipping;
+};
+
+#endif