📄 camtestappview.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 + -