graphicscomposition/surfaceupdate/tsrc/twindows.cpp
changeset 0 5d03bc08d59c
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/graphicscomposition/surfaceupdate/tsrc/twindows.cpp	Tue Feb 02 01:47:50 2010 +0200
@@ -0,0 +1,118 @@
+// 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:
+//
+// Description:
+//
+
+#include "twindows.h"
+#include <w32std.h>
+
+//could you useful for visual checking 
+//define DRAW_WINDOW
+
+CTWindow * CTWindow::NewL(RWsSession & aWs, CTWindowTreeNode& aGroup, CWindowGc& aGc)
+	{
+	CTWindow * self = new (ELeave) CTWindow(aGc);
+	CleanupStack::PushL(self);
+	self->ConstructL(aWs, aGroup);
+	CleanupStack::Pop(self);
+	return self;
+	}
+
+CTWindow::CTWindow(CWindowGc& aGc) :
+iGc(aGc)
+	{
+	}
+	
+void CTWindow::ConstructL(RWsSession & aWs, CTWindowTreeNode& aGroup)
+	{
+	iWin = new (ELeave) RWindow(aWs);
+	Window()->Construct(*aGroup.WindowTreeNode(), TUint32(this));
+	Window()->SetRequiredDisplayMode(EColor16MAP);
+	Window()->SetShadowHeight(0);
+	Window()->SetShadowDisabled(ETrue);
+	}
+	
+CTWindow::~CTWindow()
+	{
+	iWin->Close();
+	delete iWin;
+	}
+
+void CTWindow::Event(TWsEvent & /*aEvent*/)
+	{
+	}
+
+void CTWindow::Redraw(TWsRedrawEvent & /*aEvent*/)
+	{
+	Window()->BeginRedraw();
+	iGc.Activate(*Window());
+	Draw();
+	iGc.Deactivate();
+	Window()->EndRedraw();
+	}
+
+void CTWindow::Draw()
+	{
+#ifdef DRAW_WINDOW	
+	TSize size = Window()->Size();
+	
+	TInt l = size.iWidth / 3;
+	TInt r = size.iWidth * 2 / 3;
+	TInt t = size.iHeight / 3;
+	TInt b = size.iHeight * 2 / 3;
+
+	iGc.SetBrushStyle(CGraphicsContext::ESolidBrush);
+	iGc.SetBrushColor(KRgbRed);
+	iGc.SetPenStyle(CGraphicsContext::ESolidPen);
+	iGc.SetPenColor(KRgbBlue);
+	iGc.DrawLine(TPoint(-400, -400),               TPoint(size.iWidth + 400, size.iHeight + 400));	
+	iGc.DrawLine(TPoint(-400, size.iHeight + 400), TPoint(size.iWidth + 400, -400));	
+	iGc.SetPenColor(KRgbGreen);
+	iGc.DrawRect(TRect(TPoint(l,0), TPoint(r, size.iHeight)));
+	iGc.DrawRect(TRect(TPoint(0,t), TPoint(size.iWidth, b)));
+#endif	
+	}
+
+CTWindowGroup * CTWindowGroup::NewL(RWsSession & aWs, CWsScreenDevice* aScreenDevice)
+	{
+	CTWindowGroup * self = new (ELeave) CTWindowGroup;
+	CleanupStack::PushL(self);
+	self->ConstructL(aWs, aScreenDevice);
+	CleanupStack::Pop(self);
+	return self;
+	}
+
+CTWindowGroup::CTWindowGroup()
+	{
+	}
+
+void CTWindowGroup::ConstructL(RWsSession & aWs, CWsScreenDevice* aScreenDevice)
+	{
+	iWin = new (ELeave) RWindowGroup(aWs);
+	WindowGroup()->Construct(TUint32(this), aScreenDevice);
+	}
+
+CTWindowGroup::~CTWindowGroup()
+	{
+	iWin->Close();
+	delete iWin;
+	}
+
+void CTWindowGroup::Event(TWsEvent & /*aEvent*/)
+	{
+	}
+
+void CTWindowGroup::Redraw(TWsRedrawEvent & /*aEvent*/)
+	{
+	}
+