diff -r b2bba7f74ac0 -r bcb8d447d716 idlefw/plugins/shortcutplugin/src/caiscutsettings.cpp --- a/idlefw/plugins/shortcutplugin/src/caiscutsettings.cpp Mon Mar 08 21:43:47 2010 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,435 +0,0 @@ -/* -* Copyright (c) 2005-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: Shortcut settings plug-in main class. -* -*/ - - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include // For RProperty -#include // For KPSUidActiveIdle2 - -#include -#include -#include - -#include "aiscutsettings.hrh" -#include "caiscutsettings.h" -#include "caiscutsettingsitem.h" -#include "caiscutsettingscontainer.h" -#include "caiscutsettingsmodel.h" -#include -#include "aiscutdefs.h" -#include - -const TUid KUidScutSettingsPlugin = -{ - AI_UID_ECOM_IMPLEMENTATION_SETTINGS_SCUTPLUGIN -}; - -_LIT(KScutSettingsResourceFileName, "aiscutsettingsres.rsc"); -_LIT(KScutTextsResourceFileName, "aiscuttexts.rsc"); -_LIT8(KScutDirectOpenTag, "?open"); - - -// ======== LOCAL FUNCTIONS ======== - - -static void ParseKeysL( const TDesC8& aCustomMessage, RArray& aKeys, TBool& aOpen ) - { - HBufC8* message = aCustomMessage.AllocLC(); - - TPtr8 ptr( message->Des() ); - - TInt pos; - TInt openPos; - TBool openTag=EFalse; - - do - { - pos = ptr.Locate( ',' ); - - if( pos != KErrNotFound ) - { - const TDesC8& str1 = ptr.Left( pos ); - const TDesC8& str2 = str1.Right( str1.Length() - 2 ); - - TUint32 value; - TLex8 lex( str2 ); - - if( lex.Val( value, EHex ) == KErrNone ) - { - aKeys.AppendL( value ); - } - - ptr = ptr.MidTPtr( pos + 1 ); - } - else - { - const TDesC8& str1 = ptr; - const TDesC8& str2 = str1.Right( str1.Length() - 2 ); - openPos = ptr.Find( KScutDirectOpenTag ); - TLex8 lex; - if( openPos != KErrNotFound ) - { - openTag=ETrue; - const TDesC8& str3 = str2.Left( openPos -2 ); - lex.Assign( str3 ); - } - else - { - lex.Assign( str2 ); - } - TUint32 value; - - - if( lex.Val( value, EHex ) == KErrNone ) - { - aKeys.AppendL( value ); - } - } - } - while( pos != KErrNotFound ); - - if( openTag && aKeys.Count() == 1 ) - { - aOpen = ETrue; - } - CleanupStack::PopAndDestroy(); - } -// ======== MEMBER FUNCTIONS ======== - -// --------------------------------------------------------------------------- -// -// --------------------------------------------------------------------------- -// -CAiScutSettings::CAiScutSettings() : iResourceLoaderTexts(*iCoeEnv) -{ -} - -// --------------------------------------------------------------------------- -// -// --------------------------------------------------------------------------- -// -void CAiScutSettings::ConstructL() -{ - FeatureManager::InitializeLibL(); - - TParsePtrC driveParse(PathInfo::RomRootPath()); - TFileName resourceName(driveParse.Drive()); - - // Find the resource file. - TParse parse; - parse.Set(KScutSettingsResourceFileName, &KDC_RESOURCE_FILES_DIR, NULL); - resourceName.Append(parse.FullName()); - - // Open resource file. - iResourceLoader.OpenL(resourceName); - - resourceName.Copy(driveParse.Drive()); - parse.Set(KScutTextsResourceFileName, &KDC_RESOURCE_FILES_DIR, NULL); - resourceName.Append(parse.FullName()); - - // Open resource file. - iResourceLoaderTexts.OpenL(resourceName); - - iModel = CAiScutSettingsModel::NewL(*this, iCoeEnv); - - iListBoxTimer = CIdle::NewL(CActive::EPriorityHigh); - - - BaseConstructL(R_SCUT_SETTINGS_VIEW); -} - -// --------------------------------------------------------------------------- -// -// --------------------------------------------------------------------------- -// -CAiScutSettings* CAiScutSettings::NewL(TAny* /*aInitParams*/) -{ - CAiScutSettings* self = new (ELeave) CAiScutSettings; - CleanupStack::PushL(self); - self->ConstructL(); - CleanupStack::Pop(self); - return self; -} - -// --------------------------------------------------------------------------- -// -// --------------------------------------------------------------------------- -// -CAiScutSettings::~CAiScutSettings() -{ - FeatureManager::UnInitializeLib(); - - if( iListBoxTimer ) - { - iListBoxTimer->Cancel(); - delete iListBoxTimer; - } - - iResourceLoader.Close(); - iResourceLoaderTexts.Close(); - - delete iModel; -} - -// --------------------------------------------------------------------------- -// From CAknView -// Returns view id. -// --------------------------------------------------------------------------- -// -TUid CAiScutSettings::Id() const -{ - return KUidScutSettingsPlugin; -} - -// --------------------------------------------------------------------------- -// From CAknView -// Handles commands. -// --------------------------------------------------------------------------- -// -void CAiScutSettings::HandleCommandL(TInt aCommand) -{ - switch (aCommand) - { - case EAiScutSettingsCmdChange: - Container()->HandleChangeCommandL(); - break; - - case EAknCmdHelp: - /* - TUid fwUid = TUid::Uid( AI_UID3_AIFW_COMMON ); - TCoeContextName helpString; - helpString.Copy( KSET_HLP_HOME_SCREEN_SHORTCUTS ); - - CArrayFixFlat* array = - new (ELeave) CArrayFixFlat(1); - CleanupStack::PushL( array ); - array->AppendL( TCoeHelpContext( fwUid, helpString ) ); - HlpLauncher::LaunchHelpApplicationL( CCoeEnv::Static()->WsSession(), array ); - CleanupStack::Pop( array ); - */ - break; - - case EAknSoftkeyBack: - if (iAppUi->View(KGSMainViewUid)) - { - // if we are in GS activate parent plugin view (standby view)... - iAppUi->ActivateLocalViewL(KGSPrslnPluginUid); - } - else - { - iAppUi->ActivateLocalViewL(iPrevViewId.iViewUid); - } - break; - - case EAknSoftkeyExit: - iAppUi->HandleCommandL(EAknCmdExit); - break; - - default: - iAppUi->HandleCommandL(aCommand); - break; - } -} - -// ---------------------------------------------------------------------------- -// From CAknView -// First method called by the Avkon framwork -// ---------------------------------------------------------------------------- -// -void CAiScutSettings::DoActivateL(const TVwsViewId& aPrevViewId, TUid aCustomMessageId, const TDesC8& aCustomMessage) -{ -#ifdef MY_DEBUG - RDebug::Print(_L("XAI: CAiScutSettings::DoActivateL")); - RDebug::Print(_L("XAI: aCustomMessageId = 0x%08x"), aCustomMessageId.iUid); - RDebug::Print(_L("XAI: aPrevViewId = 0x%08x"), aPrevViewId.iAppUid.iUid); -#endif - - CEikButtonGroupContainer* cba = Cba(); - - if (cba) - { - if (aCustomMessageId == KScutActiveIdleUid) - { - cba->SetCommandSetL(R_SCUT_SOFTKEYS_OPTIONS_EXIT_CHANGE); - } - else - { - cba->SetCommandSetL(R_SCUT_SOFTKEYS_OPTIONS_BACK_CHANGE); - } - cba->DrawDeferred(); - } - - CGSBaseView::DoActivateL(aPrevViewId, aCustomMessageId, aCustomMessage); - - TBool open=EFalse; - if( aCustomMessage != KNullDesC8 ) - { - RArray keys; - CleanupClosePushL( keys ); - - ParseKeysL( aCustomMessage, keys, open ); - - iModel->SetSettingsKeys( keys ); - - CleanupStack::PopAndDestroy(); - } - - iModel->UpdateSettingsContainerL(); - - if( open ) - { - /* Let idle timer do this job. */ - iListBoxTimer->Cancel(); - iListBoxTimer->Start(TCallBack(DoHandleListBoxSelectionL, this)); - } -} - -// ---------------------------------------------------------------------------- -// From CAknView -// Called by the Avkon view framework when closing. -// ---------------------------------------------------------------------------- -// -void CAiScutSettings::DoDeactivate() -{ - iModel->ActivateObservers(EFalse); - - // deletes iContainer. - CGSBaseView::DoDeactivate(); - - iModel->SetContainer(Container()); -} - -void CAiScutSettings::HandleForegroundEventL(TBool /*aForeground*/) - { - // No implementation required - } - -// ---------------------------------------------------------------------------- -// From MEikMenuObserver -// ---------------------------------------------------------------------------- -// -void CAiScutSettings::DynInitMenuPaneL( - TInt aResourceId, CEikMenuPane* aMenuPane) -{ - if (aMenuPane && aResourceId == R_SCUTSETTINGS_MENUPANE) - { - if (!FeatureManager::FeatureSupported(KFeatureIdHelp)) - { - // Disable help if not supported - aMenuPane->SetItemDimmed(EAknCmdHelp, ETrue); - } - if (iModel->MdcaCount() == 0) - { - aMenuPane->SetItemDimmed(EAiScutSettingsCmdChange, ETrue); - } - } -} - -// --------------------------------------------------------------------------- -// From CGSPluginInterface. 256 -// --------------------------------------------------------------------------- -// -void CAiScutSettings::GetCaptionL(TDes& aCaption) const -{ - iCoeEnv->ReadResourceL(aCaption, R_SCUT_SETTINGS_VIEW_CAPTION); -} - -// --------------------------------------------------------------------------- -// From CGSPluginInterface -// --------------------------------------------------------------------------- -// -TInt CAiScutSettings::PluginProviderCategory() const -{ - return KGSPluginProviderInternal; -} - -// --------------------------------------------------------------------------- -// From CGSPluginInterface -// --------------------------------------------------------------------------- -// -TBool CAiScutSettings::Visible() const -{ - return EFalse; -} - -// --------------------------------------------------------------------------- -// From CGSBaseView -// Returns view id. -// --------------------------------------------------------------------------- -// -CAiScutSettingsContainer* CAiScutSettings::Container() -{ - return static_cast(iContainer); -} - -// --------------------------------------------------------------------------- -// From CGSBaseView -// --------------------------------------------------------------------------- -// -void CAiScutSettings::NewContainerL() -{ - delete iContainer; - iContainer = NULL; - - iContainer = new (ELeave) CAiScutSettingsContainer(); - Container()->SetModel(iModel); - iModel->SetContainer(Container()); -} - -// --------------------------------------------------------------------------- -// From CGSBaseView -// --------------------------------------------------------------------------- -// -void CAiScutSettings::HandleListBoxSelectionL() -{ - Container()->HandleChangeCommandL(); -} - -// --------------------------------------------------------------------------- -// --------------------------------------------------------------------------- -// -TBool CAiScutSettings::Activated() const - { - return iContainer ? ETrue : EFalse; - } - -// ----------------------------------------------------------------------------- -// CActiveIdleState::DoUpdateSaSetting -// ----------------------------------------------------------------------------- -// -TInt CAiScutSettings::DoHandleListBoxSelectionL(TAny* aAny) - { - CAiScutSettings* self = static_cast(aAny); - if(self) - { - self->iListBoxTimer->Cancel(); - self->HandleListBoxSelectionL(); - } - return KErrNone; - } - - -// End of File.