photosgallery/viewframework/dataprovider/inc/glxdetailsboundcommand.h
changeset 0 4e91876724a2
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/photosgallery/viewframework/dataprovider/inc/glxdetailsboundcommand.h	Thu Dec 17 08:45:44 2009 +0200
@@ -0,0 +1,533 @@
+/*
+* Copyright (c) 2008-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:    Command Binding Class
+*
+*/
+
+
+
+
+#ifndef _GLXDETAILSBOUNDCOMMAND_H_
+#define _GLXDETAILSBOUNDCOMMAND_H_
+
+#include <eikmenup.h>                   // helper class for extending CEikMenuPaneItem without breaking binary
+#include <mglxmedialistprovider.h>      // Interface to allow a class that owns a media list to share access to it
+
+class CGlxCommandHandlerAddToContainer; // Command handler for adding to a container
+class CAknAppUi;
+/** Error Id EMPY-7MKDHP **/ 
+class MGlxMetadataDialogObserver ;		// call back to  details dailog
+
+/**
+ * MGlxBoundCommand
+ */    
+class MGlxBoundCommand
+    {
+public:
+	/**
+ 	 * Destructor
+	 */
+    virtual ~MGlxBoundCommand() {};
+    
+   	/**
+ 	 * OfferCommandL
+ 	 * Handles user commands
+ 	 * @param aCommandId the command need to handle
+	 */
+    virtual TBool OfferCommandL( TInt aCommandId , MGlxMediaList& aMedialist) = 0;
+    
+   	/**
+ 	 * InitMenuL
+ 	 * Initialises a menu pane
+ 	 * @param aMenu representation of the menu pane
+	 */
+    virtual void InitMenuL( CEikMenuPane& aMenu ) const = 0;
+    
+    /**
+     * HideLocationMenuItem
+     * Hides Location Menu option
+     * @param aMenu representation of the menu pane
+     */
+    virtual void HideLocationMenuItem( CEikMenuPane& aMenu ) const = 0;
+
+    
+    /**
+    * Close the MGlxBoundCommand object.
+    */ 
+    virtual void Close() = 0;
+    
+    /**
+     * Changes the Middle softkey command.
+     */ 
+    virtual void ChangeMskL() = 0;
+
+    /**
+     * Sets the Dailogs Observer
+     */
+    /** Error Id EMPY-7MKDHP **/ 
+    virtual void SetDetailsDailogObserver( MGlxMetadataDialogObserver& aObserver ) = 0;
+
+    };
+
+/**
+ * CGlxTitleBoundCommand
+ */    
+NONSHARABLE_CLASS( CGlxTitleBoundCommand ) : public CBase, public MGlxBoundCommand
+	{
+public:
+
+	/**
+ 	 * Two phase construction
+	 */
+	IMPORT_C static CGlxTitleBoundCommand* NewL();
+
+	/**
+	 * Two phase construction
+	 */
+	static CGlxTitleBoundCommand* NewLC();
+	
+	/**
+	* Destructor
+	*/
+	~CGlxTitleBoundCommand();
+private:
+	// From MGlxBoundCommand
+	TBool OfferCommandL( TInt aCommandId ,MGlxMediaList& aMedialist);
+	void InitMenuL( CEikMenuPane& aMenu ) const;
+	void HideLocationMenuItem( CEikMenuPane& aMenu ) const;
+	void Close();
+	void ChangeMskL();
+   	/**
+    * SetDetailsDailogObserver
+    * @param aObserver details dailog observer
+    */
+    /** Error Id EMPY-7MKDHP **/
+	void SetDetailsDailogObserver( MGlxMetadataDialogObserver& aObserver );
+    /**
+    * ModifyTitleL
+    * @param aData new title to be modified
+    */  
+    void ModifyTitleL(const TDesC& aData );
+
+private://data
+
+	MGlxMediaList* iMedialist;
+	
+	};
+ 
+/**
+ * CGlxTagsBoundCommand
+ */	   	
+NONSHARABLE_CLASS( CGlxTagsBoundCommand ) : public CBase, public MGlxBoundCommand, public MGlxMediaListProvider
+	{
+public:
+
+	/**
+	 * Two phase construction
+	 */
+	IMPORT_C static CGlxTagsBoundCommand* NewL();
+	
+	/**
+	 * Two phase construction
+	 */
+	static CGlxTagsBoundCommand* NewLC();
+	
+	/**
+	*ConstructL
+	*/
+	void ConstructL();
+	
+	/**
+	* Destructor
+	*/
+	~CGlxTagsBoundCommand();
+	
+	/**
+	*SetMediaList
+	*@param aMedialist medialist
+	*/
+	void SetMediaList(MGlxMediaList* aMedialist);
+	
+	//From MGlxMediaListProvider
+	 MGlxMediaList& MediaList();
+private:
+	// From MGlxBoundCommand
+	TBool OfferCommandL( TInt aCommandId, MGlxMediaList& aMedialist);
+	void InitMenuL( CEikMenuPane& aMenu ) const;
+   void HideLocationMenuItem( CEikMenuPane& aMenu ) const;
+	void Close();
+	void ChangeMskL();
+	/**
+    * SetDetailsDailogObserver
+    * @param aObserver details dailog observer
+    */
+    /** Error Id EMPY-7MKDHP **/
+	void SetDetailsDailogObserver( MGlxMetadataDialogObserver& aObserver );
+private:
+	CGlxCommandHandlerAddToContainer* 	iAddToTag; //own
+	MGlxMediaList* iMedialist;
+	};	
+ 
+/**
+ * CGlxDescriptionBoundCommand
+ */
+NONSHARABLE_CLASS( CGlxDescriptionBoundCommand ) : public CBase, public MGlxBoundCommand
+	{
+public:
+
+	/**
+	 * Two phase construction
+	 */
+	IMPORT_C static CGlxDescriptionBoundCommand* NewL();
+	
+	/**
+	 * Two phase construction
+	 */
+	static CGlxDescriptionBoundCommand* NewLC();
+	
+	/**
+	* Destructor
+	*/
+	~CGlxDescriptionBoundCommand();
+private:
+	// From MGlxBoundCommand
+	TBool OfferCommandL( TInt aCommandId , MGlxMediaList& aMedialist);
+	void InitMenuL( CEikMenuPane& aMenu ) const;
+    void HideLocationMenuItem( CEikMenuPane& aMenu ) const;	
+	void Close();
+	void ChangeMskL();
+	/**
+    * SetDetailsDailogObserver
+    * @param aObserver details dailog observer
+    */
+    /** Error Id EMPY-7MKDHP **/
+	void SetDetailsDailogObserver( MGlxMetadataDialogObserver& aObserver );
+    /**
+    * ModifyDescriptionL
+    * @param aData new description to be modified
+    */	
+	void ModifyDescriptionL(const TDesC& aData );
+	
+private:
+	MGlxMediaList* iMedialist;
+
+	};
+	
+/**
+ * CGlxLocationBoundCommand
+ */
+NONSHARABLE_CLASS( CGlxLocationBoundCommand ) : public CBase, public MGlxBoundCommand
+	{
+public:
+
+	/**
+	 * Two phase construction
+	 */
+	IMPORT_C static CGlxLocationBoundCommand* NewL();
+
+	/**
+	 * Two phase construction
+	 */
+	static CGlxLocationBoundCommand* NewLC();
+	
+	/**
+	* Destructor
+	*/
+	~CGlxLocationBoundCommand();
+private:
+	// From MGlxBoundCommand
+	TBool OfferCommandL( TInt aCommandId , MGlxMediaList& aMedialist);
+	void InitMenuL( CEikMenuPane& aMenu ) const;
+    void HideLocationMenuItem( CEikMenuPane& aMenu ) const;	
+	void Close();
+	void ChangeMskL();
+	
+    /**
+    * RemoveLocationL
+    * removes location information of an image
+    */  
+	void RemoveLocationL();	
+
+    /**
+    * SetDetailsDailogObserver
+    * Sets detail dailog observer
+    */
+    /** Error Id EMPY-7MKDHP **/
+	void SetDetailsDailogObserver(MGlxMetadataDialogObserver& aObserver) ;
+
+private:
+	MGlxMediaList* iMedialist;
+	
+    /// The AppUI. Not owned
+    CAknAppUi* iAppUi;
+    
+    TBool iOnNaviKeySelect;
+
+    MGlxMetadataDialogObserver*		iDialogObserver ;
+	};
+
+	
+/**
+ * CGlxAlbumsBoundCommand
+ */
+NONSHARABLE_CLASS( CGlxAlbumsBoundCommand ) : public CBase, public MGlxBoundCommand, public MGlxMediaListProvider
+	{
+public:
+
+	/**
+	 * Two phase construction
+	 */
+	IMPORT_C static CGlxAlbumsBoundCommand* NewL();
+	
+	/**
+	 * Two phase construction
+	 */
+	static CGlxAlbumsBoundCommand* NewLC();
+	
+	/**
+	*ConstructL
+	*/
+	void ConstructL();
+	
+	/**
+	* Destructor
+	*/
+	~CGlxAlbumsBoundCommand();
+	
+	/**
+	*SetMediaList
+	*@param aMedialist medialist
+	*/
+	void SetMediaList(MGlxMediaList* aMedialist);
+	
+	//From MGlxMediaListProvider
+ 	MGlxMediaList& MediaList();
+
+private:
+	// From MGlxBoundCommand
+	TBool OfferCommandL( TInt aCommandId, MGlxMediaList& aMedialist );
+	void InitMenuL( CEikMenuPane& aMenu ) const;
+    void HideLocationMenuItem( CEikMenuPane& aMenu ) const;	
+	void Close();
+	void ChangeMskL();
+	/**
+    * SetDetailsDailogObserver
+    * @param aObserver details dailog observer
+    */
+	/** Error Id EMPY-7MKDHP **/
+	void SetDetailsDailogObserver( MGlxMetadataDialogObserver& aObserver );
+private:
+	CGlxCommandHandlerAddToContainer* 	iAddToAlbum; //own
+	MGlxMediaList* iMedialist;
+
+	};
+	
+	
+/**
+ * CGlxResolutionBoundCommand
+ */
+NONSHARABLE_CLASS( CGlxResolutionBoundCommand ) : public CBase, public MGlxBoundCommand
+	{
+public:
+	/**
+	 * Two phase construction
+	 */
+	IMPORT_C static CGlxResolutionBoundCommand* NewL();
+
+	/**
+	 * Two phase construction
+	 */
+	static CGlxResolutionBoundCommand* NewLC();
+
+	/**
+	* Destructor
+	*/
+	~CGlxResolutionBoundCommand();
+private:
+	// From MGlxBoundCommand
+	TBool OfferCommandL( TInt /*aCommandId*/ , MGlxMediaList& aMedialist);
+	void InitMenuL( CEikMenuPane& /*aMenu*/ ) const;
+    void HideLocationMenuItem( CEikMenuPane& aMenu ) const;	
+	void Close();
+	void ChangeMskL();
+	/**
+    * SetDetailsDailogObserver
+    * @param aObserver details dailog observer
+    */
+	/** Error Id EMPY-7MKDHP **/
+	void SetDetailsDailogObserver( MGlxMetadataDialogObserver& aObserver );
+	};
+
+/**
+ * CGlxUsageRightsBoundCommand
+ */
+NONSHARABLE_CLASS( CGlxDurationBoundCommand ) : public CBase, public MGlxBoundCommand
+	{
+public:
+	/**
+	 * Two phase construction
+	 */
+	IMPORT_C static CGlxDurationBoundCommand* NewL();
+
+	/**
+	 * Two phase construction
+	 */
+	static CGlxDurationBoundCommand* NewLC();
+	/**
+	* Destructor
+	*/
+	~CGlxDurationBoundCommand();
+
+private:
+	// From MGlxBoundCommand
+	TBool OfferCommandL( TInt /*aCommandId*/ , MGlxMediaList& aMedialist);
+	void InitMenuL( CEikMenuPane& /*aMenu*/ ) const;
+    void HideLocationMenuItem( CEikMenuPane& aMenu ) const;	
+	void Close();
+	void ChangeMskL();
+	/**
+    * SetDetailsDailogObserver
+    * @param aObserver details dailog observer
+    */
+	/** Error Id EMPY-7MKDHP **/
+	void SetDetailsDailogObserver( MGlxMetadataDialogObserver& aObserver );
+	};
+
+
+/**
+ * CGlxUsageRightsBoundCommand
+ */
+NONSHARABLE_CLASS( CGlxUsageRightsBoundCommand ) : public CBase, public MGlxBoundCommand
+	{
+public:
+	/**
+	 * Two phase construction
+	 */
+	IMPORT_C static CGlxUsageRightsBoundCommand* NewL();
+
+	/**
+	 * Two phase construction
+	 */
+	static CGlxUsageRightsBoundCommand* NewLC();
+	
+	/**
+	* SetMediaList
+	* @param aMedialist medialist
+	*/
+	void SetMediaList(MGlxMediaList* aMedialist);
+	
+	/**
+	* MediaList
+	* @return MGlxMediaList main medialist
+	*/
+ 	MGlxMediaList& MediaList();
+ 	
+	/**
+	* Destructor
+	*/
+ 	~CGlxUsageRightsBoundCommand();
+private:
+	// From MGlxBoundCommand
+	TBool OfferCommandL( TInt aCommandId , MGlxMediaList& aMedialist);
+	void InitMenuL( CEikMenuPane& aMenu ) const;
+    void HideLocationMenuItem( CEikMenuPane& aMenu ) const;	
+	void Close();
+	void ChangeMskL();
+	/**
+    * SetDetailsDailogObserver
+    * @param aObserver details dailog observer
+    */
+	/** Error Id EMPY-7MKDHP **/
+	void SetDetailsDailogObserver( MGlxMetadataDialogObserver& aObserver );
+    /**
+     * Launches the DRM view associated with the media.
+     */
+	void LaunchDRMViewL();
+	
+private:
+	MGlxMediaList* iMedialist;
+
+	};
+	
+/**
+ * CGlxDateAndTimeBoundCommand
+ */
+NONSHARABLE_CLASS( CGlxDateAndTimeBoundCommand ) : public CBase, public MGlxBoundCommand
+	{
+public:
+	/**
+	 * Two phase construction
+	 */
+	IMPORT_C static CGlxDateAndTimeBoundCommand* NewL();
+
+	/**
+	 * Two phase construction
+	 */
+	static CGlxDateAndTimeBoundCommand* NewLC();
+
+	/**
+	* Destructor
+	*/
+	~CGlxDateAndTimeBoundCommand();
+private:
+	// From MGlxBoundCommand
+	TBool OfferCommandL( TInt aCommandId , MGlxMediaList& aMedialist);
+	void InitMenuL( CEikMenuPane& aMenu ) const;
+    void HideLocationMenuItem( CEikMenuPane& aMenu ) const;	
+	void Close();
+	void ChangeMskL();
+	/**
+    * SetDetailsDailogObserver
+    * @param aObserver details dailog observer
+    */
+	/** Error Id EMPY-7MKDHP **/
+	void SetDetailsDailogObserver( MGlxMetadataDialogObserver& aObserver );
+	};
+	
+/**
+ * CGlxFileSizeBoundCommand
+ */
+NONSHARABLE_CLASS( CGlxFileSizeBoundCommand ) : public CBase, public MGlxBoundCommand
+	{
+public:
+	/**
+	 * Two phase construction
+	 */
+	IMPORT_C static CGlxFileSizeBoundCommand* NewL();
+
+	/**
+	 * Two phase construction
+	 */
+	static CGlxFileSizeBoundCommand* NewLC();
+
+	/**
+	* Destructor
+	*/
+	~CGlxFileSizeBoundCommand();
+private:
+	// From MGlxBoundCommand
+	TBool OfferCommandL( TInt aCommandId , MGlxMediaList& aMedialist);
+	void InitMenuL( CEikMenuPane& aMenu ) const;
+    void HideLocationMenuItem( CEikMenuPane& aMenu ) const;	
+	void Close();
+	void ChangeMskL();
+	/**
+    * SetDetailsDailogObserver
+    * @param aObserver details dailog observer
+    */
+	/** Error Id EMPY-7MKDHP **/
+	void SetDetailsDailogObserver( MGlxMetadataDialogObserver& aObserver );
+	};
+
+#endif // _GLXDETAILSBOUNDCOMMAND_H_