photosgallery/viewframework/views/metadatadialog/inc/glximgvwrmetadatacontainer.h
changeset 0 4e91876724a2
child 32 78ad99c24f08
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/photosgallery/viewframework/views/metadatadialog/inc/glximgvwrmetadatacontainer.h	Thu Dec 17 08:45:44 2009 +0200
@@ -0,0 +1,156 @@
+/*
+* 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: 
+*
+*/
+/*
+ * glximgvwrmetadatacontainer.h
+ *
+ *  Created on: Oct 22, 2009
+ *      Author: sourbasu
+ */
+
+#ifndef GLXIMGVWRMETADATACONTAINER_H_
+#define GLXIMGVWRMETADATACONTAINER_H_
+
+
+#include <glxmedialist.h>                   //media list
+#include <alf/alfenv.h>
+#include <aknsettingitemlist.h>     // for CAknSettingItem
+#include "mglxmedialistobserver.h"
+#include <glxattributecontext.h>  
+
+
+//FORWARD DECLARATION
+class MGlxMediaList;
+class CGlxDetailsMulModelProvider;
+class CGlxCommandHandlerAddToContainer;
+
+#include "glxmedia.h"
+
+// CLASS DECLARATION
+/**
+ * CGlxImgVwrMetadataContainer
+ * 
+ * Metadata Container implementation
+ */
+NONSHARABLE_CLASS( CGlxImgVwrMetadataContainer ) : public CAknSettingItemList,
+public MGlxMediaListObserver
+
+    {
+public:  // Constructors and destructor
+    void ViewDynInitMenuPaneL(TInt aResourceId, CEikMenuPane *aMenuPane);
+    /**
+    * Symbian standard tow phase construction.Construct object of CGlxImgVwrMetadataContainer object.
+    * 
+    * @param aRect rect for control
+    * @param aMediaList media list
+    * @return Metadata container object
+    */
+    static CGlxImgVwrMetadataContainer* NewL( const TRect& aRect,const TDesC& aUri);
+    
+    /**
+    * Symbian standard tow phase construction.Construct object of CGlxImgVwrMetadataContainer object.
+    * 
+    * @param aRect rect for control
+    * @param aMediaList media list
+    * @return Metadata container object
+    */  
+    static CGlxImgVwrMetadataContainer* NewLC( const TRect& aRect,const TDesC& aUri);
+    
+    /**
+    * Destructor
+    */       
+    ~CGlxImgVwrMetadataContainer();
+
+public: 
+        
+   // @ref CAknSettingItemList::CreateSettingItemL
+   CAknSettingItem* CreateSettingItemL(TInt aIdentifier);
+   
+   // @ref CAknSettingItemList::HandleListBoxEventL
+   void HandleListBoxEventL(CEikListBox* aListBox,
+                                 TListBoxEvent aEventType);
+   void HandleListboxChangesL();
+   
+   //Enable disble the options based on the current selected item
+   TBool IsItemModifiable();
+   //Change MSK
+    void ChangeMskL();
+    //Enable marquee support
+    void EnableMarqueingL();
+    
+    
+    
+    
+public:
+        //MedialistObserver APIS
+        void HandleItemAddedL( TInt aStartIndex, TInt aEndIndex, MGlxMediaList* aList );
+        void HandleItemRemovedL( TInt aStartIndex, TInt aEndIndex, MGlxMediaList*/* aList */);
+        void HandleAttributesAvailableL( TInt aItemIndex, 
+        const RArray<TMPXAttribute>& aAttributes, MGlxMediaList* aList );    
+        void HandleFocusChangedL( NGlxListDefs::TFocusChangeType aType, 
+        TInt aNewIndex, TInt aOldIndex, MGlxMediaList* aList );
+        void HandleItemSelectedL(TInt aIndex, TBool aSelected, MGlxMediaList* aList );
+        void HandleMessageL( const CMPXMessage& aMessage, MGlxMediaList* aList );
+        void HandleError( TInt aError );
+        void HandleCommandCompleteL( CMPXCommand* aCommandResult, TInt aError, 
+        MGlxMediaList* aList );
+        void HandleMediaL( TInt aListIndex, MGlxMediaList* aList );
+        void HandleItemModifiedL( const RArray<TInt>& aItemIndexes, MGlxMediaList* aList );
+        void HandleErrorL();
+        MGlxMediaList& MediaList();
+        void HandleCommandCompleteL(TAny* aSessionId, 
+                CMPXCommand* /*aCommandResult*/, TInt aError, MGlxMediaList* aList);
+
+private:
+
+        /**
+        * C++ constructor.
+        * 
+        * @param aMediaList media list
+        */
+        CGlxImgVwrMetadataContainer(const TDesC& aUri);
+        
+        /**
+        * Symbian 2nd phase constructor
+        * @param aRect rect for this control
+        */      
+        void ConstructL( const TRect& aRect);
+        void CreateMediaListForSelectedItemL();
+        void SetAttributesL(TMPXAttribute attribute);
+        void EditItemL(TInt aIndex, TBool aCalledFromMenu);
+        void SetNameDescriptionL(TInt aItem);
+        void SetDurationLIicenseItemVisibilityL();
+        TBool IsLicenseItem();
+   
+private:    //data
+    
+        //Flag to check if the item is a video.
+        TBool iVideo;
+        //To check if marquee is enabled.
+        TBool iMarquee;
+        //to set visible license items based on the Item.
+        TBool iSetVisible;
+        RBuf iTextSetter;
+        const TDesC& iUri ;
+        MGlxMediaList* iItemMediaList;
+        CGlxAttributeContext* iMainListAttributecontext;
+        TGlxSelectionIterator iSelectionIterator;
+        
+    };
+
+
+
+#endif /* GLXIMGVWRMETADATACONTAINER_H_ */