diff -r d508aa856878 -r d30183af6ca6 contacts_plat/contacts_ui_extensions_api/inc/cntuicontactcardextension.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/contacts_plat/contacts_ui_extensions_api/inc/cntuicontactcardextension.h Mon Aug 23 16:06:28 2010 +0300 @@ -0,0 +1,115 @@ +/* + * 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: + * + */ + +#ifndef CNTUICONTACTCARDEXT_H +#define CNTUICONTACTCARDEXT_H + +#include +#include +#include +#include +#include + +QTM_USE_NAMESPACE + + +/** + * Represents one extension action. + */ +class CntUiContactCardExtAction +{ +public: + + /// First line of text on the button. + virtual QString firstTextLine() const = 0; + + /// Second line of text on the button. + virtual QString secondTextLine() const = 0; + + /// Large icon that appears on the left. + virtual const QIcon icon() const = 0; + + /** + * The position of the action button is set based on detail type. + * If the detail is empty (dummy detail) then the button appears at the end. + */ + virtual const QContactDetail& detailUsedForChoosingPosition() const = 0; + +protected: + virtual ~CntUiContactCardExtAction() {} +}; + + +/** + * UI extension class for extending Contact Card and MyCard + */ +class CntUiContactCardExtension : public QObject +{ +public: + CntUiContactCardExtension() {} + + /** + * Prepare the data that will be queried by other methods. + * \param aContact The contact which is being displayed. + * \param aMyCard Tells whether the contact is my contact. + */ + virtual void prepare( QContact& aContact, bool aMyCard ) = 0; + + /** + * Gives the action count. + * The prepare() will be called before this. + */ + virtual int actionCount() const = 0; + + /** + * Gives an action. + * The prepare() will be called before this. + */ + virtual const CntUiContactCardExtAction& actionAt( int aIndex ) const = 0; + + + /** + * Allows the plugin to handle the short pressing. + * \param aIndex The index of the action in the scope of this extension. + * Should be implemented synchronously. + */ + virtual void handleShortPress( int aIndex ) = 0; + +// TODO Pending UX comments on this. +// virtual void handleLongPress( int aIndex ) = 0; + +public: + /// For extending this interface later on without BC break. + virtual void* ContactCardExtensionExtension( + int /*aExtensionId*/ ) { return NULL; } + +signals: + + /** + * Plugin should re-implement this signal and emit it + * once extension data changes. + * Note that an action should not disappear. It can change, but not disappear. + */ + void contactCardExtensionDataChanged( QList aChangedActionIndexes ); + +protected: + // prevent deleting by client + virtual ~CntUiContactCardExtension() {} +}; + +#endif //CNTUICONTACTCARDEXT_H +