diff -r 2b7283837edb -r 3104fc151679 imstutils/imconversationview/imcvuiapp/src/cimcvappmessageextensionshandler.cpp --- a/imstutils/imconversationview/imcvuiapp/src/cimcvappmessageextensionshandler.cpp Thu Aug 19 09:41:53 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,386 +0,0 @@ -/* -* Copyright (c) 2007-2008 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: message extention class -* -*/ - - -#include "cimcvappmessageextensionshandler.h" -#include "cimcvenginefactory.h" -#include -#include -#include "imcvlogger.h" -#include "cimcvappsmileyutil.h" -#include "imcvuiliterals.h" -#include "cimcvengine.h" - - -// ----------------------------------------------------------------------------- -// CIMCVAppMessageExtensionsHandler::CIMCVAppMessageExtensionsHandler -// Constructor -// ----------------------------------------------------------------------------- -// -CIMCVAppMessageExtensionsHandler::CIMCVAppMessageExtensionsHandler( MIMCVUiAppSkinVariant& aSkinVariant, - MIMCVAppUi& aAppUi, - MIMCVEngineFactory& aEngineFactory ) - :iSkinVariant( aSkinVariant ), - iAppUi( aAppUi ), - iEngineFactory( aEngineFactory ) - { - } - -// ----------------------------------------------------------------------------- -// CIMCVAppMessageExtensionsHandler::~CIMCVAppMessageExtensionsHandler -// Destructor -// ----------------------------------------------------------------------------- -// -CIMCVAppMessageExtensionsHandler::~CIMCVAppMessageExtensionsHandler() - { - iExtensionArray.ResetAndDestroy(); - } - -// ----------------------------------------------------------------------------- -// CIMCVAppMessageExtensionsHandler::NewL -// Symbian two phased constructor -// ----------------------------------------------------------------------------- -// -CIMCVAppMessageExtensionsHandler* CIMCVAppMessageExtensionsHandler::NewL( - MIMCVUiAppSkinVariant& aSkinVariant, - MIMCVAppUi& aAppUi, - MIMCVEngineFactory& aEngineFactory, - TBool /*aAddSmileyHandler = ETrue */) - { - IM_CV_LOGS(TXT("CIMCVAppMessageExtensionsHandler::CIMCVAppMessageExtensionsHandler() start" )); - CIMCVAppMessageExtensionsHandler* self = - new ( ELeave ) CIMCVAppMessageExtensionsHandler(aSkinVariant,aAppUi,aEngineFactory); - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop( self ); - IM_CV_LOGS(TXT("CIMCVAppMessageExtensionsHandler::CIMCVAppMessageExtensionsHandler() end" )); - return self; - } - -// ----------------------------------------------------------------------------- -// CIMCVAppMessageExtensionsHandler::ConstructL -// Symbian OS Constructor -// ----------------------------------------------------------------------------- -// -void CIMCVAppMessageExtensionsHandler::ConstructL() - { - IM_CV_LOGS(TXT("CIMCVAppMessageExtensionsHandler::ConstructL() start" )); - //get the count of number of services - RPointerArray& serviceEngines = iEngineFactory.GetServiceEngines(); - for(TInt i=0; iServiceId() == aServiceId ) - { - IM_CV_LOGS(TXT("CIMCVAppMessageExtensionsHandler::CREATE SERVICE SMILEY ALREADY EXISTS" )); - error = KErrAlreadyExists; - break; - } - } - if( error == KErrNone ) - { - CIMCVAppSmileyUtil* smiley = CIMCVAppSmileyUtil::NewL(iSkinVariant, iAppUi, EMessageExtensionSmiley, engine ); - CleanupStack::PushL( smiley ); - User::LeaveIfError( iExtensionArray.Append( smiley )); - CleanupStack::Pop( smiley ); - } - IM_CV_LOGS(TXT("CIMCVAppMessageExtensionsHandler::HandleNewServiceL() end" )); - } -// ----------------------------------------------------------------------------- -// CIMCVAppMessageExtensionsHandler::DeleteServiceSmileyL -// Symbian OS Constructor -// ----------------------------------------------------------------------------- -// -void CIMCVAppMessageExtensionsHandler::DeleteServiceSmileyL( TInt aServiceId ) - { - IM_CV_LOGS(TXT("CIMCVAppMessageExtensionsHandler::HandleServiceDeletedL() start" )); - TInt count = iExtensionArray.Count(); - for(TInt i=0; iServiceId() == aServiceId ) - { - IM_CV_LOGS(TXT("CIMCVAppMessageExtensionsHandler::DELET SMILEY SERVICES" )); - MIMCVAppMessageExtension* smiley = iExtensionArray[ i ]; - iExtensionArray.Remove( i ); - delete smiley; - smiley = NULL; - iExtensionArray.Compress(); - break; - } - } - IM_CV_LOGS(TXT("CIMCVAppMessageExtensionsHandler::HandleServiceDeletedL() end" )); - } - -// ----------------------------------------------------------------------------- -// CIMCVAppMessageExtensionsHandler::ProcessMessageLC -// Process messages trough extensions. -// ----------------------------------------------------------------------------- -// -HBufC* CIMCVAppMessageExtensionsHandler::ProcessMessageLC( - CEikRichTextEditor& aEditor, - TInt aServiceId ) - { - IM_CV_LOGS(TXT("CIMCVAppMessageExtensionsHandler::ProcessMessageLC() start" )); - HBufC* msg = ExtensionToStringLC( aEditor, aServiceId ); - for( TInt a( 0 ); a < iExtensionArray.Count(); ++a ) - { - if( aServiceId == iExtensionArray[a]->ServiceId() ) - { - iExtensionArray[ a ]->Reset( ); - break; - } - } - IM_CV_LOGS(TXT("CIMCVAppMessageExtensionsHandler::ProcessMessageLC() end" )); - return msg; - } - -// ----------------------------------------------------------------------------- -// CIMCVAppMessageExtensionsHandler::ExtensionToStringL -// Convert extensions to strings. -// ----------------------------------------------------------------------------- -// -HBufC* CIMCVAppMessageExtensionsHandler::ExtensionToStringLC( - CEikRichTextEditor& aEditor, - TInt aServiceId ) - { - IM_CV_LOGS(TXT("CIMCVAppMessageExtensionsHandler::ExtensionToStringLC() start" )); - HBufC* text = HBufC::NewMaxLC(KDefaultMsgLength ); - TPtr tBuf( text->Des() ); - - HBufC* msgBuf = aEditor.GetTextInHBufL(); - if(!msgBuf) - { - tBuf.Zero(); - return text; - } - CleanupStack::PushL( msgBuf ); - TPtr msgPtr( msgBuf->Des() ); - - for( TInt a( 0 ); a < iExtensionArray.Count(); ++a ) - { - if( aServiceId == iExtensionArray[a]->ServiceId() ) - { - tBuf = msgPtr; - iExtensionArray[ a ]->ExtensionToStringL( aEditor, tBuf ); - CleanupStack::PopAndDestroy( msgBuf ); - msgBuf = NULL; - msgBuf = tBuf.AllocLC(); - TPtr newPtr( msgBuf->Des() ); - msgPtr.Set( newPtr ); - break; - } - } - - // Remove all CEditableText::EZeroWidthNoBreakSpace characters - // which are used to go around CRichText editor bug - // when msg contains only smiley pictures - // These rows below can be removed when CRichText editor - // don't need anyrmore this "hack" - tBuf = msgPtr; - - TInt length = tBuf.Length(); - for( TInt i = length-1; i >=0 ; --i ) - { - if( tBuf[ i ] == CEditableText::EZeroWidthNoBreakSpace ) - { - tBuf.Delete( i, 1 ); // removing 1 character - } - } - CleanupStack::PopAndDestroy( msgBuf ); - IM_CV_LOGS(TXT("CIMCVAppMessageExtensionsHandler::ExtensionToStringLC() end" )); - return text; - } - - -// ----------------------------------------------------------------------------- -// CIMCVAppMessageExtensionsHandler::DeleteExtensionIcon -// Find right extension handler and delete extension -// ----------------------------------------------------------------------------- -// -void CIMCVAppMessageExtensionsHandler::DeleteExtensionL( CEikRichTextEditor& aEditor, - TInt aServiceId , - TMessageExtensionTypes /*aType*/, - TInt aPos ) - { - IM_CV_LOGS(TXT("CIMCVAppMessageExtensionsHandler::DeleteExtensionL() start" )); - for( TInt a( 0 ); a < iExtensionArray.Count(); ++a ) - { - if( aServiceId == iExtensionArray[a]->ServiceId() ) - { - iExtensionArray[ a ]->DeleteExtensionL( aEditor, aPos ); - break; - } - } - IM_CV_LOGS(TXT("CIMCVAppMessageExtensionsHandler::DeleteExtensionL() end" )); - } - -// ----------------------------------------------------------------------------- -// CIMCVAppMessageExtensionsHandler::ConvertSelectionToExtensionL -// Convert all extensions from strings to extensions in area. -// ----------------------------------------------------------------------------- -// -void CIMCVAppMessageExtensionsHandler::ConvertSelectionToExtensionL( - CEikRichTextEditor& aEditor, - TInt aServiceId ) - { - IM_CV_LOGS(TXT("CIMCVAppMessageExtensionsHandler::ConvertSelectionToExtensionL() start" )); - for( TInt a( 0 ); a < iExtensionArray.Count(); ++a ) - { - if( aServiceId == iExtensionArray[a]->ServiceId() ) - { - iExtensionArray[ a ]->ConvertSelectionToExtensionL( aEditor ); - break; - } - } - IM_CV_LOGS(TXT("CIMCVAppMessageExtensionsHandler::ConvertSelectionToExtensionL() end" )); - } - -// ----------------------------------------------------------------------------- -// CIMCVAppMessageExtensionsHandler::ConvertSelectionToExtensionL -// Convert all extensions from strings to extensions in area. -// ----------------------------------------------------------------------------- -// -void CIMCVAppMessageExtensionsHandler::ConvertSelectionToExtensionL( - CRichText& aRichText, - TCursorSelection& aSelection, - TInt aServiceId ) - { - IM_CV_LOGS(TXT("CIMCVAppMessageExtensionsHandler::ConvertSelectionToExtensionL() start" )); - for( TInt a( 0 ); a < iExtensionArray.Count(); ++a ) - { - if( aServiceId == iExtensionArray[a]->ServiceId() ) - { - iExtensionArray[ a ]->ConvertSelectionToExtensionL( aRichText, aSelection ); - break; - } - } - IM_CV_LOGS(TXT("CIMCVAppMessageExtensionsHandler::ConvertSelectionToExtensionL() end" )); - } - -// ----------------------------------------------------------------------------- -// CIMCVAppMessageExtensionsHandler::ConvertSelectionToStringL -// Convert all extensions from extensions to strings in area. -// ----------------------------------------------------------------------------- -// -void CIMCVAppMessageExtensionsHandler::ConvertSelectionToStringL( - CEikRichTextEditor& aEditor, - TInt aServiceId, - TBool aPreserve /*= EFalse*/ ) - { - IM_CV_LOGS(TXT("CIMCVAppMessageExtensionsHandler::ConvertSelectionToStringL() start" )); - - for( TInt a( 0 ); a < iExtensionArray.Count(); ++a ) - { - if( aServiceId == iExtensionArray[a]->ServiceId() ) - { - iExtensionArray[ a ]->ConvertSelectionToStringL( aEditor, aPreserve ); - break; - } - } - IM_CV_LOGS(TXT("CIMCVAppMessageExtensionsHandler::ConvertSelectionToStringL() end" )); - } - - -// ----------------------------------------------------------------------------- -// CIMCVAppMessageExtensionsHandler::SizeChanged -// Convert all extensions from extensions to strings in area. -// ----------------------------------------------------------------------------- -// -void CIMCVAppMessageExtensionsHandler::SizeChanged( TSize& aSize, - TInt aServiceId ) - { - IM_CV_LOGS(TXT("CIMCVAppMessageExtensionsHandler::SizeChanged() start" )); - - for( TInt a( 0 ); a < iExtensionArray.Count(); ++a ) - { - if( aServiceId == iExtensionArray[a]->ServiceId() ) - { - iExtensionArray[ a ]->SizeChanged( aSize ); - break; - } - } - IM_CV_LOGS(TXT("CIMCVAppMessageExtensionsHandler::SizeChanged() end" )); - } - -// ----------------------------------------------------------------------------- -// CIMCVAppMessageExtensionsHandler::ConvertSelectionToStringL -// Convert all extensions from extensions to strings in area. -// ----------------------------------------------------------------------------- -// -void CIMCVAppMessageExtensionsHandler::ConvertSelectionToStringL( - CEikRichTextEditor& aEditor, - TInt aServiceId , - TDes& aResultString, - TCursorSelection& aSelectionAfterConversion, - TBool aPreserve ) - { - IM_CV_LOGS(TXT("CIMCVAppMessageExtensionsHandler::ConvertSelectionToStringL() start" )); - for( TInt a( 0 ); a < iExtensionArray.Count(); ++a ) - { - if( aServiceId == iExtensionArray[a]->ServiceId() ) - { - iExtensionArray[ a ]->ConvertSelectionToStringL( - aEditor, aResultString, aSelectionAfterConversion, aPreserve ); - break; - } - } - IM_CV_LOGS(TXT("CIMCVAppMessageExtensionsHandler::ConvertSelectionToStringL() end" )); - } - -// ----------------------------------------------------------------------------- -// CIMCVAppMessageExtensionsHandler::InsertExtensionIcon -// Find right extension handler and insert extension -// ----------------------------------------------------------------------------- -// -void CIMCVAppMessageExtensionsHandler::InsertExtensionL( CEikRichTextEditor& aEditor, - TInt aServiceId , - TMessageExtensionTypes aType, - TBool& aCancelled, - TSize size) - { - for( TInt a( 0 ); a < iExtensionArray.Count(); ++a ) - { - if( aType == iExtensionArray[ a ]->Type() && aServiceId == iExtensionArray[a]->ServiceId() ) - { - iExtensionArray[ a ]->InsertExtensionL( aEditor, aCancelled, size ); - break; - } - } - } - -// end of file