camerauis/cameraapp/generic/src/camcapturebuttoncontainer.cpp
branchRCL_3
changeset 53 61bc0f252b2b
parent 50 f54ad444594d
child 54 bac7acad7cb3
--- a/camerauis/cameraapp/generic/src/camcapturebuttoncontainer.cpp	Thu Aug 19 09:36:57 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,305 +0,0 @@
-/*
-* Copyright (c) 2010 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:  Container for custom camera capture button 
-*
-*/
-
-#include <AknIconUtils.h>
-#include <touchfeedback.h>
-
-#include "camcapturebuttoncontainer.h"
-#include "CamPreCaptureViewBase.h"
-#include "camlogging.h"
-#include "cameraapp.mbg"
-#include "CamAppUi.h"
-
-// CONSTANTS
-_LIT(KCamBitmapFile, "z:\\resource\\apps\\cameraapp.mif");
-const TSize KIconSize( 35, 35 );
-const TSize KAdditionalArea( 25, 11 );
-const TInt32 KCaptureIconDelta( 7 );
-const TUint32 KToolbarExtensionBgColor = 0x00000000;
-const TInt KToolBarExtensionBgAlpha = 0x7F;
-const TInt KCaptureButtonOrdinalPriority( 1 );
-const TSize KIconMargin( 7, 7 );
-
-// -----------------------------------------------------------------------------
-// CCamCaptureButtonContainer::CCamCaptureButtonContainer
-// -----------------------------------------------------------------------------
-//
-CCamCaptureButtonContainer::CCamCaptureButtonContainer( CCamAppController& aController,
-                                                        CAknView& aView,
-                                                        CCamPreCaptureContainerBase& aContainer,
-                                                        TCamCameraMode aCameraMode ) 
-    : iController( aController ), 
-      iView( aView ),
-      iParentContainer( aContainer ),
-      iCameraMode( aCameraMode )
-    {
-    }
-
-// -----------------------------------------------------------------------------
-// CCamCaptureButtonContainer::ConstructL
-// -----------------------------------------------------------------------------
-//
-void CCamCaptureButtonContainer::ConstructL( const TRect& aRect )
-    {
-    PRINT( _L("Camera => CCamCaptureButtonContainer::ConstructL") );
-    CreateWindowL();
-    SetRect( aRect );
-    Window().SetBackgroundColor( KRgbTransparent );
-
-    // Keep hidden until explicitly made visible
-    MakeVisible( EFalse );
-    CCamAppUi* appUi = static_cast<CCamAppUi*>( CEikonEnv::Static()->AppUi() );
-
-    // Load capture icon
-    TInt bitmapId = EMbmCameraappQgn_indi_cam4_capture_image;
-    TInt maskId   = EMbmCameraappQgn_indi_cam4_capture_image_mask;
-    TInt bitmapPressedId = EMbmCameraappQgn_indi_cam4_capture_image_pressed;
-    TInt maskPressedId = EMbmCameraappQgn_indi_cam4_capture_image_pressed_mask;
-
-    if ( iCameraMode == ECamControllerVideo )
-        {
-        bitmapId = EMbmCameraappQgn_indi_cam4_capture_video;
-        maskId   = EMbmCameraappQgn_indi_cam4_capture_video_mask;
-        bitmapPressedId = EMbmCameraappQgn_indi_cam4_capture_video_pressed;
-        maskPressedId = EMbmCameraappQgn_indi_cam4_capture_video_pressed_mask;
-        }
-    
-    iCaptureRect = aRect;
-    iCaptureRect.Move(-iCaptureRect.iTl.iX, -iCaptureRect.iTl.iY );
-    iCaptureRect.Shrink( KIconMargin );
-    
-    AknIconUtils::CreateIconL(
-             iCaptureIcon,
-             iCaptureIconMask,
-             KCamBitmapFile(),
-             bitmapId,
-             maskId );
-    AknIconUtils::SetSize( iCaptureIcon, iCaptureRect.Size() );
-    AknIconUtils::SetSize( iCaptureIconMask, iCaptureRect.Size() );
-    
-    AknIconUtils::CreateIconL(
-                 iCaptureIconPressed,
-                 iCaptureIconPressedMask,
-                 KCamBitmapFile(),
-                 bitmapPressedId,
-                 maskPressedId );
-    AknIconUtils::SetSize( iCaptureIconPressed, iCaptureRect.Size() );
-    AknIconUtils::SetSize( iCaptureIconPressedMask, iCaptureRect.Size() );
-    
-    iFeedback = MTouchFeedback::Instance();
-    PRINT( _L("Camera <= CCamCaptureButtonContainer::ConstructL") );
-    }
-
-// -----------------------------------------------------------------------------
-// CCamCaptureButtonContainer::~CCamCaptureButtonContainer
-// -----------------------------------------------------------------------------
-//
-CCamCaptureButtonContainer::~CCamCaptureButtonContainer()
-    {
-    delete iCaptureIcon;
-    delete iCaptureIconMask;
-    delete iCaptureIconPressed;
-    delete iCaptureIconPressedMask;
-    }
-
-// -----------------------------------------------------------------------------
-// CCamCaptureButtonContainer::NewLC
-// -----------------------------------------------------------------------------
-//
-CCamCaptureButtonContainer* CCamCaptureButtonContainer::NewLC( CCamAppController& aController,
-                                                               CAknView& aView,
-                                                               CCamPreCaptureContainerBase& aContainer,
-                                                               const TRect& aRect,
-                                                               TCamCameraMode aCameraMode )
-    {
-    CCamCaptureButtonContainer* self = new (ELeave) CCamCaptureButtonContainer( aController, 
-                                                                                aView,
-                                                                                aContainer,
-                                                                                aCameraMode );
-    CleanupStack::PushL( self );
-    self->ConstructL( aRect );
-    return self;
-    }
-
-// -----------------------------------------------------------------------------
-// CCamCaptureButtonContainer::NewL
-// -----------------------------------------------------------------------------
-//
-CCamCaptureButtonContainer* CCamCaptureButtonContainer::NewL( CCamAppController& aController,
-                                                              CAknView& aView,
-                                                              CCamPreCaptureContainerBase& aContainer,
-                                                              const TRect& aRect, 
-                                                              TCamCameraMode aCameraMode )
-    {
-    CCamCaptureButtonContainer* self = CCamCaptureButtonContainer::NewLC( aController, 
-                                                                          aView,
-                                                                          aContainer,
-                                                                          aRect,
-                                                                          aCameraMode );
-    CleanupStack::Pop(self);
-    return self;
-    }
-
-// -------------------------------------------------------------
-// CCamCaptureButtonContainer::HandlePointerEventL
-// -------------------------------------------------------------
-//
-void CCamCaptureButtonContainer::HandlePointerEventL( const TPointerEvent& aPointerEvent )
-    {
-    PRINT3( _L("Camera => CCamCaptureButtonContainer::HandlePointerEventL type:%d position:%d,%d"), 
-                     aPointerEvent.iType, aPointerEvent.iPosition.iX, aPointerEvent.iPosition.iY );    
-
-    if( iCaptureButtonShown )
-        {
-        PRINT( _L("Camera <> Capture button shown") );
-        // Button down -> pressed (highlighted)
-        if ( aPointerEvent.iType == TPointerEvent::EButton1Down )
-            {
-            SetPointerCapture( ETrue );
-            ClaimPointerGrab( ETrue );
-            iCaptureButtonPressed = ETrue;
-            if ( !iFeedback )
-                {
-                iFeedback = MTouchFeedback::Instance();
-                }
-            // Feedback on button press
-            if ( iFeedback )
-                {
-                iFeedback->InstantFeedback( ETouchFeedbackBasicButton );        
-                }
-            DrawNow();
-            }
-        // Button up after button down (within button area) -> start capture
-        else if ( aPointerEvent.iType == TPointerEvent::EButton1Up
-                  && iCaptureButtonPressed && Rect().Contains(aPointerEvent.iPosition) )
-            {
-            PRINT( _L("Camera <> starting capture") );
-            ClaimPointerGrab( EFalse );
-            SetPointerCapture( EFalse );
-            iCaptureButtonPressed = EFalse;
-
-            // Give feedback on button release
-            if ( iFeedback )
-                {
-                iFeedback->InstantFeedback( ETouchFeedbackBasicButton );        
-                }
-
-            iParentContainer.PrepareForCapture();
-            if ( iCameraMode == ECamControllerVideo ) 
-                {
-                iView.HandleCommandL( ECamCmdRecord );
-                }
-            else
-                {
-                iController.SetTouchCapture( ETrue );
-                iView.HandleCommandL( ECamCmdCaptureImage );
-                }
-            }
-        // Drags can potentially start from inside button area
-        else if ( iCaptureButtonPressed && aPointerEvent.iType != TPointerEvent::EDrag )
-            {
-            PRINT( _L("Camera <> outside button region - button to not-pressed state") );
-            ClaimPointerGrab( EFalse );
-            SetPointerCapture( EFalse );
-            iCaptureButtonPressed = EFalse;
-            DrawNow();
-            }
-        else
-            {
-            PRINT( _L("Camera <> unhandled case") );
-            // Avoid compiler warning
-            }
-        }
-
-    PRINT( _L("Camera <= CCamCaptureButtonContainer::HandlePointerEventL") );
-    }
-
-// -------------------------------------------------------------
-// CCamCaptureButtonContainer::SetCaptureButtonShown
-// -------------------------------------------------------------
-//
-void CCamCaptureButtonContainer::SetCaptureButtonShown( TBool aShown )
-    {
-    PRINT1( _L("Camera => CCamCaptureButtonContainer::SetCaptureButtonShown shown:%d"), aShown );
-    iCaptureButtonShown = aShown;
-
-    if ( !aShown )
-        {
-        MakeVisible( EFalse );
-        }
-    else if ( !IsVisible() )
-        {
-        // Ensure button is in non-pressed state when making visible 
-        iCaptureButtonPressed = EFalse;
-
-        PRINT( _L("Camera <> Making the capture button visible") );
-        DrawableWindow()->SetOrdinalPosition( 0, KCaptureButtonOrdinalPriority );
-        MakeVisible( ETrue );
-        DrawDeferred();
-        }
-    else
-        {
-        PRINT( _L("Camera <> Already visible!") );
-        }
-
-    PRINT( _L("Camera <= CCamCaptureButtonContainer::SetCaptureButtonShown") );
-    }
-
-// -----------------------------------------------------------------------------
-// CCamCaptureButtonContainer::Draw
-// -----------------------------------------------------------------------------
-//
-void CCamCaptureButtonContainer::Draw( const TRect& aRect ) const
-    {
-    PRINT( _L("Camera => CCamCaptureButtonContainer::Draw") );
-
-    CWindowGc& gc = SystemGc();
-    if ( iCaptureButtonShown )
-        {
-        DrawCaptureButton( gc );
-        }
-    else
-        {
-        PRINT( _L("Camera <> button hidden") );
-        }
-
-    PRINT( _L("Camera <= CCamCaptureButtonContainer::Draw") );
-    }
-
-// -------------------------------------------------------------
-// CCamCaptureButtonContainer::DrawCaptureButton
-// -------------------------------------------------------------
-//
-void CCamCaptureButtonContainer::DrawCaptureButton( CBitmapContext& aGc ) const
-    {
-    PRINT( _L("Camera => CCamCaptureButtonContainer::DrawCaptureButton") );
-    TRect boundingRect( iCaptureRect );
-    boundingRect.Move( -boundingRect.iTl.iX, -boundingRect.iTl.iY );
-
-    if ( iCaptureButtonPressed )
-        {
-        aGc.BitBltMasked( iCaptureRect.iTl, iCaptureIconPressed, boundingRect, iCaptureIconPressedMask, EFalse );
-        }
-    else
-        {
-        aGc.BitBltMasked( iCaptureRect.iTl, iCaptureIcon, boundingRect, iCaptureIconMask, EFalse );
-
-        }
-
-    PRINT( _L("Camera <= CCamCaptureButtonContainer::DrawCaptureButton") );
-    }
-