--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/camerauis/cameraapp/generic/GsCamcorderPlugin/src/GSCamPhotoSettingsView.cpp Thu Jan 07 16:18:56 2010 +0200
@@ -0,0 +1,242 @@
+/*
+* 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: Image settings view
+*
+*/
+
+
+// INCLUDE FILES
+
+#include <avkon.hrh>
+#include <aknViewAppUi.h>
+#include <akntabgrp.h>
+#include <akntitle.h> // CAknTitlePane
+#include <eikmenup.h>
+#include <bldvariant.hrh>
+#include <barsread.h>
+#include <gscamerapluginrsc.rsg>
+#include <camerasettingsplugin.mbg>
+#include <GSTabHelper.h>
+#include "CamAppUid.h"
+#include "GSCamcorderPlugin.h"
+#include "GSCamcorderPlugin.hrh"
+#include "Cam.hrh"
+#include "GSCamPhotoSettingsView.h"
+#include "GSCamcorderPlugin.h"
+#include "CamLocalViewIds.h"
+#include "GSCamcorderSettingsBaseView.h"
+
+// ========================= MEMBER FUNCTIONS ================================
+
+// ---------------------------------------------------------------------------
+// CGSCamPhotoSettingsView::CGSCamPhotoSettingsView
+// C++ constructor
+// ---------------------------------------------------------------------------
+//
+CGSCamPhotoSettingsView::CGSCamPhotoSettingsView( CCamStaticSettingsModel& aModel )
+: CGSCamcorderSettingsBaseView( aModel, ETrue )
+ {
+ }
+
+
+// ---------------------------------------------------------------------------
+// CGSCamPhotoSettingsView::NewLC
+// Symbian OS two-phased constructor.
+// ---------------------------------------------------------------------------
+//
+CGSCamPhotoSettingsView* CGSCamPhotoSettingsView::NewLC(
+ CCamStaticSettingsModel& aModel,
+ CArrayPtrFlat<MGSTabbedView>* aTabViewArray )
+ {
+ CGSCamPhotoSettingsView* self =
+ new ( ELeave ) CGSCamPhotoSettingsView( aModel );
+ CleanupStack::PushL( self );
+ self->ConstructL( aTabViewArray );
+ return self;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CGSCamPhotoSettingsView::ConstructL
+// Symbian OS 2nd phase constructor
+// ---------------------------------------------------------------------------
+//
+void CGSCamPhotoSettingsView::ConstructL( CArrayPtrFlat<MGSTabbedView>* aTabViewArray )
+ {
+ iTabHelper = CGSTabHelper::NewL();
+ aTabViewArray->AppendL(this);
+ BaseConstructL( R_CAM_SETTING_LIST_VIEW );
+ }
+
+
+
+// ---------------------------------------------------------------------------
+// CGSCamPhotoSettingsView::~CGSCamPhotoSettingsView
+// Destructor
+// ---------------------------------------------------------------------------
+//
+CGSCamPhotoSettingsView::~CGSCamPhotoSettingsView()
+ {
+ delete iTabHelper;
+ iTabHelper = NULL;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CGSCamPhotoSettingsView::Id
+// From CAknView, returns Uid of View
+// ---------------------------------------------------------------------------
+//
+TUid CGSCamPhotoSettingsView::Id() const
+ {
+ return KGSCamImageSettingsViewId;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CGSCamPhotoSettingsView::HandleCommandL
+// ---------------------------------------------------------------------------
+//
+void CGSCamPhotoSettingsView::HandleCommandL( TInt aCommand )
+ {
+ const TVwsViewId KImagePreCaptureView ( TUid::Uid( KCameraappUID ), KImagePreCaptureId );
+ switch ( aCommand )
+ {
+ case EAknSoftkeyBack:
+ {
+ if ( LaunchedFromGS() )
+ {
+ AppUi()->ActivateLocalViewL( KGSCamcorderGSPluginUid );
+
+ }
+
+ else
+ {
+ AppUi()->ActivateViewL( KImagePreCaptureView,
+ TUid::Uid( aCommand ),
+ KNullDesC8 );
+ }
+
+
+ break;
+ }
+ case ECamCmdInternalExit:
+ {
+ if ( LaunchedFromGS() )
+ {
+ AppUi()->HandleCommandL( EAknCmdExit );
+ }
+ else
+ {
+ //To ensure that camera resources are released when exiting
+ //settings, we need to call internal exit here to close the
+ //camera completely
+ AppUi()->HandleCommandL( aCommand );
+ }
+ }
+ break;
+ default:
+ {
+ CGSCamcorderSettingsBaseView::HandleCommandL( aCommand );
+ break;
+ }
+ }
+ }
+
+
+// ---------------------------------------------------------------------------
+// CGSCamPhotoSettingsView::DoActivateL
+// Activate this view
+// ---------------------------------------------------------------------------
+//
+void CGSCamPhotoSettingsView::DoActivateL( const TVwsViewId& aPrevViewId,
+ TUid aCustomMessageId,
+ const TDesC8& aCustomMessage )
+ {
+ CGSCamcorderPlugin* parent =
+ static_cast<CGSCamcorderPlugin*> (
+ AppUi()->View( KGSCamcorderGSPluginUid ) );
+
+ if ( aCustomMessageId == TUid::Uid( KGSSecondaryCameraPhotoSettingsView ) )
+ {
+ RDebug::Print(_L("[CGSCamcorderPlugin] DoActivateL()1" ));
+ if( parent)
+ {
+ parent->SetSecondaryCameraSettings( ETrue );
+ }
+ }
+ else
+ {
+ parent->SetSecondaryCameraSettings( EFalse );
+ }
+
+ CGSCamcorderSettingsBaseView::DoActivateL( aPrevViewId, aCustomMessageId, aCustomMessage );
+ //StatusPane()->MakeVisible( ETrue );
+
+ if( parent )
+ {
+ if ( LaunchedFromGS() )
+ {
+ iTabHelper->CreateTabGroupL( Id(),
+ static_cast<CArrayPtrFlat<MGSTabbedView>*>
+ ( parent->TabbedViews() ) );
+ }
+ }
+ }
+
+
+// ---------------------------------------------------------------------------
+// CGSCamPhotoSettingsView::DoDeactivate
+// Deactivate this view
+// ---------------------------------------------------------------------------
+//
+void CGSCamPhotoSettingsView::DoDeactivate()
+ {
+ CGSCamcorderSettingsBaseView::DoDeactivate();
+ iTabHelper->RemoveTabGroup();
+ }
+
+
+// ---------------------------------------------------------------------------
+// CGSCamPhotoSettingsView::CreateTabIconL()
+// Creates icon for tab.
+// ---------------------------------------------------------------------------
+//
+CGulIcon* CGSCamPhotoSettingsView::CreateTabIconL()
+ {
+ TParse* fp = new(ELeave) TParse();
+ CleanupStack::PushL( fp );
+ TInt err = fp->Set(KDirAndFile, &KDC_APP_BITMAP_DIR, NULL);
+
+ if (err != KErrNone)
+ {
+ User::Leave(err);
+ }
+
+ TBuf<KMaxFileName> fileName = fp->FullName();
+ CleanupStack::PopAndDestroy( fp ); //fp
+
+ CGulIcon* icon;
+
+ icon = AknsUtils::CreateGulIconL(
+ AknsUtils::SkinInstance(),
+ KAknsIIDDefault,
+ fileName,
+ EMbmCamerasettingspluginQgn_lcam_gen_sett_camera_tab_image,
+ EMbmCamerasettingspluginQgn_lcam_gen_sett_camera_tab_image );
+
+ return icon;
+ }
+
+// End of File