diff -r d189ee25cf9d -r 3533d4323edc meetingrequest/mrgui/inc/cesmrfieldbuilderinterface.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/meetingrequest/mrgui/inc/cesmrfieldbuilderinterface.h Wed Sep 01 12:28:57 2010 +0100 @@ -0,0 +1,155 @@ +/* +* Copyright (c) 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: Definition for GUI extension interface +* +*/ + + +#ifndef CESMRFIELDBUILDERINTERFACE_H +#define CESMRFIELDBUILDERINTERFACE_H + +#include + +#include "esmrinternaluid.h" +#include "mesmrfieldvalidator.h" +#include "tesmrentryfield.h" +#include "mesmrresponseobserver.h" + +class CESMRField; + +/** + * MESMRFieldBuilder is the interface of the field builder composite. + * All field builder implementations will return only this + */ +class MESMRFieldBuilder + { +public: + /** + * Creates editor field. + * + * @param aValidator - time validator + * @param aField - field to be created + */ + virtual CESMRField* CreateEditorFieldL( + MESMRFieldValidator* aValidator, + TESMREntryField aField ) = 0; + + /** + * Creates viewer field. + * + * @param aResponseObserver - observer to be called when e.g. + * answer is ready to be sent. + * @param aField - field to be created + * @param aResponseReady - NOT IN USE + */ + virtual CESMRField* CreateViewerFieldL( + MESMRResponseObserver* aResponseObserver, + TESMREntryField aField, + TBool aResponseReady ) = 0; + }; + +class MESMRBuilderExtension + { +public: // Destruction + ~MESMRBuilderExtension() {} + +public: + /** + * Put additional flags/checks here if needed + */ + enum TMRCFSMailBoxCapability + { + EMRCFSAttendeeStatus = 0, + EMRCFSResponseDontSend, + EMRCFSRemoveFromCalendar, + EMRCFSSupportsAttachmentsInMR + }; + + /** + * Check if a cfsmailboxflag is set + */ + virtual TBool CFSMailBoxCapabilityL( TMRCFSMailBoxCapability aCapa ) = 0; + + /** + * Check if a cfsmailboxflag is set + */ + virtual TBool CFSMailBoxCapabilityL( + const TDesC& aEmailAddress, + TMRCFSMailBoxCapability aCapa ) = 0; + + /** + * Checks, whenter meeting request can be originated or not. + * @return ETrue, if MR can be originated, EFalse otherwise. + */ + virtual TBool MRCanBeOriginateedL() = 0; + }; + +/** + * MESMRFieldBuilder is the interface of the field builder composite. + * All field builder implementations will return only this + */ +class CESMRFieldBuilderInterface : public CBase + { +public: + /** + * Create specific implementation + */ + inline static CESMRFieldBuilderInterface* CreatePluginL( + TUid aImplementationUid ); + + /** + * Destructor + */ + inline virtual ~CESMRFieldBuilderInterface(); + + /** + * return field builder to caller, implemented in all plugins + */ + virtual MESMRFieldBuilder* FieldBuilderL() = 0; + + /** + * extends the ecom interface + */ + virtual TAny* ExtensionL( TUid aExtensionUid ) = 0; + +private: + // The ECom destructor key identifier + TUid iDestructorIdKey; + }; + +// ----------------------------------------------------------------------------- +// CESMRFieldBuilderInterface::CreatePluginL +// ----------------------------------------------------------------------------- +// +inline CESMRFieldBuilderInterface* CESMRFieldBuilderInterface::CreatePluginL( + TUid aImplementationUid ) + { + TAny* implementation = + REComSession::CreateImplementationL( aImplementationUid, + _FOFF( CESMRFieldBuilderInterface, + iDestructorIdKey ) ); + return reinterpret_cast(implementation); + } + +// ----------------------------------------------------------------------------- +// CESMRFieldBuilderInterface::~CESMRFieldBuilderInterface +// ----------------------------------------------------------------------------- +// +inline CESMRFieldBuilderInterface::~CESMRFieldBuilderInterface() + { + REComSession::DestroyedImplementation( iDestructorIdKey ); + } + + +#endif // CESMRFIELDBUILDERINTERFACE_H