profilesservices/FileList/Src/CFLDPopupList.h
branchRCL_3
changeset 54 7e0eff37aedb
--- /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 <aknPopup.h>
+#include <coemain.h> // 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