--- /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 <aknview.h>
+
+// ===========================================================================
+// 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