diff -r 6465d5bb863a -r 13e71d907dc3 profilesservices/MediaFileList/Inc/mediafiledialogutils.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/profilesservices/MediaFileList/Inc/mediafiledialogutils.h Thu Nov 04 13:38:47 2010 +0800 @@ -0,0 +1,425 @@ +/* +* 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: Basic functionality of MediaFileList. +* +*/ + + + + +#ifndef MEDIALFILEDIALOGUTILS_H +#define MEDIALFILEDIALOGUTILS_H + + +// INCLUDES + +#include +#include // RReadStream RWriteStream +#include // RFs + +#include // CEikStatusPane +#include // CAknNavigationControlContainer +#include // CEikImage + +#include // MDownloadedContentHandler + + +// CONSTANTS + +const TInt KBufSize64 = 64; +const TInt KBufSize128 = 128; +const TInt KBufSize256 = 256; +const TInt KBufSize512 = 512; + + +// FORWARD DECLARATIONS + +class CAknAppUi; +class CRepository; + +class CDocumentHandler; +class CBrowserLauncher; + + + +/** +* TMFDialogUtil +* +* TMFDialogUtil is utility class for media file dialog. +*/ +NONSHARABLE_CLASS (TMFDialogUtil) + { + public: + + enum TMFDialogPrivateAttribute + { + EAttrFileName = 100, + EAttrDrawingWindow + }; + + + public: + static void ShowInformationQueryL( const TDesC& aText ); + static void ShowInformationQueryL( TInt aResource ); + static void ShowInformationNoteL( const TDesC& aText ); + static void ShowInformationNoteL( TInt aResource ); + + static void ShowErrorNoteL( const TDesC& aText ); + static void ShowErrorNoteL( TInt aResource ); + static void ShowErrorNoteL( const TDesC& aText, TInt aError ); + static TBool ShowNumberQueryL( TInt& aNumber, const TDesC& aTitle ); + + static TBool ShowListQueryL( const TDesC& aTitle, CDesCArray* aList, + TInt* aSelectedIndex ); + + + static TInt AddResFileL(); + static void StrCopy( TDes& aTarget, const TDesC& aSource ); + static void Panic( TInt aReason ); + static void SetIconFileNameL( const TDesC& aName, TDes& aFullName ); + static CEikImage* CreateImageLC( TAknsItemID aId, const TDesC& aFileName, + TInt aFileBitmapId, TInt aFileMaskId ); + static TBool IsEmpty( const TDesC& aText ); + + }; + + +/** +* MMFActiveCallerObserver +* +* MMFActiveCallerObserver is for observing CMFActiveCaller. +*/ +NONSHARABLE_CLASS (MMFActiveCallerObserver) + { + public: + virtual void HandleActiveCallL( TInt aCallId ) = 0; + }; + + + + +/** +* CMFActiveCaller +* +* CMFActiveCaller is used for generating a call from active scheduler. +* Typical use is to start some operation after a short delay. +*/ +NONSHARABLE_CLASS (CMFActiveCaller) : public CActive + { + public: + static CMFActiveCaller* NewL( MMFActiveCallerObserver* aObserver ); + virtual ~CMFActiveCaller(); + + private: + CMFActiveCaller( MMFActiveCallerObserver* aObserver ); + void ConstructL(); + + public: + void Start( TInt aCallId, TInt aMilliseconds ); + void Stop(); + void Request(); + + private: + void RunL(); + void DoCancel(); + + private: + // call that is passed to observer + TInt iCallId; + + // timer + RTimer iTimer; + + // observer that gets called + MMFActiveCallerObserver* iObserver; + }; + + + +/** +* CNaviPaneHandler +* +* This class is used for changing navipane title. +*/ +NONSHARABLE_CLASS (CNaviPaneHandler) : public CBase + { + public: + /** + * Destructor. + */ + virtual ~CNaviPaneHandler(); + + /** + * C++ default constructor. + */ + CNaviPaneHandler(CEikStatusPane* aStatusPane); + + public: + + /** + * Sets navi pane title. + * @param aTitle. + * @return None. + */ + void SetNaviPaneTitleL(const TDesC& aTitle); + + /** + * Store navi pane. + * @param None. + * @return None. + */ + void StoreNavipaneL(); + + private: + // status pane + CEikStatusPane* iStatusPane; + + // navi Pane + CAknNavigationControlContainer* iNaviPane; + + // navi decorator + CAknNavigationDecorator* iNaviDecorator; + + // has Navidecorator been pushed into navi pane + TBool iNavidecoratorPushed; + + // has navi pane been pushed into navigation pane's object stack + TBool iNavipanePushed; + }; + + + +/** +* CStatusPaneHandler +* +* This class is used for changing dialog title and image. +*/ +NONSHARABLE_CLASS (CStatusPaneHandler) : public CBase + { + public: + /** + * Two-phased constructor. + */ + static CStatusPaneHandler* NewL( CAknAppUi* aAppUi ); + + /** + * Destructor. + */ + virtual ~CStatusPaneHandler(); + + private: + /** + * By default Symbian OS constructor is private. + */ + void ConstructL(); + + /** + * C++ default constructor. + */ + CStatusPaneHandler( CAknAppUi* aAppUi ); + + public: + /** + * Stores original title so it can be restored when dialog closes. + * @param None. + * @return None. + */ + void StoreOriginalTitleL(); + + /** + * Restores original title. + * @param None. + * @return None. + */ + void RestoreOriginalTitleL(); + + /** + * Sets dialog title. + * @param aText. + * @return None. + */ + void SetTitleL( const TDesC& aText ); + + /** + * Sets dialog title. + * @param aResourceId. + * @return None. + */ + void SetTitleL( TInt aResourceId ); + + public: + /** + * Sets dialog title. + * @param aAppUi. + * @param aText. + * @return Return code. + */ + static TBool SetTitleL( CAknAppUi* aAppUi, const TDesC& aText ); + + /** + * Gets dialog title. + * @param aAppUi. + * @param aText. + * @return Return code. + */ + static TBool GetTitleL( CAknAppUi* aAppUi, TDes& aText ); + + /** + * Sets navi pane title. + * @param aTitle. + * @return None. + */ + void SetNaviPaneTitleL( const TDesC& aTitle ); + + /** + * Sets navi pane title. + * @param aTitle. + * @return None. + */ + void SetNaviPaneTitle( const TDesC& aTitle ); + + /** + * Sets navi pane title. + * @param aTitle. + * @return None. + */ + void SetNaviPaneTitleL( TInt aResource ); + + /** + * Store navi pane. + * @param None. + * @return None. + */ + void StoreNavipaneL(); + + private: + // access to app ui + CAknAppUi* iAppUi; + + // original status pane title + TBuf iOriginalTitle; + + // is original status pane title stored + TBool iOriginalTitleStored; + + // original context pane image + CEikImage* iOriginalImage; + + CNaviPaneHandler* iNaviPaneHandler; + }; + + + + +/** +* CDriveUtil +* +* CDriveUtil is used for getting drive information. +*/ +NONSHARABLE_CLASS (CDriveUtil) : public CBase + { + public: + static CDriveUtil* NewL(); + virtual ~CDriveUtil(); + + private: + CDriveUtil(); + void ConstructL(); + + public: + TBool IsMemoryCard( const TDesC& aFullPath ); + TBool IsMassStorage( const TDesC& aFullPath ); + TBool IsRom( const TDesC& aFullPath ); + + private: + RFs iFsSession; + }; + + +/** +* CMimeTypeList +* +* CMimeTypeList is used for storing mime types that +* are excluded from media file list. +*/ +NONSHARABLE_CLASS (CMimeTypeList) : public CBase + { + public: + static CMimeTypeList* NewL(); + virtual ~CMimeTypeList(); + + private: + CMimeTypeList(); + void ConstructL(); + + public: + void ResetL(); + TInt Count(); + const TDesC& MimeType( TInt aIndex ); + void AddMimeTypeL( const TDesC& aText ); + TBool FindMimeTypeL( const TDesC& aText ); + + + public: + static TInt Compare( const TFileName& aFirst, const TFileName& aSecond ); + + private: + RArray iList; + }; + + +/** +* CWebBrowserLauncher +* +* CWebBrowserLauncher is used for launching web browser. +*/ +NONSHARABLE_CLASS(CWebBrowserLauncher) : public CBase, + public MDownloadedContentHandler + { + public: + static CWebBrowserLauncher* NewLC(); + virtual ~CWebBrowserLauncher(); + + private: + CWebBrowserLauncher(); + void ConstructL(); + + public: + void LaunchBrowserL(); + + public: + TBool HandleContentL( const TDesC& aFileName, + const CAiwGenericParamList& aParamList, + TBool& aContinue ); + + TAny* DownloadedContentHandlerReserved1( TAny* aAnyParam ); + + + private: + // Browser Launcher + CBrowserLauncher* iBrowserLauncher; + + // Document Handler for saving downloaded tones. + CDocumentHandler* iDocumentHandler; + }; + + + + + +#endif // MEDIALFILEDIALOGUTILS_H + + + +// End of File