--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/uifw/inc/akncompaif.inl Tue Feb 02 01:00:49 2010 +0200
@@ -0,0 +1,77 @@
+/*
+* 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 interface (client) implementation
+*
+*/
+
+
+#include <e32base.h>
+#include <../ecom/ecom.h>
+#include <aknappui.h>
+#include <centralrepository.h>
+#include <AvkonInternalCRKeys.h>
+
+#include "akncompaif.h"
+
+// akncompaflags.h is not included. These are from there.
+const TInt KAknCompaFeatureEnaCompaMode = 1; // Enable compa-mode in device
+const TInt KAknCompaSettingEnaApps = 1;
+
+// --------------------------------------------------------------------------
+//
+// --------------------------------------------------------------------------
+inline CAknCompaIf::~CAknCompaIf()
+ {
+ REComSession::DestroyedImplementation(iEcomDtorId);
+ }
+
+// --------------------------------------------------------------------------
+// Create instance of compa-mode interface
+// --------------------------------------------------------------------------
+inline CAknCompaIf* CAknCompaIf::NewL()
+ {
+ const TUid KImplUid = {0x20010126}; // AKNCOMPAIF_ECOM_IMPL_UID
+ return reinterpret_cast<CAknCompaIf*>(
+ REComSession::CreateImplementationL(KImplUid,
+ _FOFF(CAknCompaIf, iEcomDtorId)));
+ }
+
+// --------------------------------------------------------------------------
+// Check if compa-mode may be needed. If this function returns false,
+// compa-mode is definetely not needed. Either application is touch
+// compatible or compa mode feature is not enabled. If it returns true,
+// compa-mode plugin should be instantiated to perform further checks.
+// --------------------------------------------------------------------------
+inline TBool CAknCompaIf::IsNeeded(TInt aAppUiFlags,
+ CRepository* aRepository)
+ {
+ TBool isNeeded = EFalse;
+ if ((aAppUiFlags & CAknAppUiBase::EAknTouchCompatible) == 0 &&
+ aRepository)
+ {
+ // Compa-mode maybe needed if compa-mode feature is enabled in device
+ TInt compaFeatures = 0;
+ aRepository->Get(KAknCompaModeFeatures, compaFeatures);
+ if (compaFeatures & KAknCompaFeatureEnaCompaMode)
+ {
+ TInt compaSettings = 0;
+ aRepository->Get(KAknCompaModeSettings, compaSettings);
+ // Compa-mode may be needed if compa-mode is enabled from settings
+ // or the application is a global UI server.
+ isNeeded = compaSettings & KAknCompaSettingEnaApps ||
+ aAppUiFlags & CEikAppUi::ENoScreenFurniture;
+ }
+ }
+ return isNeeded;
+ }