commondrm/drmrightsmanagerui/inc/DRMRightsMgrDetailsView.h
changeset 0 95b198f216e5
child 18 8a03a285ab14
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/commondrm/drmrightsmanagerui/inc/DRMRightsMgrDetailsView.h	Thu Dec 17 08:52:27 2009 +0200
@@ -0,0 +1,250 @@
+/*
+* Copyright (c) 2003-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:  Declares view for Details class
+*
+*/
+
+
+
+#ifndef DRMRIGHTSMGRDETAILSVIEW_H
+#define DRMRIGHTSMGRDETAILSVIEW_H
+
+// INCLUDES
+#include <aknview.h>
+#include "drmrightsmgrdetailscontainer.h"
+
+// FORWARD DECLARATIONS
+class CDRMRightsMgrDetailsContainer;
+class CDRMRights;
+class DRMCommon;
+
+
+// CLASS DECLARATION
+
+/**
+*  CDRMRightsMgrDetailsView
+*  view class.
+*/
+class CDRMRightsMgrDetailsView : public CAknView
+    {
+    public:
+        // Panic code used in this class
+        enum TDRMUIViewPanicCodes
+            {
+            EDRMUIViewPanicNullPtr = 1      // Failed to create the container
+            };
+
+    public: // Constructors and destructor
+        /**
+        * Constructor.
+        * @param aStartEmbedded ETrue if it has to display details when DRMUI
+        *                       was started embedded.
+        * @param aViewId  ID of the view
+        * @param aContext The context for the help
+        */
+        CDRMRightsMgrDetailsView( TBool aStartEmbedded );
+
+        /**
+        * Symbian OS two-phased constructor
+        * @param aStartEmbedded ETrue if it has to display details when DRMUI
+        *                       was started embedded.
+        * @return DRMUI DetailsView.
+        */
+        static CDRMRightsMgrDetailsView* NewL( TBool aStartEmbedded );
+
+        /**
+        * Symbian OS two-phased constructor
+        * @param aStartEmbedded ETrue if it has to display details when DRMUI
+        *                       was started embedded.
+        * @return DRMUI DetailsView.
+        */
+        static CDRMRightsMgrDetailsView* NewLC( TBool aStartEmbedded );
+
+        /**
+        * Symbian default constructor.
+        * @param aResourceId Title resource
+        */
+        void ConstructL( const TInt aResourceId );
+
+        /**
+        * Destructor.
+        */
+        ~CDRMRightsMgrDetailsView();
+
+
+    public: // from CAknView
+
+        /**
+        * Returns view id.
+        * @return TUid
+        */
+        TUid Id() const;
+
+        /**
+        * Handles the changes of the client rect
+        */
+        void HandleClientRectChange();
+
+
+     public:
+
+        /**
+        * From MEikCommandObserver. Handles commands.
+        * @param aCommand Command to be handled.
+        */
+        void HandleCommandL( TInt aCommand );
+
+
+    protected:
+        /**
+        * From AknView. Called when the view is going to be activated
+        * @param aPrevViewId        Previous View ID. Not used
+        * @param aCustomMessageId   Custom message ID. Not used
+        * @param aCustomMessage     Custom Message. Not used
+        */
+        void DoActivateL(const TVwsViewId& aPrevViewId,
+                        TUid aCustomMessageId,
+                        const TDesC8& aCustomMessage);
+
+        /**
+        * From AknView. Called when the view is going to be deactivated
+        */
+        void DoDeactivate();
+
+        /**
+        * From MEikMenuObserver. Function called by the EIKON framework just
+        * before it displays a menu pane.
+        * @param aResourceId Menu pane resource ID
+        * @param aMenuPane Menu pane pointer
+        */
+        void DynInitMenuPaneL( TInt aResourceId, CEikMenuPane* aMenuPane );
+
+
+    public: // new
+        /**
+        * Refreshes the content of the listbox. Used when it is requested to
+        * view details from a RO, e.g. from Keys not in use view or when DRMUI
+        * is started to show only Details View.
+        * @param aRights               The Rights Object
+        * @param aTitle                Title to be showed in the title pane
+        * @param aFullName             Full name of the object
+        * @param aContentCanBeSent     ETrue if the object can be sent
+        * @param aIndividualConstraint ETrue if object has individual constraint
+        * @param aUsageAllowed         ETrue if object use allowed with current SIM
+        */
+        void RefreshListBoxL( CDRMRights* aRights, const TDesC& aTitle,
+                              const TDesC& aFullName,
+                              const TBool aContentCanBeSent = EFalse,
+                              const TBool aIndividualConstraint = EFalse,
+                              const TBool aUsageAllowed = ETrue );
+
+        /**
+        * Refreshes the content of the listbox. Used when it is requested to
+        * view details from a Windows Media DRM license.
+        * @param aArray                The WM DRM Rights Object array
+        * @param aTitle                Title to be showed in the title pane
+        * @param aFullName             Full name of the object
+        */
+        void RefreshListBoxL(
+            ContentAccess::RStreamablePtrArray<ContentAccess::CRightsInfo>& aArray,
+            const TDesC& aTitle,
+            const TDesC& aFullName );
+
+    private:    // new
+
+        /**
+        * Creates the details view container
+        */
+        void CreateContainerL();
+
+        /**
+        * Instantiates the new details view container. Called by DoActivateL.
+        */
+        void NewContainerL();
+
+        /**
+        * Removes the container
+        */
+        void RemoveContainer();
+
+        /**
+        * Sets the title of the view
+        * @param aTitle Text to be showed as the title
+        */
+        void SetTitlePaneL( const TDesC& aTitle );
+
+        /**
+        * Sets Help context
+        * @return The array of help contexts.
+        */
+        CArrayFix<TCoeHelpContext>* HelpContextL() const;
+
+        /**
+        * Sets MSK id + label
+        */
+        void SetMiddleSoftKeyLabelL( const TInt aResourceId,
+                                     const TInt aCommandId );
+
+        /**
+        * Makes the left softkey visible or invisible
+        * @param aVisible   ETrue when the left softkey should be visible.
+        */
+        void MakeLeftSoftkeyVisible( TBool aVisible );
+
+        void DeleteConstraints();
+
+        /**
+        * Initializes and prepares internal data for refreshing of the
+        * list box.
+        * @param aFullName             Full name of the object
+        * @param aDrmScheme            Tells the DRM protection scheme of the file
+        * @param aRights               Data of a Rights Object
+        * @param aContentCanBeSent     ETrue if the object can be sent
+        * @param aIndividualConstraint ETrue if object has individual constraint
+        * @param aUsageAllowed         ETrue if object use allowed with current SIM
+        */
+        void PrepareRefreshL( const TDesC& aFullName,
+                              const TInt& aDrmScheme,
+                              TRights& aRights,
+                              const TBool& aContentCanBeSent,
+                              const TBool& aIndividualConstraint,
+                              const TBool& aUsageAllowed );
+
+        /**
+        * Finalizes refreshing of the list box
+        * @param aTitle                Title to be showed in the title pane
+        * @param aRights               Data of a Rights Object
+        */
+        void FinalizeRefreshL( const TDesC& aTitle,
+                               const TRights& aRights );
+
+    private: // Data
+
+        // Pointer to the container
+        CDRMRightsMgrDetailsContainer* iContainer;
+
+        // ID of the view
+        TUid iViewId;
+
+        // Data about RO to be shown
+        TDetails iDetails;
+
+        // Tells if it has to display details when DRMUI was started embedded.
+        TBool iStartEmbedded;
+    };
+
+
+#endif
+
+// End of File