diff -r 000000000000 -r 6a9f87576119 filesystemuis/memstatepopup/inc/cmemstatepopupimpl.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/filesystemuis/memstatepopup/inc/cmemstatepopupimpl.h Mon Jan 18 20:09:41 2010 +0200 @@ -0,0 +1,148 @@ +/* +* Copyright (c) 2006 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: Memory state popup implementation +* +*/ + + +#ifndef __CMEMORYSTATEPOPUPIMPL_H__ +#define __CMEMORYSTATEPOPUPIMPL_H__ + +// SYSTEM INCLUDES +#include +#include +#include +#include + +// FORWARD DECLARATIONS +class CAknPopupList; +class CAknSingleHeadingPopupMenuStyleListBox; +class CMemScanEventReceiver; +class CMSPUtil; + +// CLASS DEFINITION +NONSHARABLE_CLASS(CMemStatePopupImpl) : + public CActive, + public MMsengUIHandler, + public MProgressDialogCallback + { + public: + // Destructor + virtual ~CMemStatePopupImpl( ); + + private: + // Second phase + void ConstructL( ); + + // C++ constructors + CMemStatePopupImpl( TDriveNumber aDrive, const TDesC& aTitle ); + CMemStatePopupImpl( ); + + public: + /** + * Launches the memory scan popup + * @param aDrive The drive to be scanned + * @param aTitle Title of the popup + */ + static void RunLD( TDriveNumber aDrive, const TDesC& aTitle ); + + /** + * Get an instance of CMSPUtil class, containing the unit text array + * @param aUtil Reference to a CMSPUtil pointer, + * updated to point to the instance created + */ + static void GetUtilL( CMSPUtil*& aUtil ); + + public: + // From MMsengUIHandler + void StartL( ); + void QuitL( TInt /*aReason*/ ); + void ErrorL( TInt aError ); + + // From MProgressDialogCallback + virtual void DialogDismissedL( TInt /*aButtonId*/ ); + + private: + + // From CActive + void RunL(); + void DoCancel(); + + /** + * Starts observing drive dismounts. + */ + void StartObserver( ); + + /** + * Construct popup and ready it for use. + */ + void ConstructPopupL( ); + + /** + * Shows wait dialog and start scanning. + */ + void ExecuteL( ); + + /** + * Refresh the data shown in listbox. + */ + void RefreshL( ); + + /** + * Set the results to zero. + */ + void NullifyResults( ); + + /** + * Opens the resource and reads unit array from it. + */ + void OpenResourceAndReadArrayL( ); + + private: + // Not implemented + CMemStatePopupImpl( const CMemStatePopupImpl& ); + CMemStatePopupImpl& operator=( CMemStatePopupImpl& ); + + private: + /** + * Container class used to prevent all pointer events + * passing from listbox to popup-list. + */ + NONSHARABLE_CLASS(CMemStateListBox) : public CAknSingleHeadingPopupMenuStyleListBox + { + public: + // Destructor + virtual ~CMemStateListBox( ) {}; + }; + + private: + CDesCArray* iGroupNames; + CArrayFix< TInt64 >* iScanResults; + CDesCArray* iListModel; + CMemStateListBox* iListBox; + CAknWaitDialog* iWaitDialog; + TBool iFinished; + TDriveNumber iDrive; + CAknPopupList* iPopup; + TDesC* iTitle; + CCoeEnv& iCoeEnv; + RConeResourceLoader iResLoader; + CMSPUtil* iUtil; + TBool iOwnsUtil; + CMemScanEventReceiver* iEventReceiver; + }; + +#endif // __CMEMORYSTATEPOPUPIMPL_H__ + +// End of File