sl@0: // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies). sl@0: // All rights reserved. sl@0: // This component and the accompanying materials are made available sl@0: // under the terms of the License "Eclipse Public License v1.0" sl@0: // which accompanies this distribution, and is available sl@0: // at the URL "http://www.eclipse.org/legal/epl-v10.html". sl@0: // sl@0: // Initial Contributors: sl@0: // Nokia Corporation - initial contribution. sl@0: // sl@0: // Contributors: sl@0: // sl@0: // Description: sl@0: // e32test\emul\t_guiconfig.cpp sl@0: // Overview: sl@0: // Test the kernel-side emulator GUI configuration API. sl@0: // API Information: sl@0: // RBusLogicalChannel, DLogicalChannel, WinsGui::CurrentConfiguration. sl@0: // Details: sl@0: // - Test retrieving the current emulator GUI configuration. sl@0: // The following emulator configuration (.ini) files can be used with sl@0: // this test to setup multiple configurations. Switch from one sl@0: // configuration to the next by clicking in the upper left corner of sl@0: // the emulator window, then run the test with a different configuration sl@0: // selected. sl@0: // >>> \epoc32\data\epoc.ini <<< sl@0: // configuration c0.ini sl@0: // configuration c1.ini sl@0: // configuration c2.ini sl@0: // configuration c3.ini sl@0: // >>> \epoc32\data\c0.ini <<< sl@0: // OnActivation 0 EKeyScreenDimension0 sl@0: // EmulatorControl NextConfig rect 1,1 30,30 sl@0: // windowtitle ZERO sl@0: // >>> \epoc32\data\c1.ini <<< sl@0: // OnActivation 0 EKeyScreenDimension1 sl@0: // EmulatorControl NextConfig rect 1,1 30,30 sl@0: // windowtitle ONE sl@0: // >>> \epoc32\data\c2.ini <<< sl@0: // OnActivation 0 EKeyScreenDimension2 sl@0: // EmulatorControl NextConfig rect 1,1 30,30 sl@0: // windowtitle TWO sl@0: // >>> \epoc32\data\c3.ini <<< sl@0: // OnActivation 0 EKeyScreenDimension3 sl@0: // EmulatorControl NextConfig rect 1,1 30,30 sl@0: // windowtitle THREE sl@0: // Platforms/Drives/Compatibility: sl@0: // Only available on the emulator. sl@0: // Assumptions/Requirement/Pre-requisites: sl@0: // Failures and causes: sl@0: // Base Port information: sl@0: // sl@0: // sl@0: sl@0: #include <e32test.h> sl@0: #include <e32def.h> sl@0: #include <e32def_private.h> sl@0: #include "d_guiconfig.h" sl@0: sl@0: _LIT(KLddFileName, "d_guiconfig.ldd"); sl@0: sl@0: GLDEF_D RGuiConfigTest ldd; sl@0: GLDEF_D RTest test(_L("Emulator GUI configuration")); sl@0: sl@0: void DoTest(const TDesC& aLddFileName) sl@0: { sl@0: TInt r; sl@0: test.Start(_L("Loading LDD")); sl@0: sl@0: __KHEAP_MARK; sl@0: sl@0: r=User::LoadLogicalDevice(aLddFileName); sl@0: test.Printf(_L("Returned %d\n"), r); sl@0: test(r==KErrNone); sl@0: sl@0: test.Next(_L("Opening device driver")); sl@0: test(ldd.Open()==KErrNone); sl@0: sl@0: test.Next(_L("Test retrieving current GUI configuration")); sl@0: test.Printf(_L("Current emulator configuration is: %d"), ldd.GetConfig()); sl@0: sl@0: test.Next(_L("Test generating key event")); sl@0: test(ldd.GenerateKeyEvent()==KErrNone); sl@0: sl@0: TRequestStatus status; sl@0: test.Console()->Read(status); sl@0: User::WaitForRequest(status); sl@0: sl@0: if (test.Console()->KeyCode() == EKeyScreenDimension0) sl@0: { sl@0: test.Printf(_L("EKeyScreenDimension0 (0x%04x)\r\n"), test.Console()->KeyCode()); sl@0: // wait for the key-up code sl@0: test.Console()->Read(status); sl@0: User::WaitForRequest(status); sl@0: sl@0: test(test.Console()->KeyCode() == EKeyScreenDimension0); sl@0: } sl@0: else if (test.Console()->KeyCode()==EKeyScreenDimension1) sl@0: { sl@0: test.Printf(_L("EKeyScreenDimension1 (0x%04x)\r\n"), test.Console()->KeyCode()); sl@0: // wait for the key-up code sl@0: test.Console()->Read(status); sl@0: User::WaitForRequest(status); sl@0: sl@0: test(test.Console()->KeyCode() == EKeyScreenDimension1); sl@0: } sl@0: else if (test.Console()->KeyCode() == EKeyScreenDimension2) sl@0: { sl@0: test.Printf(_L("EKeyScreenDimension2 (0x%04x)\r\n"), test.Console()->KeyCode()); sl@0: // wait for the key-up code sl@0: test.Console()->Read(status); sl@0: User::WaitForRequest(status); sl@0: sl@0: test(test.Console()->KeyCode() == EKeyScreenDimension2); sl@0: } sl@0: else if (test.Console()->KeyCode() == EKeyScreenDimension3) sl@0: { sl@0: test.Printf(_L("EKeyScreenDimension3 (0x%04x)\r\n"), test.Console()->KeyCode()); sl@0: // wait for the key-up code sl@0: test.Console()->Read(status); sl@0: User::WaitForRequest(status); sl@0: sl@0: test(test.Console()->KeyCode() == EKeyScreenDimension3); sl@0: } sl@0: else sl@0: { sl@0: test.Printf(_L("Key: %5d (0x%04x)\r\n"),test.Console()->KeyCode(),test.Console()->KeyCode()); sl@0: test(EFalse); sl@0: } sl@0: sl@0: test.Next(_L("Close")); sl@0: ldd.Close(); sl@0: sl@0: test.Next(_L("Unload")); sl@0: r = RGuiConfigTest::Unload(); sl@0: test(r==KErrNone); sl@0: sl@0: test.End(); sl@0: } sl@0: sl@0: GLDEF_C TInt E32Main() sl@0: // sl@0: // Test LDD static data sl@0: // sl@0: { sl@0: test.Title(); sl@0: test.Start(_L("Test emulator GUI configuration API")); sl@0: sl@0: DoTest(KLddFileName); sl@0: sl@0: test.End(); sl@0: return(KErrNone); sl@0: } sl@0: