messagingfw/msgurlhandler/test/ui/inc/TestMsgUrlHandlerApp.H
changeset 0 8e480a14352b
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/messagingfw/msgurlhandler/test/ui/inc/TestMsgUrlHandlerApp.H	Mon Jan 18 20:36:02 2010 +0200
@@ -0,0 +1,282 @@
+// Copyright (c) 2001-2009 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:
+// This file contains the API definition for the classes 
+// CTestMsgUrlHandlerApplication, CTestMsgUrlHandlerAppView, 
+// CTestMsgUrlHandlerAppUi, CTestMsgUrlHandlerDocument.
+// 
+//
+
+/**
+ @file
+*/
+
+#ifndef __TESTMSGURLHANDLERAPP__H
+#define __TESTMSGURLHANDLERAPP__H
+
+#include <coeccntx.h>
+
+#include <eikenv.h> 
+#include <eikappui.h>
+#include <eikapp.h>
+#include <eikdoc.h>
+#include <techview/eikmenup.h> 
+
+#include <techview/eikon.hrh> 
+#include <msvstd.h>
+#include <msvapi.h>
+
+#include <testhandler.rsg>
+#include "TestMsgUrlHandler.hrh"
+
+
+/**
+	@class
+	Comments :	Defines the application's UID and manufactures a new, 
+				blank document.
+	@since 6.0
+*/
+class CTestMsgUrlHandlerApplication : public CEikApplication
+	{
+private: 
+
+/**
+	@fn				CreateDocumentL()
+	Intended Usage	:	This function is inherited from class CApaApplication.
+						This function is called by the UI framework at
+						application start-up. It creates an instance of the
+						document class.
+	@since			6.0
+	@return			CApaDocument
+ */
+	CApaDocument* CreateDocumentL();
+
+/**
+	@fn				AppDllUid() const
+	Intended Usage	:	The function is called by the UI framework to ask for the
+						application's UID.
+	@since			6.0
+	@return			TUid 
+ */
+	TUid AppDllUid() const;
+	};
+
+
+/**
+	@class
+	Comments :	This class displays the application data on screen and allows 
+				user interaction.
+	@since 6.0
+*/
+class CTestMsgUrlHandlerAppView : public CCoeControl
+    {
+public:
+
+/**
+	@fn				NewL(const TRect& aRect)
+	Intended Usage	:	Static factory constructor. Uses two phase construction and 
+						leaves nothing on the CleanupStack.
+	@since			6.0
+	@return			A pointer to the newly created CTestMsgUrlHandlerAppView object. 
+	@pre 			None
+	@post			A fully constructed and initialised CTestMsgUrlHandlerAppView object.
+ */
+	static CTestMsgUrlHandlerAppView* NewL(const TRect& aRect);
+
+private:
+
+/**
+	@fn				CTestMsgUrlHandlerAppView()
+	Intended Usage	:	Constructor. First phase of two-phase construction method. Does 
+						non-allocating construction.
+	@since			6.0
+ */
+	CTestMsgUrlHandlerAppView();
+
+/**
+	@fn				~CTestMsgUrlHandlerAppView()
+	Intended Usage	:	Destructor.
+	@since			6.0
+ */
+	~CTestMsgUrlHandlerAppView();
+
+/**
+	@fn				ConstructL(const TRect& aRect)
+	Intended Usage	:	Second phase of two-phase construction method. Does any 
+						allocations required to fully construct the object.
+	@since			6.0
+	@pre 			First phase of construction is complete
+	@post			The object is fully constructed and initialised.
+ */
+    void ConstructL(const TRect& aRect);
+
+/**
+	@fn				Draw(const TRect&) const
+	Intended Usage	:	This function is inherited from CCoeControl.
+						Draws the view - consists of a simple outline rectangle
+						with text in the middle using the Normal font 
+						supplied by the UI.
+	@since			6.0
+	@param			aRect 
+	@return			CTestMsgUrlHandlerAppView
+	@pre 			None
+	@post			The view is drawn
+ */
+	void Draw(const TRect& /*aRect*/) const;
+
+private:
+	HBufC*  iText;
+    };
+
+
+/**
+	@class
+	Comments :	This class handles command generated by the menu items, toolbar
+				buttons and shortcut keys. It delegates drawing and screen based
+				interaction to the app view and other controls.
+	@since 6.0
+*/
+class CTestMsgUrlHandlerAppUi : public CEikAppUi
+    {
+
+public:
+
+/**
+	@fn				CTestMsgUrlHandlerAppUi()
+	Intended Usage	:	Constructor. First phase of two-phase construction method. Does 
+						non-allocating construction.
+	@since			6.0
+ */
+	CTestMsgUrlHandlerAppUi();
+
+private:
+
+/**
+	@fn				ConstructL()
+	Intended Usage	:	Second phase of two-phase construction method. Does any 
+						allocations required to fully construct the object.
+
+						This function is called by Eikon hence no NewL().
+
+						Starts the Idle time active object which calls the callback
+						function. This starts the background task.
+						This background task is encapsulated in the callback function. 
+	@since			6.0
+	@pre 			First phase of construction is complete
+	@post			The object is fully constructed and initialised.
+					The background task has started.
+ */
+    void ConstructL();
+
+/**
+	@fn				~CTestMsgUrlHandlerAppUi()
+	Intended Usage	:	Destructor.
+	@since			6.0
+ */
+	~CTestMsgUrlHandlerAppUi();
+
+/**
+	@fn				HandleCommandL(TInt aCommand)
+	Intended Usage	:	Closes the application from the menu item and the shortcut
+						key Ctrl-e.
+	@since			6.0
+	@param			aCommand 
+	@return			void 
+	@pre 			None
+	@post			Application is closed if the menu item or the shortcut key is used. 
+ */
+	void HandleCommandL(TInt aCommand);	
+
+/**
+	@fn				LaunchMailEditorL(const TDesC& aUrl)
+	Intended Usage	:	Parses the url (i.e the command line) and 
+						launches the correct mail editor.
+	Error Condition	:	This function leaves with KErrNotFound if the messaging
+						scheme is not found.
+	@since			6.0
+	@param			aUrl		An url descriptor
+	@return			void 
+	@pre 			None
+	@post			Parses the url and launches the correct mail editor.
+ */
+	void LaunchMailEditorL(const TDesC& aUrl);
+
+private:
+	CCoeControl* iAppView;
+	};
+
+
+/**
+	@class
+	Comments :	Launches the App UI
+	@since 6.0
+*/
+class CTestMsgUrlHandlerDocument : public CEikDocument
+	{
+public:
+
+/**
+	@fn				NewL(CEikApplication& aApp)
+	Intended Usage	:	Static factory constructor. Uses two phase construction and 
+						leaves nothing on the CleanupStack.
+	@since			6.0
+	@return			A pointer to the newly created CTestMsgUrlHandlerDocument object. 
+	@pre 			None
+	@post			A fully constructed and initialised CTestMsgUrlHandlerDocument object.
+ */
+	static CTestMsgUrlHandlerDocument* NewL(CEikApplication& aApp);
+
+private:
+
+/**
+	@fn				CTestMsgUrlHandlerDocument(CEikApplication& aApp)
+	Intended Usage	:	Constructor. First phase of two-phase construction method. Does 
+						non-allocating construction.
+	@since			6.0
+ */
+	CTestMsgUrlHandlerDocument(CEikApplication& aApp);
+
+/**
+	@fn				ConstructL()
+	Intended Usage	:	Second phase of two-phase construction method. Does any 
+						allocations required to fully construct the object.
+	@since			6.0
+	@pre 			First phase of construction is complete
+	@post			The object is fully constructed and initialised.
+ */
+	void ConstructL();
+
+/**
+	@fn				CEikAppUi* CreateAppUiL()
+	Intended Usage	:	This function is inherited from CEikDocument.
+						Launches the App UI.
+	@since			6.0
+	@return			CEikAppUi* 
+	@pre 			App is created
+	@post			App UI is launched.
+ */
+	CEikAppUi* CreateAppUiL();
+
+	void CreateSMSServiceL();
+	void CreateEmailServiceL();
+	void ServiceIdL(TUid aMtm, TMsvId& rFirstId);
+	};
+
+class CDummyObserver : public CBase, public MMsvSessionObserver
+	{
+public:
+	void HandleSessionEventL(TMsvSessionEvent, TAny*, TAny*, TAny*) {};
+	};
+
+
+#endif