diff -r 8ee96d21d9bf -r 7e0eff37aedb profilesservices/FileList/Src/CFLDPopupList.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/profilesservices/FileList/Src/CFLDPopupList.h Wed Sep 01 12:20:44 2010 +0100 @@ -0,0 +1,153 @@ +/* +* Copyright (c) 2002 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: A thin CAknPopupList extension. +* +*/ + + + +#ifndef CFLDPOPUPLIST_H +#define CFLDPOPUPLIST_H + +// INTERNAL INCLUDES +#include "MFLDFileListBoxObserver.h" // For TFileListSoftKeyState + +// EXTERNAL INCLUDES +#include +#include // For MCoeForegroundObserver + +// FORWARD DECLARATIONS +class MFLDFileObserver; +class CFLDFileListModel; + +// CLASS DECLARATION + +/** +* A thin CAknPopupList extension. +* Prevents closing the pop-up if the pop-up observer so wishes. +* +* @lib filelist.lib +* @since 2.1 +*/ +NONSHARABLE_CLASS( CFLDPopupList ) + : public CAknPopupList, public MCoeForegroundObserver, public MCoeFocusObserver + { + + + public: // New methods + + /** + * Two-phased constructor. + * @param aListbox A parameter to CAknPopupList. + * @param aCbaResource A parameter to CAknPopupList. + * @param aFileObserver File observer. + * @param aListBoxObserver Listbox observer, can be NULL. + * @param aModel Filelist Model. + * @param aType A parameter to CAknPopupList. + */ + static CFLDPopupList* NewL( + CEikListBox* aListBox, + TInt aCbaResource, + MFLDFileObserver& aFileObserver, + MFLDFileListBoxObserver* aListBoxObserver, + CFLDFileListModel& aModel, + AknPopupLayouts::TAknPopupLayouts aType = AknPopupLayouts::EMenuWindow ); + + void ConstructL(CEikListBox* aListBox, TInt aCbaResource, AknPopupLayouts::TAknPopupLayouts aType ); + + + /** + * Destructor. + */ + virtual ~CFLDPopupList(); + + /** + * Returns Popuplist RWindow handle + */ + RWindow& PopupListWindow() const; + + /** + * Populates icon array and updates ListBox + */ + void PopulateIconArrayL(); + + /** + * Cancels audio/video preview + */ + void CancelPreview(); + + /** + * Handles pointer events of popups. + */ + void HandlePointerEventL(const TPointerEvent& aPointerEvent); + + /** + * Returns FileListBoxObserver. + */ + MFLDFileListBoxObserver* GetFileListBoxObserver(); + + private: // From CAknPopupList + void AttemptExitL( TBool aAccept ); + void HandleResourceChange(TInt aType); + void HandleListBoxEventL(CEikListBox* aListBox, TListBoxEvent aEventType); + + private: // From MCoeForegroundObserver + void HandleGainingForeground(); + void HandleLosingForeground(); + + private: // From MCoeFocusObserver + void HandleChangeInFocus(); + void HandleDestructionOfFocusedItem(); + + private: + + /** + * C++ constructor. + * @param aFileObserver File observer. + * @param aListBoxObserver Listbox observer, can be NULL. + * @param aModel Filelist Model. + */ + CFLDPopupList( + MFLDFileObserver& aFileObserver, + MFLDFileListBoxObserver* aListBoxObserver, + CFLDFileListModel& aModel ); + + private: // New methods + + private: // Data + + /// File observer + MFLDFileObserver& iFileObserver; + + /// Ref: Listbox observer + MFLDFileListBoxObserver* iListBoxObserver; + + /// FileList Model + CFLDFileListModel& iModel; + + + /// Current softkeystate + MFLDFileListBoxObserver::TFileListSoftKeyState iSoftKeyState; + + + TFileName iCurrentFileName; + + // Have the checks in AttemptExitL been done already + TBool iExitChecksDone; + TPoint iPoint; + }; + +#endif // CFLDPOPUPLIST_H + +// End of File