--- a/idlefw/plugins/shortcutplugin/src/caiscutengineext.cpp Tue Feb 02 00:23:10 2010 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,326 +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 plug-in engine extension
-*
-*/
-
-#include <gslauncher.h>
-#include <gulicon.h>
-#include <viewcli.h>
-#include <coemain.h>
-
-#include <aiscutextdefs.h>
-
-#include "caiscutengineext.h"
-#include "caiscutextserver.h"
-#include "taiscutparser.h"
-#include "caiscutshortcut.h"
-#include "caiscutplugin.h"
-#include "aiscutcontentmodel.h"
-#include "caiscutextdata.h"
-#include "caiscutextdatamodel.h"
-
-// ======== LOCAL DEFINITIONS ========
-
-namespace
- {
- // LOCAL CONSTANTS
- /**
- * Target id hex format
- */
- _LIT( KTargetIdFormat, "0x%08x" );
-
- /**
- * Maximum length of target id
- */
- const TInt KTargetIdMaxLength = 11;
- }
-
-// ======== MEMBER FUNCTIONS ========
-
-// ---------------------------------------------------------------------------
-//
-// ---------------------------------------------------------------------------
-//
-CAiScutEngineExt* CAiScutEngineExt::NewL( CAiScutPlugin& aPlugin )
- {
- CAiScutEngineExt* self = new( ELeave ) CAiScutEngineExt( aPlugin );
- CleanupStack::PushL( self );
- self->ConstructL();
- CleanupStack::Pop( self );
- return self;
- }
-
-// ---------------------------------------------------------------------------
-//
-// ---------------------------------------------------------------------------
-//
-CAiScutEngineExt::~CAiScutEngineExt()
- {
- delete iAiScutExtServer;
- delete iExtDataModel;
- }
-
-// ---------------------------------------------------------------------------
-//
-// ---------------------------------------------------------------------------
-//
-CAiScutEngineExt::CAiScutEngineExt( CAiScutPlugin& aPlugin )
- : CAiScutEngine( aPlugin )
- {
- }
-
-// ---------------------------------------------------------------------------
-//
-// ---------------------------------------------------------------------------
-//
-void CAiScutEngineExt::ConstructL()
- {
- CAiScutEngine::ConstructL();
-
- iExtDataModel = CAiScutExtDataModel::NewL();
- iAiScutExtServer = new( ELeave ) CAiScutExtServer( *this, Env()->WsSession() );
- iAiScutExtServer->ConstructL();
- TRAPD( err, iAiScutExtServer->StartL( KAiScutExtServerName ) );
-
- if( err != KErrNone && err != KErrAlreadyExists )
- {
- User::Leave( err );
- }
-
- //Send EAiScutEventGainFocus to the leftmost shortcut in order to put
- //its state machine in correct state
- if( iShortcuts.Count() > 0 )
- {
- static_cast< CAiScutShortcutExt* >( iShortcuts[ 0 ] )->HandleAIEventL(
- EAiScutEventGainFocus );
- }
- }
-
-// ---------------------------------------------------------------------------
-//
-// ---------------------------------------------------------------------------
-//
-void CAiScutEngineExt::CheckAccessAndPublish( CAiScutShortcut& aShortcut )
- {
- TRAPD( err,
- RAiShortcutArray shortcutArray;
- CleanupClosePushL( shortcutArray );
- shortcutArray.AppendL( &aShortcut );
- aShortcut.SetToBePublished( ETrue );
- iPlugin.PublishShortcutsL( shortcutArray );
- CleanupStack::PopAndDestroy( &shortcutArray );
- );
-
- if( err != KErrNone )
- {
- //Delegate publishing to the original engine
- CAiScutEngine::CheckAccessAndPublish( EScutCheckAll, ETrue );
- }
- }
-
-// ---------------------------------------------------------------------------
-// Handles an event sent by the AI framework.
-// ---------------------------------------------------------------------------
-//
-void CAiScutEngineExt::HandleAiEventL( TInt aEvent, const TDesC& aParam )
- {
- CAiScutShortcutExt* shortcut = FindShortcutById( aParam );
- if( shortcut )
- {
- shortcut->HandleAIEventL( aEvent );
- }
- CAiScutEngine::HandleAiEventL( aEvent, aParam );
- }
-
-// ---------------------------------------------------------------------------
-//
-// ---------------------------------------------------------------------------
-//
-void CAiScutEngineExt::ResumeL( TBool aPublishAll, TAiTransitionReason aReason )
- {
- TArray<CAiScutExtData*> extDataArray = iExtDataModel->AiScutExtDataArray();
- const TInt count = extDataArray.Count();
- //Iterate extension data items and populate to matching shortcuts.
- //Remove the items that are not used in any shortcut.
- for( TInt i = 0; i < count; i++ )
- {
- CAiScutExtData* extData = extDataArray[ i ];
- const TDesC& targetDefinition = extData->TargetDefinition();
- if( !PopulateExtData( targetDefinition, extData ) )
- {
- iExtDataModel->RemoveAiScutExtData( targetDefinition );
- }
- }
-
- TAiTransitionReason resumeReason = iPlugin.ResumeReason();
- const TInt shortcutCount = iShortcuts.Count();
- for( TInt i = 0; i < shortcutCount; i++ )
- {
- CAiScutShortcutExt* shortcut = static_cast< CAiScutShortcutExt* >
- ( iShortcuts[ i ] );
- shortcut->HandleResumed( resumeReason );
- }
-
- iAiScutExtServer->ResumeL( aReason );
-
- CAiScutEngine::ResumeL( aPublishAll, aReason );
- }
-
-// ---------------------------------------------------------------------------
-//
-// ---------------------------------------------------------------------------
-//
-void CAiScutEngineExt::HandleSetPopupLineArrayL( const TDesC& aDefinition,
- CDesCArray* aLineArray )
- {
- CAiScutExtData* extData = iExtDataModel->SetPopupLineArrayL(
- aDefinition, aLineArray );
- TBool shortcutsFound = PopulateExtData(
- aDefinition, extData );
- if( !shortcutsFound )
- {
- iExtDataModel->RemoveAiScutExtData( aDefinition );
- }
- }
-
-// ---------------------------------------------------------------------------
-//
-// ---------------------------------------------------------------------------
-//
-void CAiScutEngineExt::HandleResetPopupLineArrayL( const TDesC& aDefinition )
- {
- CAiScutExtData* extData = iExtDataModel->ResetPopupLineArray( aDefinition );
- TBool shortcutsFound = PopulateExtData(
- aDefinition, extData );
- if( !shortcutsFound )
- {
- iExtDataModel->RemoveAiScutExtData( aDefinition );
- }
- }
-
-// ---------------------------------------------------------------------------
-//
-// ---------------------------------------------------------------------------
-//
-void CAiScutEngineExt::HandleSetIconL( const TDesC& aDefinition, CGulIcon* aIcon )
- {
- CAiScutExtData* extData = iExtDataModel->SetIconL( aDefinition, aIcon );
- TBool shortcutsFound = PopulateExtData(
- aDefinition, extData );
- if( !shortcutsFound )
- {
- iExtDataModel->RemoveAiScutExtData( aDefinition );
- }
- }
-
-// ---------------------------------------------------------------------------
-//
-// ---------------------------------------------------------------------------
-//
-void CAiScutEngineExt::HandleResetIconL( const TDesC& aDefinition )
- {
- CAiScutExtData* extData = iExtDataModel->ResetIcon( aDefinition );
- TBool shortcutsFound = PopulateExtData(
- aDefinition, extData );
- if( !shortcutsFound )
- {
- iExtDataModel->RemoveAiScutExtData( aDefinition );
- }
- }
-
-// ---------------------------------------------------------------------------
-//
-// ---------------------------------------------------------------------------
-//
-TBool CAiScutEngineExt::HandleIsInShortcutsL( const TDesC& aDefinition ) const
- {
- const TInt shortcutCount = iShortcuts.Count();
- for( TInt i = 0; i < shortcutCount; i++ )
- {
- CAiScutShortcutExt* shortcut = static_cast< CAiScutShortcutExt* >
- ( iShortcuts[ i ] );
- TPtrC activeTargetDefinition = shortcut->ActiveTargetDefinition();
- if( activeTargetDefinition.CompareF( aDefinition ) == 0 )
- {
- return ETrue;
- }
- }
-
- return EFalse;
- }
-
-// ---------------------------------------------------------------------------
-//
-// ---------------------------------------------------------------------------
-//
-void CAiScutEngineExt::HandleIssuePutInShortcutsL( const TDesC& /*aDefinition*/ )
- {
- CGSLauncher* l = CGSLauncher::NewLC();
- l->LaunchGSViewL ( TUid::Uid( AI_UID_ECOM_IMPLEMENTATION_SETTINGS_SCUTPLUGIN ),
- KScutActiveIdleUid,
- KNullDesC8 );
- CleanupStack::PopAndDestroy( l );
- }
-
-// ---------------------------------------------------------------------------
-//
-// ---------------------------------------------------------------------------
-//
-TBool CAiScutEngineExt::PopulateExtData( const TDesC& aDefinition,
- const MAiScutExtData* aAiScutExtData )
- {
- //Iterate shortcuts and update matching ones with new extData
- TBool shortcutsFound = EFalse;
- const TInt shortcutCount = iShortcuts.Count();
- for( TInt i = 0; i < shortcutCount; i++ )
- {
- CAiScutShortcutExt* shortcut = static_cast< CAiScutShortcutExt* >
- ( iShortcuts[ i ] );
- TPtrC activeTargetDefinition = shortcut->ActiveTargetDefinition();
- if( activeTargetDefinition.CompareF( aDefinition ) == 0 )
- {
- shortcut->SetAiScutExtData( aAiScutExtData );
- shortcutsFound = ETrue;
- }
- }
-
- return shortcutsFound;
- }
-
-// ---------------------------------------------------------------------------
-//
-// ---------------------------------------------------------------------------
-//
-CAiScutShortcutExt* CAiScutEngineExt::FindShortcutById(
- const TDesC& aId ) const
- {
- const TInt shortcutCount = iShortcuts.Count();
- for( TInt i = 0; i < shortcutCount; i++ )
- {
- CAiScutShortcutExt* shortcut = static_cast< CAiScutShortcutExt* >
- ( iShortcuts[ i ] );
-
- TBuf< KTargetIdMaxLength > id;
- id.Format( KTargetIdFormat, shortcut->Id() );
-
- if( id.CompareF( aId ) == 0 )
- {
- return shortcut;
- }
- }
- return NULL;
- }
-
-// End of File.