videofeeds/hgvodui/inc/vcxhgvodlistimplbase.h
changeset 0 96612d01cf9f
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/videofeeds/hgvodui/inc/vcxhgvodlistimplbase.h	Mon Jan 18 20:21:12 2010 +0200
@@ -0,0 +1,317 @@
+/*
+* Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the License "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:    HG VOD service view functionality implementation*
+*/
+
+
+
+#ifndef VCXHGVODLISTIMPLBASE_H_
+#define VCXHGVODLISTIMPLBASE_H_
+
+#include <AknServerApp.h>
+#include <e32base.h>
+#include <ganes/HgSelectionObserverIface.h>
+
+class CHgScroller;
+class CEikMenuPane;
+class CBrowserLauncher;
+class CVcxHgVodMainView;
+class CVcxNsUiEngine;
+class CVcxNsContent;
+class CVcxHgVodInformationPopup;
+class CVcxHgVodSearchImpl;
+
+// CLASS DECLARATION
+/**
+ *  List implementation base class
+ *  
+ *
+ *  @code
+ *   
+ *  @endcode
+ *
+ *  @lib vcxhgvodui.lib
+ *  @since S60 v5.0
+ */
+NONSHARABLE_CLASS( CVcxHgVodListImplBase ): public CBase, 
+                                            public MAknServerAppExitObserver,
+                                            public MHgSelectionObserver
+    {
+
+public:
+
+    /**
+     * Default constructor
+     * @param aView
+     * @param aModel
+     * @param aScroller Ownership is transferred.
+     */
+    CVcxHgVodListImplBase( 
+        CVcxHgVodMainView& aView, 
+        CVcxNsUiEngine& aModel,
+        CHgScroller& aScroller );
+    
+    /** 
+     * Standard destructor.
+     */ 
+    virtual ~CVcxHgVodListImplBase();
+
+    /**
+     * Activate menu pane items before displaying menu
+     * 
+     * @param aMenuPane Pointer to menu pane
+     * @param aResourceId 
+     */
+    virtual void ActivateMenuPaneItemsL( 
+            CEikMenuPane* aMenuPane,
+            TInt aResourceId ) = 0;
+
+    /**
+     * Handle user command
+     * @param aCommand 
+     */
+    virtual void HandleCommandL( TInt aCommand ) = 0;
+    
+    /**
+    * Activate list
+    * 
+    */
+    virtual void DoActivateL() = 0;
+    
+    /**
+    * Deactivate list
+    * 
+    */
+    virtual void DoDeactivate() = 0;
+    
+    /**
+     * Accessor for view container
+     * 
+     */
+    void OpenEmbeddedBrowserL( const TDesC& aUri );
+    
+    /**
+    * Close embedded browser.
+    */
+    void CloseEmbeddedBrowser();
+
+    /**
+    * From MAknServerAppExitObserver
+    * Handle the exit of a connected server app.
+    * This implementation provides Series 60 default behavior
+    * for handling of the EAknCmdExit exit code. Derived classes
+    * should base-call this implementation if they override this
+    * function.
+    */
+    void HandleServerAppExit( TInt aReason ); 
+    
+    /**
+     * Set title pane text.
+     * @param aTitle Text to be shown in title pane
+     */
+    void SetTitlePaneTextL( const TDesC& aTitle );
+    
+    /**
+     * Set title pane text from resources.
+     * @param aResourceId Text resource id
+     */
+    void SetTitlePaneTextFromResourceL( TInt aResourceId );
+
+    /**
+     * Set empty list widget text
+     * @param aResourceId Text resource id
+     */
+    void SetEmptyListTextL( TInt aResourceId );
+    
+    /**
+     * Set menu’s resource ID
+     * @param aResourceId Menu resource id
+     */
+    void SetMenuResourceId( TInt aResourceId );
+    
+    /**
+    * Show information popup  
+    *
+    */      
+    void ShowInformationPopupL( TBool aShow, TInt aDownloadedTbns, TInt aTotalTbns );
+    
+    /**
+     * Layout/orientation has been changed.
+     */
+    virtual void HandleSizeChange();
+    
+    /**
+     * Handles the foreground event.
+     * @param aForeground Is foreground state gained or not.
+     */
+    void HandleForegroundEventL( TBool aForeground );
+    
+    /**
+    * Get pointer to search implementation.
+    * 
+    * @return Pointer to search implementation 
+    */              
+    CVcxHgVodSearchImpl* SearchImpl();
+
+    /**
+    * Show update error note.
+    * 
+    * @param aError Error code
+    */              
+    void ShowUpdateErrorNoteL( TInt aError );
+    
+    /**
+    * Show authentication dialog.
+    * 
+    * @param aEpgUpdateFailed ETrue if handling service authentication,
+    *                         EFalse if handling download authentication 
+    * @param aContent Pointer to content data in case of download authentication
+    * Leaves with KErrCancel if user cancelled authentication query.
+    */       
+    void HandleAuthenticationL( 
+            TBool aEpgUpdateFailed,
+            CVcxNsContent* aContent = NULL );
+    
+    /**
+    * Show error note 
+    *
+    * @param aErrorText Text in error dialog
+    * @param aWaiting If ETrue, waiting dialog, EFalse by default.
+    */
+    void ShowErrorNoteL( const TDesC& aErrorText, TBool aWaiting = EFalse );
+    
+    /**
+    * Set msk resource.
+    *  
+    */
+    void SetMskL( TInt aResourceId );
+    
+    /**
+    * Sets scroller to have the keyboard focus.
+    * 
+    * @param aFocus ETrue sets the control as having keyboard focus, 
+    *               EFalse sets it as not having keyboard focus.
+    */
+    void SetFocus( TBool aFocus );
+    
+    /**
+     * HandleKeyEventL
+     */
+    virtual TKeyResponse HandleKeyEventL( const TKeyEvent& aEvent, TEventCode aType );
+
+    /**
+    * Get help context.
+    *
+    * @param aContext context
+    */
+    virtual void GetHelpContext( TCoeHelpContext& aContext ) const = 0;
+    
+    /**
+     * Update title pane
+     */
+    virtual void UpdateTitlePaneL() = 0;
+
+// from MHgSelectionObserver
+    
+    /**
+     * From MHgSelectionObserver
+     * Handle selection of list item.
+     * 
+     * @param aIndex Selected item index.
+     */
+    virtual void HandleSelectL( TInt aIndex );
+
+    /**
+     * From MHgSelectionObserver
+     * Handle opening of list item.
+     * 
+     * @param aIndex Opened item index.
+     */
+    virtual void HandleOpenL( TInt aIndex );
+
+protected:
+    
+    /**
+    * Initialize search implementation.
+    * If does not exist, create. 
+    */              
+    void InitSearchImplL();
+    
+private:
+
+    /**
+    * Show information popup  
+    *
+    */      
+    void ShowInformationPopupL();
+    
+    /**
+    * Set text to information popup
+    *
+    * @param aInformationText Text for popup
+    */      
+    void SetInfoPopupTextL( const TDesC& aInformationText );
+    
+    /**
+    * Hide information popup
+    *
+    */              
+    void HideInformationPopup( );
+    
+protected:    
+
+    /*
+    * Reference to view 
+    */
+    CVcxHgVodMainView& iView;
+    
+    /*
+    * Reference to ui engine interface 
+    */
+    CVcxNsUiEngine& iModel;
+    
+    /**
+     * Reference to the UI component responsible of drawing the information
+     */
+    CHgScroller& iScroller;
+    
+    /**
+     * Pointer to search implementation 
+     * Own.
+     */
+    CVcxHgVodSearchImpl* iSearchImpl;
+    
+    /**
+     * MSK resource currently in use
+     *  
+     */
+    TInt iCurrentMskResource;
+
+private:
+    
+    /*
+    * Launcher that handles opening of web link in embedded browser
+    * Own.
+    */
+    CBrowserLauncher* iLauncher;
+    
+    /**
+     * Info popup.
+     * Own. 
+     */
+    CVcxHgVodInformationPopup* iInformationPopup;
+    
+    };
+
+#endif /*VCXHGVODLISTIMPLBASE_H_*/