diff -r 000000000000 -r 96612d01cf9f mediasettings/feedsettingsviews/inc/feedsettingsviewcontainer.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mediasettings/feedsettingsviews/inc/feedsettingsviewcontainer.h Mon Jan 18 20:21:12 2010 +0200 @@ -0,0 +1,366 @@ +/* +* Copyright (c) 2007 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: Container class for Setting view.* +*/ + + + + +#ifndef VCSETTINGSVIEWSETTINGSVIEWCONTAINER_H +#define VCSETTINGSVIEWSETTINGSVIEWCONTAINER_H + +// INCLUDES +#include +#include +#include + +#include "CIptvService.h" + +// CONSTANTS + +// FORWARD DECLARATIONS +class CVcxNsSettingsView; +class CVcxNsSettingsViewSettingsListbox; +class CAknSingleGraphicStyleListBox; +class CVcxNsSettingsViewAddServiceListbox; +class CAknSingleNumberStyleListBox; +class CVcxNsSettingsEngine; +class CVcxNsSettingsViewSettingItem; +class CVcxNsSettingsViewServiceType; +class CVcxNsSettingsViewServiceSelection; +class CVcxNsSettingsViewAddOrEditService; +class CVcSettingsViewChangePriority; +class CVcxNsServiceSettings; + +class CAknViewAppUi; + +enum TSettingsViewActiveList + { + /* + ESettingItem = 1, + EConnectionSettings, + EServiceType, + */ + EServiceSelection = 1, + EAddService + }; + +// CLASS DECLARATION + +/** + * Container class for Setting view. + * + * @lib vcsettingsview.lib + * @since S60 3.2 + */ +NONSHARABLE_CLASS( CVcxNsSettingsViewContainer ) : public CCoeControl, public MEikListBoxObserver + { +public: // Enumerations. + + enum TMenuItemType + { + EGeneral = 1, + EConst, + EConstAndInfo, + EEditable + }; + +public: // Construction and destruction. + + /** + * @param aAppUi Reference to application's App Ui. + * @param aAppSettings Reference to UI Engine's AppSettings. + * @param aParentView Pointer to parent view. + * @param aFs Reference to RFs session. + */ + CVcxNsSettingsViewContainer( CAknViewAppUi& aAppUi, + CVcxNsSettingsEngine& aAppSettings, + CVcxNsServiceSettings& aServiceSettings, + CVcxNsSettingsView* aParentView, + RFs& aFs); + + /** + * @param aRect Frame rectangle for container. + */ + void ConstructL(const TRect& aRect); + + ~CVcxNsSettingsViewContainer(); + + /** + * From CCoeControl + * Called by framework when help is launched. Returns currently + * active view's help content. + * @param aContext On return, help context. + */ + void GetHelpContext( TCoeHelpContext& aContext ) const; + +public: + + /** + * Returns pointer to App Ui. + * + * @return Pointer to App Ui. + */ + CAknViewAppUi* AppUi(); + + /** + * Returns pointer to Settings view. + * + * @return Pointer to Settings view. + */ + CVcxNsSettingsView* SettingsView(); + + /** + * Returns pointer to Service Selection. + * + * @return Pointer to Service Selection. + */ + CVcxNsSettingsViewServiceSelection* ServiceSelection(); + + /** + * Switches "service selection list" visible. + */ + void SwitchToServiceSelectionListL(); + + /** + * Switches "service selection list" of type Vod visible. + * + * @param aServiceType Type of service + */ + void SwitchToServiceSelectionListL( CIptvService::TServiceType aServiceType ); + + /** + * Closes "service selection list". + */ + void FinishServiceSelectionList(); + + /** + * Sets title for this view. + * + * @param aResourceId Title resource id. + */ + void SetTitleL( TInt aResourceId ); + + /** + * Switches "add/edit service list" visible. + */ + void SwitchToAddOrEditServiceListL(); + + /** + * Returns type of currently active list. + * + * @return One of TSettingsViewActiveList enumerations. + */ + TSettingsViewActiveList GetActiveList() + {return(iActiveList);} + + /** + * Deletes currently active video service. + * Functional only in "service selection list". + */ + void DeleteVideoServiceL(); + + /** + * Returns current service type of "service selection list". + * + * @return Service type as CIptvService::TServiceType enumeration. + */ + CIptvService::TServiceType GetServiceSelectionServiceType(); + + /** + * Loads/updates data to "add/edit service list". + * + * @param aAdding ETrue if list will be used for adding, + * EFalse if it will be used for editing. + */ + void LoadAddServiceInformationL(TBool aAdding); + + /** + * Saves data from "add/edit service list". + */ + void SaveAddServiceInformationL(); + + /** + * Saves data (=selections) from "service selection list". + */ + void SaveServiceSelectionInformationL(); + + /** + * Opens current setting item for editing. + * + * @param aCalledFromMenu ETrue if edit request comes from menu. + */ + void EditCurrentSettingItemListItemL(TBool aCalledFromMenu); + + /** + * Opens dialog with video service details. + * Functional only in "service selection list". + */ + void ShowVideoServiceDetailsL(); + + /** + * Handles mark commands received from menu. + * Functional only in "service selection list". + * + * @param aCommand Mark command. + */ + void HandleMarkCommandL(TInt aCommand); + + /** + * Key event handler. + * Note: Changed to public for key routing. + */ + TKeyResponse OfferKeyEventL(const TKeyEvent& aKeyEvent,TEventCode aType); + + /** + * Returns true if "mark" menu item can be shown for current list item. + * Functional only in "service selection list". + * + * @return ETrue if "mark" menu item can be shown. + */ + TBool ShowMarkForCurrentListItemL(); + + /** + * Returns true if "unmark" menu item can be shown for current list item. + * Functional only in "service selection list". + * + * @return ETrue if "unmark" menu item can be shown. + */ + TBool ShowUnmarkForCurrentListItemL(); + + /** + * Returns true if menu item of given type can be shown for current list item. + * Functional only in "service selection list". + * + * @param aMenuItemType Menu item type as TMenuItemType enumeration. + * @return ETrue if given menu item can be shown. + */ + TBool ShowMenuItemForCurrentListItemL(TMenuItemType aMenuItemType); + + /** + * Load Vodcast data to "Add feed" view. Used when add feed called directly + * from Vodcast view. + */ + void LoadAddVodCastFeedL(); + + /** + * From MEikListBoxObserver + * Event message handler to be used for the service type, + * selection and add/edit Listboxes. + * + * @param *aListBox not used in this context + * @param aEventType A code for the event. + */ + void HandleListBoxEventL(CEikListBox* /*aListBox*/, TListBoxEvent aEventType); + +private: + + /** + * Returns true if current list item is marked. + * Functional only in "service selection list". + */ + TBool IsCurrentListItemMarked(); + + /** + * From CoeControl. Called when container size changes. + */ + void SizeChanged(); + + /** + * From CoeControl. Returns count of controls in container. + */ + TInt CountComponentControls() const; + + /** + * From CCoeControl. Returns a specific control in container. + */ + CCoeControl* ComponentControl(TInt aIndex) const; + + /** + * From CCoeControl. Handle global resource change. + */ + void HandleResourceChange(TInt aType); + + /** + * From CCoeControl. Draws container. + */ + void Draw(const TRect& aRect) const; + + /** + * + */ + TInt TitleResourceId(); + +public: + /** + * Zeroes interal msk tracker. DOES NOT ACTUALLY CLEAR MSK! + */ + void ClearMsk(); + + /** + * Check if the msk need update and updates if needed + */ + void CheckMsk(); + +private: // Data + + /** + * App UI + */ + CAknViewAppUi& iAppUi; + + /** + * reference to Settings engine + */ + CVcxNsSettingsEngine& iAppSettings; + + /** + * UI engine's service settings provider + */ + CVcxNsServiceSettings& iServiceSettings; + + /** + * Parent View + */ + CVcxNsSettingsView* iParentView; + + /** + * iFs + */ + RFs& iFs; + + /** + * Currently active setting item list + */ + TSettingsViewActiveList iActiveList; + + /** + * Current MSK resource id + */ + TInt iCurrentMskResource; + + /** + * Service selection setting item + */ + CVcxNsSettingsViewServiceSelection* iServiceSelection; + + /** + * Add or edit service setting item + */ + CVcxNsSettingsViewAddOrEditService* iAddOrEditService; + + }; + +#endif // VCSETTINGSVIEWSETTINGSVIEWCONTAINER_H +