--- /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 <coecntrl.h>
+#include <eikfrlb.h>
+#include <AknIconArray.h>
+
+#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
+