diff -r e8c1ea2c6496 -r 8758140453c0 localisation/apparchitecture/tef/TAppEmbeddable.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/localisation/apparchitecture/tef/TAppEmbeddable.cpp Thu Jan 21 12:53:44 2010 +0000 @@ -0,0 +1,231 @@ +// Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies). +// All rights reserved. +// This component and the accompanying materials are made available +// under the terms of the License "Symbian Foundation License v1.0" +// which accompanies this distribution, and is available +// at the URL "http://www.symbianfoundation.org/legal/sfl-v10.html". +// +// Initial Contributors: +// Nokia Corporation - initial contribution. +// +// Contributors: +// +// Description: +// Supporting application for use by other test programs that need +// to query the apparc server for applications which define +// different embeddability values in their AIF files. +// +// + + + +/** + @file + @internalComponent - Internal Symbian test code +*/ + +#include + +#include +#include +#include +#include +#include +#include + +#include +#include + +#include "TAppEmbedUids.h" + +_LIT(KExampleText, "This test application defines KAppEmbeddable in it's AIF file"); + + +//////////////////////////////////////////////////////////////////////// +// +// CExampleAppView +// +//////////////////////////////////////////////////////////////////////// +class CExampleAppView : public CCoeControl + { +public: + static CExampleAppView* NewL(const TRect& aRect); + CExampleAppView(); + ~CExampleAppView(); + void ConstructL(const TRect& aRect); + +private: + // from CCoeControl + void Draw(const TRect& /*aRect*/) const; +private: + HBufC* iExampleText; + }; + +CExampleAppView::CExampleAppView() + { + } + +CExampleAppView* CExampleAppView::NewL(const TRect& aRect) + { + CExampleAppView* self = new(ELeave) CExampleAppView(); + CleanupStack::PushL(self); + self->ConstructL(aRect); + CleanupStack::Pop(); + return self; + } + +CExampleAppView::~CExampleAppView() + { + delete iExampleText; + } + +void CExampleAppView::ConstructL(const TRect& aRect) + { + TPtrC ptr(KExampleText); + iExampleText = ptr.AllocL(); + CreateWindowL(); + SetRect(aRect); + ActivateL(); + } + +void CExampleAppView::Draw(const TRect& /*aRect*/) const + { + CWindowGc& gc = SystemGc(); + TRect drawRect = Rect(); + const CFont* fontUsed; + + gc.Clear(); + fontUsed = iEikonEnv->TitleFont(); + gc.UseFont(fontUsed); + TInt baselineOffset=(drawRect.Height() - fontUsed->HeightInPixels())/2; + gc.DrawText(*iExampleText,drawRect,baselineOffset,CGraphicsContext::ECenter, 0); + gc.DiscardFont(); + } + + +//////////////////////////////////////////////////////////////////////// +// +// CExampleAppUi +// +//////////////////////////////////////////////////////////////////////// +class CExampleAppUi : public CEikAppUi + { +public: + void ConstructL(); + ~CExampleAppUi(); + +private: + // from CEikAppUi + void HandleCommandL(TInt aCommand); +private: + CCoeControl* iAppView; + }; + + +void CExampleAppUi::ConstructL() + { + BaseConstructL(ENoAppResourceFile | ENoScreenFurniture); + iAppView = CExampleAppView::NewL(ClientRect()); + HandleCommandL(EEikCmdExit); + } + +CExampleAppUi::~CExampleAppUi() + { + delete iAppView; + } + +void CExampleAppUi::HandleCommandL(TInt aCommand) + { + switch (aCommand) + { + case EEikCmdExit: + Exit(); + break; + } + } + + +//////////////////////////////////////////////////////////////////////// +// +// CExampleDocument +// +//////////////////////////////////////////////////////////////////////// +class CExampleDocument : public CEikDocument + { +public: + static CExampleDocument* NewL(CEikApplication& aApp); + CExampleDocument(CEikApplication& aApp); + void ConstructL(); +private: + // Inherited from CEikDocument + CEikAppUi* CreateAppUiL(); + }; + +CExampleDocument::CExampleDocument(CEikApplication& aApp) + : CEikDocument(aApp) + { + } + +CEikAppUi* CExampleDocument::CreateAppUiL() + { + return new(ELeave) CExampleAppUi; + } + + + +//////////////////////////////////////////////////////////////////////// +// +// CExampleApplication +// +//////////////////////////////////////////////////////////////////////// + +class CExampleApplication : public CEikApplication + { +private: + // from CApaApplication + CApaDocument* CreateDocumentL(); + TUid AppDllUid() const; +private: + TFileName ResourceFileName() const; +private: + CApaDocument* CreateDocumentL(CApaProcess* a) { return CEikApplication::CreateDocumentL(a); } + // + }; + +CApaDocument* CExampleApplication::CreateDocumentL() + { + return new (ELeave) CExampleDocument(*this); + } + +TUid CExampleApplication::AppDllUid() const + { + return KUidAppEmbeddable; + } + +TFileName CExampleApplication::ResourceFileName() const +{ + return TFileName(); // this app doesn't have a resource file +} + + +GLDEF_C TInt E32Dll( + ) + { + return KErrNone; + } + +LOCAL_C CApaApplication* NewApplication() + { + return new CExampleApplication; + } + +LOCAL_D const TImplementationProxy ImplementationTable[]= + { + IMPLEMENTATION_PROXY_ENTRY(0x10004c48, NewApplication) + }; + +EXPORT_C const TImplementationProxy* ImplementationGroupProxy(TInt& aTableCount) + { + aTableCount=sizeof(ImplementationTable)/sizeof(ImplementationTable[0]); + return ImplementationTable; + }