diff -r 4526337fb576 -r 3eca7e70b1b8 mulwidgets/muldatamodel/inc/mulactionitem.h --- a/mulwidgets/muldatamodel/inc/mulactionitem.h Tue Feb 02 00:28:09 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,178 +0,0 @@ -/* -* Copyright (c) 2007-2008 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: Action Data class - * -*/ - - -#ifndef MULACTIONITEM_H -#define MULACTIONITEM_H - -#include -#include -#include - -#include -#include - -namespace osncore - { - class UString; - } -using namespace osncore; - - -namespace Alf - { - - namespace mulactionitem - { - static const char* const KActionString = "actionItem"; - } - /*! @struct MulActionData - * @brief Class holds the Action Data. Data varies on the basis of the type of - * the action. Individual data items are public and can be accessed - * once ref is obtained to the MulActionData structure. - */ - struct MulActionData - { - /*! @var Contains command id in case of simple command. */ - int mCmdId; - }; - - /*! @struct MulActionData - * @brief Client need to use this class to add action item to data model. - * Action can be of type simple command or a service api. - * More data about the action is also encapsulated within the same class - * Action item will represent one attribute within the visual item. - * - */ - class MulActionItem : public IMulVariantType//public IAlfModelBase - { - public: - - /*! @enum TMulActionType - * Action Type Definition. - */ - enum TMulActionType - { - EActionSimple /*!< Type specifies that the action is a simple command. */ - }; - - public: //Constructor and Destructor - - /** - * C++ constructor - * - * @param aType Action type. Possible options are defined by TMulActionType. - * @param aData Action data based on type of the action. Ownership gets transfered. - * @throw Invalid_argument, In case aData is NULL. - */ - OSN_IMPORT MulActionItem(TMulActionType aType, MulActionData* aData); - - /** - * Copy constructor. - */ - OSN_IMPORT MulActionItem( const MulActionItem& aActionItem ); - - /** - * Destructor. - */ - OSN_IMPORT ~MulActionItem(); - - public: // New methods - - /** - * Set/Change the action type of an action item. - * Default type of the action item is EActionSimple. - * - * @param aType Action type. Possible options are defined by TMulActionType. - */ - OSN_IMPORT void SetActionType( TMulActionType aType = EActionSimple ); - - /** - * Returns the action type of the action item. - * - * @return Action type. Possible options are defined by TMulActionType. - */ - OSN_IMPORT MulActionItem::TMulActionType ActionType() const; - - /** - * Set/Change the action data of an action item. - * Ownership gets transfered. - * - * @param aData Action data based on type of the action. Ownership gets transfered. - * @throw Invalid_argument, In case aData is NULL. - */ - OSN_IMPORT void SetActionData( MulActionData* aData ); - - /** - * Returns the action data of the action item. - * - * @return Action data of the action item. A const reference is returned. - */ - OSN_IMPORT const MulActionData& ActionData() const; - - public: // from IAlfModelBase - - //virtual const UString& Type(); - - public: // from IMulVariantType - - OSN_IMPORT std::auto_ptr< IMulVariantType > Clone(); - - private: // form IAlfVAriantType - - void set(IAlfVariantType& aValue) ; - - Type type() const ; - - bool boolean() const ; - - int integer() const ; - - uint uinteger() const ; - - double real() const ; - - const UString& string() const ; - - IAlfContainer* container() ; - - IAlfMap* map() ; - - IAlfBranch* branch() ; - - IAlfModelBase* customData() ; - - private: // form IAlfVariantType - - private: // Class data - - /*! @var Type of the action data the class instance holds. */ - TMulActionType mType; - - /*! @var Pointer to the action data. Data varies on the basis of the action type - * Class owns the action data. */ - auto_ptr mData; - - /*! @var Pointer to the ActionString data. */ - auto_ptr mActionString; - }; - - } // namespace Alf - -#endif //MULACTIONITEM_H - -//End of file