camerauis/cameraapp/generic/inc/CamContextAwareSettingItem.h
branchRCL_3
changeset 24 bac7acad7cb3
parent 0 1ddebce53859
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/camerauis/cameraapp/generic/inc/CamContextAwareSettingItem.h	Wed Sep 01 12:30:54 2010 +0100
@@ -0,0 +1,99 @@
+/*
+* 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 "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 type for CAknEnumeratedItems.*
+*/
+
+
+
+
+#ifndef CAMCONTEXTAWARESETTINGITEM_H
+#define CAMCONTEXTAWARESETTINGITEM_H
+
+//  INCLUDES
+ 
+#include <AknSettingItemList.h>
+
+// CONSTANTS
+
+// MACROS
+
+// DATA TYPES
+
+// FUNCTION PROTOTYPES
+
+// FORWARD DECLARATIONS
+class CCamAppController;    
+
+// CLASS DECLARATION
+
+/**
+*  Setting item class similar to standard avkon CAknEnumeratedTextPopupSettingItem.
+*  Allows the text array to be updated dynamically on construction according
+*  to any limitations on available items imposed by other setting values or available
+*  memory
+*
+*  @since 2.8
+*/
+
+class CCamContextAwareSettingItem : public CAknEnumeratedTextPopupSettingItem
+	{
+public:
+	/**
+	* Construct a list, storing in it a resource (to be read at 2nd stage construction)
+	* and a reference to an externally owned integer - the value to be manipulated
+    * @since 2.8
+    * @param aController reference the the application controller
+    *        provides access to query for a revised resource id
+    * @param aSettingItemId the setting item being constructed
+    * @param aValue the current value of the item
+	*/
+	CCamContextAwareSettingItem( CCamAppController& aController,
+                                 TInt aSettingItemId, 
+                                 TInt& aValue );
+
+
+
+private: // Functions from base classes
+
+	/**
+    * From CAknEnumeratedTextPopupSettingItem
+	* Virtual Method called by framework to create the setting page.  
+	* Creates setting page that switches cba depending on setting value
+    * that user navigates to.
+    * @since 2.8
+	*/
+    CAknSettingPage* CreateSettingPageL();
+
+	/**
+    * From CAknEnumeratedTextPopupSettingItem
+	* Virtual Method called by framework to complete construction of
+    * the setting page.  
+    * Determines whether or not the value list is to be limited (visually) 
+    * and replaces the popup text array with a new array created from the 
+    * revised resource id.
+    * @since 2.8
+	*/
+    void CompleteConstructionL();
+
+private: // data
+
+    // Used to determine whether a particular setting value can be
+    // set by the user.
+    CCamAppController& iController; 
+
+	};
+
+#endif // CAMCONTEXTAWARESETTINGITEM_H
+
+// End of File