--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/voicerecorder/gsplugin/src/CVRGSPlugin.cpp Wed Sep 01 12:29:14 2010 +0100
@@ -0,0 +1,373 @@
+/*
+* Copyright (c) 2006 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: Main settings view class
+*
+*/
+
+
+// INCLUDE FILES
+#include "CVRGSPlugin.h"
+#include "CVRGSPluginContainer.h"
+
+#include "VRConsts.h"
+#include <voicerecorder.rsg>
+#include "voicerecorder.hrh"
+
+#include "VRUtils.h"
+
+#include <f32file.h> // For icon generation
+#include <gsvoicerecorderplugin.mbg> // For icon generation
+
+#include <data_caging_path_literals.hrh>
+#include <avkon.hrh>
+#include <aknViewAppUi.h>
+#include <akntitle.h> // CAknTitlePane
+#include <featmgr.h>
+#include <StringLoader.h> //for StringLoader
+#include <gsfwviewuids.h> //for KGSMainViewUid
+#include <hlplch.h> // For HlpLauncher
+#include <bautils.h> // for BaflUtils
+#include <AknQueryDialog.h>
+
+// ========================= MEMBER FUNCTIONS ================================
+
+// ---------------------------------------------------------------------------
+// CVRGSPlugin::CVRGSPlugin
+// C++ constructor
+// ---------------------------------------------------------------------------
+//
+CVRGSPlugin::CVRGSPlugin()
+ : iResourceLoader( *iCoeEnv )
+ {
+
+ }
+
+
+// ---------------------------------------------------------------------------
+// CVRGSPlugin::NewLC
+// Symbian OS two-phased constructor
+// ---------------------------------------------------------------------------
+//
+CVRGSPlugin* CVRGSPlugin::NewL( TAny* /*aInitParams*/ )
+ {
+ CVRGSPlugin* self = new(ELeave) CVRGSPlugin();
+ CleanupStack::PushL(self);
+ self->ConstructL();
+ CleanupStack::Pop(self);
+ return self;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CVRGSPlugin::ConstructL
+// Symbian OS 2nd phase constructor
+// ---------------------------------------------------------------------------
+//
+void CVRGSPlugin::ConstructL()
+ {
+#ifdef _DEBUG
+ RDebug::Print(_L("[CVRGSPlugin] ConstructL()" ));
+ RDebug::Print( _L( "[CVRGSPlugin] Loading resource from :" ) );
+ RDebug::Print( KVRAppResourceFile );
+#endif
+
+ // Find the resource file
+ TParse parse;
+ parse.Set( KVRAppResourceFile,
+ &KDC_APP_RESOURCE_DIR,
+ NULL );
+ TFileName fileName( parse.FullName() );
+
+ // Get language of resource file
+ BaflUtils::NearestLanguageFile( iCoeEnv->FsSession(), fileName );
+
+ // Open resource file
+ iResourceLoader.OpenL( fileName );
+ FeatureManager::InitializeLibL();
+
+ BaseConstructL( R_VOREC_GS_SETTING_LIST_VIEW );
+
+ iCaption = StringLoader::LoadL( R_VOREC_GS_SETTINGS_TITLE );
+ }
+
+
+// Destructor
+CVRGSPlugin::~CVRGSPlugin()
+ {
+ FeatureManager::UnInitializeLib();
+
+ if( iContainer )
+ {
+ if ( iAppUi )
+ {
+ iAppUi->RemoveFromViewStack( *this, iContainer );
+ }
+ delete iContainer;
+ iContainer=NULL;
+ }
+
+ iResourceLoader.Close();
+
+ delete iCaption;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CVRGSPlugin::Id
+// Return UID of view
+// ---------------------------------------------------------------------------
+//
+TUid CVRGSPlugin::Id() const
+ {
+ return KGSVoiceRecorderGSPluginUid;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CVRGSPlugin::HandleCommandL
+// Handle commands
+// ---------------------------------------------------------------------------
+//
+void CVRGSPlugin::HandleCommandL( TInt aCommand )
+ {
+
+ switch ( aCommand )
+ {
+ case ECmdChange:
+ case EAknCmdOpen:
+ // Delegate to container
+ Container()->HandleListBoxSelectionL( EAknCmdOpen );
+ break;
+ case ECmdMSK:
+ // Delegate to container
+ // Selection view is not open when command is ECmdMSK
+ Container()->HandleListBoxSelectionL( ECmdMSK );
+ break;
+ case EAknSoftkeyBack:
+ case ECmdCancel:
+ // Activate previous view
+#ifdef _DEBUG
+ RDebug::Print(_L("VRGS: activating view 0x%x"), iPrevViewId.iViewUid.iUid);
+#endif
+ iAppUi->ActivateLocalViewL( iPrevViewId.iViewUid );
+ break;
+ case EAknCmdHelp:
+ if( FeatureManager::FeatureSupported( KFeatureIdHelp ) )
+ {
+ HlpLauncher::LaunchHelpApplicationL(
+ iEikonEnv->WsSession(), iAppUi->AppHelpContextL() );
+ }
+ break;
+ case ECmdOk: // Exit selected from options menu
+ {
+ iAppUi->HandleCommandL( EEikCmdExit );
+ break;
+ }
+ default:
+ iAppUi->HandleCommandL( aCommand );
+ break;
+ }
+ }
+
+
+// ---------------------------------------------------------------------------
+// CVRGSPlugin::DoActivate
+// Activate this view
+// ---------------------------------------------------------------------------
+//
+
+void CVRGSPlugin::DoActivateL( const TVwsViewId& aPrevViewId,
+ TUid aCustomMessageId,
+ const TDesC8& aCustomMessage )
+ {
+ CGSBaseView::DoActivateL( aPrevViewId, aCustomMessageId, aCustomMessage );
+ }
+
+
+// ---------------------------------------------------------------------------
+// CVRGSPlugin::DoDeactivate
+// Deactivate this view
+// ---------------------------------------------------------------------------
+//
+void CVRGSPlugin::DoDeactivate()
+ {
+ CGSBaseView::DoDeactivate();
+ }
+
+
+// -----------------------------------------------------------------------------
+// CVRGSPlugin::HandleClientRectChange
+// Handle screen size change.
+// -----------------------------------------------------------------------------
+//
+void CVRGSPlugin::HandleClientRectChange()
+ {
+ if ( iContainer )
+ {
+ iContainer->SetRect( ClientRect() );
+ }
+ }
+
+
+// ---------------------------------------------------------------------------
+// CVRGSPlugin::Container
+// Return handle to container class.
+// ---------------------------------------------------------------------------
+//
+CVRGSPluginContainer* CVRGSPlugin::Container()
+ {
+ return static_cast<CVRGSPluginContainer*>( iContainer );
+ }
+
+
+// ---------------------------------------------------------------------------
+// CVRGSPlugin::HandleListBoxSelectionL
+// Handle any user actions while in the list view.
+// ---------------------------------------------------------------------------
+//
+void CVRGSPlugin::HandleListBoxSelectionL()
+ {
+ // Delegate to container
+ Container()->HandleListBoxSelectionL( ECmdChange );
+ }
+
+
+// ---------------------------------------------------------------------------
+// CVRGSPlugin::GetCaptionL
+// Caption text for view to be displayed in NaviPane.
+// ---------------------------------------------------------------------------
+//
+void CVRGSPlugin::GetCaptionL( TDes& aCaption ) const
+ {
+ aCaption.Copy( *iCaption );
+ }
+
+
+// ---------------------------------------------------------------------------
+// CVRGSPlugin::NewContainerL
+// Creates new iContainer.
+// ---------------------------------------------------------------------------
+//
+void CVRGSPlugin::NewContainerL()
+ {
+ iContainer = new( ELeave ) CVRGSPluginContainer;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CVRGSPlugin::CreateIconL
+// Return the icon, if has one.
+// ---------------------------------------------------------------------------
+//
+CGulIcon* CVRGSPlugin::CreateIconL( const TUid /*aIconType*/ )
+ {
+
+ // New implementation
+ TParse* fp = new(ELeave) TParse();
+ CleanupStack::PushL( fp );
+ TInt err = fp->Set( KVRPluginFile, &KDC_APP_BITMAP_DIR, NULL );
+
+ if ( err != KErrNone )
+ {
+ User::Leave( err );
+ }
+
+ TBuf<KMaxFileName> fileName = fp->FullName();
+ CleanupStack::PopAndDestroy(); //fp
+
+ CGulIcon* icon;
+
+ icon = AknsUtils::CreateGulIconL(
+ AknsUtils::SkinInstance(),
+ KAknsIIDQgnPropSetAppsVoirec,
+ fileName,
+ EMbmGsvoicerecorderpluginQgn_prop_set_apps_voirec,
+ EMbmGsvoicerecorderpluginQgn_prop_set_apps_voirec_mask );
+
+ return icon;
+
+ }
+
+
+// ---------------------------------------------------------------------------
+// CVRGSPlugin::Visible()
+// Method for checking, if plugin should be visible and used in GS.
+// ---------------------------------------------------------------------------
+//
+TBool CVRGSPlugin::Visible() const
+ {
+ if ( VRUtils::FeatureEnabled( EVRFeatureShowQualitySetting ) ||
+ FeatureManager::FeatureSupported( KFeatureIdMmc ) )
+ {
+ return ETrue;
+ }
+ else
+ {
+ return EFalse;
+ }
+
+ }
+
+
+// ---------------------------------------------------------------------------
+// CVRGSPlugin::CustomOperationL()
+// Reserved for later use.
+// ---------------------------------------------------------------------------
+//
+TAny* CVRGSPlugin::CustomOperationL( TAny* aParam1, TAny* /*aParam2*/ )
+ {
+ return aParam1;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CVRSettingsDialog::DynInitMenuPaneL
+//
+// ---------------------------------------------------------------------------
+//
+void CVRGSPlugin::DynInitMenuPaneL( TInt aResourceId, CEikMenuPane* aMenuPane )
+ {
+
+ switch ( aResourceId )
+ {
+ case R_VOREC_GS_SETTINGS_MENUPANE:
+ {
+ // Check if HELP is enabled in FeatureManager, if not, disable the Help menu item
+ if (!FeatureManager::FeatureSupported(KFeatureIdHelp))
+ {
+ aMenuPane->SetItemDimmed(EAknCmdHelp, ETrue);
+ }
+ break;
+ }
+ case R_VR_SETTINGS_MENUPANE:
+ {
+ // Check if HELP is enabled in FeatureManager, if not, disable the Help menu item
+ if (!FeatureManager::FeatureSupported(KFeatureIdHelp))
+ {
+ aMenuPane->SetItemDimmed(ECmdHelp, ETrue);
+ }
+ break;
+ }
+
+
+ default:
+ {
+ break;
+ }
+ }
+ }
+
+// End of file
+
+