internetradio2.0/uiinc/ircategoryview.h
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Mon, 03 May 2010 12:25:23 +0300
changeset 2 2e1adbfc62af
parent 0 09774dfdd46b
permissions -rw-r--r--
Revision: 201015 Kit: 201018

/*
* 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 CIRCategoryView
*
*/


#ifndef CIRCATEGORYVIEW_H
#define CIRCATEGORYVIEW_H

#include "irbaseview.h"
#include "MViewsResponseAndErrorObserver.h"

#include "MLogoDownloadObserver.h"
#include "IRActiveNetworkObserver.h"


class CIRCategoryViewContainer;


/**
 * SearchResults View
 */
class CIRCategoryView : public CIRBaseView,public MViewsResponseAndErrorObserver,
						public MLogoDownloadObserver,public MIRActiveNetworkObserver
    {
    
public: //Methods

	//ENums to indicate the currently selected item in the listbox.
 	enum TCurrentSelectedItem
		{
		EGenreData=0,
		ELanguageData,
		ECountryData,
		ETopStationData
		};
    /**
     * NewL()
     * Static constructor.
     */
    static CIRCategoryView* NewL();

    /**
     * NewLC()
     * Static constructor.
     */
    static CIRCategoryView* NewLC();
    
    /**
     *~CIRCategoryView()
     * Destructor.
     */
    ~CIRCategoryView();

    // from base class CAknView
	/**
	 * From CAknView
	 *
	 * @see CAknView::Id() const
	 */
    TUid Id() const;

	/**
	 * From CAknView
	 *
	 * @see CAknView::HandleCommandL( TInt aCommand )
	 */
	void HandleCommandL( TInt aCommand );
	
	/**
	 * void SetStatusPaneTextL()
	 * Sets the title pane of the search results view
	 */
	void SetStatusPaneTextL();

	/**
	* DoChannelRequestL
	* Issues a Request to Isds for getting the Channels
	*/
	void DoChannelRequestL();
	
	/**
	* void CIRCategoryView::ResponseL()
	* Activates the Stations view after getting the IsdsResponse
	*/
	void ResponseL( CIRIsdsPreset* aPreset = NULL );
	
	/**
	* ErrorL()
	* Handles the errors from Isds
	*/
	void ErrorL();
	
	/**
	* PresetResponseL
	* Issues a listen request
	*/
	void PresetResponseL(CIRIsdsPreset* aPreset);

	/**
	* DynInitMenuPaneL
	* Dynamically initialises a menu pane
	*/
	void DynInitMenuPaneL(TInt aResourceId,CEikMenuPane* aMenuPane);


    /**
     * From CAknView
     */
	void HandleStatusPaneSizeChange();
	
    /**
     * From CAknView
     *
     * @see CAknView::HandleForegroundEventL( TBool aForeground )
     */
	void HandleForegroundEventL( TBool aForeground );
	/**
    * PresetLogoDownloadedL()
    * CallBack Function Returning the Preset With Logo
    */
	void PresetLogoDownloadedL(CIRIsdsPreset* aPreset);
	
	/**
    * PresetLogoDownloadError()
    * CallBack Function Returning the Preset With no Logo/error while downloading logo
    */
	void PresetLogoDownloadError(CIRIsdsPreset* aPreset);
	
	/**
	* LogoRequestL()
	* Called by the container of this view
	*/
	void AdRequestL();
	/*
	* SetActualFilteredItemIndex()
	* sets the original index of the filtered item
	*/
	void SetActualFilteredItemIndex(TInt aIndex);
	
	/**
	* GetFilteredIndex()
	* Returns the filtered Index
	*/
	TInt GetFilteredIndex();
	
	/*
	 * GetFirstLaunchFlag()
	 * returns the whether the view is launching for the first time/
	 * coming back from that has been activated from this view
	 */
	TBool GetFirstLaunchFlag() ;
	// from base class MIRSystemEventObserver
    void HandleSystemEventL( TIRSystemEventType aEventType );
	
	
public:
	//from MIRActiveNetworkObserver
	/**
	 * Notifies all observers whose network request is active
	 * to reissue the request  
	 * NotifyActiveNetworkObserversL()
	 */	
	 void NotifyActiveNetworkObserversL(TIRNetworkEvent aEvent);
	 
	 /**
	 * Notifies all observers whose network request is active
	 * to reset the pending request status  
	 * ResetPendingRequests()
	 */	
	 void ResetPendingRequests(TBool aValue);


protected:  //Methods

    // from base class CAknView
    /**
     * From CAknView
     *
     * @see CAknView::DoActivateL(const TVwsViewId& aPrevViewId, 
     *    TUid aCustomMessageId, 
     *    const TDesC8& aCustomMessage)
     */
    void DoActivateL( const TVwsViewId& /*aPrevViewId*/,TUid /*aCustomMessageId*/, const TDesC8& aCustomMessage );

	/**
     * From CAknView
     *
     * @see CAknView::DoDeactivate()
     */
	void DoDeactivate();

	
private: //Methods

    /**
     * ConstructL()
     * 2nd phase constructor
     */
    void ConstructL();

	/**
     * CIRCategoryView()
     * C++ default constructor.
     */
    CIRCategoryView();


private:    // Data

	/** 
	 * iContainer
	 * Container for this view. 
	 */
	CIRCategoryViewContainer* iContainer;

 
	/**
	* iLoadingCancelled
	* Data whether loading has been cancelled
	*/
	TBool iLoadingCancelled;
	/*
	 * iIndex
	 *  
	 */
	 TInt iIndex;
	TInt iFilteredIndex;
	
	TBool iFirstTimeLaunchFlag;
	/*
	 * iCallRequestPending
	 * Indicates whether delayed activation of command is required (Call Handling)
	 */
	TBool iCallRequestPending;
	/*
	 * iCommand
	 * Command to be executed (view activation) after Preset downloads
	 */
	TInt iCommand;
	
		
	/*
	 * iRequestPending
	 * Checks whether an active request is pending
	 */
	TBool iRequestPending;
	
	/*
	 * iRequestIssued
	 * Checks whether the request has been issued
	 */
	TBool iRequestIssued;
	
	

public:	
	/**
	 * iCategoryReqMade
	 * boolean value to know whether the category request
	 * has made to isds or not
	 */
	TBool iCategoryReqMade;
	
	 
		
    };

#endif      // CIRCATEGORYVIEW_H