--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mediasettings/mediasettingsapp/inc/MPSettingsVideoSettingItemList.h Mon Jan 18 20:21:12 2010 +0200
@@ -0,0 +1,315 @@
+/*
+* Copyright (c) 2002 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: Setting item list class for Video settings list view.*
+*/
+
+
+// Version : %version: 6 %
+
+
+
+
+#ifndef MPSETTINGSVIDEOSETTINGITEMLIST_H
+#define MPSETTINGSVIDEOSETTINGITEMLIST_H
+
+// INCLUDES
+#include <aknsettingitemlist.h>
+#include "videosettingsdrivemonitor.h"
+#include "mvideosettingsdrivemonitorobserver.h"
+
+// CONSTANTS
+// VideoCenter SIS package UID
+const TUid KSisUid = { 0x200159B2 };
+
+// formatting string for version number
+_LIT( KVersionNumberFormat, "%d.%d(%d)" );
+
+// Max length of the above version number string, whose format is
+// major.minor(build). Header e32cmn.h states that their ranges are:
+// 1. the major version number, ranging from 0 to 127, inclusive
+// 2. the minor version number, ranging from 0 to 99 inclusive
+// 3. the build number, ranging from 0 to 32767 inclusive.
+// Which makes the total max length 3+1+2+1+5+1 = 13
+const TInt KMaxVersionNumberLength( 13 );
+
+
+// When video contrast is not drawn, we know to shift the contents
+const TInt KVideoContrastNotSupported ( -99 );
+
+// FORWARD DECLARATIONS
+class CMPSettingsModelForROP;
+class CVcxNsSettingsEngine;
+class TIptvDriveMonitorEvent;
+
+// CLASS DECLARATION
+
+/**
+* CMPSettingsVideoSettingItemList
+* Setting item list class for Video settings list view.
+*
+* @lib MediaSettings.app
+* @since 2.0
+*/
+class CMPSettingsVideoSettingItemList : public CAknSettingItemList,
+ public MIptvDriveMonitorObserver
+ {
+ public: // Constructors and destructor
+
+ /**
+ * Setting listbox's item idexes
+ */
+ typedef enum
+ {
+ EVideoSettingContrast = 0,
+ EVcSettingsViewParentControlIndex,
+ EVcSettingsViewMemoryItemIndex,
+ EVcSettingsViewThumbnailsIndex,
+ EVideoPlayerVersion,
+ EVcSettingsViewIadUpdateItemIndex // non-editable item
+ } TVideoSettingItemIndex;
+
+ /**
+ * C++ default constructor.
+ */
+ CMPSettingsVideoSettingItemList( CMPSettingsModelForROP* aModel,
+ CVcxNsSettingsEngine& aVideoSettingsEngine );
+
+ /**
+ * Destructor.
+ */
+ virtual ~CMPSettingsVideoSettingItemList();
+
+ public:
+
+ /**
+ * Edits thumbnail setting item.
+ *
+ * @param itemIndex Setting list index.
+ * @param aCalledFromMenu ETrue if started from menu.
+ */
+ void EditThumbnailItemL( TInt itemIndex, TBool aCalledFromMenu );
+
+ /**
+ * Edits parent control settting item.
+ *
+ * @param itemIndex Setting list index.
+ * @param aCalledFromMenu ETrue if started from menu.
+ */
+ void EditParentControlItemL( TInt itemIndex, TBool aCalledFromMenu );
+
+ /**
+ * Edits preferred memory settting item.
+ *
+ * @param itemIndex Setting list index.
+ * @param aCalledFromMenu ETrue if started from menu.
+ */
+ void EditPreferredMemoryItemL( TInt itemIndex, TBool aCalledFromMenu );
+
+ /**
+ * Check if specified item is currently selected.
+ *
+ * @param aIndex Item index
+ */
+ TBool IsCurrentItem( TInt aIndex );
+
+ public: // Functions from base classes
+
+ /**
+ * From CAknSettingItemList
+ */
+ void EditItemL(TInt aIndex, TBool aCalledFromMenu);
+
+ /**
+ * Opens current setting item for editing.
+ *
+ * @param aCalledFromMenu ETrue if started from menu.
+ */
+ void EditCurrentItemL( TBool aCalledFromMenu );
+
+ /**
+ * From CAknSettingItemList
+ */
+ void LoadSettingsL();
+
+ /**
+ * Finishes construction of listbox. Should be called after the
+ * listbox is otherwise fully constructed.
+ */
+ void FinishConstructionL();
+
+ public: // From MIptvDriveMonitorObserver
+
+ void HandleDriveMonitorEvent( TIptvDriveMonitorEvent& aEvent );
+
+ protected: // Functions from base classes
+
+ /**
+ * From CAknSettingItemList
+ */
+ CAknSettingItem* CreateSettingItemL(TInt aSettingId);
+
+ private: //New
+
+ /**
+ * Loads a specific setting value.
+ * @since 2.0
+ * @param aSettingId ID of the setting to be loaded.
+ */
+ void LoadSettingL(TInt aSettingId);
+
+ /**
+ * Stores a specific setting value.
+ * @since 2.0
+ * @param aSettingId ID of the setting to be stored.
+ */
+ void StoreSettingL(TInt aSettingId);
+
+ /**
+ * Loads all setting values.
+ * @since 2.0
+ */
+ void LoadAllL();
+
+ /**
+ * Updates version number item to settings list.
+ */
+ void UpdateVersionNumberTextL();
+
+ /**
+ * Updates text of "parent control" setting item.
+ */
+ void UpdateParentControlTextL();
+
+ /**
+ * Fetch current parent control age and return corresponding index.
+ *
+ * @return Parent control age.
+ */
+ TInt GetCurrentParentControl();
+
+ /**
+ * Convert and save parent control index as age.
+ *
+ * @param aParentControlIndex Index of parent control selection.
+ */
+ void SetCurrentParentControl( TInt aParentControlIndex );
+
+ /**
+ * Updates text of "memory" setting item.
+ */
+ void UpdateMemoryItemTextL();
+
+ /**
+ * Adds phone memory descriptor to arrays.
+ *
+ * @param aIndex index in enumeration list.
+ * @param aEnumeratedTextArray
+ * @param aPoppedUpTextArray
+ */
+ void AddPhoneMemoryDesToArraysL( TInt aIndex,
+ CArrayPtrFlat<CAknEnumeratedText>& aEnumeratedTextArray,
+ CArrayPtr<HBufC>& aPoppedUpTextArray );
+
+ /**
+ * Adds memory card descriptor to arrays.
+ *
+ * @param aIndex index in enumeration list.
+ * @param aEnumeratedTextArray
+ * @param aPoppedUpTextArray
+ */
+ void AddMemoryCardDesToArraysL( TInt aIndex,
+ CArrayPtrFlat<CAknEnumeratedText>& aEnumeratedTextArray,
+ CArrayPtr<HBufC>& aPoppedUpTextArray );
+ /**
+ * Adds locked memory card descriptor to arrays.
+ *
+ * @param aIndex index in enumeration list.
+ * @param aEnumeratedTextArray
+ * @param aPoppedUpTextArray
+ */
+ void AddLockedMemoryCardDesToArraysL( TInt aIndex,
+ CArrayPtrFlat<CAknEnumeratedText>& aEnumeratedTextArray,
+ CArrayPtr<HBufC>& aPoppedUpTextArray );
+
+ /**
+ * Adds hard disk descriptor to arrays.
+ *
+ * @param aIndex index in enumeration list.
+ * @param aEnumeratedTextArray
+ * @param aPoppedUpTextArray
+ */
+ void AddHardDiskDesToArraysL( TInt aIndex,
+ CArrayPtrFlat<CAknEnumeratedText>& aEnumeratedTextArray,
+ CArrayPtr<HBufC>& aPoppedUpTextArray );
+
+ /**
+ * Adds descriptor to arrays.
+ *
+ * @param aIndex index in enumeration list.
+ * @param aText Descriptor to add. Ownership moves.
+ * @param aEnumeratedTextArray
+ * @param aPoppedUpTextArray
+ */
+ void AddDesToArraysL( TInt aIndex,
+ HBufC* aText,
+ CArrayPtrFlat<CAknEnumeratedText>& aEnumeratedTextArray,
+ CArrayPtr<HBufC>& aPoppedUpTextArray );
+
+ /**
+ * Check wheter or not the Contrast settings item shold be drawn
+ */
+ TBool VideoContrastIsSupportedL();
+
+ /**
+ * Event handling section, from MEikListBoxObserver.
+ */
+ void HandleListBoxEventL(CEikListBox* aListBox, TListBoxEvent aListBoxEvent);
+
+ private:
+ CMPSettingsModelForROP* iModel;
+ CVcxNsSettingsEngine& iVideoSettingsEngine; // Video settings engine
+
+ CVideoSettingsDriveMonitor* iDriveMonitor; // Drive monitor
+
+ TBuf< KMaxVersionNumberLength > iSettingVersionText; // version text
+ CAknTextSettingItem* iSettingIadUpdateItem; // IAD update setting item
+
+ CAknEnumeratedTextPopupSettingItem* iSettingThumbnailsItem; // Thumbnail setting item
+ TInt iSettingThumbnails; // Selected thumbnail setting value
+
+ CAknEnumeratedTextPopupSettingItem* iSettingParentControlItem; // Parent control setting item
+ TInt iParentControlIndex; // Selected parent control setting value
+ /**
+ * Is the phone's lock code entered succesfully,
+ * required for editing parent control settings.
+ */
+ TBool iLockCodeAccepted;
+
+ CAknEnumeratedTextPopupSettingItem* iSettingMemoryItem; // Memory setting item
+ TInt iSettingMemory; // Selected memory setting value
+
+ CAknEnumeratedTextPopupSettingItem* iSettingServiceItem; // Service selection item
+ TInt iSettingTemp; // Dummy setting placeholder for settings sublist items
+
+ TInt iVideoContrast;
+ TBool iVideoRepeatMode;
+ TBool iVideoDefaultViewMode;
+ TBool iRockerKeysMode;
+ TBool iRockerKeysSupported;
+ TBool iLandscapeSupportedByDevice;
+ };
+
+#endif // MPSETTINGSVIDEOSETTINGITEMLIST_H
+
+// End of File