diff -r 61bc0f252b2b -r bac7acad7cb3 camerauis/cameraapp/generic/GsCamcorderPlugin/inc/GSCamQualitySettingPage.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/camerauis/cameraapp/generic/GsCamcorderPlugin/inc/GSCamQualitySettingPage.h Wed Sep 01 12:30:54 2010 +0100 @@ -0,0 +1,190 @@ +/* +* 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 Image/Video quality.* +*/ + + + +#ifndef GSCAMQUALITYSETTINGPAGE_H +#define GSCAMQUALITYSETTINGPAGE_H + +// INCLUDES +#include +#include "CamSettingsInternal.hrh" + +// FORWARD DECLARATIONS +class CGSCamQualitySettingContainer; +class MAknQueryValue; +class MCamAppController; + +// CLASS DECLARATION + +/** +* Setting page for the quality 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 CGSCamQualitySettingPage : 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 + */ + CGSCamQualitySettingPage( TCamCameraMode aMode, + TDesC& aSettingTitleText, + TInt aSettingNumber, + TInt aControlType, + TInt aEditorResourceId, + TInt aSettingPageResourceId, + MAknQueryValue& aQueryValue ); + + /** + * Destructor + * @since 2.8 + */ + ~CGSCamQualitySettingPage(); + + /** + * 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 app controller + MCamAppController& iController; + // the current capture mode + TCamCameraMode iMode; + // Used to perform the preview setting change + CPeriodic* iTimer; + // the custom control (quality container ) used in this setting page + CGSCamQualitySettingContainer* iQualityContainer; + // the setting item + TInt iSettingItemId; + // the current value of the setting item + TInt iCurrentVal; + }; + +#endif // GSCAMQUALITYSETTINGPAGE_H + +// End of File