⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cameraappportraitcontainer.cpp

📁 Symbian智能手机操作系统源代码值的参考_摄像头
💻 CPP
字号:
/*
* ============================================================================
*  Name     : CCameraAppPortraitContainer from CameraAppPortraitContainer.cpp
*  Part of  : CameraApp
*  Created  : 05/06/2006 by Forum Nokia
*  Version  : 2.0
*  Copyright: Nokia Corporation, 2006
* ============================================================================
*/

#include <eiklabel.h>
#include <w32std.h>
#include <coemain.h>
#include <aknsutils.h>

#include "CameraAppController.h"
#include "CameraAppPortraitContainer.h"
#include "CameraApp.hrh"

/*
-----------------------------------------------------------------------------

	CCameraAppPortraitContainer::CCameraAppPortraitContainer(
        CCameraAppController& aController) : 
        CCameraAppBaseContainer( aController )

	Description: constructor
	Comments   :

    Return values: N/A

-----------------------------------------------------------------------------
*/
CCameraAppPortraitContainer::CCameraAppPortraitContainer(
    CCameraAppController& aController) : CCameraAppBaseContainer( aController )
    {
    iController.SetAppContainer( this, EViewIdPortrait );
    }


/*
-----------------------------------------------------------------------------

	CCameraAppPortraitContainer::~CCameraAppPortraitContainer()
	Description: destructor, free allocated resource
	Comments   :

    Return values: N/A

-----------------------------------------------------------------------------
*/
CCameraAppPortraitContainer::~CCameraAppPortraitContainer()
    {
    }


/*
-----------------------------------------------------------------------------

	void CCameraAppContainer::Draw(const TRect& aRect) const

	Description: Called by framework to draw the screen
	Comments   :

    Return values: N/A

-----------------------------------------------------------------------------
*/
void CCameraAppPortraitContainer::Draw( const TRect& /*aRect*/ ) const
    {
    TRect drawingRect = Rect();
    CWindowGc& gc = SystemGc();

    if ( iOffScreenBitmapCreated )
        {
        if ( iBitmap) //Viewfinding ongoing
            {
            DrawPortraitImage(gc, drawingRect);
            }
        else
            {
            MAknsSkinInstance* skin = AknsUtils::SkinInstance();
            CFbsBitmap* bitmap = AknsUtils::GetCachedBitmap( skin, 
                KAknsIIDQsnBgAreaMain );
            if ( bitmap ) 
                {
                gc.BitBlt( TPoint(0,0), bitmap);
                }
            else
                {
                // Draws bitmap with indicators on the screen
                TSize size( iOffScreenBitmap->SizeInPixels() );
                gc.BitBlt( TPoint(0,0), iOffScreenBitmap, 
                    TRect( TPoint(0,0), size ) );
                }   
            }
        }
    }

/*
-----------------------------------------------------------------------------

	void CCameraAppPortraitContainer::DrawPortraitImage(CWindowGc& aGc,
			const TRect& aRect) const

	Description: Draws the image in Portrait Mode
	Comments   :

    Return values: N/A

-----------------------------------------------------------------------------
*/
void CCameraAppPortraitContainer::DrawPortraitImage(CWindowGc& aGc, const 
    TRect& aRect) const
    {
    TSize bmpSizeInPixels( iBitmap->SizeInPixels() );
    TInt xDelta = (aRect.Width() - bmpSizeInPixels.iWidth) / 2;
    TInt yDelta = (aRect.Height() - bmpSizeInPixels.iHeight) / 2;
    TPoint pos( xDelta, yDelta ); // displacement vector
    pos += aRect.iTl; // bitmap top left corner position

    // Drawing viewfinder image to bitmap
    iFbsBitGc->BitBlt( pos, iBitmap, TRect( TPoint( 0, 0 ), 
        bmpSizeInPixels ) );
    // Draws bitmap with indicators on the screen
    TSize size( iOffScreenBitmap->SizeInPixels() );
    aGc.BitBlt( TPoint(0,0), iOffScreenBitmap, TRect(TPoint(0,0), size));
    }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -