uifw/AvKon/akncompamode/src/akncompaifimpl.cpp
changeset 0 2f259fa3e83a
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/uifw/AvKon/akncompamode/src/akncompaifimpl.cpp	Tue Feb 02 01:00:49 2010 +0200
@@ -0,0 +1,106 @@
+/*
+* Copyright (c) 2007 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:  Compa-mode ecom interface implementation
+*
+*/
+
+
+#include <e32base.h>
+#include <../ecom/implementationproxy.h>
+
+#include "akncompaifimpl.h"
+#include "akncompaif.hrh"
+#include "akncompautils.h"
+#include "akncompakb.h"
+#include "akncompaclearer.h"
+
+// --------------------------------------------------------------------------
+//
+// --------------------------------------------------------------------------
+CAknCompaIfImpl* CAknCompaIfImpl::NewL()
+    {
+    return new (ELeave) CAknCompaIfImpl;
+    }
+
+// --------------------------------------------------------------------------
+//
+// --------------------------------------------------------------------------
+CAknCompaIfImpl::~CAknCompaIfImpl()
+    {
+    delete iCompaKb;
+    delete iClearer;
+    }
+
+// --------------------------------------------------------------------------
+// Check if application requires compa-mode. Set screen mode to compa-mode
+// if compa-mode is enabled and application requires it. Returns KErrNotFound
+// if compa-mode is not needed.
+// --------------------------------------------------------------------------
+TInt CAknCompaIfImpl::SetCompaAppScreenModeL(TBool& aScrModeChanged,
+    TBool& aIsConsoleApp, TInt aAppUiFlags, CAknAppUiBase& aAppUi,
+    const CCoeEnv& aCoeEnv, CRepository& aRepository)
+    {
+    return AknCompaUtils::SetCompaAppScreenModeL(aScrModeChanged,
+        aIsConsoleApp, iClearer, aAppUiFlags, aAppUi, aCoeEnv, aRepository);
+    }
+
+// --------------------------------------------------------------------------
+// Create instance of compa keyboard
+// --------------------------------------------------------------------------
+void CAknCompaIfImpl::CreateKbL(TInt aCompaScreenMode, TBool aMakeVisible)
+    {
+    iCompaKb = CAknCompaKb::NewL(aCompaScreenMode, aMakeVisible);
+    delete iClearer; iClearer = NULL;
+    }
+
+// --------------------------------------------------------------------------
+// Check if compa-mode application is on foreground
+// --------------------------------------------------------------------------
+TBool CAknCompaIfImpl::IsForeground()
+    {
+    return iCompaKb->IsForeground();
+    }
+
+// --------------------------------------------------------------------------
+// Find compatibility screen mode
+// --------------------------------------------------------------------------
+TInt CAknCompaIfImpl::FindCompaScreenMode()
+    {
+    return AknCompaUtils::FindCompaScreenMode();
+    }
+
+// --------------------------------------------------------------------------
+// Disable transition effects
+// --------------------------------------------------------------------------
+void CAknCompaIfImpl::DisableTransEffects(TBool aDisable)
+    {
+    iCompaKb->DisaTransEffects(aDisable);
+    }
+
+// --------------------------------------------------------------------------
+// Return factory functions for ECOM interface implementations
+// --------------------------------------------------------------------------
+EXPORT_C const TImplementationProxy* ImplementationGroupProxy(
+    TInt& aTableCount)
+    {
+    static const TImplementationProxy ImplementationTable[] = 
+        {
+        IMPLEMENTATION_PROXY_ENTRY(
+            AKNCOMPAIF_ECOM_IMPL_UID, CAknCompaIfImpl::NewL)
+        };
+    aTableCount =
+        sizeof(ImplementationTable) / sizeof(ImplementationTable[0]);
+
+    return ImplementationTable;
+    }