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

📄 cameraappportraitcontainer.cpp

📁 S60官方摄像头程序
💻 CPP
字号:
/*
* ============================================================================
*  Name     : CCameraAppPortraitContainer from CameraAppPortraitContainer2.cpp
*  Part of  : CameraApp
*  Created  : 02/09/2004 by Forum Nokia
*  Implementation notes:
*     Initial content was generated by Series 60 AppWizard.
*  Version  :
*  Copyright: Nokia Corporation, 2004
* ============================================================================
*/

#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 + -