diff -r 61bc0f252b2b -r bac7acad7cb3 camerauis/cameraapp/generic/inc/CamUserSceneSetupViewBase.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/camerauis/cameraapp/generic/inc/CamUserSceneSetupViewBase.h Wed Sep 01 12:30:54 2010 +0100 @@ -0,0 +1,227 @@ +/* +* 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: Controls the switching between different control modes* +*/ + + +#ifndef CAMUSERSCENESETUPVIEWBASE_H +#define CAMUSERSCENESETUPVIEWBASE_H + + +// INCLUDES + +#include "CamCaptureSetupViewBase.h" +#include "CamControllerObservers.h" // MCamControllerObserver + +// FORWARD DECLARATIONS + +// CLASS DECLARATION + +/** +* Controls the switching between different control modes +* for the user scene setup. +* +* @since 2.8 +*/ + +class CCamUserSceneSetupViewBase : public CCamCaptureSetupViewBase, + public MCamControllerObserver + { + protected: // data types + + + public: // Constructors and destructor + + /** + * Destructor. + * @since 2.8 + */ + virtual ~CCamUserSceneSetupViewBase() = 0; + + public: // Functions from base classes + + /** + * From CAknView Handle commands + * @since 2.8 + * @param aCommand command to be handled + */ + void HandleCommandL( TInt aCommand ); + + /** + * From CAknView Handles the foreground/background event + * @since 2.8 + * @param aForeground ETrue if this view is on foreground, else EFalse. + */ + void HandleForegroundEventL( TBool aForeground ); + + /** + * From CAknView activate the view + * @param aPrevViewId the id of the previously active view. + * @param aCustomMessageId the id of the custom message + * @param aCustomMessage the custom message + * @return void + * @since 2.8 + */ + void DoActivateL( const TVwsViewId& /*aPrevViewId*/,TUid /*aCustomMessageId*/, + const TDesC8& /*aCustomMessage*/ ); + + /** + * From CAknView deactivate the view (free resources) + * @return void + * @since 2.8 + */ + void DoDeactivate(); + + /** + * From MCamControllerObserver + * @since 2.8 + * @param aEvent The enumerated code for the event received + * @param aError The error code associated with the event + */ + void HandleControllerEventL( TCamControllerEvent aEvent, + TInt aError ); + + /** + * From CCamCaptureSetupViewBase + * Revert to normal mode + * @since 2.8 + */ + virtual void ExitAllModesL(); + + protected: // Constructors etc. + + /** + * C++ default constructor. + * @param aController Reference to either the application controller + * base class or test base class + * @since 2.8 + */ + CCamUserSceneSetupViewBase( CCamAppController& aController ); + + protected: // New functions to be implemented by derived classes. + + /** + * Exits the user scene setup mode + * @since 2.8 + */ + virtual void ExitUserSceneSetupModeL(); + + /** + * Switches to the user scene setup mode. + * @since 2.8 + */ + virtual void SwitchToUserSceneSetupModeL(); + + /** + * Starts the viewfinder. + * @since 2.8 + */ + virtual void StartViewFinder() = 0; + /** + * Stops the viewfinder. + * @since 2.8 + */ + virtual void StopViewFinder() = 0; + + protected: // From base class + + /** + * From CCamViewBase + * Update the softkeys for the current situation. + * @since 2.8 + */ + void UpdateCbaL(); + + /** + * From CCamViewBase + * Set the view's title text + * @since 2.8 + */ + void SetTitlePaneTextL(); + + /** + * Exit capture setup mode. + * Replaces the normal container on the control stack. + * Reverts the Cba and title pane. + * Derived classes should override this method to add any additional + * functionality they require e.g exiting the viewfinder and + * reverting the navi pane if necessary when switching back to the view's + * normal mode. + * @since 2.8 + */ + virtual void ExitCaptureSetupModeL(); + + /** + * Exit scene setting mode. + * Replaces the normal container on the control stack. + * Reverts the Cba and title pane. + * @since 2.8 + */ + void ExitSceneSettingModeL(); + + /** + * From CCamCaptureSetupViewBase + * Exit InfoListBox + * Updates the Cba, title pane and navi pane. + * @since 3.0 + */ + virtual void ExitInfoListBoxL(); + + private: // New functions + /** + * Switches to the capture setup mode. + * @param command that specifies which capture setup control to use + * in the new mode. + * @since 2.8 + */ + void SwitchToCaptureSetupModeL( TInt aSetupCommand ); + + /** + * Returns true if only the user scene setup mode is active. + * @since 2.8 + */ + TBool IsOnlyUserSceneSetupModeActive(); + + + /** + * Displays reset user scene settings cofirmation note + * @since 3.0 + */ + void DisplayResetUserSceneDlgL(); + + protected: + + // Specifies whether the user scene setup mode is active + TBool iUserSceneSetupModeActive; + + // Specifies whether the user scene page mode is active. + TBool iUserScenePageModeActive; + + // Indicates that user has pressed cancel to close this view. + TBool iCancelRequest; + + // Indicates that user has pressed OK to close this view. + TBool iOkRequest; + + // Indicates that Viewfinder start has been requested. View switch + // should not occur until viewfinder start has completed. + TBool iVFRequested; + + //Boolean to check if a popup is whats generating a background event + TBool iNotifierPopupShowing; + }; + +#endif // CAMUSERSCENESETUPVIEWBASE_H + +// End of File