profilesservices/MediaFileList/Inc/mediafiledialog.h
branchRCL_3
changeset 24 8ee96d21d9bf
parent 23 8bda91a87a00
child 25 7e0eff37aedb
--- a/profilesservices/MediaFileList/Inc/mediafiledialog.h	Thu Aug 19 10:12:30 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,506 +0,0 @@
-/*
-* Copyright (c) 2007 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:   Header file of mediafiledialog. UI control of mediafilelist
-*
-*/
-
-
-
-
-#ifndef MEDIALFILEDIALOG_H
-#define MEDIALFILEDIALOG_H
-
-
-//  INCLUDES
-#include "mediafiledialogutils.h"
-#include "mediafilepreview.h"
-#include "mediafilehandler.h"
-#include "mediafiledialogstate.h"
-#include "mediafilewaitnote.h"
-
-
-#include <e32base.h>
-#include <aknlists.h>
-#include <AknDialog.h>
-#include <AknInfoPopupNoteController.h> // CAknInfoPopupNoteController
-#include <eikedwin.h>
-#include <aknsfld.h>
-#include <peninputsrveventhandler.h>
-#include <peninputclient.h>
-
-
-// CONSTANTS
-
-// CLASS DECLARATION
-class CMFDialogTest;
-class CMFProtectionHandler;
-class CAknInputBlock;
-class CVideoPreviewDialog;
-
-
-
-/**
-* CMFListHandlerObserver
-* 
-* CMFListHandler uses CMFListHandlerObserver to get listbox item texts.
-*/
-NONSHARABLE_CLASS (CMFListHandlerObserver)
-    {
-    public:
-        virtual TPtrC ConstructListboxItem( TInt aListIndex ) = 0;
-        virtual TInt ListboxItemCount() = 0;
-    };
-
-
-/**
-* CMFListHandler
-* 
-* This class is used as listbox model's item array. Listbox uses it to draw 
-* list items. CMFListHandler gets list item texts from CMediaFileHandler
-* (metadata query result). This way there is no need to copy all list items
-* into listbox model.  
-*/
-NONSHARABLE_CLASS (CMFListHandler) : public MDesCArray
-    {
-    public:
-	    static CMFListHandler* NewL();
-	    ~CMFListHandler();
-    private:	
-	    void ConstructL(void);
-        CMFListHandler();
-
-    public:  // from MDesCArray
-	    TInt MdcaCount() const;
-	    TPtrC16 MdcaPoint(TInt aIndex) const;
-
-    public:
-  	    void SetObserver( CMFListHandlerObserver* aObserver );
-	    static void Panic( TInt aReason );
-	    
-    private:
-	    CMFListHandlerObserver* iObserver;  // does not own
-    };
-
-
-
-
-
-
-/**
-* CMediaFileDialog
-*
-* CMediaFileDialog provides UI for selecting/previewing media files.
-*/
-NONSHARABLE_CLASS (CMediaFileDialog) :  public CAknDialog, 
-                                        public MEikListBoxObserver,
-                                        public MCoeForegroundObserver,
-                                        public CMFListHandlerObserver,
-                                        public MMediaFileHandlerObserver,
-                                        public MMFActiveCallerObserver,
-                                        public MPreviewHandlerObserver,
-                                        public MMediaFileWaitNoteObserver,
-                                        public MAdaptiveSearchTextObserver,  // not used
-                                        public MPenUiActivationHandler
-
-    {
-    
-#ifdef _DEBUG     
-    friend class CMFDialogTest;
-#endif    
-    
-    enum TListOperationType
-        {
-        EAttrSelect,
-        EAttrOpen,
-        EAttrClicked,
-        EAttrDoubleClicked
-        };
-
-    enum TDelayedOperationType
-        {
-        EAttrPreview,
-        EAttrSearch,
-        EAttrChangeCba
-        };
-
-
-    public:// Constructors and destructor
-
-        /**
-        * Two-phased constructor.
-        */
-		static CMediaFileDialog* NewL();
-        
-        /**
-        * Destructor.
-        */
-        virtual ~CMediaFileDialog();
-    
-    private:
-
-        /**
-        * C++ default constructor.
-        */
-        CMediaFileDialog();
-	
-        /**
-        * By default Symbian OS constructor is private.
-        */
-        void ConstructL();
-
-	public:
-		TBool ShowDialogL( TDes* aFileName, TInt* aNullItem,
-		                   TInt* aInfo, TDes* aDesInfo );
-		
-		void SetAttrL( TInt aAttr, TInt aValue );
-		void SetAttrL( TInt aAttr, const TDesC& aValue );
-		void SetAttrL( TInt aAttr, TAny* aValue );
-        void SetNullItemL( const TDesC& aText, const TDesC& aMediaFile,
-	                       TInt aMediaFileType, TInt aIconId );
-		
-	private:
-        /**
-        * From MEikListBoxObserver, called by framework.
-        * @param aListBox.
-        * @param aEventType.
-		* @return None
-        */
-		void HandleListBoxEventL( CEikListBox* aListBox, TListBoxEvent aEventType );
-
-        /**
-        * From the base class.
-		* Called by framework before the dialog is shown.
-        * @param None
-		* @return None
-        */
-        void PreLayoutDynInitL();
-
-        /**
-        * From the base class.
-		* Called by framework before exiting the dialog.
-        * @param aButtonId Button id.
-		* @return ETrue to exit\ EFalse to not to exit.
-        */
-        TBool OkToExitL( TInt aButtonId );
-
-        /**
-        * From the base class.
-		* Called by framework for key event handling.
-        * @param aKeyEvent.
-		* @param aType.
-		* @return Return code.
-        */
-		TKeyResponse OfferKeyEventL( const TKeyEvent& aKeyEvent, TEventCode aType );
-
-        /**
-        * From the base class.
-		* Called by framework when dialog is activated.
-        * @param None.
-		* @return None.
-        */
-		void ActivateL();
-
-		/**
-        * From the base class.
-		* Called by framework before menu is shown.
-        * @param aResourceId Menu resource id.
-		* @param aMenuPane Pointer to the menu.
-        * @return None.
-        */
-		void DynInitMenuPaneL( TInt aResourceID, CEikMenuPane* aMenuPane );
-
-		/**
-		* From the base class.
-		* Handles menu events.
-		* @param  aCommandId Command id.
-		* @return None.
-		*/
-		void ProcessCommandL( TInt aCommandId );
-		
-		/**
-		* From base class.
-		* Called when UI layout changes. 
-		* @param aType.
-    	* @return None.
-		*/
-        void HandleResourceChange( TInt aType );
-        
-        /** SetSizeAndPosition
-        * From CAknDialog.
-        * Sets dialog's size to whole main pane.
-        * @param aSize ignored
-        */
-        void SetSizeAndPosition( const TSize &aSize );
-        
-        SEikControlInfo CreateCustomControlL( TInt aControlType );
-        
-        virtual CCoeControl* ComponentControl( TInt aIndex ) const;
-        virtual TInt CountComponentControls() const;
-        
-
-    private:
-		TBool DoHandleOKL( TInt aAttr );
-		TBool HandleOKL( TInt aAttr );
-		TBool DoHandleBackL();
-		TBool HandleBackL();
-        void SearchL();
-        void DoSearchL();
-        static TInt StartRomScaning( TAny* aInstance );
-        void StartRomScan();
-
-    private:
-        void ResetDialogL( TInt aError);
-		void QueryL( TInt aFolderId, TBool aDatabaseChanged = EFalse );
-		void GetSelectedItemFileName( TInt aListboxIndex, TDes& aFileName );
-		TInt CurrentItemListIndex();
-		void SetIconsL();
-		CAknSearchField* FindBox() const;
-		void ResetFindBoxL();
-		void FindBoxCursorMoveL( TInt aType );
-		void ShowContextMenuL( TInt aResource );
-		void PreviewL( TInt aMediaType );
-		void PreviewVideoL( const TDesC& aFileName );
-		void PreviewNullItemL( TInt aFolderId );
-		void StartPreviewWithDelay();
-		void CancelPreview();
-		void StartSearchWithDelay();
-		TBool IsVideoFile( TInt aCurrentIndex );
-		TBool IsValidVideoFileL( TInt aCurrentIndex, TInt aIntention );
-		TInt MediaTypeIcon( TInt aListboxIndex );
-		TInt StorageTypeIcon( TInt aListboxIndex );
-		void GetListItemText( TInt aListboxIndex, TDes& aText );
-		
-    private:
-		void CheckListboxIndex();
-		void HandleMediaFileChanged();
-		
-    private:
-		void UpdateListBoxL( TBool aRestFindBox = ETrue );
-		void DoUpdateListBoxL( TBool aRestFindBox );
-		void UpdateCbaL( TInt aAttr );
-    	TInt MapAttribute( TInt aFolderId );
-		
-		void ShowErrorNoteL( TInt aError );
-    	void ShowPreviewErrorNoteL( TInt aError, TInt aMediaType );
-		void DeleteMenuItem( CEikMenuPane* aMenuPane, TInt aCommandId );
-		CGulIcon* IconL(TAknsItemID aId, const TDesC& aFileName, TInt aFileIndex,
-			TInt aFileMaskIndex);
-		CGulIcon* IconL(TAknsItemID aId, const TDesC& aFileName, TInt aFileIndex,
-			TInt aFileMaskIndex, TAknsQsnIconColorsIndex colorIndex);
-		static TInt CloseDialog( TAny *aObj );
-		void CloseDialogWithDelayL();
-		
-    private:
-        void ShowWaitNoteL( TBool aDatabaseChanged );
-		void ShowPopupNoteL( const TDesC& aText );
-		void ShowDetailsPopupL();
-		void GetPopupText( CMediaFileData* aData, TDes& aText );
-		TBool MatchFound( const TDesC& aAttribute, const TDesC& aText );
-		
-        /**
-        * Filters the invalid files from media file handler.
-        * @return None.
-        */
-		void FilterInvalidFiles();
-
-    private:
-		static void Panic( TInt aReason );
-
-    private:  // from CMFListHandlerObserver
-        TPtrC ConstructListboxItem( TInt aListboxIndex );
-        TInt ListboxItemCount();
-        
-    private:   // from MPreviewHandlerObserver
-        void HandlePreviewEventL( TInt aEvent, TInt aError );
-
-    private:   // from MMediaFileHandlerObserver
-        void HandleMFEventL( TInt aEvent, TInt aError );
-        
-    private:   // from MMFActiveCallerObserver
-        void HandleActiveCallL( TInt aCallId );
-        
-    private:  //from MCoeControlObserver
-        void HandleControlEventL( CCoeControl* aControl, TCoeEvent aEventType );
-        
-    private:  // from MCoeForegroundObserver
-        void HandleGainingForeground();
-        void HandleLosingForeground();
-        
-    private:  // from MAdaptiveSearchTextObserver
-        void AdaptiveSearchTextChanged( CAknSearchField* aSearchField );
-        
-    private:  // from MPenUiActivationHandler
-        void OnPeninputUiDeactivated();
-        void OnPeninputUiActivated();
-        
-    private:  // MMediaFileWaitNoteObserver
-        void HandleWaitNoteL( TInt aButtonId );
-    
-#ifdef _DEBUG
-    private: // test code
-        CMFDialogTest* iTest;
-#endif
-   
-    private:
-		// listbox
-		CAknSingleGraphicStyleListBox* iListBox;
-
-		// for title and icon handling
-		CStatusPaneHandler* iStatusPaneHandler;
-
-		// long buffer for string handling
-		TBuf<KBufSize256> iBuf;
-		
-		// long buffer for string handling
-		TBuf<KBufSize256> iPopupText;
-		
-		// long buffers for listbox items
-		TBuf<KBufSize128> iListboxItemText1;
-		TBuf<KBufSize256> iListboxItemText2;
-		
-		// text from search field
-		TBuf<KBufSize128> iSearchText;
-	
-		// long buffers for icon file names
-		TFileName iIconFileName;
-		
-		// list box model item array
-		CMFListHandler* iMFListHandler;
-		
-		// dialog state
-		CMediaFileDialogState* iState;
-		
-		// metadata engine wrapper
-		CMediaFileHandler* iMediaFileHandler;
-		
-		// search box
-		CAknSearchField* iFindCtrl;
-		
-		// for generating active object calls
-		CMFActiveCaller* iCaller;
-		CMFActiveCaller* iSearchCaller;
-		
-		// for previewing video files
-		CMFVideoPreviewHandler* iVideoPreviewHandler;
-		
-		// for previewing audio files
-		CMFAudioPreviewHandler* iAudioPreviewHandler;
-        
-		// popup note
-        CAknInfoPopupNoteController* iPopupNote;
-
-		// cancel note in case database query takes more than 2 seconds
-		CMediaFileWaitNote* iWaitNote;
-	
-		// needed for finding out whether search field is in pen input mode
-		RPeninputServer iPeninputServer;
-		
-		// for file protection information (drm etc)
-		CMFProtectionHandler* iProtectionHandler;
-		
-		// for closing dialog
-		CIdle* iIdle;
-		
-		TBool ifilevalid;
-        // is dialog in foreground (visible)
-        TBool iForeGround;
-        
-        // dll resource file id
-        TInt iResourceFileId;
-        
-        // is metadata databse open
-        TBool iDatabaseOpen;
-        
-        // is pen input active
-        TBool iPeninputActive;
-
-        // dialog attribute values
-        HBufC* iNullItemFileNameOne;
-        HBufC* iNullItemFileNameTwo;
-        TInt iNullItemFileTypeOne;
-        TInt iNullItemFileTypeTwo;
-        TBuf<KBufSize128> iDialogTitle;
-        
-        CAknInputBlock* iInputBlock;
-		
-		// dialog output parameters
-		
-		// selected media file
-	    TDes* iFileName;
-	    // selected null item
-	    TInt*iNullItem;
-	    // extra parameter for later use
-	    TInt* iInfo;
-	    // extra parameter for later use
-	    TDes* iDesInfo;
-	    //is double clicked the item of the listbox
-	    TBool iIsDoubleClicked;
-	    TBool iFileisvalid;
-	    // Video preview dialogue, model dialog
-	    CVideoPreviewDialog* iVideoPreviewDlg;
-    };
-
-
-
-/**
-* CFindControl
-*
-* Search field functionality (CFindControl) is copied from
-* AknSelectionLis (s60/mw/classicui/uifw/AvKon/src/AknSelectionList.cpp).
-* Example code can also be found in 
-* s60/app/imppapplications/wvuing/wvuiave/AppSrc/CCAContactSelectionDialog.cpp
-*/
-NONSHARABLE_CLASS (CFindControl) : public CCoeControl 
-    {
-public:
-    CAknSearchField *iFind;
-    ~CFindControl() { delete iFind; }
-    void Draw(const TRect &) const
-        {
-        // this removes flicker from CEikDialog's Draw().
-        }
-    void SizeChanged()
-        {
-        TRect mainPane;
-        AknLayoutUtils::LayoutMetricsRect( AknLayoutUtils::EMainPane, mainPane );
-        
-        TAknLayoutRect listRect;
-    
-        listRect.LayoutRect( mainPane, AknLayout::list_gen_pane(0) );
-
-        TRect r( listRect.Rect() );
-        iPosition = TPoint( r.iTl );
-        iSize.SetSize( r.Width(), r.Height() );
-        }
-
-    TSize MinimumSize()
-        {
-        if ( iFind )
-            {
-            if ( iFind->Size() != TSize( 0, 0 ) )
-                {
-                return iFind->Size();
-                }
-            }
-            
-        return iSize;
-        }
-    };
-
-
-
-
-#endif      // MEDIALFILEDIALOG_H
-            
-// End of File