diff -r 61bc0f252b2b -r bac7acad7cb3 camerauis/cameraapp/generic/src/CamApplicationPane.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/camerauis/cameraapp/generic/src/CamApplicationPane.cpp Wed Sep 01 12:30:54 2010 +0100 @@ -0,0 +1,251 @@ +/* +* Copyright (c) 2007 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: Control for containing the NaviPane +* +* Copyright © 2007 Nokia. All rights reserved. +* This material, including documentation and any related computer +* programs, is protected by copyright controlled by Nokia. All +* rights are reserved. Copying, including reproducing, storing, +* adapting or translating, any or all of this material requires the +* prior written consent of Nokia. This material also contains +* confidential information which may not be disclosed to others +* without the prior written consent of Nokia. + +* +*/ + + +// INCLUDE FILES +#include +#include // For CEikApplication +#include +#include +#include +#include +#include // StringLoader +#include +#include // TResourceReader +#include +#include +#include +#include "CamApplicationPane.h" +#include "CamNaviCounter.h" +#include "CamNaviProgressBar.h" +#include "CamAppUi.h" +#include "CamUtility.h" + +#include +#include + +#include "CamLogger.h" + +#include "AknsBasicBackgroundControlContext.h" + + +// ========================= MEMBER FUNCTIONS ================================ + +// --------------------------------------------------------- +// CCamApplicationPane::NewL +// Factory construction function +// --------------------------------------------------------- +// +CCamApplicationPane* CCamApplicationPane::NewL( CCamAppController& aController ) + { + CCamApplicationPane* self = new( ELeave ) CCamApplicationPane( aController ); + CleanupStack::PushL( self ); + self->ConstructL(); + CleanupStack::Pop( self ); + return self; + } + +// Destructor +CCamApplicationPane::~CCamApplicationPane() + { + PRINT( _L("Camera => ~CCamApplicationPane") ); + iNaviCounter = NULL; // Not owned + iNaviProgressBar = NULL; // Not owned + PRINT( _L("Camera <= ~CCamApplicationPane") ); + } + + +// --------------------------------------------------------- +// CCamApplicationPane::CCamApplicationPane +// C++ constructor +// --------------------------------------------------------- +// +CCamApplicationPane::CCamApplicationPane( CCamAppController& aController ) : iController( aController ) + { + } + +// --------------------------------------------------------- +// CCamApplicationPane::ConstructL +// Symbian OS 2nd phase constructor +// --------------------------------------------------------- +// +void CCamApplicationPane::ConstructL() + { + iAppPaneLayoutRect.LayoutRect( Rect(), ROID(R_CAM_APPLICATION_PANE_RECT_ID)); + SetRect( iAppPaneLayoutRect.Rect() ); + + iPaneInUse = EAppPaneUndefined; + } + +// --------------------------------------------------------- +// CCamApplicationPane::SizeChanged +// Called by framework when the view size is changed +// --------------------------------------------------------- +// +void CCamApplicationPane::SizeChanged() + { + } + +// --------------------------------------------------------- +// CCamApplicationPane::Draw +// Draw the control +// --------------------------------------------------------- +// +void CCamApplicationPane::Draw( const TRect& /* aRect */ ) const + { + } + + +// --------------------------------------------------------- +// CCamApplicationPane::CountComponentControls +// Returns the number of component controls to display +// --------------------------------------------------------- +// +TInt CCamApplicationPane::CountComponentControls() const + { + // If an active Navi Pane is defined, this is one control to show + if ( iPaneInUse != EAppPaneUndefined ) + return 1; + else + return 0; + } + +// ---------------------------------------------------- +// CCamApplicationPane::ComponentControl +// Return requested control +// ---------------------------------------------------- +// +CCoeControl* CCamApplicationPane::ComponentControl( TInt /*aIndex*/ ) const + { + CCoeControl* con = NULL; + switch ( iPaneInUse ) + { + case EAppPaneCounter: + { + con = iNaviCounter; + break; + } + + case EAppPaneProgress: + { + con = iNaviProgressBar; + break; + } + + case EAppPaneUndefined: + default: + { + break; + } + } + return con; + } + + + +// ---------------------------------------------------- +// CCamApplicationPane::ShowCounter +// Shows the NaviCounter control in the Application Pane +// ---------------------------------------------------- +// +void CCamApplicationPane::ShowCounter() + { + iPaneInUse = EAppPaneCounter; + iNaviCounter->MakeVisible( ETrue ); + iNaviProgressBar->MakeVisible( EFalse ); + } + + +// ---------------------------------------------------- +// CCamApplicationPane::ShowProgress +// Shows the NaviProgress control in the Application Pane +// ---------------------------------------------------- +// +void CCamApplicationPane::ShowProgress() + { + iPaneInUse = EAppPaneProgress; + iNaviProgressBar->MakeVisible( ETrue ); + iNaviCounter->MakeVisible( EFalse ); + } + + +// ---------------------------------------------------- +// CCamApplicationPane::InitialisePanesL +// Sets the owned panes to a known good state (all invisible) +// ---------------------------------------------------- +// +void CCamApplicationPane::InitialisePanesL() + { + iNaviCounter = static_cast( CEikonEnv::Static()->AppUi() )->NaviCounter(); + iNaviCounter->SetMopParent( this ); + iNaviCounter->SetContainerWindowL( *this ); + iNaviCounter->SetRect( Rect() ); + iNaviCounter->MakeVisible( EFalse ); + + iNaviProgressBar = static_cast( CEikonEnv::Static()->AppUi() )->NaviProgressBar(); + iNaviProgressBar->SetMopParent( this ); + iNaviProgressBar->SetContainerWindowL( *this ); + iNaviProgressBar->SetRect( Rect() ); + iNaviProgressBar->MakeVisible( EFalse ); + + if ( iPaneInUse == EAppPaneCounter ) + { + iNaviCounter->MakeVisible( ETrue ); + } + if ( iPaneInUse == EAppPaneProgress ) + { + iNaviProgressBar->MakeVisible( ETrue ); + } + } + +// ---------------------------------------------------- +// CCamApplicationPane::SetBurstModelL +// Sets the burst model to use if app pane showing burst +// filenames +// ---------------------------------------------------- +// +void CCamApplicationPane::SetBurstModelL( CCamBurstThumbnailGridModel* aModel ) + { + iNaviCounter->SetBurstModelL( aModel ); + } + + +// ---------------------------------------------------- +// CCamApplicationPane::SetCaptureMode +// Sets the capture mode the pane should indicate +// ---------------------------------------------------- +// +void CCamApplicationPane::SetCaptureMode( TCamCameraMode aMode ) + { + TRAP_IGNORE( ignore, iNaviCounter->SetCaptureModeL( aMode ) ); + } + + + +// End of File + +