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

📄 camtestappview.cpp

📁 symbian下摄像头拍照示例,symbian c 开发
💻 CPP
字号:
/*
============================================================================
 Name        : CamTestView.cpp
 Author      : 
 Version     :
 Copyright   : Your copyright notice
 Description : Application view
============================================================================
*/

// INCLUDE FILES
#include <aknviewappui.h>
#include <avkon.hrh>
#include <eikmenup.h>
#include <CamTest.rsg>
#include "CameraAppBaseContainer.h" 
#include "CamTest.hrh"
#include "CameraAppController.h"
#include "CamTestAppUi.h"  ///////////////////////
#include <aknappui.h>
#include "CamTestAppView.h"   /////////////////
#include "MyLogger.h"

// ============================ MEMBER FUNCTIONS ===============================


// -----------------------------------------------------------------------------
// CCamTestAppView::NewLC()
// Two-phased constructor.
// -----------------------------------------------------------------------------
//

// -----------------------------------------------------------------------------
// CCamTestAppView::ConstructL()
// Symbian 2nd phase constructor can leave.
// -----------------------------------------------------------------------------
//
void CCamTestAppView::ConstructL( )
    {
    BaseConstructL( R_CAMERAAPP_VIEW1 );
    }

// -----------------------------------------------------------------------------
// CCamTestAppView::CCamTestAppView()
// C++ default constructor can NOT contain any code, that might leave.
// -----------------------------------------------------------------------------
//
CCamTestAppView::CCamTestAppView()
    {
    // No implementation required
    }


// -----------------------------------------------------------------------------
// CCamTestAppView::~CCamTestAppView()
// Destructor.
// -----------------------------------------------------------------------------
//
CCamTestAppView::~CCamTestAppView()
    {
		if ( iContainer )
		{
			AppUi()->RemoveFromViewStack( *this, iContainer );
		}

		delete iContainer;
    }
	/*
	-------------------------------------------------------------------------------
	Called by the framework when view is activated
	-------------------------------------------------------------------------------
	*/
void CCamTestAppView::DoActivateL(
		const TVwsViewId& /*aPrevViewId*/,TUid /*aCustomMessageId*/,
		const TDesC8& /*aCustomMessage*/)
	{	
		CCameraAppController* controller = ((CCamTestAppUi*)AppUi())->iController;
		controller->InitializeCameraL( ClientRect() );

		if (!iContainer)
		{
			iContainer = new (ELeave) CCameraAppBaseContainer(((CCamTestAppUi*)AppUi())->iController);
			iContainer->SetMopParent( this );
			iContainer->ConstructL( ClientRect() ); 
			AppUi()->AddToStackL( *this, iContainer );
		}   
		iContainer->SetFocus( ETrue );

		controller->SetAppContainer(iContainer);
		controller->StartViewFinderL();
		
	}
	/*
	-------------------------------------------------------------------------------
	Called by the framework when view is deactivated
	-------------------------------------------------------------------------------
	*/
void CCamTestAppView::DoDeactivate()
	{
	
		if ( iContainer )
		{
			iContainer->SetFocus(EFalse);
			AppUi()->RemoveFromViewStack( *this, iContainer );
			delete iContainer;
			iContainer = NULL;
		}   
		
	}
void CCamTestAppView::DynInitMenuPaneL(
		TInt aResourceId, CEikMenuPane* aMenuPane )
	{
		MyLogger::Log(_L("DynInitMenuPaneLkk"));
		CCameraAppController* controller = ((CCamTestAppUi*)AppUi())->iController;

		if ( aResourceId == R_CAMERAAPP_APP_MENU )
		{
			// If image has been converted, then hide the "Snap" menu item
			TEngineState state = controller->GetEngineState();

			// If the engine is not in the idle state, bar the "Snap" function
			// from being accessed.
			if ( state != EEngineIdle || controller->IsCameraUsedByAnotherApp())
				aMenuPane->SetItemDimmed( ECameraAppCmdSnap, ETrue );

			// Only when the engine is in the converted state, show the "
			// "New image" menu item
			if ( state == EConverted )
				aMenuPane->SetItemDimmed( ECameraAppCmdNewImage, EFalse );
			else
				aMenuPane->SetItemDimmed( ECameraAppCmdNewImage, ETrue );

			if( !controller->IsAutoFocusSupported() )
				aMenuPane->SetItemDimmed( ECameraAppCmdFocusRange, ETrue );
		}    
		MyLogger::Log(_L("DynInitMenuPaneLjj"));
	}

void CCamTestAppView::HandleCommandL(TInt aCommand)
	{   
		switch ( aCommand )
		{
		case EAknSoftkeyOk:
			{
				break;
			}

		case EAknSoftkeyBack:
			{
				AppUi()->HandleCommandL(EEikCmdExit);
				break;
			}

		default:
			{
				AppUi()->HandleCommandL( aCommand );
				break;
			}
		}
	}
void CCamTestAppView::HandleSizeChange( TInt aType )
	{
	
		if( iContainer )
		{
			iContainer->HandleResourceChange( aType );
			if ( aType==KEikDynamicLayoutVariantSwitch )
			{        
				TRect rect;
				AknLayoutUtils::LayoutMetricsRect(AknLayoutUtils::EMainPane, rect);
				iContainer->SetRect(rect);
			}
		}   
	
	}
void CCamTestAppView::HandleStatusPaneSizeChange()
	{

		CAknView::HandleStatusPaneSizeChange(); //call to upper class
		if (iContainer)
			iContainer->SetRect(ClientRect());
	
	}
TUid CCamTestAppView::Id() const
	{
		return KViewIdStandard;
	}
CCamTestAppView* CCamTestAppView::NewLC()
	{
		CCamTestAppView* self = new( ELeave ) CCamTestAppView();
		CleanupStack::PushL( self );
		self->ConstructL();
		return self;  
	}

⌨️ 快捷键说明

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