diff -r 000000000000 -r 96612d01cf9f videofeeds/hgvodui/inc/vcxhgvodmainview.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/videofeeds/hgvodui/inc/vcxhgvodmainview.h Mon Jan 18 20:21:12 2010 +0200 @@ -0,0 +1,423 @@ +/* +* 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 Feed view implementation* +*/ + + +// Version : %version: tr1ido#REL6_12 % + +#ifndef VCXHGVODMAINVIEW_H +#define VCXHGVODMAINVIEW_H + +#include +#include +#include "vcxviewmessageutility.h" + +class CAknTitlePane; +class CAknNavigationControlContainer; +class CEikonEnv; +class CAknsBasicBackgroundControlContext; +class CGulIcon; +class CRepository; +class CVcxHgVodMainViewContainer; +class CIptvResourceLoader; +class MEikMenuObserver; +class CVcxNsPlayerWrapper; +class CVcxNsUiEngine; +class MMPXViewUtility; +class CVcxNsContent; +class CVcxHgVodServiceListImpl; +class CVcxHgVodCategoryListImpl; +class CVcxHgVodContentListImpl; +class CVcxHgVodServiceGroupListImpl; +class CVcxHgVodListImplBase; +class CVcxHgVodTelephonyClient; +class TViaPlayerCustomMessage; +class CHgDoubleGraphicList; +class CHgDoubleTextList; + +// CLASS DECLARATION +/** + * Main view + * + * + * @code + * + * @endcode + * + * @lib vcxhgvodui.lib + * @since S60 v5.0 + */ +class CVcxHgVodMainView : public CAknView, + public MVcxViewMessageObserver + { + +public: + + //list type + enum TVcxHgVodListType + { + EVcxNsServiceList, + EVcxNsCategoryList, + EVcxNsContentList, + EVcxNsCustomList + }; + + /** + * Two-phased constructor. + */ + IMPORT_C static CVcxHgVodMainView* NewL( ); + + /** + * Two-phased constructor. + */ + IMPORT_C static CVcxHgVodMainView* NewLC( ); + + /** + * Destructor. + */ + IMPORT_C virtual ~CVcxHgVodMainView(); + + /** + * Accessor for the application's AppUi. + * + * @return Pointer to AppUi. + */ + CAknViewAppUi* AppUi() const { return CAknView::AppUi(); } + + /** + * Get pointer to title pane + * @return Pointer to CAknTitlePane + */ + CAknTitlePane* TitlePaneL(); + + /** + * Get pointer to navi pane + * @return Pointer to CAknNavigationControlContainer + */ + CAknNavigationControlContainer* NaviPaneL(); + + /** + * Accessor for player wrapper. + * + * @return Pointer to player wrapper. + */ + CVcxNsPlayerWrapper* PlayerWrapper(); + + /** + * Command handling function + * @param aCommand ID of the command to respond to + */ + void HandleCommandL( TInt aCommand ); + + /** + * Accessor for view container + * + */ + CVcxHgVodMainViewContainer* Container(); + + /** + * Handles key events from container. + * + * @param aKeyEvent Key event. + * @param aType Key event type. + * @return Response, tells if key was handled or not. + */ + TKeyResponse HandleKeyEventL( const TKeyEvent& aKeyEvent, TEventCode aType ); + + /** + * Create list widget and related classes + * @param aType List type + */ + void CreateListL( TVcxHgVodListType aType ); + + /** + * Change list inside main view. + * No actual view change, just switch to different list type. + */ + void ChangeListViewL(); + + /** + * Open settings view via mpx view utility + * @param aCommand Command for the state where settings is opened + */ + void OpenSettingsL( TInt aCommand ); + + /** + * Open schedule settings for the service. + */ + void OpenScheduleSettingsL(); + + /** + * Get pointer to active list in view + * @return Pointer to active list. + */ + CVcxHgVodListImplBase* ActiveList(); + + /** + * PlayInternalVideoL + * + * @param aContent Content that contains video data. + */ + void PlayInternalVideoL( CVcxNsContent* aContent ); + + /** + * Play stream + * @param aUrl Url + */ + void PlayStreamL( const TDesC& aUrl ); + + /** + * From MVcxViewMessageObserver + * Handles a custom view message. + * @param aMessageUid UID for custom message + * @param aCustomMessage Message contents + */ + void HandleCustomViewMessageL( + const TUid aMessageUid, + const TDesC8 &aCustomMessage ); + + /** + * Called by list impelementation(s) when layout is changed. + */ + void LayoutChanged(); + + /** + * Return eikon env. + * + * @return Reference to eikon env + */ + CEikonEnv& EikonEnv(); + + /** + * Return view's cba. + */ + CEikButtonGroupContainer* ViewCba(); + + /** + * Return touch support flag. + * ETrue if touch supported. + */ + TBool IsTouchSupported(); + +private: + + /** + * Set active list + * @param aList + */ + void SetActiveList( CVcxHgVodListImplBase* aList ); + + /** + * From CAknView returns Uid of View + * @return TUid uid of the view + */ + TUid Id() const; + + /** + * From CAknView activate the view + * + * @since S60 v3.0 + * @param aPrevViewId + * @param aCustomMessageId + * @param aCustomMessage + */ + void DoActivateL( const TVwsViewId& aPrevViewId, + TUid aCustomMessageId, + const TDesC8& aCustomMessage ); + + /** + * From CAknView deactivate the view (free resources) + * + * @since S60 v3.0 + */ + void DoDeactivate(); + + /** + * Default constructor + * + */ + CVcxHgVodMainView( ); + + /** + * Constructor + * + */ + void ConstructL(); + + //From MEikMenuObserver + + /** + * Menu item handling method + * @param aResourceId Menu pane resource id + * @param aMenuPane Pointer to menu pane + */ + void DynInitMenuPaneL( TInt aResourceId, CEikMenuPane* aMenuPane ); + + /** + * Supplies objects to Mop childs. + * @param aId Type of object to supply. + * @return Type UID pointer containing supplied object, or @c NULL type UID + * pointer if given type is not found. + */ + TTypeUid::Ptr MopSupplyObject( TTypeUid aId ); + + /** + * Handles the change of status pane. + */ + void HandleStatusPaneSizeChange(); + + /** + * Handles the foreground event. + * @param aForeground Is foreground state gained or not. + */ + void HandleForegroundEventL( TBool aForeground ); + + /** + * Checks parental control for a video, and asks lock code. + * + * @leave KErrPermissionDenied If not allowed to play. + * @param aAgeProfile Age profile for the video to be checked. + */ + void CheckParentalControlL( TUint32 aAgeProfile ); + + /* + * Process custom activation message. + * + * @param aCustomMessage The message. + */ + void ProcessCustomMessageL( const TDesC8& aCustomMessage ); + + /* + * Handles custom activation message. + */ + void HandleCustomViewMessageL(); + + /** + * Locates the mif file searching from y: to a: and then z: last + * + * @param aFileName Full path to mif file. + */ + void LocateMifFileL( TFileName& aFileName ); + +private: // data + + /** + * View id + */ + TUid iViewId; + + /** + * Flag for touch support + */ + TBool iTouchSupport; + + /** + * View container + * Own. + */ + CVcxHgVodMainViewContainer* iContainer; + + /** + * Resource loader + * Own. + */ + CIptvResourceLoader* iResourceLoader; + + /** + * Background context. + * Own. + */ + CAknsBasicBackgroundControlContext* iBgContext; + + /** + * Ui engine. + * Own. + */ + CVcxNsUiEngine* iModel; + + /** + * Service list view implementation + * Own. + */ + CVcxHgVodServiceListImpl* iServiceList; + + /** + * Category list view implementation + * Own. + */ + CVcxHgVodCategoryListImpl* iCategoryList; + + /** + * Content list view implementation + * Own. + */ + CVcxHgVodContentListImpl* iContentList; + + /** + * Service group list view implementation + * Own. + */ + CVcxHgVodServiceGroupListImpl* iServiceGroupList; + + /** + * Content list view implementation + * Own. + */ + CVcxHgVodListImplBase* iActiveList; + + /** + * Mpx view Utility + */ + MMPXViewUtility* iViewUtility; + + /** + * Scroller for double graphics hg list. + * Own. + */ + CHgDoubleGraphicList* iGraphicScroller; + + /** + * Scroller for double text hg list. + * Own. + */ + CHgDoubleTextList* iTextScroller; + + /** + * Default icon for services. + * Own. + */ + CGulIcon* iServiceDefaultIcon; + + /** + * Default icon for content. + * Own. + */ + CGulIcon* iContentDefaultIcon; + + /** + * Telephony client for lock code queries + * Own. + */ + CVcxHgVodTelephonyClient* iTelephonyClient; + + /** + * Central repository access needed for parental control setting. + * Own. + */ + CRepository* iCenRep; + + }; + +#endif // VCXHGVODMAINVIEW_H