diff -r 2fe1408b6811 -r e1b950c65cb4 epoc32/include/mtudcbas.h
--- a/epoc32/include/mtudcbas.h	Tue Mar 16 16:12:26 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,362 +0,0 @@
-// Copyright (c) 1998-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" to Symbian Foundation members and "Symbian Foundation End User License Agreement v1.0" to non-members
-// which accompanies this distribution, and is available
-// at the URL "http://www.symbianfoundation.org/legal/licencesv10.html".
-//
-// Initial Contributors:
-// Nokia Corporation - initial contribution.
-//
-// Contributors:
-//
-// Description:
-//
-
-#if !defined(__MTUDBAS_H__)
-#define __MTUDBAS_H__
-
-#if !defined(__MSVSTD_H__)
-#include <msvstd.h>
-#endif
-
-#if !defined(__MSVREG_H__)
-#include <msvreg.h>
-#endif
-
-#if !defined(__MTCLREG_H__)
-#include <mtclreg.h>
-#endif
-
-#if !defined(__BARSREAD_H__)
-#include <barsread.h>
-#endif
-
-// Forward references
-class CFbsBitmap;
-class CCoeEnv;
-
-///////////////////////////////////////////////////
-// CBaseMtmUiData - MTM Ui data layer base API   //
-///////////////////////////////////////////////////
-class CBaseMtmUiData : public CBase
-/** Base class for UI Data MTM components. 
-
-CBaseMtmUiData-derived classes allow message client applications to customise 
-dynamically their user interfaces for a particular message type. For example, 
-if a message client application currently had a fax entry selected, then it 
-could use the fax MTM's concrete class to get information on the menus and 
-icons that it should display. 
-
-Specifically, functionality falls into the following three areas:
-
-1. supplying MTM-specific icons for Message Server entries
-
-2. supplying user interface text, e.g. for menus, for MTM-specific operations
-
-3. providing checks that MTM functions are suitable for use on an entry. It is 
-intended that client applications will use these functions to select dynamically 
-the user interface features available dependent on the entry currently selected 
-within the application. For example, menu items that do not apply to particular 
-entries could be greyed out. Note that OperationSupportedL() performs a similar 
-function for MTM-specific functions. Implementations should determine if the 
-operation is supported by checking the properties of the entry, such as its 
-type. If the operation is not appropriate on the entry, then the aReasonResourceId 
-argument is set to the ID of a string in the UI Data MTM's resource file 
-that explains why not. Otherwise, aReasonResourceId is 0.
-
-Message client applications use the class to access such functionality polymorphically. 
-MTM implementers implement this class to provide such functionality for their 
-message protocol. 
-@publishedAll
-@released
-*/
-	{
-public:
-	// --- Types ---
-	/** Defines an array of icon bitmaps for the UI Data MTM. 
-	
-	It is used in the definition of CBaseMtmUiData::iIconArrays. */
-	typedef CArrayPtr<CFbsBitmap> CBitmapArray;
-	//
-	// --- Inline class ---
-	class TMtmUiFunction
-	/** Provides the interface for clients to access MTM-specific functions, and present 
-	these functions to the user. A message client application can use this information to customise the UI.
-
-	The class encapsulates information relating to an MTM-specific operation:
-
-	1. human-readable name: for display on the UI
-
-	2. ID: used to invoke the operation through the CBaseMtmUi::InvokeSyncFunctionL()/InvokeAsyncFunctionL() functions on the associated User Interface MTM 
-
-	3. a suggested hot-key that the UI should support for the operation
-
-	4. flags that describe further operation characteristics. 
-@publishedAll
-@released
-*/
-		{
-		friend class CBaseMtmUiData;// For access to constructor
-	public:
-		// --- Constants ---
-		/** Enum to define UI Data base class constants. */
-		enum 
-			{
-			/** Maximum length for operation caption. Used in defining iCaption. */
-			ECaptionMaxLen=40
-			};
-
-	public:
-		// --- Construction ---
-		IMPORT_C TMtmUiFunction(TResourceReader& aResourceReader);		
-		IMPORT_C TMtmUiFunction(const TMtmUiFunction& aFunc);		
-
-	private:
-		// --- Private functions ---
-		void SetModifiersFromResourceDefinition(TInt aResourceFileModifiers);		
-
-	public:
-		// --- Data ---
-		/** String, suitable for a menu, describing the operation. */
-		TBuf<ECaptionMaxLen>		iCaption;
-		/** Character code for a suggested hotkey for the operation. */
-		TInt						iPreferredHotKeyKeyCode;
-		/** Suggested key modifiers for the hotkey.  */
-		TInt						iPreferredHotKeyModifiers;
-		/** The ID that can be used to invoke the operation. */
-		TInt						iFunctionId;
-		/** Flags setting location characteristics of the operation. */
-		TUint8						iFunctionType;	// see MTUD.HRH
-		/** Flags setting characteristics of the operation. */
-		TInt						iFlags;			// see MTUD.HRH
-		};
-	//
-	// --- Destruction ---
-	IMPORT_C virtual ~CBaseMtmUiData();
-	//
-	// --- Accessor functions ---
-	IMPORT_C TUid Type() const;
-	//
-	// --- Context icons ---
-	/** Gets an array of bitmaps relevant to the passed context entry. 
-	
-	The bitmaps within the array should be representations of the same bitmap at various sizes. 
-	
-	The aStateFlags argument indicates the user interface state, for example, 
-	"open", of the entry. 
-	
-	Requirements:
-	
-	Implementations should check the type of the context, using TMsvEntry::iType::iUid, 
-	and the passed state, and return an appropriate bitmap array.
-	
-	@param aContext Context entry to return the icons for. 
-	@param aStateFlags Flasgs indicating the user interface state of the entry. 
-	@return Bitmap array for the given context.. */
-	virtual const CBitmapArray& ContextIcon(const TMsvEntry& aContext, TInt aStateFlags) const = 0;
-	//
-	// --- MTM-Specific function information (e.g. for dynamically-added menu items) ---
-	IMPORT_C const CArrayFix<TMtmUiFunction>& MtmSpecificFunctions() const;
-	IMPORT_C TBool FunctionRecognised(TInt aFunctionId) const;
-	//
-	// --- Provide context-specific function information ---
-	/** Tests if an entry can be created as a child.
-	
-	@param aParent The entry under which aNewEntry should be created. 
-	@param aNewEntry The entry to which the operation applies. 
-	@param aReasonResourceId On return, a resource string ID or 0. 
-	@return ETrue, if the operation is appropriate on the entry; 
-	EFalse, if the operation is NOT appropriate on the entry. */
-	virtual TBool CanCreateEntryL(const TMsvEntry& aParent, TMsvEntry& aNewEntry, TInt& aReasonResourceId) const = 0;
-	/** Tests if a delete operation is supported.
-	
-	@param aContext The entry to which the operation applies. 
-	@param aReasonResourceId On return, a resource string ID or 0. 
-	@return ETrue, if the operation is appropriate on the entry; 
-	EFalse, if the operation is NOT appropriate on the entry. */
-	virtual TBool CanDeleteFromEntryL(const TMsvEntry& aContext, TInt& aReasonResourceId) const = 0;
-	/** Tests if the entry can be undeleted.
-	
-	@param aContext The entry to which the operation applies. 
-	@param aReasonResourceId On return, a resource string ID or 0. 
-	@return ETrue, if the operation is appropriate on the entry; 
-	EFalse, if the operation is NOT appropriate on the entry. */
-	IMPORT_C virtual TBool CanUnDeleteFromEntryL(const TMsvEntry& aContext, TInt& aReasonResourceId) const;
-	/** Tests if the service entry can be deleted.
-	
-	@param aService The service entry to which the operation applies. 
-	@param aReasonResourceId On return, a resource string ID or 0. 
-	@return ETrue, if the operation is appropriate on the entry; 
-	EFalse, if the operation is NOT appropriate on the entry. */
-	virtual TBool CanDeleteServiceL(const TMsvEntry& aService, TInt& aReasonResourceId) const = 0;
-	/** Tests if an entry can be replied to.
-	
-	@param aContext The entry to which the operation applies. 
-	@param aReasonResourceId On return, a resource string ID or 0. 
-	@return ETrue, if the operation is appropriate on the entry; 
-	EFalse, if the operation is NOT appropriate on the entry. */
-	virtual TBool CanReplyToEntryL(const TMsvEntry& aContext, TInt& aReasonResourceId) const = 0;
-	/** Tests if an entry can be forwarded.
-	
-	@param aContext The entry to which the operation applies. 
-	@param aReasonResourceId On return, a resource string ID or 0. 
-	@return ETrue, if the operation is appropriate on the entry; 
-	EFalse, if the operation is NOT appropriate on the entry. */
-	virtual TBool CanForwardEntryL(const TMsvEntry& aContext, TInt& aReasonResourceId) const = 0;
-	/** Tests if the entry can be edited.
-	
-	@param aContext The entry to which the operation applies. 
-	@param aReasonResourceId On return, a resource string ID or 0. 
-	@return ETrue, if the operation is appropriate on the entry; 
-	EFalse, if the operation is NOT appropriate on the entry. */
-	virtual TBool CanEditEntryL(const TMsvEntry& aContext, TInt& aReasonResourceId) const = 0;
-	/** Tests if an entry can be viewed.
-	
-	@param aContext The entry to which the operation applies. 
-	@param aReasonResourceId On return, a resource string ID or 0. 
-	@return ETrue, if the operation is appropriate on the entry; 
-	EFalse, if the operation is NOT appropriate on the entry. */
-	virtual TBool CanViewEntryL(const TMsvEntry& aContext, TInt& aReasonResourceId) const = 0;
-	/** Tests if an entry can be opened.
-	
-	@param aContext The entry to which the operation applies. 
-	@param aReasonResourceId On return, a resource string ID or 0. 
-	@return ETrue, if the operation is appropriate on the entry; 
-	EFalse, if the operation is NOT appropriate on the entry. */
-	virtual TBool CanOpenEntryL(const TMsvEntry& aContext, TInt& aReasonResourceId) const = 0;
-	/** Tests if a close operation is supported.
-	
-	@param aContext The entry to which the operation applies. 
-	@param aReasonResourceId On return, a resource string ID, or 0 if operation 
-	is supported. 
-	@return ETrue, if the operation is appropriate on the entry; 
-	EFalse, if the operation is NOT appropriate on the entry. */
-	virtual TBool CanCloseEntryL(const TMsvEntry& aContext, TInt& aReasonResourceId) const = 0;
-	/** Tests if a copy from or move to operation is supported.
-	
-	@param aContext The entry to which the operation applies. 
-	@param aReasonResourceId On return, a resource string ID or 0. 
-	@return ETrue, if the operation is appropriate on the entry; 
-	EFalse, if the operation is NOT appropriate on the entry. */
-	virtual TBool CanCopyMoveToEntryL(const TMsvEntry& aContext, TInt& aReasonResourceId) const = 0;
-	/** Tests whether a copy from or move from operation is supported.
-	
-	@param aContext The entry to which the operation applies. 
-	@param aReasonResourceId On return, a resource string ID or 0. 
-	@return ETrue, if the operation is appropriate on the entry; 
-	EFalse, if the operation is NOT appropriate on the entry. */
-	virtual TBool CanCopyMoveFromEntryL(const TMsvEntry& aContext, TInt& aReasonResourceId) const = 0;
-	/** Tests if the current operation on the entry can be cancelled.
-	
-	@param aContext The entry to which the operation applies. 
-	@param aReasonResourceId On return, a resource string ID, or 0 if operation 
-	is supported. 
-	@return ETrue, if the operation is appropriate on the entry; 
-	EFalse, if the operation is NOT appropriate on the entry. */
-	virtual TBool CanCancelL(const TMsvEntry& aContext, TInt& aReasonResourceId) const = 0;
-	//
-	// --- RTTI ---
-	/** Tests if an MTM-specific operation is appropriate to the specified entry. The 
-	operation specified must have been obtained from a call to MtmSpecificFunctions(). 
-		
-	It is intended that client applications will use this function to select dynamically 
-	the MTM-specific user interface features available dependent on the entry 
-	currently selected within the application.
-	
-	Requirements:
-	
-	Implementations should check the type of the context, using TMsvEntry::iType::iUid, 
-	and use any other information required available from the context, to determine 
-	if the operation is supported.
-	
-	@param aOperationId ID of operation to query. 
-	@param aContext The entry to which the operation applies. 
-	@return KErrNone: operation is appropriate to User Interface MTM and entry. 
-	Other: if the operation is not appropriate on the entry, then this is the 
-	ID of a string in the UI Data MTM's resource file that explains why not. */
-	virtual TInt OperationSupportedL(TInt aOperationId, const TMsvEntry& aContext) const = 0; // returns 0 if operation *IS* supported, otherwise a resource ID for the reason text
-	/** Queries if the MTM supports a particular capability, specified by a UID. 
-	
-	Requirements:
-	
-	Implementations should check aCapability for the standard capability values 
-	and return a suitable response in aResponse. If aFunctionId is unknown, return 
-	KErrNotSupported.
-	
-	@param aFunctionId UID of capability to be queried 
-	@param aResponse Response value. The format of the response varies according 
-	to the capability. 
-	@return KErrNone: aFunctionId is a recognised value and a response is returned 
-	KErrNotSupported: aFunctionId is not a recognised value */
-	virtual TInt QueryCapability(TUid aFunctionId, TInt& aResponse) const = 0;
-	/** Provides status text for the sending state of the entry.
-	
-	@param aContext Entry to query
-	@return Descriptor containing status text. */
-	virtual HBufC* StatusTextL(const TMsvEntry& aContext) const = 0;
-
-protected:
-	// --- Construction ---
-	IMPORT_C CBaseMtmUiData(CRegisteredMtmDll& aRegisteredMtmDll);
-	IMPORT_C void ConstructL();
-	/** Initialises bitmaps and function information. 
-	
-	Client applications do not use this function. It is relevant only to implementers of derived classes.
-	
-	Requirements:
-	
-	This function is called by the base class ConstructL() function. Implementations 
-	should provide this function to:
-	
-	1. insert MTM-specific icon bitmap arrays into the iIconArrays array data member 
-	
-	2. insert MTM-specific operation information into the iMtmSpecificFunctions array 
-	data member */
-	virtual void PopulateArraysL() = 0; // Should populate iCapabilities, iMtmSpecificFunctions and iIconArrays
-	/** Gets the resource file name. 
-	
-	Client applications do not use this function. It is relevant only to implementers of derived classes.
-	
-	Requirements:
-	
-	Each UI Data MTM can have a resource file associated with it. Implementations 
-	should set aFilename to the full path and name of this resource file. The 
-	function is called by CBaseMtmUiData::ConstructL(), which then loads the resource 
-	file.
-	
-	@param aFileName Filename buffer to be filled with the resource file path 
-	and name */
-	virtual void GetResourceFileName(TFileName& aFileName) const = 0;
-	//
-	// --- Utility ---
-	IMPORT_C void ReadFunctionsFromResourceFileL(TInt aResourceId);// Up to clients to call this if necessary
-	IMPORT_C void CreateBitmapsL(TInt aNumZoomStates, const TDesC& aBitmapFile, TInt aStartBitmap, TInt aEndBitmap);
-	CFbsBitmap* CreateBitmapL(const TDesC& aFileName, TInt aId) const;
-
-	// Method used for extension: called by non virtual methods that need 
-	// to have a polymorphic behaviour.
-	IMPORT_C virtual TAny* GetInterface(TUid aUid);
-
-protected:
-	// --- Data ---
-	/** Control environment object. It is set by the constructor. */
-	CCoeEnv*									iCoeEnv;
-	/** The array that stores the arrays of icon bitmaps for the UI Data MTM. Items 
-	are added to the array by PopulateArraysL(). */
-	CArrayPtr<CBitmapArray>*					iIconArrays;
-	/** The array that stores MTM-specific function information for the UI Data MTM. 
-	Items are added to the array by ReadFunctionsFromResourceFileL(). */
-	CArrayFix<TMtmUiFunction>*					iMtmSpecificFunctions;
-
-private:
-	// --- Data ---
-	TInt										iResourceFileOffset;
-	CRegisteredMtmDll&							iRegisteredMtmDll;  // Required in order to call ReleaseLibrary()
-
-	// Extra data member to allow for future extensions
-	TAny* iExtensionData;
-	};
-
-
-#endif // __MTUDBAS_H__