diff -r 000000000000 -r 2f259fa3e83a uifw/AvKon/initsrc/akninit.cpp --- /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 +#include +#include "AKNINIT.HRH" +#include +#include "EIKCDFTY.H" +#include +#include +#include "EIKDLIB.H" +#include "EIKCDLIB.H" + +#ifdef SYMBIAN_ENABLE_SPLIT_HEADERS +#include +#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* CAknDllInitializer::ResourceFileArrayL() const +// Build array by asking each Dll for its resource file +// Keep stack usage low by splitting into individual methods + { + CArrayFix* resFileArray = new(ELeave) CArrayFixFlat(8); + CleanupStack::PushL(resFileArray); + + AppendCoCtlResourcFileL(*resFileArray); + AppendAvkonResourceFileL(*resFileArray); + AppendAvkonPrivateResourceFileL(*resFileArray); + AppendCtlResourcFileL(*resFileArray); + AppendCDlgResourcFileL(*resFileArray); + + CleanupStack::Pop(); // resFileArray + return resFileArray; + } + +CArrayFix* CAknDllInitializer::ControlFactoryArrayL() const + { + CArrayFix* ctrlFactoryArray = new(ELeave) CArrayFixFlat(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& aResFileArray) const + { + aResFileArray.AppendL(CEikCoCtlLibrary::ResourceFile()); + } + +void CAknDllInitializer::AppendAvkonResourceFileL(CArrayFix& aResFileArray) const + { + aResFileArray.AppendL(CAknLibrary::ResourceFile()); + } + +void CAknDllInitializer::AppendAvkonPrivateResourceFileL(CArrayFix& aResFileArray) const + { + aResFileArray.AppendL(CAknLibrary::PrivateResourceFile()); + } + +void CAknDllInitializer::AppendCtlResourcFileL(CArrayFix& aResFileArray) const + { + aResFileArray.AppendL(CEikCtlLibrary::ResourceFile()); + } + +void CAknDllInitializer::AppendCDlgResourcFileL(CArrayFix& 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