photosgallery/viewframework/views/metadatadialog/inc/glximgvwrmetadatacontainer.h
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Wed, 13 Oct 2010 14:32:09 +0300
branchRCL_3
changeset 75 01504893d9cb
parent 60 5b3385a43d68
permissions -rw-r--r--
Revision: 201039 Kit: 201041

/*
* 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>  
#include <glximageviewermanager.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();

        /**
         * Create Image Viewer manager Instance
         */
        void CreateImageViewerInstanceL();
        
        /**
         * Delete Image Viewer manager Instance
         */
        void DeleteImageViewerInstance();

   
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;
        // For image viewer, not own
        CGlxImageViewerManager* iImageViewerInstance;
    };



#endif /* GLXIMGVWRMETADATACONTAINER_H_ */