camerauis/cameraapp/generic/inc/CamPreCaptureContainerBase.h
changeset 0 1ddebce53859
child 11 792dfc98fb3b
equal deleted inserted replaced
-1:000000000000 0:1ddebce53859
       
     1 /*
       
     2 * Copyright (c) 2007-2008 Nokia Corporation and/or its subsidiary(-ies). 
       
     3 * All rights reserved.
       
     4 * This component and the accompanying materials are made available
       
     5 * under the terms of "Eclipse Public License v1.0"
       
     6 * which accompanies this distribution, and is available
       
     7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     8 *
       
     9 * Initial Contributors:
       
    10 * Nokia Corporation - initial contribution.
       
    11 *
       
    12 * Contributors:
       
    13 *
       
    14 * Description:  Container base class pre capture views
       
    15 *
       
    16 */
       
    17 
       
    18 
       
    19 
       
    20 #ifndef CAMPRECAPTURECONTAINERBASE_H
       
    21 #define CAMPRECAPTURECONTAINERBASE_H
       
    22 
       
    23 // ===========================================================================
       
    24 // INCLUDES
       
    25 #include "CamAppController.h"
       
    26 #include "CamContainerBase.h"
       
    27 #include "CamControllerObservers.h"
       
    28 #include "CamBurstModeObserver.h"
       
    29 #include "CamZoomPane.h"
       
    30 #include "CamPSI.h" // Product Specific Information
       
    31 #include "cambatterypanecontroller.h"
       
    32 #include "mcamcameraobserver.h" // MCamCameraObserver <CAMERAAPP_CAPI_V2_MIGRATION/>
       
    33 
       
    34 #include "CamLocationIconController.h"
       
    35 
       
    36 
       
    37 // ===========================================================================
       
    38 // FORWARD DECLARATIONS
       
    39 class CWindowGC;
       
    40 class CAknView;
       
    41 
       
    42 class CCamViewBase;
       
    43 class CCamSidePane;
       
    44 class CCamZoomPane;
       
    45 class CCamIndicator;
       
    46 class CCamTimeLapseSlider;
       
    47 class MCamVfGridDrawer;
       
    48 
       
    49 
       
    50 
       
    51 // ===========================================================================
       
    52 // CLASS DECLARATION
       
    53 
       
    54 /**
       
    55 * Container for still image pre capture view
       
    56 */
       
    57 class CCamPreCaptureContainerBase : public CCamContainerBase,
       
    58                                     public MCamControllerObserver,
       
    59                                     public MCamCameraObserver,
       
    60                                     public MCamSettingsModelObserver, // <CAMERAAPP_CAPI_V2_MIGRATION/>
       
    61 //                                    public MCamViewFinderObserver, 
       
    62 
       
    63                                     public MCamBurstModeObserver,
       
    64                                     public MCamBatteryPaneObserver,
       
    65                                     public MCamLocationIconObserver
       
    66 
       
    67   {
       
    68   // =========================================================================
       
    69   // Typenames
       
    70   public:
       
    71 
       
    72     // enum TVfState moved to CCamContainerBase. Used in multiple child classes.
       
    73 
       
    74     enum TCamPreCaptureSubControls
       
    75       {             
       
    76       // ECamTimeLapseControl         
       
    77       ECamActivePalette
       
    78       };
       
    79 
       
    80     enum TFocusState
       
    81       {
       
    82       EFocusStateNormal,
       
    83       EFocusStateFocusing,
       
    84       EFocusStateFocusFailed,
       
    85       EFocusStateFocusAchieved
       
    86       };
       
    87         
       
    88   // =========================================================================
       
    89   // Public constructors and destructor
       
    90   public: 
       
    91         
       
    92     /**
       
    93     * Destructor.
       
    94     */
       
    95     virtual ~CCamPreCaptureContainerBase();
       
    96 
       
    97   // -------------------------------------------------------------------------
       
    98   // From CoeControl
       
    99   public:
       
   100   
       
   101     /**
       
   102     * @since 2.8
       
   103     * @return number of contained controls
       
   104     */
       
   105     virtual TInt CountComponentControls() const;
       
   106     
       
   107     /**
       
   108     * @since 2.8
       
   109     * @param aIndex The index of the control required
       
   110     * @return The requested control
       
   111     */
       
   112     virtual CCoeControl* ComponentControl(TInt aIndex) const;
       
   113       
       
   114     /**
       
   115     * Locally takes actions needed due to resource changes, then
       
   116     * calls the implementation in CCamContainerBase
       
   117     * @since 2.8
       
   118     * @param aType resource change
       
   119     */
       
   120     virtual void HandleResourceChange( TInt aType );    
       
   121 
       
   122 
       
   123     /**
       
   124     * @since 2.8
       
   125     * @param aKeyEvent the key event
       
   126     * @param aType the type of the event
       
   127     * @return TKeyResponse key event was used by this control or not
       
   128     */
       
   129     virtual TKeyResponse OfferKeyEventL( const TKeyEvent& aKeyEvent,
       
   130                                                TEventCode aType );
       
   131 
       
   132 
       
   133     /**
       
   134     * Handle events sending app to foreground or background
       
   135     * @since 2.8
       
   136     * @param aForeground whether the event brings the app to fore or background
       
   137     */
       
   138     virtual void HandleForegroundEventL( TBool aForeground );
       
   139 
       
   140     /**
       
   141     * Handle application level event.
       
   142     * For example focus gained and lost are notified through this method.
       
   143     * @param aEvent Event type
       
   144     */
       
   145     virtual void HandleAppEvent( const TCamAppEvent& aEvent );
       
   146 
       
   147     /**
       
   148     * @since 2.8
       
   149     * @param aVisible ETrue if the controls should be visible
       
   150     */
       
   151     virtual void MakeVisible( TBool aVisible );
       
   152 
       
   153     /**
       
   154      * From CCoeControl
       
   155      * Handle pointer events. 
       
   156      * @since S60 5.0
       
   157      * @param aPointerEvent information about the pointerevent
       
   158      */
       
   159     void HandlePointerEventL(const TPointerEvent& aPointerEvent);
       
   160 
       
   161   protected:
       
   162 
       
   163     /**
       
   164     * @since 2.8
       
   165     * @param aRect area where to draw
       
   166     */
       
   167     virtual void Draw( const TRect& aRect ) const;
       
   168 
       
   169   // -------------------------------------------------------------------------
       
   170   // From MCamControllerObserver
       
   171   public:
       
   172 
       
   173     /**
       
   174     * @since 2.8
       
   175     * @param aEvent The specific event which occurred
       
   176     * @param aError The error code associated with the event
       
   177     */
       
   178     virtual void HandleControllerEventL( TCamControllerEvent aEvent, 
       
   179                                          TInt                aError );
       
   180 
       
   181   // <CAMERAAPP_CAPI_V2_MIGRATION>
       
   182   // -------------------------------------------------------------------------
       
   183   // From MCamCameraObserver
       
   184   public:
       
   185 
       
   186     /**
       
   187     * @since Camera 4.0
       
   188     * @see MCamCameraObserver
       
   189     */
       
   190     virtual void HandleCameraEventL( TInt              aStatus, 
       
   191                                      TCamCameraEventId aEventId, 
       
   192                                      TAny*             aEventData = NULL );
       
   193 
       
   194   // -------------------------------------------------------------------------
       
   195   // From MCamSettingsModelObserver
       
   196   public:
       
   197 
       
   198     /**
       
   199     * Notification for change in integer setting item value.
       
   200     *
       
   201     */
       
   202     virtual void IntSettingChangedL( TCamSettingItemIds aSettingItem, 
       
   203                                      TInt               aSettingValue );
       
   204 
       
   205     /**
       
   206     * Notification for change in text setting item value.
       
   207     *
       
   208     */
       
   209     virtual void TextSettingChangedL(       TCamSettingItemIds aSettingItem, 
       
   210                                       const TDesC&             aSettingValue );
       
   211 
       
   212 
       
   213   // </CAMERAAPP_CAPI_V2_MIGRATION>    
       
   214   // -------------------------------------------------------------------------
       
   215   // From MCamBatteryPaneObserver
       
   216   public:
       
   217     /**
       
   218     * Called when battery pane has changed and redraw is needed
       
   219     * @since 3.1
       
   220     */  
       
   221     void BatteryPaneUpdated();    
       
   222     
       
   223 
       
   224   // -------------------------------------------------------------------------
       
   225   // From MCamLocationIconObserver
       
   226   public:
       
   227     /**
       
   228     * Called when location icon status is changed
       
   229     * @since 3.1
       
   230     */  
       
   231     void LocationIconUpdated(); 
       
   232 
       
   233   // -------------------------------------------------------------------------
       
   234   public:
       
   235 
       
   236     /**
       
   237     * Requests that the camera application redraws the supplied area
       
   238     * @since 3.0
       
   239     * @param aArea the area to redraw
       
   240     */
       
   241     virtual void Redraw(const TRect& aArea);
       
   242 
       
   243   public: // New functions
       
   244     
       
   245     /**
       
   246     * Handles CBA and Options menu keys
       
   247     * @since 3.0
       
   248     * @param aCommand The command to handle
       
   249     */        
       
   250     void HandleCommand( TInt aCommand );
       
   251     
       
   252     /**
       
   253     * Will show the zoom pane for a set time
       
   254     * @since 2.8
       
   255     */
       
   256     void ShowZoomPaneWithTimer();
       
   257     
       
   258     /**
       
   259     * Constructs Active Palette if not done yet.
       
   260     * If Active Palette already exists, clears any existing items.
       
   261     * Sets new items based on resource from GetAPResourceId.
       
   262     * Registers the view for Active Palette.
       
   263     */
       
   264     virtual void SetupActivePaletteL( CCamViewBase* aView );
       
   265 
       
   266   protected: 
       
   267 
       
   268         /**
       
   269         * Callback for zoom timer when zoom pane needs to be hidden.
       
   270         * @since 2.8
       
   271     * @param aObject - Pointer to instance of CCamPreCaptureContainerBase
       
   272         * @return KErrNone
       
   273         */
       
   274     static TInt ZoomTimerCallback( TAny* aObject );
       
   275     
       
   276         /**
       
   277         * Callback for reticule timer, 
       
   278         * @since 3.0
       
   279     * @param aObject - Pointer to instance of CCamPreCaptureContainerBase
       
   280         * @return KErrNone
       
   281         */
       
   282     static TInt ReticuleTimerCallback( TAny* aObject );
       
   283 
       
   284         /**
       
   285         * Member function called when zoom timer expires.
       
   286         * @since 2.8
       
   287         */
       
   288     void ZoomTimerTick();
       
   289 
       
   290         /**
       
   291         * Allows derived classes to draw mode-specific icons
       
   292         * @param aGc The context to draw with
       
   293         * @since 3.0
       
   294         */
       
   295     virtual void DrawAdditionalIcons(CBitmapContext& aGc) const = 0;
       
   296 
       
   297         /**
       
   298         * Returns the rect of the resolution indicator
       
   299         * @return The rect of the resolution icon as a TRect
       
   300         * @since 3.0
       
   301         */
       
   302     TRect ResolutionIndicatorRect() const; 
       
   303 
       
   304         /**
       
   305         * Returns the ID of the array containing the resolution indicator icons
       
   306         * @return The array ID
       
   307         * @since 3.0
       
   308         */
       
   309     virtual TCamPsiKey ResolutionIndicatorIconPsiKey() const = 0;
       
   310 
       
   311     protected:         
       
   312 
       
   313         /**
       
   314         * Draw viewfinder grid.
       
   315         * Delegates call to iVfGridDrawer.
       
   316         * Does not draw anything if grid has not been set visible.
       
   317         * @param aGc   The graphics context
       
   318         */
       
   319         virtual void DrawVfGrid( CBitmapContext& aGc ) const;
       
   320 
       
   321         /**
       
   322         * Redraw part of viewfinder grid.
       
   323         * Delegates call to iVfGridDrawer.
       
   324         * Does not draw anything if grid has not been set visible.
       
   325         * @param aRect The area to redraw
       
   326         * @param aGc   The graphics context
       
   327         */
       
   328         virtual void ReDrawVfGrid( const TRect&          aRect,
       
   329                                          CBitmapContext& aGc   ) const;
       
   330 
       
   331         /**
       
   332         * Init the viewfinder grid.
       
   333         * Creates the grid drawer if not done yet.
       
   334         * Set drawing rectangle and visibility.
       
   335         */
       
   336         virtual void InitVfGridL( const TRect& aRect ) = 0;
       
   337 
       
   338         /**
       
   339         * Get the current setting for viewfinder grid visibility.
       
   340         */
       
   341         virtual TBool GetVFGridVisibilitySetting() const;
       
   342 
       
   343         /**
       
   344         * Reset the viewfinder grid drawer visibility property with
       
   345         * value asked from controller.
       
   346         */
       
   347         virtual void ResetVFGridVisibility();
       
   348 
       
   349   protected:
       
   350 
       
   351     /**
       
   352     * Symbian OS 2nd phase constructor.
       
   353     * @since 2.8
       
   354     * @param aRect Frame rectangle for container.
       
   355     */
       
   356     void BaseConstructL( const TRect& aRect );
       
   357     
       
   358     /**
       
   359     * C++ constructor
       
   360     * @since 2.8
       
   361     * @param aController reference to CCamAppController instance
       
   362     * @param aView reference to the view containing this container
       
   363     */
       
   364     CCamPreCaptureContainerBase( CCamAppController& aController,                   
       
   365                                  CAknView&          aView );
       
   366 
       
   367   private: // New Functions
       
   368 
       
   369     /**
       
   370     * Performs the actual BitBlt of the viewfinder frame
       
   371     * @since 2.8
       
   372     * @param aGc the graphics context
       
   373     * @param aFrame pointer to the bitmap. 
       
   374     */
       
   375     void DrawFrameNow( CBitmapContext& aGc, const CFbsBitmap* aFrame ) const;
       
   376         
       
   377   protected:
       
   378     /**
       
   379     * Autofocus indication layout from LAF
       
   380     *
       
   381     * @since S60 S60 v5.0
       
   382     */    
       
   383     void SizeChanged();  
       
   384     
       
   385   private:
       
   386     /**
       
   387     * Draws the reticule over the viewfinder
       
   388     * @since 3.0
       
   389     * @param aGc the graphics context
       
   390     */
       
   391     void DrawReticule( CBitmapContext& aGc ) const;
       
   392 
       
   393     /**
       
   394     * Draw part of the reticule.
       
   395     * Used to redraw areas left dirty by hiding AP tooltips.
       
   396     * @param aRect The area to redraw
       
   397     * @param aGc   The graphics context
       
   398     */
       
   399     void ReDrawReticule( const TRect&          aRect,
       
   400                                CBitmapContext& aGc   ) const;
       
   401         
       
   402     /**
       
   403     * Force the side-pane or zoom-pane to redraw. Called when they
       
   404     * are required to be overlaid on the viewfinder.
       
   405     * @since 2.8
       
   406     */
       
   407     void ForceSideZoomPaneDraw() const;
       
   408 
       
   409     /**
       
   410     * Return the id of the layout resource for the viewfinder frame
       
   411     * @since 2.8
       
   412     * @param aViewFinderLayoutId on return this contains the resource id
       
   413     *           of the viewfinder layout
       
   414     * @param aReticuleLayoutId on return this contains the resource id 
       
   415     *           of the reticule layout if used, otherwise 0
       
   416     */
       
   417     virtual void ViewFinderLayoutResourceIds( TInt& aViewFinderLayoutId, 
       
   418                                              TInt& aReticuleLayoutId ) const = 0;
       
   419 
       
   420     /**
       
   421     * Create the resolution indicator
       
   422     * @since 2.8
       
   423     */
       
   424     void CreateResolutionIndicatorL();
       
   425 
       
   426     /**
       
   427     * Sets the resolution indicator to the required icon
       
   428     * @since 2.8
       
   429     */
       
   430     virtual void SetResolutionIndicator() = 0;
       
   431         
       
   432     /**
       
   433     * Sets the location indicator icon if the setting is enabled
       
   434     */
       
   435     virtual void SetLocationIndicatorVisibility() = 0;
       
   436     
       
   437     /**
       
   438     * Burst mode activation has changed
       
   439     * @since 2.8
       
   440     * @param aActive whether or not burst mode is active
       
   441     * @param aStillModeActive whether or not still capture is active
       
   442     */
       
   443     void BurstModeActiveL( TBool aActive, TBool aStillModeActive );
       
   444     
       
   445     /**
       
   446     * Process a key event that should change the current capture state
       
   447     * E.g. start/pause recording, start/stop capture
       
   448     * @since 3.0
       
   449     * @param aKeyEvent the key press that initiates the capture
       
   450     * @return whether or not the key was consumed
       
   451     */ 
       
   452     virtual TKeyResponse HandleCaptureKeyEventL( const TKeyEvent& aKeyEvent ) = 0;
       
   453         
       
   454     /**
       
   455     * Process a key event that could change the current capture state
       
   456     * E.g. start autofocus, revert from post-capture to pre-capture views        
       
   457     * @since 3.0
       
   458     * @param aKeyEvent the key press that initiates the capture
       
   459     * @param aType the event code type
       
   460     * @return whether or not the key was consumed
       
   461     */ 
       
   462     virtual TKeyResponse HandleShutterKeyEventL( const TKeyEvent& aKeyEvent,
       
   463                                                  TEventCode aType ) = 0;        
       
   464     
       
   465     /**
       
   466     * Move up through the flash settings
       
   467     * @since 3.0
       
   468     */
       
   469     virtual void IncreaseFlashSettingL();
       
   470    
       
   471    /**
       
   472     * Move down through the flash settings
       
   473     * @since 3.0
       
   474     */ 
       
   475     virtual void DecreaseFlashSettingL();  
       
   476 
       
   477     /**
       
   478     * Initiate behaviour in response to a navi key left/right arrow 
       
   479     * press 
       
   480     * @since 3.0
       
   481     * @param aKeyEvent the key that has been pressed
       
   482     * @param aType the Key type
       
   483     * @return whether or not the key was consumed
       
   484     */        
       
   485     TKeyResponse HandleLeftRightNaviKeyL( const TKeyEvent& aKeyEvent,
       
   486                                           TEventCode aType );
       
   487     /**
       
   488     * Draw side or zoom pane, softkeys and reticule
       
   489     * @since 3.0
       
   490     * @param aGc context to draw into
       
   491     */
       
   492     void DrawScreenFurniture( CBitmapContext& aGc ) const;
       
   493     
       
   494     /**
       
   495     * Draw navi pane items
       
   496     * @since 3.0
       
   497     * @param aGc context to draw into
       
   498     */
       
   499     void DrawNaviControls( CBitmapContext& aGc ) const;
       
   500     
       
   501     /**
       
   502     * Draw active palette
       
   503     * @since 3.1
       
   504     */
       
   505     void DrawActivePalette() const;
       
   506     
       
   507     /**
       
   508     * Draw active pallette
       
   509     * @since 3.1
       
   510     * @param aGc context to draw into
       
   511     */
       
   512     void DrawActivePalette( CBitmapContext& aGc ) const;
       
   513 
       
   514     /**
       
   515     * Sets the iTimeLapseVisible flag
       
   516     * @param aActive What to set iTimeLapseVisible to
       
   517     */
       
   518     void SetTimeLapseVisible(TBool aActive);
       
   519 
       
   520         void HandleOperationStateChangeEventL();
       
   521   
       
   522     /**
       
   523     * Gets the resource id of AP items.
       
   524     * Needs to be implemented in inheriting classes.
       
   525     */
       
   526     virtual TInt GetAPResourceId() const = 0;
       
   527     
       
   528       /**
       
   529       * Draws Screen content to graphics context
       
   530       * @param aGc The context to draw with
       
   531       * @param aFrame View Finder Frame to be drawn
       
   532       */
       
   533     void DrawToContext(CBitmapContext& aGc, const CFbsBitmap*  aFrame);
       
   534 
       
   535     /**
       
   536      * Creates a colored Autofocus indication icon
       
   537      *
       
   538      * @since S60 S60 v5.0
       
   539      * @param aColor indication color
       
   540      * @return TInt Created icon's offset in icons array 
       
   541      */ 
       
   542     TInt CreateAfIconL( TRgb aColor );
       
   543     
       
   544     /**
       
   545      * Creates a colored autofocus indication icon corner
       
   546      *
       
   547      * @since S60 S60 v5.0
       
   548      * @param aColor indication color
       
   549      * @param aFileBitmapId ID of the bitmap in the file
       
   550      */ 
       
   551     void CreateAfCornerL( TRgb aColor, TInt aFileBitmapId );
       
   552 
       
   553     /**
       
   554      * Sets size of autofocus indication icon 
       
   555      *
       
   556      * @since S60 S60 v5.0
       
   557      * @param aOffset Offset in colored corner icon array
       
   558      */ 
       
   559     void SetAfIconSize( TInt aOffset );
       
   560     
       
   561     /**
       
   562      * Draws corners of autofocus indication icon 
       
   563      *
       
   564      * @since S60 S60 v5.0
       
   565      * @param aGc Bitmap graphics context
       
   566      * @param aOffset Offset in colored corner icon array
       
   567      */ 
       
   568     void DrawAf( CBitmapContext& aGc, TInt aOffset ) const;  
       
   569 
       
   570     /**
       
   571     * Read nontouch layout
       
   572     */
       
   573     void NonTouchLayout();  
       
   574 
       
   575     /**
       
   576     * Read touch layout
       
   577     */
       
   578     void TouchLayout();
       
   579 
       
   580 
       
   581   // =========================================================================
       
   582   // Data
       
   583   protected:
       
   584     
       
   585     // Pointer to the instance of the side pane
       
   586     CCamSidePane* iSidePane;
       
   587     
       
   588     // Pointer to the instance of the zoom pane
       
   589     CCamZoomPane* iZoomPane;  
       
   590     
       
   591     // Array of pointer to the resolution indicators
       
   592     RPointerArray<CCamIndicator> iResolutionIndicators;
       
   593     
       
   594     // The current indicator
       
   595     TInt iCurrentIndicator;
       
   596     
       
   597     // The visibility of the location indicator
       
   598     TBool iLocationIndicatorVisible;
       
   599     CCamLocationIconController* iLocationIconController;
       
   600 
       
   601     // Is reticule to be displayed or not (for when flashing)
       
   602     TBool iShowReticule;
       
   603 
       
   604     // Whether the current Photo Scene requires a reticule (some scenes do not focus)
       
   605     TBool iPhotoSceneUsesReticule;
       
   606 
       
   607     TBool iNaviPaneActive;
       
   608     
       
   609     // If set, redraw calls are ignored.
       
   610     TBool iDisableRedraws;
       
   611     
       
   612     // Viewfinder rect.
       
   613     TRect iRect;
       
   614 
       
   615     // Timer used to remove zoom pane after a short delay
       
   616     CPeriodic* iZoomTimer;
       
   617     
       
   618     // Keys to use for detecting zoom in and out key events
       
   619     TInt iZoomInKey;
       
   620     TInt iZoomOutKey;
       
   621     
       
   622     // whether we are left or right handed
       
   623     TCamHandedness iHandedness;
       
   624 
       
   625 
       
   626     // Reticule location and size
       
   627     TRect iReticuleRect;
       
   628 
       
   629     /**
       
   630      * Autofocus indication icons array.  
       
   631      */
       
   632     RPointerArray<CFbsBitmap> iAfIcons; 
       
   633     
       
   634     /**
       
   635      * Autofocus indication: White ready icon.  
       
   636      */
       
   637     TInt iAfReadyIcon;
       
   638 
       
   639     /**
       
   640      * Autofocus indication: Green focused icon.
       
   641      */
       
   642     TInt iAfFocusIcon;
       
   643 
       
   644     /**
       
   645      * Autofocus indication: Yellow error icon.
       
   646      */
       
   647     TInt iAfErrIcon;
       
   648     
       
   649     /**
       
   650      * Autofocus indication icons layout
       
   651      */      
       
   652     RArray<TAknLayoutRect> iLayouts;
       
   653     
       
   654     /**
       
   655      * Autofocus layout
       
   656      */
       
   657     TSize iAfIconCornerSize; 
       
   658    
       
   659     // Timer used for the flashing of the reticule
       
   660     CPeriodic* iReticuleTimer;
       
   661 
       
   662     // Whether the reticule is visible or not during 'flash' on/off
       
   663     TBool iReticuleFlashOn;
       
   664     
       
   665     // Current state of focus (reflected by reticule)
       
   666     TFocusState iFocusState;
       
   667 
       
   668     // Determines if a stored image should be used in Draw() functions
       
   669     TBool iFreezeFrame;
       
   670     
       
   671     // Determine from PSI if side & zoom pane are overlaid on VF
       
   672     TBool iOverlayViewFinder;
       
   673     
       
   674     // width of the zoom pane
       
   675     TInt iZoomPaneWidth;
       
   676     
       
   677     // The Time Lapse control
       
   678     CCamTimeLapseSlider* iTimeLapseSlider;
       
   679     
       
   680     // Whether the Time Lapse control is visible
       
   681     TBool iTimeLapseVisible;
       
   682     
       
   683     // Layout rect for the Timelapse control
       
   684     TAknLayoutRect iTimeLapseLayout;        
       
   685     
       
   686     // Determines if the zoom pane background needs redrawing
       
   687     TBool iRedrawPaneBackground;
       
   688     
       
   689     // Determines if the viewfinder should use an off screen bitmap
       
   690     TBool iUseOffScreenBitmap;
       
   691     
       
   692     // Offscreen drawing members
       
   693     CFbsBitmap* iOffScreenBitmap;
       
   694     CFbsBitGc* iBitmapGc;
       
   695     CFbsBitmapDevice* iBitmapDevice;
       
   696     
       
   697     // True if this container has received any viewfinder frames
       
   698     TBool iReceivedVfFrame;
       
   699     
       
   700     // True if application is shutting down
       
   701     TBool iShuttingDown;
       
   702     
       
   703     TRect iVFRect;
       
   704 
       
   705     TRect             iVfGridRect;
       
   706     MCamVfGridDrawer* iVfGridDrawer;
       
   707         
       
   708     CCamBatteryPaneController* iBatteryPaneController;
       
   709 
       
   710     CFbsBitmap* iViewFinderBackup;
       
   711   // =========================================================================
       
   712   };
       
   713     
       
   714 #endif // CAMPRECAPTURECONTAINERBASE_H
       
   715 
       
   716 // End of File