diff -r 61bc0f252b2b -r bac7acad7cb3 camerauis/cameraapp/generic/inc/CamViewBase.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/camerauis/cameraapp/generic/inc/CamViewBase.h Wed Sep 01 12:30:54 2010 +0100 @@ -0,0 +1,401 @@ +/* +* 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: Base class for all camera views* +*/ + + +#ifndef CAMVIEWBASE_H +#define CAMVIEWBASE_H + +// =========================================================================== +// INCLUDES + +#include "CamAppUiBase.h" +#include "CamCommandHandlerAo.h" +#include + +// =========================================================================== +// FORWARD DECLARATIONS +class CCamAppController; +class CCamContainerBase; +class CCamStandbyContainer; +class CCamWaitDialog; + + +// =========================================================================== +// CLASS DECLARATION + +/** +* Base class for all camera views +* +* @since 2.8 +*/ +class CCamViewBase : public CAknView + { + public: // Constructors and destructor + + /** + * Destructor. + * @since 2.8 + */ + virtual ~CCamViewBase(); + + public: // New functions + + virtual void HandleAppEvent( const TCamAppEvent& aEvent ); + + /** + * Update the softkeys for the current situation. + * @since 2.8 + */ + virtual void UpdateCbaL(); + + /** + * Blank the softkeys on the cba + * @since 3.0 + */ + virtual void BlankSoftkeysL(); + + /** + * Switch from current mode to standby mode + * @since 2.8 + * @param aViewId the current view id + * @param aError associated error code + */ + virtual void SwitchToStandbyModeL( TCamAppViewIds aViewId, TInt aError ); + + /** + * Exit standby mode + * @since 2.8 + */ + void ExitStandbyModeL(); + + /** + * Exit all modes. + * Has empty default implementation which can be overriden + * if needed in inherited classes. Atleast user scene setup view does this. + * Called e.g. when entering standby mode to be able to enter normal + * VF mode again when exiting standby. + */ + virtual void ExitAllModesL(); + + /** + * Handle change of focus to another application + * This only handles another application coming to the foreground when + * the camera application is already in the background behind an eikon + * server window + * @since 2.8 + */ + virtual void HandleFocusLossL(); + + /** + * Handle change of mode + * @since 3.0 + */ + virtual void PrepareForModeChange(); + + /** + * Called to identify the help context for this view + * @since 2.8 + * @param aContext Help context object to populate with control context + * information + */ + virtual void GetHelpContext(TCoeHelpContext& aContext) const; + + /** + * Returns the currently used container for this view + * @since 2.8 + * @return The currently used container + * information + */ + CCamContainerBase* Container(); + + /** + * Sets the softkeys to the specified Resource ID + * @since 3.0 + * @param aResource ID of the softkey resource to use + */ + virtual void SetSoftKeysL(TInt aResource); + + /** + * Blanks the softkeys for the Courtesy UI Off state. + * @since 3.0 + */ + void SetCourtesySoftKeysL(); + + /** + * Returns the softkeys to their previous state after UI has been turned back on + * @since 3.0 + */ + void UnsetCourtesySoftKeysL(); + + /** + * Returns whether the view is in standby mode + * @return Whether the view is in standby mode + */ + TBool IsInStandbyMode(); + + /** + * Requests that the camera application redraws the supplied active palette area + * @since 3.0 + * @param aArea the area to redraw + */ + void RedrawAPArea(const TRect& aArea); + + + /** + * Return a pointer to view specific CBA (or applications CBA if + * there is no view specific CBA defined). + * @since S60 v5.0 + * @return Pointer to CEikButtonGroupContainer. Ownership not + * transferred + */ + CEikButtonGroupContainer* ViewCba(); + + /** + * Updates toolbar icons. + * + */ + virtual void UpdateToolbarIconsL(); + + /** + * Sets the standby to the current error if the current state is in standby; else does nothing + * @since 5.1 + * @aError System wide error code + */ + virtual void SetStandbyStatusL( TInt aError ); + + 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 ); + + /** + * Active object for handling toolbar commands + * @since S60 v.5.0 + */ + void HandleCommandAoL( TInt aCommand ); + + protected: // Functions from base classes + + /** + * From CAknView. + * @since 2.8 + * @param aPostvViewId the ID for previous view we are switching from + * @param aCustomMessageId the Uid for message passed to this view + * @param aCustomMessage descriptor containing data content for view specific message + */ + void DoActivateL( const TVwsViewId& aPostvViewId, TUid aCustomMessageId, + const TDesC8& aCustomMessage ); + + /** + * From CAknView. + * @since 2.8 + */ + void DoDeactivate(); + + /** + * Prepare deactivation of this view. + * Method stores current visible containers to temporary containers. + */ + void PrepareDeactivate(); + + /** + * Completes deactivation of this view. + * Method method deletes stored temporary containers. + */ + void PostDeactivate(); + + protected: // New functions + + /** + * C++ default constructor. + * @since 2.8 + * @param aController Reference to either the application controller base class or test base class + */ + CCamViewBase( CCamAppController& aController ); + + /** + * Create the container associated with this view. + * @since 2.8 + */ + virtual void CreateContainerL() = 0; + + /** + * Set the view's title text + * @since 2.8 + */ + virtual void SetTitlePaneTextL() = 0; + + /** + * Show rename query and rename file. + * Switch orientation if required. Calls DoQueryRenameL() + * @since 2.8 + * @param aMode The current mode. + */ + void QueryRenameL( TCamCameraMode aMode ); + + /** + * Show rename query and rename file. + * @since 2.8 + * @param aMode The current mode. + */ + void DoQueryRenameL( TCamCameraMode aMode ); + + /** + * Show an overwrite confirmation query. This is used + * when trying to overwrite a file using rename. + * @since 2.8 + * @param aFilename The name of the file that trying to overwrite. + * @return ETrue if the user has confirmed the overwrite. + */ + TBool ShowOverwriteConfirmationQueryL( + const TDesC& aFilename ); + + /** + * Show rename query. + * @since 2.8 + * @param aFilename The current name of the file that renaming. + * @param aMode The current capture mode. + * @return ETrue if the user has entered a name. Or EFalse, if + * user has cancelled the rename. + */ + TBool ShowRenameQueryL( TDes& aFilename, TCamCameraMode aMode ); + + /** + * Check if renaming to the given name is valid. + * @since 2.8 + * @param aFilename The new name to check. + * @return ETrue if the name is valid. + */ + virtual TBool IsNewNameValidL( const TDesC& aFilename ); + + /** + * Renames the current capture array file. + * @since 2.8 + * @param aNewName The new name for the current file. + * @param aMode The current capture mode. + * @return ETrue if the name has been renamed succesfully. + */ + TBool RenameCurrentFileL( const TDesC& aNewName, TCamCameraMode aMode ); + + /** + * Returns whether the view is a precapture view or not + * @since 3.0 + * @returns ETrue if view is precapture + */ + virtual TBool IsPreCapture(); + + /** + * Increment the camera user count. + * This method ensures that view only increments the counter by one. + */ + void IncrementCameraUsers(); + + /** + * Decrement the camera user count. + * If count goes to zero, camera is released. + * This method ensures, that decrement call is only forwarded to + * controller, if this view has earlier incremented the count. + */ + void DecrementCameraUsers(); + + /** + * Is this view using camera, i.e. has IncrementCameraUsers been called, + * but DecrementCameraUsers not. + */ + TBool IsCameraUser() const; + +public: + /** + * Returns whether the view is a postcapture view or not + * @since 3.0 + * @returns ETrue if view is postcapture + */ + virtual TBool IsPostCapture(); +private: + + /** + * Returns whether the view is a burst capture postcapture view or not + * @since 3.0 + * @returns ETrue if view is burst post capture postcapture + */ + virtual TBool IsBurstPostCapture(); + + /** + * Sets the iStandbyModeActive flag + * @param aActive What to set iStandbyModeActive to + */ + void SetStandbyModeActive(TBool aActive); + + protected: // Data + + // Base class for Camera application controller + CCamAppController& iController; + + // The container for the view's controls + CCamContainerBase* iContainer; // owned + + // Specifies whether the application is embedded or not. + TBool iEmbedded; + + // Resource Id for the view menu bar + TInt iPreviousMenuResourceId; + + // set to ETrue when in standby mode + TBool iStandbyModeActive; + + // error code associated with standby mode + //TInt iStandbyError; + + // standby mode container + CCamStandbyContainer* iStandbyContainer; + + //Used for viewswitching + CCamContainerBase* iTempContainer; + CCamStandbyContainer* iTempStandbyContainer; + + private: // data + + // whether or not the view registered an interest in resources + // when it came to the foreground + TBool iIncEngineCount; + + + // Stores the current and previous resources used for setting the CBA + // Allows one level of "undo", currently used by the courtesy UI. + TInt iCurrentCbaResource; + TInt iPreviousCbaResource; + TBool iCourtesySoftkeys; + + // own. + CCamCommandHandlerAo* iCommandHandlerAo; + + }; + +#endif // CAMVIEWBASE_H + +// =========================================================================== +// End of File