internetradio2.0/uiinc/irsearchresultsviewcontainer.h
changeset 0 09774dfdd46b
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/internetradio2.0/uiinc/irsearchresultsviewcontainer.h	Mon Apr 19 14:01:53 2010 +0300
@@ -0,0 +1,448 @@
+/*
+* Copyright (c) 2005-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:  Header for CIRSearchResultsViewContainer
+*
+*/
+
+
+#ifndef CIRSEARCHRESULTSVIEWCONTAINER_H
+#define CIRSEARCHRESULTSVIEWCONTAINER_H
+
+#include <aknlists.h>
+#include "irimageconverterobserver.h"
+#include <aknsfld.h> 
+
+class CIRSearchResultsView;
+class CAknIconArray;
+class CIRImageConverter;
+
+/**
+ * This classes are used for Advertisements
+ */
+class CCustomListBox;
+class CIRFilteredModel;
+class MIRListBoxArray;
+class CIRAdvertisingListBox;
+
+
+/**
+ * Container for Search Results View.
+ */
+class CIRSearchResultsViewContainer : public CCoeControl,public MEikListBoxObserver,
+                            public MIRImageConverterObserver
+    {
+    
+public:  // Methods
+
+	/**
+	* NewL.
+	* Two-phased constructor.
+	* @param aRect The rectangle this view will be drawn to.
+    * @param aView which is a plsview's reference
+    * @return a pointer to the created instance of CIRSearchResultsViewContainer.
+	*/
+	static CIRSearchResultsViewContainer* NewL(const TRect& aRect ,CIRSearchResultsView &aView );
+
+	/**
+	* NewLC.
+	* Two-phased constructor.
+	* to aRect.
+	* @param aRect Rectangle this view will be drawn to.
+	* @param aView which is a plsview's reference
+	* @return A pointer to the created instance of CIRSearchResultsViewContainer.
+	*/
+	static CIRSearchResultsViewContainer* NewLC(const TRect& aRect,CIRSearchResultsView &aView);
+	
+    
+    /**
+     * ConstructL
+     * 2nd phase constructor.
+     */
+     void ConstructL( const TRect& aRect);
+    
+	/**
+     * CIRSearchResultsViewContainer()
+     * C++ default constructor.
+	 * @param aView View of this container.
+     */
+    CIRSearchResultsViewContainer(CIRSearchResultsView &aSearchResultsView);
+    
+    /**
+     * ~CIRSearchResultsViewContainer()
+     * Destructor.
+     */
+    ~CIRSearchResultsViewContainer();
+
+	/**
+     * UpdateSearchResultsViewL()
+     * updates the search results data to the search results list
+     */
+ 	void UpdateSearchResultsViewL();
+ 	
+ 	
+	// from base class CCoeControl
+
+     /**
+	 * From CCoeControl
+	 *
+	 * @see CCoeControl::OfferKeyEventL() 
+	 */    
+	
+	TKeyResponse OfferKeyEventL( const TKeyEvent& aKeyEvent, TEventCode aType );
+    
+   
+    /**
+     * From MEikListBoxObserver HandleListBoxEventL
+     */ 
+    void HandleListBoxEventL( CEikListBox* aListBox, TListBoxEvent aEventType );
+    
+
+	/**
+	 * From CCoeControl
+	 *
+	 * @see CCoeControl::GetHelpContext( TCoeHelpContext& aContext ) const
+	 */
+	void GetHelpContext( TCoeHelpContext& aContext ) const;
+	
+	/**
+	 * GetCurrentItemIndex()
+	 * returns the index of the currently selected item
+	 */ 
+	TInt GetCurrentItemIndex() const;
+	
+	/**
+	 * GetListBoxTopIndex()
+	 * returns the index of the top item
+	 */ 
+	TInt GetListBoxTopIndex() const;
+	
+	
+	/**
+	* CountComponentControls() const
+	* returns the number of components in the view.
+	*/
+	TInt CountComponentControls() const;
+	
+	/**
+	* ComponentControl()
+	* returns the pointer to the control
+	*/
+	CCoeControl* ComponentControl(TInt aIndex) const ;
+
+	/**
+	* SizeChanged()
+	* Responds to changes to the size and position of the contents of this control.
+	*/
+	void SizeChanged();
+	
+	/**
+	* HandleResourceChange()
+	* Handles a change to the control's resources.
+	*/
+	void HandleResourceChange(TInt aType);
+	
+	/**
+ 	* HandleImageConversionEventL()
+ 	* from base class MIRImageConverterObserver
+ 	*/
+	void HandleImageConversionEventL( 
+		MIRImageConverterObserver::TIRImageConversionEvent /*aEvent*/, TInt aId, TInt aError );
+	
+	/**
+	* HandleLogoErrorL()
+	* called from the iSearchResultsView when the logo is not downloaded
+	*/
+	void HandleLogoErrorL();
+
+	
+    void UpdateSearchResultsL();
+    
+    /**
+ 	* CreateCustomListBoxL()
+ 	* Creates the custom listbox and updates the list according to that
+ 	*/
+	void CreateCustomListBoxL();
+	
+ 	/**
+ 	* OpenUrlL()
+ 	* Used to connect to advertisement url
+ 	*/
+	void OpenUrlL( const TDesC& aHttpLink );
+	/*
+	* CreateFindBoxL()
+	* Creates the find box for dynamic filtering
+	*/
+	CAknSearchField* CreateFindBoxL(CEikListBox* aListBox,
+	CTextListBoxModel* aModel, CAknSearchField::TSearchFieldStyle aStyle);
+	/*
+	* DisableFindBox()
+	* disable the listbox when focus is not present
+	*/
+	void DisableFindBox();
+	
+	/**
+	* Function : Comparestrings
+	* Function called to get the actual index of the station
+	*/
+ 	void  Comparestrings();
+ 	
+ 	/*
+ 	 * CIRSearchResultsViewContainer::GetFilterdModelPointer()
+	 * returns pointer to filtered model.
+	 */
+ 	CIRFilteredModel* GetFilterdModelPointer();
+ 	/*
+ 	 * CIRSearchResultsViewContainer::GetFindString()
+	 * returns the string in the findbox
+	 */
+ 	TDesC GetFindString();
+ 	
+ 	/*
+ 	 * CIRSearchResultsViewContainer::GetListPointer()
+	 * returns pointer to Listbox.
+	 */
+  	CIRAdvertisingListBox* GetListPointer();
+ 	/*
+ 	 * CIRSearchResultsViewContainer::GetSearchBoxPointer()
+	 * returns the search box pointer.
+	 */
+ 	CAknSearchField* GetSearchBoxPointer();
+
+ 	/*
+ 	 * CIRIsdsPreset* GetAdPreset()
+ 	 * returns the advertisement preset 
+ 	 */
+ 	CIRIsdsPreset* GetAdvPreset();
+ 	/*
+  	 * CIRIsdsPreset* GetTempPreset()
+  	 * returns the temporary preset 
+  	 */
+  	CIRIsdsPreset* GetTempPreset(); 
+	/**
+ 	* CreateListBoxL()
+ 	* Creates ListBox depending upon the presence of Advertisement
+ 	*/
+	void CreateListBoxL();	
+    /**
+    * Formats list item string with given arguments
+    * 
+    * @param aFirstRow text for first row
+    * @param aSecondRow text for second row
+    * @param aIconId Icon ID used on item
+    */
+    HBufC* FormatItemStringLC( const TDesC& aFirstRow,  TInt aIconId );
+	/**
+	* GetLogoNotSupported()
+	* returns whether the advertisement is supported by the sdk r not
+	*/
+	TBool GetLogoNotSupported();
+    /**
+     * Creates default (empty) icon
+     * 
+     * @return  Default icon
+     */
+    CGulIcon* CreateDefaultIconL();
+   	/**
+ 	* PresetLogoDownloadL()
+ 	* Used to download the  logos depending the preset values.
+ 	*/
+ 	void PresetLogoDownloadL(CIRIsdsPreset* aPreset);	
+
+private: //Methods
+
+
+	// from base class CCoeControl
+	/**
+     * From CCoeControl
+     *
+     * @see CCoeControl::Draw( const TRect& aRect ) const
+	 */
+	void Draw( const TRect& /*aRect*/ ) const;
+
+	/**
+	* StartConvertL()
+	* used to convert the images depending the index passed
+	* 
+	*/
+	void StartConvertL( CIRImageConverter& aConverter, TInt /*aIndex*/, TInt /*aId*/ );	
+
+
+
+
+private:    // Data
+
+	/**
+	 * iChannelNameArray
+	 * array to hold the name of channels
+	 */ 
+	 CDesCArray* iChannelNameArray;
+	 
+	 /**
+	 * iChannelInfoArray
+	 * array to hold the description of channels
+	 */ 
+	 CDesCArray* iChannelInfoArray;
+	 /**
+	 * iItemArray
+	 * array for the listbox model
+	 */ 
+	 CDesCArray* iItemArray;
+	 
+	 /**
+	 * iSearchResultsView
+	 * reference of the SearchResultsView 
+	 */ 
+	 CIRSearchResultsView &iSearchResultsView;
+
+	/**
+    * boolean for forcibly getting the logo from cache
+    */
+	TBool   iForceGet;
+	
+	/**
+    * response from the cache for the availability of logo(CacheNotValid,NotCached,CacheUseable)
+    */
+	TInt 	iResult;
+	
+	/**
+	* to keep track of the icon array index
+	*/
+	TInt iIconIndex;
+	
+	/**
+	* to keep track of the logo url index(for temporary)
+	*/
+	TInt iLogoIndex;
+   	/*
+   	* iLandScapeCount
+   	* used to call the aknfind s HandlePopupFindSizeChanged function only once
+   	*/
+	TInt iLandScapeCount;
+	/*
+	* iInvalidIconIndices
+	* instance of RArray
+	*/
+	RArray<TInt> iInvalidIconIndices;
+	
+	/*
+	* iLogosArray
+	* instance of RArray
+	*/
+	RArray<TInt> iLogosArray;
+
+	/*
+	* iNoLogosArray
+	* instance of RArray
+	*/
+	RArray<TInt> iNoLogosArray;
+	
+	/*
+	* iCurrentItemConverter
+	* instance of CIRImageConverter
+	*/
+	CIRImageConverter* iCurrentItemConverter;
+	
+	/*
+	 * iAdBitmap
+	 * instance of CFbsBitmap to store the advertisement
+	 */
+	CFbsBitmap*     iAdBitmap;
+
+private:
+	
+	 /**
+	 * iStationsListBox
+	 * Instance of the SearchResults ListBox
+	 */
+	  CIRAdvertisingListBox* iSearchListBox;
+
+	/*
+	* iConverter
+	* instance of CIRImageConverter
+	*/
+	CIRImageConverter* iConverter;
+
+	/**
+	* Temporary preset to store url and the logo data
+	*/
+	CIRIsdsPreset *iTempPreset;
+	
+	/**
+	* Temporary preset to store the raw data of Advertisements
+	*/
+	CIRIsdsPreset*  iAdvPreset;
+	/*
+	* iFilteredModel
+	* Instance for CIRFilteredModel
+	*/ 
+	CIRFilteredModel* iFilteredModel;
+	
+    /*
+    * iAdPresent
+    * returns whether the advetisment is present or not
+    */
+    TBool iAdPresent;
+    /*
+    * iBgContext
+    * Instance of CAknsBasicBackgroundControlContext
+    */
+    CAknsBasicBackgroundControlContext* iBgContext;
+    /*
+	* iSearchTextBox
+	* Instance for CAknSearchField;
+	*/
+	CAknSearchField* 			iSearchBox;	
+  	/*
+	* iFindString
+	* Used to Get the Entered Search string
+	*/
+	TBuf<KSearchBoxTextLength> iFindString;
+    /*
+    * iAdvString
+    * sets the advertisement string
+    */
+    HBufC* iAdvString;
+    /*
+    * iListBoxArray
+    * Instance of MIRListBoxArray
+    */
+   	MIRListBoxArray* iListBoxArray;
+   	/*
+   	* iRequestForAdvertisement
+   	* sets when the request for advertisment conversation is made
+   	*/
+	TBool iRequestForAdvertisement;
+   	/*
+   	* iLogoDownloadError
+   	* sets when the  advertisment future is not supported
+   	*/
+	TBool iLogoDownloadError;
+    /**
+    * iAdRequestStatusFlag
+    * sets when a request for advertisement is made.
+    */
+	TBool iAdRequestStatusFlag;
+	/*
+	* iFilteredFlag
+	* This flag is set when dynamic filtering is done and
+	* will be reseted when the characters in the filter box is deleted
+	*/
+	TBool iFilteredFlag;
+	
+	TInt iError;
+
+    };
+
+#endif      // CIRSEARCHRESULTSVIEWCONTAINER_H
+