omadrm/drmplugins/drmromtm/uiData/inc/RoMtmDat.h
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Fri, 16 Apr 2010 15:14:55 +0300
changeset 23 493788a4a8a4
parent 0 95b198f216e5
permissions -rw-r--r--
Revision: 201011 Kit: 201015

/*
* Copyright (c) 2002-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:  Implementation of Rights Object MTM UI Data
*
*/


#ifndef RIGHTSOBJECTMTMUIDATA_H
#define RIGHTSOBJECTMTMUIDATA_H

//  INCLUDES
#if !defined(__MSVSTD_H__)
#include <MSVSTD.H>
#endif

#if !defined(__MTUDBAS_H__)
#include <mtudcbas.h>
#endif

// CONSTANTS
// MACROS
// DATA TYPES
// FUNCTION PROTOTYPES
// FORWARD DECLARATIONS
class CRightsObjectMtmUiDataSessionObserver;
class CMsvSession;

// CLASS DECLARATION
/**
*   CRightsObjectMtmUiDataSessionObserver
*
*   CMsvSession Observer
*
*  @lib RoMtmDat.lib
*  @since 2.5
*/
class CRightsObjectMtmUiDataSessionObserver : public CBase, public MMsvSessionObserver
    {
    public:

        /**
        * Two-phased constructor.
        */
        static CRightsObjectMtmUiDataSessionObserver* NewL();

        /**
        * Destructor.
        */
        ~CRightsObjectMtmUiDataSessionObserver();

        /**
        * From MMsvSessionObserver
        */
        void HandleSessionEventL(
            TMsvSessionEvent aEvent,
            TAny* aArg1,
            TAny* aArg2,
            TAny* aArg3 );

    private:
        CRightsObjectMtmUiDataSessionObserver();
        void ConstructL();
    };


// CLASS DECLARATION
/**
*   CRightsObjectMtmUiData
*
*  @lib RoMtmDat.lib
*  @since 2.5
*/
class CRightsObjectMtmUiData : public CBaseMtmUiData
    {
    public:
    // Construction, initialisation, and destruction

        /**
        * Two-phased constructor.
        */
        static CRightsObjectMtmUiData* NewL( CRegisteredMtmDll& aRegisteredDll );

        /**
        * Destructor.
        */
        ~CRightsObjectMtmUiData();

        /*************************************
        *
        *       from CBaseMtm
        *
        **************************************/

        // Context-specific information

        /**
        * CanEditEntryL
        * @since 2.5
        *
        * Not supported
        *
        */
        TBool CanEditEntryL( const TMsvEntry& aContext , TInt& aReasonResourceId ) const;

        /**
        * CanViewEntryL
        * @since 2.5
        *
        * @param aContext  The entry to which the operation applies.
        * @param aReasonResourceId  On return, a resource string ID or 0.
        *
        * @return KErrNone: the operation is appropriate on the entry. KErrNotSupported: the operation is not appropriate on the entry.
        */
        TBool CanViewEntryL( const TMsvEntry& aContext , TInt& aReasonResourceId ) const;

        /**
        * CanOpenEntryL
        * @since 2.5
        *
        * @param aContext  The entry to which the operation applies.
        * @param aReasonResourceId  On return, a resource string ID or 0.
        *
        * @return KErrNone: the operation is appropriate on the entry. KErrNotSupported: the operation is not appropriate on the entry.
        */
        TBool CanOpenEntryL( const TMsvEntry& aContext , TInt& aReasonResourceId ) const;

        /**
        * CanCloseEntryL
        * @since 2.5
        *
        * Not supported
        *
        */
        TBool CanCloseEntryL( const TMsvEntry& aContext , TInt& aReasonResourceId ) const;

        /**
        * CanDeleteFromEntryL
        * @since 2.5
        *
        * Not supported
        *
        */
        TBool CanDeleteFromEntryL( const TMsvEntry& aContext , TInt& aReasonResourceId ) const;

        /**
        * CanCopyMoveToEntryL
        * @since 2.5
        *
        * Not supported
        *
        */
        TBool CanCopyMoveToEntryL( const TMsvEntry& aContext , TInt& aReasonResourceId ) const;

        /**
        * CanCopyMoveFromEntryL
        * @since 2.5
        *
        * Not supported
        *
        */
        TBool CanCopyMoveFromEntryL( const TMsvEntry& aContext , TInt& aReasonResourceId ) const;

        /**
        * CanReplyToEntryL
        * @since 2.5
        *
        * Not supported
        *
        */
        TBool CanReplyToEntryL( const TMsvEntry& aContext , TInt& aReasonResourceId ) const;

        /**
        * CanForwardEntryL
        * @since 2.5
        *
        * Not supported
        *
        */
        TBool CanForwardEntryL( const TMsvEntry& aContext , TInt& aReasonResourceId ) const;

        /**
        * CanCreateEntryL
        * @since 2.5
        *
        * Not supported
        *
        */
        TBool CanCreateEntryL( const TMsvEntry& aContext , TMsvEntry& aNewEntry , TInt& aReasonResourceId ) const;

        /**
        * CanDeleteServiceL
        * @since 2.5
        *
        * Not supported
        *
        */
        TBool CanDeleteServiceL( const TMsvEntry& aService , TInt& aReasonResourceId ) const;

        /**
        * CanCancelL
        * @since 2.5
        *
        * Not supported
        *
        */
        TBool CanCancelL( const TMsvEntry& aContext , TInt& aReasonResourceId ) const;

    // Context-specific icons

        /**
        * ContextIcon
        * @since 2.5
        *
        * @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..
        */
        const CBitmapArray& ContextIcon( const TMsvEntry& aContext , TInt aStateFlags ) const;

        /**
        * GetResourceFileName
        * @since 2.5
        *
        * @param aFileName Filename buffer to be filled with the resource file path and name
        */
        void GetResourceFileName( TFileName& aFileName ) const;

        /**
        * PopulateArraysL
        * @since 2.5
        *
        */
        void PopulateArraysL();


        /**
        * StatusTextL
        * @since 2.5
        *
        * Not supported
        *
        */
        HBufC* StatusTextL( const TMsvEntry& aContext ) const;


    // MTM-specific functionality

        /**
        * OperationSupportedL
        * @since 2.5
        *
        * Not supported
        *
        */
        TInt OperationSupportedL(
            TInt aOperationId ,
            const TMsvEntry& aContext ) const;

        /**
        * QueryCapability
        * @since 2.5
        *
        * @param aCapability UID of capability to be queried
        * @param aResponse Response value. The format of the response varies
        * according to the capability
        *
        * @return KErrNone if aCapability is a recognised value and a response is
        * returned KErrNotSupported if aCapability is not a recognised value
        */
        TInt QueryCapability( TUid aCapability , TInt& aResponse ) const;


    protected:
        /**
        * Creates skinned icons. Fallbacks are normal icons
        * @since Series60 2.8
        * @param aNumZoomStates: amount of elements in vector
        *        ( bitmap & bitmapmask )
        */
        void CreateSkinnedBitmapsL( TInt aNumZoomStates );

    private:
        void ConstructL();

        CRightsObjectMtmUiData( CRegisteredMtmDll& aRegisteredDll );

        void SetDescriptionL( const TMsvEntry& aContext ) const;


    public:     // Data
    protected:  // Data
    private:    // Data

        CRightsObjectMtmUiDataSessionObserver*  iObserver;
        CMsvSession*                            iSession;

    public:     // Friend classes
    protected:  // Friend classes
    private:    // Friend classes

    };

#endif      // RIGHTSOBJECTMTMUIDATA_H

// End of File