diff -r 861562a14a53 -r b7fa36b488f8 profilesapplication/Profiles/ProfilesGSTonesPlugin/src/ProfilesGSTonesPlugin.cpp --- a/profilesapplication/Profiles/ProfilesGSTonesPlugin/src/ProfilesGSTonesPlugin.cpp Thu Aug 19 09:55:16 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,393 +0,0 @@ -/* -* Copyright (c) 2005 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: Cpp file for plugin. -* -*/ - - -// Includes -#include "ProfilesGSTonesPlugin.h" - -#include "ProfilesUID.h" -#include "CProfilesGSTonesPluginSettingsHandler.h" -#include "ProfilesDebug.h" -#include "ProfilesGSTonesPlugin.hrh" -#include -#include - -// Includes from Profiles Settings View: -#include -#include - -// Includes from Profiles Engine: -#include -#include -#include -#include "ProfilesVariant.hrh" - -// Includes from GS framework: -#include -#include - -// External includes -#include -#include -#include -#include -#include -#include -#include -#include - -class CProfileIndexHandler; -class CProfileTabHandler; - -namespace { -// Constants - const TUid KProfilesGSTonesPluginUid = - { IMPLEMENTATION_UID_PROFILES_GS_TONES_PLUGIN }; - - _LIT( KProfilesGSTonesPluginResourceFileName, - "z:ProfilesGSTonesPluginRsc.rsc" ); -} - -// CLASS DECLARATION - - -/****************************************************************************** - * class CProfileGSTonesTopControl - ******************************************************************************/ - - -CProfileGSTonesTopControl* CProfileGSTonesTopControl::NewL( CCoeControl* aFocusControl ) - { - CProfileGSTonesTopControl* self = new ( ELeave ) CProfileGSTonesTopControl(); - self->iFocusControl = aFocusControl; - return self; - } - -void CProfileGSTonesTopControl::FocusChanged( TDrawNow aDrawNow ) - { - // Not calling super::FocusChanged is intentional - if( iFocusControl ) - { - iFocusControl->SetFocus( IsFocused(), aDrawNow ); - } - } - - -/****************************************************************************** - * class CProfilesGSTonesPlugin - ******************************************************************************/ - - - -// --------------------------------------------------------------------------- -// CProfilesGSTonesPlugin::CProfilesGSTonesPlugin() -// --------------------------------------------------------------------------- -// -CProfilesGSTonesPlugin::CProfilesGSTonesPlugin() - : iResourceLoader( *iCoeEnv ) - { - } - - -// --------------------------------------------------------------------------- -// CProfilesGSTonesPlugin::~CProfilesGSTonesPlugin() -// --------------------------------------------------------------------------- -// -CProfilesGSTonesPlugin::~CProfilesGSTonesPlugin() - { - DoDeactivate(); - delete iEngineHandler; - iResourceLoader.Close(); - delete iNotifier; - } - - -// --------------------------------------------------------------------------- -// CProfilesGSTonesPlugin::ConstructL() -// --------------------------------------------------------------------------- -// -void CProfilesGSTonesPlugin::ConstructL() - { - PRODEBUG( "CProfilesGSTonesPlugin::ConstructL() begin" ); - // Find the resource file - TParse parse; - parse.Set( KProfilesGSTonesPluginResourceFileName, - &KDC_RESOURCE_FILES_DIR, NULL ); - TFileName fileName( parse.FullName() ); - - // Get language of resource file - BaflUtils::NearestLanguageFile( iCoeEnv->FsSession(), fileName ); - - // Open resource file - iResourceLoader.OpenL( fileName ); - - PRODEBUG( "CProfilesGSTonesPlugin::ConstructL() before BaseConstructL call" ); - BaseConstructL( R_PROFILES_GS_TONES_VIEW ); // CSI: 9 # The resource file must be opened before this call - - iNotifier = CProfileChangeNotifyHandler::NewL( this ); - iEngineHandler = CProfileEngineHandler::NewL(); - iPreviousProfile = iEngineHandler->Engine()->ActiveProfileId(); - PRODEBUG( "CProfilesGSTonesPlugin::ConstructL() end" ); - } - - -// --------------------------------------------------------------------------- -// CProfilesGSTonesPlugin::NewL() -// --------------------------------------------------------------------------- -// -CProfilesGSTonesPlugin* CProfilesGSTonesPlugin::NewL( TAny* /*aInitParams*/ ) - { - CProfilesGSTonesPlugin* self = new(ELeave) CProfilesGSTonesPlugin(); - CleanupStack::PushL(self); - self->ConstructL(); - CleanupStack::Pop(self); - return self; - } - - -// --------------------------------------------------------------------------- -// CGSParentPlugin::Id() -// --------------------------------------------------------------------------- -// -TUid CProfilesGSTonesPlugin::Id() const - { - PRODEBUG( "CProfilesGSTonesPlugin::Id" ); - return KProfilesGSTonesPluginUid; - } - - -// --------------------------------------------------------------------------- -// CGSParentPlugin::DoActivateL() -// --------------------------------------------------------------------------- -// -void CProfilesGSTonesPlugin::DoActivateL - ( const TVwsViewId& /* aPrevViewId */, - TUid /* aCustomMessageId */, - const TDesC8& /* aCustomMessage */ ) - { - PRODEBUG( "CProfilesGSTonesPlugin::DoActivateL begin" ); - if ( !iContainer ) - { - iSettingsHandler = - CProfilesGSTonesPluginSettingsHandler::NewL( iCoeEnv ); - - iContainer = CProfileSettingsContainer::NewL( - *this, *iEngineHandler, *iSettingsHandler, (CProfileIndexHandler*) NULL, - (CProfileTabHandler*) NULL, (CAknTitlePane*) NULL, - R_PROFILE_GS_TONES_VIEW_SETTING_ITEM_LIST ); - - iTopControl = CProfileGSTonesTopControl::NewL( iContainer ); - - // Set the title pane text - CAknTitlePane* titlePane = static_cast< CAknTitlePane* >( - StatusPane()->ControlL( TUid::Uid( EEikStatusPaneUidTitle ) ) ); - HBufC* title = StringLoader::LoadLC( R_PROFILES_GS_TONES_VIEW_TITLE ); - titlePane->SetTextL( *title ); - CleanupStack::PopAndDestroy( title ); - - iNaviPaneContainer = - CProfileNaviPaneContainer::NewL( *StatusPane(), *iEngineHandler ); - // Set the name of the active profile to navi pane - iNaviPaneContainer->SetNaviPaneTextL(); - - AppUi()->AddToViewStackL( *this, iContainer ); - // Top control is always on top as it listens to focus changes (which - // will be routed to container to adapt highlight animation to focus) - AppUi()->AddToStackL( *this, iTopControl ); - - iContainer->MakeVisible( ETrue ); - } - PRODEBUG( "CProfilesGSTonesPlugin::DoActivateL end" ); - } - -// --------------------------------------------------------------------------- -// CGSParentPlugin::DoDeactivate() -// --------------------------------------------------------------------------- -// -void CProfilesGSTonesPlugin::DoDeactivate() - { - PRODEBUG( "CProfilesGSTonesPlugin::DoDeactivateL begin" ); - delete iNaviPaneContainer; - iNaviPaneContainer = NULL; - - if ( iTopControl ) - { - AppUi()->RemoveFromStack( iTopControl ); - delete iTopControl; - iTopControl = NULL; - } - if ( iContainer ) - { - AppUi()->RemoveFromViewStack( *this, iContainer ); - delete iContainer; - iContainer = NULL; - } - delete iSettingsHandler; - iSettingsHandler = NULL; - PRODEBUG( "CProfilesGSTonesPlugin::DoDeactivateL end" ); - } - -// ---------------------------------------------------------------------------- -// CProfilesGSTonesPlugin::HandleCommandL -// -// Handles commands directed to this class. -// ---------------------------------------------------------------------------- -void CProfilesGSTonesPlugin::HandleCommandL( TInt aCommand ) - { - PRODEBUG1( "CProfilesGSTonesPlugin::HandleCommandL(%d) begin", aCommand ); - CAknViewAppUi* appUi = AppUi(); - switch ( aCommand ) - { - case EAknSoftkeyBack: - appUi->ActivateLocalViewL( KGSPrslnPluginUid ); - break; - case EProfilesGsTonesCmdChange: - case EAknSoftkeyChange: - PRODEBUG( "CProfilesGSTonesPlugin::HandleCommandL before EditItemL" ); - iContainer->EditItemL( - iContainer->SettingItemArray()->ItemIndexFromVisibleIndex( - iContainer->ListBox()->CurrentItemIndex() ), - ( aCommand == EProfilesGsTonesCmdChange ) ); - PRODEBUG( "CProfilesGSTonesPlugin::HandleCommandL after EditItemL" ); - break; - case EAknCmdHelp: - { - if( FeatureManager::FeatureSupported( KFeatureIdHelp ) ) - { - HlpLauncher::LaunchHelpApplicationL( - iEikonEnv->WsSession(), appUi->AppHelpContextL() ); - } - break; - } - default: - appUi->HandleCommandL( aCommand ); - break; - } - PRODEBUG( "CProfilesGSTonesPlugin::HandleCommandL end" ); - } - -// ----------------------------------------------------------------------------- -// CProfilesGSTonesPlugin::DynInitMenuPaneL -// ----------------------------------------------------------------------------- -// -void CProfilesGSTonesPlugin::DynInitMenuPaneL( - TInt aResourceId, CEikMenuPane* aMenuPane ) - { - if( aResourceId == R_PROFILES_GS_OPTIONS_MENUPANE ) - { - if( !FeatureManager::FeatureSupported( KFeatureIdHelp ) ) - { - // Help is not supported. Hide Help from Options menu - aMenuPane->SetItemDimmed( EAknCmdHelp, ETrue ); - } - } - } - -// ========================= From CGSPluginInterface ================== - - -// --------------------------------------------------------------------------- -// CProfilesGSTonesPlugin::GetCaptionL() -// --------------------------------------------------------------------------- -// -void CProfilesGSTonesPlugin::GetCaptionL( TDes& aCaption ) const - { - PRODEBUG( "CProfilesGSTonesPlugin::GetCaptionL begin" ); - // The resource file is already opened by iResourceLoader. - HBufC* result = StringLoader::LoadL( R_PROFILES_GS_TONES_VIEW_CAPTION ); - aCaption.Copy( *result ); - delete result; - PRODEBUG( "CProfilesGSTonesPlugin::GetCaptionL end" ); - } - -// --------------------------------------------------------------------------- -// CProfilesGSTonesPlugin::PluginProviderCategory() -// --------------------------------------------------------------------------- -// -TInt CProfilesGSTonesPlugin::PluginProviderCategory() const - { - PRODEBUG( "CProfilesGSTonesPlugin::PluginProviderCategory" ); - return KGSPluginProviderInternal; - } - -// --------------------------------------------------------------------------- -// CProfilesGSTonesPlugin::ItemType() -// --------------------------------------------------------------------------- -// -TGSListboxItemTypes CProfilesGSTonesPlugin::ItemType() - { - PRODEBUG( "CProfilesGSTonesPlugin::ItemType" ); - return EGSItemTypeSetting; - } - -// --------------------------------------------------------------------------- -// CProfilesGSTonesPlugin::UpdateClientRect() -// --------------------------------------------------------------------------- -// -void CProfilesGSTonesPlugin::UpdateClientRect() - { - PRODEBUG( "CProfilesGSTonesPlugin::UpdateClientRect" ); - iContainer->SetRect( ClientRect() ); - } - -// --------------------------------------------------------------------------- -// CProfilesGSTonesPlugin::View() -// --------------------------------------------------------------------------- -// -CAknView& CProfilesGSTonesPlugin::View() - { - PRODEBUG( "CProfilesGSTonesPlugin::View" ); - return *this; - } - -// ----------------------------------------------------------------------------- -// CProfilesGSTonesPlugin::HandleActiveProfileEventL -// ----------------------------------------------------------------------------- -// -void CProfilesGSTonesPlugin::HandleActiveProfileEventL( - TProfileEvent aProfileEvent, TInt aProfileId ) - { - PRODEBUG( "CProfilesGSTonesPlugin::HandleActiveProfileEventL" ); - if( ( aProfileEvent == EProfileNewActiveProfile ) && - ( aProfileId != iPreviousProfile ) && - iNaviPaneContainer ) - { - // Active profile has changed. Change active profile name in navi pane. - iNaviPaneContainer->SetNaviPaneTextL(); - ShowInfoNoteL( R_PROFILES_GS_TONES_VIEW_UPDATED_NOTE ); - iPreviousProfile = aProfileId; - } - } - -// ----------------------------------------------------------------------------- -// CProfilesGSTonesPlugin::ShowInfoNoteL -// ----------------------------------------------------------------------------- -// -void CProfilesGSTonesPlugin::ShowInfoNoteL( TInt aResourceId ) - { - if( IsForeground() ) - { - HBufC* infoText = StringLoader::LoadLC( aResourceId ); - CAknGlobalNote* note = CAknGlobalNote::NewLC(); - note->ShowNoteL( EAknGlobalInformationNote, *infoText ); - - CleanupStack::PopAndDestroy( 2, infoText ); - } - } - -// End of File -