camerauis/cameraapp/generic/GsCamcorderPlugin/inc/CamLocationSettingPage.h
branchRCL_3
changeset 24 bac7acad7cb3
parent 0 1ddebce53859
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/camerauis/cameraapp/generic/GsCamcorderPlugin/inc/CamLocationSettingPage.h	Wed Sep 01 12:30:54 2010 +0100
@@ -0,0 +1,192 @@
+/*
+* 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 page for Location setting.*
+*/
+
+
+
+#ifndef CAMLOCATIONSETTINGPAGE_H
+#define CAMLOCATIONSETTINGPAGE_H
+
+//  INCLUDES
+#include <aknsettingpage.h>
+#include "MCamAppController.h"
+
+// FORWARD DECLARATIONS
+class MCamAppController;
+class CCamLocationSettingContainer;
+class MAknQueryValue;
+
+// CLASS DECLARATION
+
+/**
+*  Setting page for the location control. This setting page is customised
+*  so that it contains a custom control and not the editor control
+*  supplied by CAknSettingPage. The base class doesn't allow for custom
+*  controls to be used in settings pages, so this class provides this
+*  functionality.
+*
+*  @since 2.8
+*/
+
+class CCamLocationSettingPage : public CAknSettingPage
+	{
+public: // Constructors, etc.
+	/**
+	* Construct the quality setting page
+    * @since 2.8
+    * @param aMode                  The current capture mode
+    * @param aSettingTitleText	    Text at top of setting pane
+    * @param aSettingNumber		      Number at top left (if present)
+    * @param aControlType			      Determines the type constructed and how its resource is read
+    * @param aEditorResourceId	    Editor resource to use in the setting page (if present)
+    * @param aSettingPageResourceId	Setting Page to use (if present)
+    * @param aQueryValue			      reference to a query value object
+    * @param aController            reference tothe application controller
+	*/
+	CCamLocationSettingPage( TCamCameraMode aMode, 
+                           TDesC& aSettingTitleText,
+                           TInt aSettingNumber, 
+                           TInt aControlType,
+                           TInt aEditorResourceId, 
+                           TInt aSettingPageResourceId,
+                           MAknQueryValue& aQueryValue,
+                           MCamAppController& aController );
+
+    /**
+	* Destructor
+    * @since 2.8
+	*/
+    ~CCamLocationSettingPage();
+
+    /**
+    * Symbian 2nd phase constructor.
+    * @since 2.8
+    */
+    void ConstructL();
+
+public: // Functions from base classes
+
+    /**
+    * From CAknSettingPage
+    * Called when the state of the quality control changes.
+    * Used to preview the new setting value
+    * @since 2.8
+    */
+    void UpdateSettingL();
+
+    /**
+    * From CAknSettingPage
+    * Processes events from the softkeys. Responds to EAknSoftkeyOk and EAknSoftkeyBack
+    * to accept or cancel the pop-up.
+    * @since 2.8
+    * @param aCommandId	Event Id from the soft-key
+    */
+    void ProcessCommandL( TInt aCommandId );
+    
+    /**
+    * From CAknSettingPage
+    * Puts up a constructed dialog. Part of the non-waiting API calls.    
+    * Activity to perform as soon as the setting page is displayed
+    * @since 2.8
+    * @return Whether check succeeded
+    */
+    TBool PostDisplayCheckL();
+
+    /**
+    * From CAknSettingPage
+    * Used to inform the setting item that a new value has been selected
+    * @since 2.8
+    */
+    void SelectCurrentItemL();
+
+    /**
+    * From CCoeControl
+    * Standard Constructs the control from the resource
+    * @since 2.8
+    * @param	aReader	The resource reader
+    */
+    void ConstructFromResourceL( TResourceReader& aReader );
+
+    /**
+    * From CCoeControl
+    * Standard CCoeControl routine to return the number of component controls
+    * @since 2.8
+    * @return the number of component controls
+    */
+	TInt CountComponentControls() const;
+
+    /**
+    * From CCoeControl
+    * Standard CCoeControl routine to return the control at a given index
+    * @since 2.8
+    * @param anIndex index at which to return control
+    * @return the control at the given index
+    */ 
+    CCoeControl* ComponentControl( TInt anIndex ) const;
+
+    /**
+    * From CCoeControl
+    * Used the draw the setting page
+    * @since 2.8
+    * @param aRect the invalid rect to draw
+    */ 
+    void Draw( const TRect& aRect ) const;
+
+    /**
+    * From CCoeControl
+    * Called when the size of the setting page changes
+    * @since 2.8
+    */ 
+    void SizeChanged();
+
+    /**
+    * From CCoeControl
+    * Used to handle key events
+    * @since 2.8
+    * @param aKeyEvent the key event to handle
+    * @param aType the type of key event
+    * @return whether the key was handled
+    */ 
+    TKeyResponse OfferKeyEventL( const TKeyEvent& aKeyEvent, TEventCode aType );
+
+private:
+    /**
+    * Called when the setting value is to be previewed
+    * @since 2.8
+    * @param aPtr pointer to the object that called the timer
+    * @return Error code
+    */
+    static TInt PreviewSettingChange( TAny* aPtr );
+
+private: // data
+    // used to inform the setting item of a change in setting page
+    MAknQueryValue& iQueryValue;
+    // the custom control (quality container ) used in this setting page
+    CCamLocationSettingContainer* iLocationContainer;
+    // reference to the application controller
+    MCamAppController& iController;
+    // the current camera mode
+    TCamCameraMode iMode;
+    // Used to perform the preview setting change
+    CPeriodic* iTimer;
+    // the setting item
+    TInt iSettingItemId;
+    // the current value of the setting item
+    TInt iCurrentVal;
+	};
+
+#endif // CAMLOCATIONSETTINGPAGE_H
+
+// End of File