internetradio2.0/uiinc/irplsview.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) 2006-2007 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:  view for pls list 
*
*/


#ifndef CIRPLSVIEW_H
#define CIRPLSVIEW_H

#include <akntoolbarobserver.h>
#include <aknbutton.h>
#include "irbaseview.h"
#include "IRActiveNetworkObserver.h"


class CIRUi;
class CIRPlsContainer;
class CIRIsdsPreset;
class MIRActiveNetworkObserver;

//========================================class declaration CIRPlsView============================================

/**
 * This class Creates CIRPlsView.
 * Handles the all the options defined for the view.
 * 
 * @code
 * Create instance of .pls view.
 * CIRPlsView* self = new (ELeave) CIRPlsView;
 * 
 * Create the instance of container.
 * iContainer = CIRPlsView::NewL(AppUi()->
        	ApplicationRect());
 *
 * @endcode
 *
 */
class CIRPlsView : public CIRBaseView,
				   public MAknToolbarObserver,
				   public MIRActiveNetworkObserver
	{
public:

	/**
	* NewL.
	* Two-phased constructor.
	* Create a CIRPlsView object, which will draw itself to aRect.
	* @param aRect The rectangle this view will be drawn to.
	* @return a pointer to the created instance of CIRPlsView.
	*/
	static CIRPlsView* NewL(const TRect& aRect);

	/**
	* NewLC.
	* Two-phased constructor.
	* Create a CIRPlsView object, which will draw itself
	* to aRect.
	* @param aRect Rectangle this view will be drawn to.
	* @return A pointer to the created instance of CIRPlsView.
	*/
	static CIRPlsView* NewLC(const TRect& aRect);

	/**
	* ~CIRPlsView
	* Destructor.
	*/
	 ~CIRPlsView();
	 
	 /**
	* Id()
	* defines the Id of the view.
	* returns the UId of the view.
	*/	
	TUid Id() const;


	/**
	* HandleCommandL()
	* Handles the user input commands.
	* @param aCommand The command generated by user keypress..
	*/ 
	   
	void HandleCommandL(TInt aCommand);

	/**
	* DynInitMenuPaneL()
	* Dynamically loads the menu pane.
	* @param aResourceId,the resource Id of the view.
	* @param aMenuPane,Pointer to the menu pane.
	*/
	void DynInitMenuPaneL(TInt aResourceId,CEikMenuPane* aMenuPane);
	//for listen and add to favorites
	

private:

	/**
	* ConstructL
	* 2nd phase constructor.
	* Perform the second phase construction of a
	* @param aRect The rectangle this view will be drawn to.
	*/	
	void ConstructL(const TRect& aRect);

	/**
	* CIRPlsView.
	* C++ default constructor.
	*/
	CIRPlsView();  
		    
	/**
	* DoActivateL()
	* Activates the view.
	*/       
	void DoActivateL(const TVwsViewId& aPrevViewId,TUid aCustomMessageId,
	    			 const TDesC8& aCustomMessage);
	/**
	* DoDeactivate()
	* DeActivates the view.
	*/     			 
    void DoDeactivate();
    
    //added for touch toolbar
	// From MAknToolbarObserver
	void DynInitToolbarL(	TInt aResourceId,	CAknToolbar* aToolbar );
	
	/**
	* OfferToolbarEventL()
	* Handles all the events for the touch tool bar.
	*/  
	
	void OfferToolbarEventL(	TInt aCommand );
	
	/**
	* HandleStatusPaneSizeChange()
	* Handles the Change in the status Pane
	*/  
	
    void HandleStatusPaneSizeChange();
    
    /**
	* HandleForegroundEventL()
	* Handles the foreground event.
	*/  

    void HandleForegroundEventL( TBool aForeground );
    
    /**
	* ConstructToolbarL()
	* Construct the touch toolbar.
	*/  

	void ConstructToolbarL();
	
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);

  	
  	/**
	* SecondConstruct()
	* To again initialise when Second pls file is opened.
	*/ 
    void SecondConstruct();

		
private:
	
	/*
	 * iRequestPending
	 * Checks whether an active request is pending
	 */
	TBool iRequestPending;
	

	
	//instance of CIRPlsViewContainer
	CIRPlsContainer* iContainer;
	

	};
   
#endif // IR_PLSVIEW_H