--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/windowing/windowserver/test/FadeCount.cpp Tue Feb 02 01:47:50 2010 +0200
@@ -0,0 +1,291 @@
+// Copyright (c) 1996-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:
+// TFADECOUNT.CPP
+// Testing counted or absolute fade
+//
+//
+
+#include <e32std.h>
+#include "W32STD.H"
+#include <e32svr.h>
+#include "../tlib/testbase.h"
+
+const TInt ETestFailed = 1;
+
+class CFadeCountClient;
+
+class CFadeCountWindow : public CTTitledWindow
+ {
+public:
+ CFadeCountWindow(CFadeCountClient* aClient);
+ ~CFadeCountWindow();
+ void ConstructL(CTWinBase &aParent);
+ void Draw();
+ void SetWindowSize();
+ void WinKeyL(const TKeyEvent &aKey,const TTime& aTime);
+public:
+ CFadeCountClient* iClient;
+ TBool iAbsoluteFading;
+ TBool iPass;
+ TBool iComplete;
+ };
+
+
+class CFadeCountClient : public CTClient
+ {
+public:
+ CFadeCountClient();
+ ~CFadeCountClient();
+ void ConstructL();
+ void KeyL(const TKeyEvent &aKey,const TTime &aTime);
+ void Exit();
+ void TestL();
+ void TestL(TInt aCondition);
+ void CreateTestWindowsL(CTWinBase &aParent);
+ TBool IsAbsoluteFadingOnL();
+ void TestFadeL(CTWin* aWin, TBool aAbs, TBool aCounted);
+private:
+ TInt iNum;
+ CFadeCountWindow *iFadeCountWin;
+ CTWin* iWin1;
+ CTWin* iWin2;
+ TBool iAbsoluteFading;
+ };
+
+
+//
+// Individual window sub-classes
+//
+
+CFadeCountWindow::CFadeCountWindow(CFadeCountClient* aClient)
+: CTTitledWindow(), iClient(aClient)
+ {
+ }
+
+CFadeCountWindow::~CFadeCountWindow()
+ {
+ }
+
+void CFadeCountWindow::ConstructL(CTWinBase &aParent)
+ {
+ CTTitledWindow::ConstructL(aParent);
+ SetWindowSize();
+ TSize screenSize=Client()->iScreen->SizeInPixels();
+ TSize dif(screenSize-Size());
+ iWin.SetPosition(TPoint(dif.iWidth/2,dif.iHeight/2));
+
+ Invalidate();
+ }
+
+void CFadeCountWindow::Draw()
+ {
+ CTTitledWindow::Draw();
+ TInt lineSpacing = iFont->AscentInPixels()+3;
+ TPoint pos(3,iTitleHeight+lineSpacing);
+ iGc->DrawText(_L("Fade count tests"),pos);
+
+ pos.iY += lineSpacing;
+ if (iAbsoluteFading)
+ iGc->DrawText(_L("ABSOLUTEFADING is ON"),pos);
+ else
+ iGc->DrawText(_L("ABSOLUTEFADING is OFF"),pos);
+
+ if (iComplete)
+ {
+ pos.iY += lineSpacing;
+ if (iPass)
+ iGc->DrawText(_L("Tests have passed"),pos);
+ else
+ iGc->DrawText(_L("Tests have failed"),pos);
+
+ pos.iY += lineSpacing;
+ iGc->DrawText(_L("Press any key to exit"),pos);
+ }
+ }
+
+void CFadeCountWindow::SetWindowSize()
+ {
+ TSize size(400,200);
+ SetSize(size);
+ }
+
+void CFadeCountWindow::WinKeyL(const TKeyEvent &/*aKey*/,const TTime& )
+ {
+ iClient->Exit();
+ }
+
+
+//
+// End of CFadeCountWindow class //
+//
+
+
+CFadeCountClient::CFadeCountClient()
+ {
+ }
+
+CFadeCountClient::~CFadeCountClient()
+ {
+ delete iWin2;
+ delete iWin1;
+ delete iFadeCountWin;
+ }
+
+void CFadeCountClient::ConstructL()
+ {
+ CTClient::ConstructL();
+
+ iGroup=new(ELeave) CTWindowGroup(this);
+ iGroup->ConstructL();
+
+ CreateTestWindowsL(*iGroup);
+
+ iFadeCountWin=new(ELeave) CFadeCountWindow(this);
+ iFadeCountWin->iAbsoluteFading = iAbsoluteFading;
+ iFadeCountWin->ConstructL(*iGroup);
+ iFadeCountWin->Activate();
+ iFadeCountWin->AssignGC(*iGc);
+ iGroup->SetCurrentWindow(iGroup->Child());
+
+ TRAP_IGNORE(TestL());
+ iFadeCountWin->iComplete = ETrue;
+ }
+
+void CFadeCountClient::Exit()
+ {
+ CActiveScheduler::Stop();
+ }
+
+void CFadeCountClient::TestL()
+ {
+ // start condition - after absolute fade has been established
+ TestFadeL(iWin1, EFalse, EFalse);
+ TestFadeL(iWin2, EFalse, EFalse);
+ TestFadeL(iFadeCountWin, EFalse, EFalse);
+
+ // System fade and repeated fade
+ // positive fade
+ TInt ii;
+ const TInt KFadeRepeat = 4;
+ for (ii=0; ii<KFadeRepeat; ii++)
+ {
+ iWs.SetSystemFaded(ETrue);
+ TestFadeL(iWin1, ETrue, ETrue);
+ TestFadeL(iWin2, ETrue, ETrue);
+ TestFadeL(iFadeCountWin, ETrue, ETrue);
+ }
+
+ for (ii=KFadeRepeat-1; ii>=0; ii--)
+ {
+ iWs.SetSystemFaded(EFalse);
+ TestFadeL(iWin1, EFalse, ii);
+ TestFadeL(iWin2, EFalse, ii);
+ TestFadeL(iFadeCountWin, EFalse, ii);
+ }
+
+ // negative fade is not counted
+ for (ii=0; ii<KFadeRepeat-1; ii++)
+ {
+ iWs.SetSystemFaded(EFalse);
+ TestFadeL(iWin1, EFalse, EFalse);
+ TestFadeL(iWin2, EFalse, EFalse);
+ TestFadeL(iFadeCountWin, EFalse, EFalse);
+ }
+
+ iWs.SetSystemFaded(ETrue);
+ TestFadeL(iWin1, ETrue, ETrue);
+ TestFadeL(iWin2, ETrue, ETrue);
+ TestFadeL(iFadeCountWin, ETrue, ETrue);
+
+ iWs.SetSystemFaded(EFalse);
+ TestFadeL(iWin1, EFalse, EFalse);
+ TestFadeL(iWin2, EFalse, EFalse);
+ TestFadeL(iFadeCountWin, EFalse, EFalse);
+
+ // child fading
+ // nested
+ iWin2->WinTreeNode()->SetFaded(ETrue, RWindowTreeNode::EFadeIncludeChildren);
+ TestFadeL(iWin1, EFalse, EFalse);
+ TestFadeL(iWin2, ETrue, ETrue);
+ iWin1->WinTreeNode()->SetFaded(ETrue, RWindowTreeNode::EFadeIncludeChildren);
+ TestFadeL(iWin1, ETrue, ETrue);
+ TestFadeL(iWin2, ETrue, ETrue);
+ iWin1->WinTreeNode()->SetFaded(EFalse, RWindowTreeNode::EFadeIncludeChildren);
+ TestFadeL(iWin1, EFalse, EFalse);
+ TestFadeL(iWin2, EFalse, ETrue);
+ iWin2->WinTreeNode()->SetFaded(EFalse, RWindowTreeNode::EFadeIncludeChildren);
+ TestFadeL(iWin1, EFalse, EFalse);
+ TestFadeL(iWin2, EFalse, EFalse);
+
+ // interlaced
+ iWin2->WinTreeNode()->SetFaded(ETrue, RWindowTreeNode::EFadeIncludeChildren);
+ TestFadeL(iWin1, EFalse, EFalse);
+ TestFadeL(iWin2, ETrue, ETrue);
+ iWin1->WinTreeNode()->SetFaded(ETrue, RWindowTreeNode::EFadeIncludeChildren);
+ TestFadeL(iWin1, ETrue, ETrue);
+ TestFadeL(iWin2, ETrue, ETrue);
+ iWin2->WinTreeNode()->SetFaded(EFalse, RWindowTreeNode::EFadeIncludeChildren);
+ TestFadeL(iWin1, ETrue, ETrue);
+ TestFadeL(iWin2, EFalse, ETrue);
+ iWin1->WinTreeNode()->SetFaded(EFalse, RWindowTreeNode::EFadeIncludeChildren);
+ TestFadeL(iWin1, EFalse, EFalse);
+ TestFadeL(iWin2, EFalse, EFalse);
+
+ iFadeCountWin->iPass = ETrue;
+ }
+
+void CFadeCountClient::CreateTestWindowsL(CTWinBase &aParent)
+ {
+ iWin1 = new(ELeave) CTWin();
+ iWin1->ConstructL(aParent);
+ iWin1->SetSize(TSize(20,20));
+
+ iWin2 = new(ELeave) CTWin();
+ iWin2->ConstructL(*iWin1);
+ iWin2->SetSize(TSize(10,10));
+
+ iAbsoluteFading = IsAbsoluteFadingOnL();
+ }
+
+TBool CFadeCountClient::IsAbsoluteFadingOnL()
+ {
+ iWin1->WinTreeNode()->SetFaded(ETrue, RWindowTreeNode::EFadeWindowOnly);
+ iWin1->WinTreeNode()->SetFaded(ETrue, RWindowTreeNode::EFadeWindowOnly);
+ iWin1->WinTreeNode()->SetFaded(EFalse, RWindowTreeNode::EFadeWindowOnly);
+ TBool absoluteFading = !iWin1->BaseWin()->IsFaded();
+ iWin1->WinTreeNode()->SetFaded(EFalse, RWindowTreeNode::EFadeWindowOnly);
+ return absoluteFading;
+ }
+
+void CFadeCountClient::TestL(TInt aCondition)
+ {
+ if (!aCondition)
+ User::Leave(ETestFailed);
+ }
+
+void CFadeCountClient::TestFadeL(CTWin* aWin, TBool aAbs, TBool aCounted)
+ {
+ TestL(!aWin->BaseWin()->IsFaded() == !(iAbsoluteFading ? aAbs : aCounted));
+ }
+
+
+GLDEF_C CTClient *CreateClientL()
+ {
+ return(new(ELeave) CFadeCountClient());
+ }
+
+GLDEF_C TInt E32Main()
+ {
+ return(TestLibStartUp(CreateClientL));
+ }