camerauis/cameraapp/generic/inc/CamPreCaptureContainerBase.h
branchRCL_3
changeset 31 8f559c47d7fd
parent 27 53c8aa5d97a3
equal deleted inserted replaced
27:53c8aa5d97a3 31:8f559c47d7fd
    44 class CCamZoomPane;
    44 class CCamZoomPane;
    45 class CCamIndicator;
    45 class CCamIndicator;
    46 class CCamTimeLapseSlider;
    46 class CCamTimeLapseSlider;
    47 class MCamVfGridDrawer;
    47 class MCamVfGridDrawer;
    48 class CCamStartupLogo;
    48 class CCamStartupLogo;
       
    49 class CCamCaptureButtonContainer;
    49 
    50 
    50 
    51 
    51 // ===========================================================================
    52 // ===========================================================================
    52 // CLASS DECLARATION
    53 // CLASS DECLARATION
    53 
    54 
    72     // enum TVfState moved to CCamContainerBase. Used in multiple child classes.
    73     // enum TVfState moved to CCamContainerBase. Used in multiple child classes.
    73 
    74 
    74     enum TCamPreCaptureSubControls
    75     enum TCamPreCaptureSubControls
    75       {             
    76       {             
    76       // ECamTimeLapseControl         
    77       // ECamTimeLapseControl         
    77       ECamActivePalette
    78       ECamActivePalette = 1,
       
    79       ECamCaptureButton
    78       };
    80       };
    79 
    81 
    80     enum TFocusState
    82     enum TFocusState
    81       {
    83       {
    82       EFocusStateNormal,
    84       EFocusStateNormal,
   163     /**
   165     /**
   164     * @since 2.8
   166     * @since 2.8
   165     * @param aRect area where to draw
   167     * @param aRect area where to draw
   166     */
   168     */
   167     virtual void Draw( const TRect& aRect ) const;
   169     virtual void Draw( const TRect& aRect ) const;
   168 
   170     
       
   171     /**
       
   172      * From CCoeControl.
       
   173      * @since 5.2
       
   174      * @param aDrawNow Flag to indicate if the container should be drawn
       
   175      */
       
   176     virtual void FocusChanged( TDrawNow aDrawNow );
       
   177     
   169   // -------------------------------------------------------------------------
   178   // -------------------------------------------------------------------------
   170   // From MCamControllerObserver
   179   // From MCamControllerObserver
   171   public:
   180   public:
   172 
   181 
   173     /**
   182     /**
   270      * calling the function with EFalse. 
   279      * calling the function with EFalse. 
   271      */
   280      */
   272     void BlinkResolutionIndicatorOnChange( TBool aBlink=ETrue );
   281     void BlinkResolutionIndicatorOnChange( TBool aBlink=ETrue );
   273     
   282     
   274     /**
   283     /**
   275      * From CCoeControl.
   284      * Updates the visibility of the capture button 
   276 	 * @since 5.1
   285      * @since 5.2
   277 	 * @param aDrawNow Flag to indicate if the container should be drawn
   286      */
   278      */
   287     void UpdateCaptureButton();
   279     void FocusChanged( TDrawNow aDrawNow );
   288     
   280 
   289     /**
       
   290      * Perform the UI adjustments just before start of capture  
       
   291      * @since 5.2
       
   292      */
       
   293     void PrepareForCapture();
       
   294     
   281   protected: 
   295   protected: 
   282 
   296 
   283         /**
   297     /**
   284         * Callback for zoom timer when zoom pane needs to be hidden.
   298     * Callback for zoom timer when zoom pane needs to be hidden.
   285         * @since 2.8
   299     * @since 2.8
   286     * @param aObject - Pointer to instance of CCamPreCaptureContainerBase
   300     * @param aObject - Pointer to instance of CCamPreCaptureContainerBase
   287         * @return KErrNone
   301     * @return KErrNone
   288         */
   302     */
   289     static TInt ZoomTimerCallback( TAny* aObject );
   303     static TInt ZoomTimerCallback( TAny* aObject );
   290     
   304     
   291         /**
   305     /**
   292         * Callback for reticule timer, 
   306     * Callback for reticule timer, 
   293         * @since 3.0
   307     * @since 3.0
   294     * @param aObject - Pointer to instance of CCamPreCaptureContainerBase
   308     * @param aObject - Pointer to instance of CCamPreCaptureContainerBase
   295         * @return KErrNone
   309     * @return KErrNone
   296         */
   310     */
   297     static TInt ReticuleTimerCallback( TAny* aObject );
   311     static TInt ReticuleTimerCallback( TAny* aObject );
   298 
   312 
   299         /**
   313         /**
   300         * Member function called when zoom timer expires.
   314         * Member function called when zoom timer expires.
   301         * @since 2.8
   315         * @since 2.8
   394     * Autofocus indication layout from LAF
   408     * Autofocus indication layout from LAF
   395     *
   409     *
   396     * @since S60 S60 v5.0
   410     * @since S60 S60 v5.0
   397     */    
   411     */    
   398     void SizeChanged();
   412     void SizeChanged();
   399     
       
   400     /**
       
   401      * Checks whether the custom capture button should be shown 
       
   402      * @since 5.1
       
   403      * @return ETrue if capture button should be active, EFalse otherwise
       
   404      */
       
   405     TBool CaptureButtonActive() const;
       
   406     
   413     
   407   private:
   414   private:
   408     /**
   415     /**
   409     * Draws the reticule over the viewfinder
   416     * Draws the reticule over the viewfinder
   410     * @since 3.0
   417     * @since 3.0
   599     */
   606     */
   600     void TouchLayout();
   607     void TouchLayout();
   601 
   608 
   602     /**
   609     /**
   603      * Callback used by timer to blink resolution indicator
   610      * Callback used by timer to blink resolution indicator
   604      * @since 5.1
   611      * @since 5.2
   605      * @param aSelf Pointer to self (container)
   612      * @param aSelf Pointer to self (container)
   606      */
   613      */
   607     static TInt IndicatorVisible( TAny *aSelf );
   614     static TInt IndicatorVisible( TAny *aSelf );
   608     
   615     
   609     /**
   616     /**
   610      * Draw resolution indicator (for blinking).
   617      * Draw resolution indicator (for blinking).
   611      * @since 5.1
   618      * @since 5.2
   612      */
   619      */
   613     void DrawResolutionIndicator();
   620     void DrawResolutionIndicator();
   614     
       
   615     /**
       
   616      * Draws Capture/Record button
       
   617      * @since 5.1
       
   618      * @param aGc The context to draw with
       
   619      */
       
   620     void DrawCaptureButton( CBitmapContext& aGc ) const;
       
   621 
   621 
   622   // =========================================================================
   622   // =========================================================================
   623   // Data
   623   // Data
   624   protected:
   624   protected:
   625     
   625     
   666 
   666 
   667     // Reticule location and size
   667     // Reticule location and size
   668     TRect iReticuleRect;
   668     TRect iReticuleRect;
   669 
   669 
   670     // Icons and rect for capturing image
   670     // Icons and rect for capturing image
   671     CFbsBitmap *iCaptureIcon;
   671     CCamCaptureButtonContainer* iCaptureButtonContainer;
   672     CFbsBitmap *iCaptureMask;
       
   673     TRect iCaptureRect;
       
   674     TBool iCaptureButtonShown;
       
   675     TBool iCaptureIconPressed;
       
   676 
   672 
   677     /**
   673     /**
   678      * Autofocus indication icons array.  
   674      * Autofocus indication icons array.  
   679      */
   675      */
   680     RPointerArray<CFbsBitmap> iAfIcons; 
   676     RPointerArray<CFbsBitmap> iAfIcons;