--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/uifw/AvKon/initsrc/akninit.cpp Tue Feb 02 01:00:49 2010 +0200
@@ -0,0 +1,172 @@
+/*
+* Copyright (c) 2002 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:
+*
+*/
+
+// AKNINIT.CPP
+//
+// Copyright (c) 1997-2001 Symbian Ltd. All rights reserved.
+//
+
+#include "akninit.h"
+#include "AknLib.h"
+#include <avkon.rsg>
+#include <aknenv.h>
+#include "AKNINIT.HRH"
+#include <ecom/implementationproxy.h>
+#include "EIKCDFTY.H"
+#include <eikcolib.h>
+#include <eikctlib.h>
+#include "EIKDLIB.H"
+#include "EIKCDLIB.H"
+
+#ifdef SYMBIAN_ENABLE_SPLIT_HEADERS
+#include <uikon/eikenvinterface.h>
+#endif
+
+
+// Static DLL functions
+#ifndef EKA2
+GLDEF_C TInt E32Dll(TDllReason /*aReason*/)
+ {
+ return(KErrNone);
+ }
+#endif
+
+GLDEF_C void Panic(TAknPanic aPanic)
+ {
+ _LIT(KPanicCat,"AKNINIT");
+ User::Panic(KPanicCat,aPanic);
+ }
+
+CEikLibrary* NewLibraryL()
+/**
+@publishedPartner
+@test
+*/
+ {
+ CAknDllInitializer* initDlls = new (ELeave) CAknDllInitializer();
+
+ return initDlls;
+ }
+CAknDllInitializer::CAknDllInitializer()
+ {
+ }
+
+CAknDllInitializer::~CAknDllInitializer()
+ {
+ delete iCDlgDialogFactory;
+ delete iAppUiFactory;
+ }
+
+void CAknDllInitializer::InitializeL()
+// Creates concrete classes for abstract placeholders in EikonEnv
+ {
+ CEikonEnv* eikEnv = CEikonEnv::Static();
+ iAppUiFactory = new(ELeave) CEikAppUiFactory();
+ eikEnv->SetAppUiFactoryL(iAppUiFactory);
+ CEikButtonGroupFactoryArray::AppendFactoryFunctionL(CEikCoCtlLibrary::ButtonGroupFactory());
+ // Avkon status pane resource
+ eikEnv->SetStatusPaneCoreResId(R_AVKON_STATUS_PANE);
+ // AknEnv construction is done in eikenv
+ // CDlg Dll has private initialisation
+ CEikCDlgLibrary::InitializeL();
+ // Ctl Dll has private initialisation
+ CEikCtlLibrary::InitializeL();
+ // Create the each DLLs dialog factories for the text editors
+ iCDlgDialogFactory = CEikCDlgDialogFactory::NewL();
+ eikEnv->SetCDlgDialogFactory(iCDlgDialogFactory);
+ eikEnv->RootWin().EnableModifierChangedEvents(EModifierCapsLock, EEventControlAlways);
+ CEikButtonGroupFactoryArray::AppendFactoryFunctionL(CEikCtlLibrary::ButtonGroupFactory());
+ }
+
+CArrayFix<TFileName>* CAknDllInitializer::ResourceFileArrayL() const
+// Build array by asking each Dll for its resource file
+// Keep stack usage low by splitting into individual methods
+ {
+ CArrayFix<TFileName>* resFileArray = new(ELeave) CArrayFixFlat<TFileName>(8);
+ CleanupStack::PushL(resFileArray);
+
+ AppendCoCtlResourcFileL(*resFileArray);
+ AppendAvkonResourceFileL(*resFileArray);
+ AppendAvkonPrivateResourceFileL(*resFileArray);
+ AppendCtlResourcFileL(*resFileArray);
+ AppendCDlgResourcFileL(*resFileArray);
+
+ CleanupStack::Pop(); // resFileArray
+ return resFileArray;
+ }
+
+CArrayFix<TCreateByTypeFunction>* CAknDllInitializer::ControlFactoryArrayL() const
+ {
+ CArrayFix<TCreateByTypeFunction>* ctrlFactoryArray = new(ELeave) CArrayFixFlat<TCreateByTypeFunction>(8);
+ CleanupStack::PushL(ctrlFactoryArray);
+
+ // Build array by asking each Dll for its control factory function
+ ctrlFactoryArray->AppendL(CEikCoCtlLibrary::ControlFactory());
+ ctrlFactoryArray->AppendL(CAknLibrary::ControlFactory());
+ ctrlFactoryArray->AppendL(CEikCtlLibrary::ControlFactory());
+ ctrlFactoryArray->AppendL(CEikDlgLibrary::ControlFactory());
+ ctrlFactoryArray->AppendL(CEikCDlgLibrary::ControlFactory());
+
+ CleanupStack::Pop(); // ctrlFactoryArray
+ return ctrlFactoryArray;
+ }
+
+void CAknDllInitializer::AppendCoCtlResourcFileL(CArrayFix<TFileName>& aResFileArray) const
+ {
+ aResFileArray.AppendL(CEikCoCtlLibrary::ResourceFile());
+ }
+
+void CAknDllInitializer::AppendAvkonResourceFileL(CArrayFix<TFileName>& aResFileArray) const
+ {
+ aResFileArray.AppendL(CAknLibrary::ResourceFile());
+ }
+
+void CAknDllInitializer::AppendAvkonPrivateResourceFileL(CArrayFix<TFileName>& aResFileArray) const
+ {
+ aResFileArray.AppendL(CAknLibrary::PrivateResourceFile());
+ }
+
+void CAknDllInitializer::AppendCtlResourcFileL(CArrayFix<TFileName>& aResFileArray) const
+ {
+ aResFileArray.AppendL(CEikCtlLibrary::ResourceFile());
+ }
+
+void CAknDllInitializer::AppendCDlgResourcFileL(CArrayFix<TFileName>& aResFileArray) const
+ {
+ aResFileArray.AppendL(CEikCDlgLibrary::ResourceFile());
+ }
+
+void CAknDllInitializer::PostAppUiInitializeL()
+ {
+ CEikLibrary::PostAppUiInitializeL();
+ }
+
+
+//Adding ECOM SUPPORT
+
+const TImplementationProxy ImplementationTable[] =
+ {
+ IMPLEMENTATION_PROXY_ENTRY(KAknInitImplUid, NewLibraryL)
+ };
+
+EXPORT_C const TImplementationProxy* ImplementationGroupProxy(TInt& aTableCount)
+ {
+ aTableCount = sizeof(ImplementationTable) / sizeof(TImplementationProxy) ;
+ return ImplementationTable;
+ }
+
+// End of File