diff -r 3104fc151679 -r 9a48e301e94b imstutils/imconversationview/imcvuiapp/inc/cimcvappsmileyutil.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/imstutils/imconversationview/imcvuiapp/inc/cimcvappsmileyutil.h Wed Sep 01 12:33:36 2010 +0100 @@ -0,0 +1,163 @@ +/* +* 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: Utility for selecting smile icon and converting +* between smile id and smile string. +* +*/ + + +#ifndef CIMCVAPPSMILEYUTIL_H +#define CIMCVAPPSMILEYUTIL_H + +// INCLUDE + +#include "mimcvappmessageextension.h" +#include "cimcvappsmileiconutility.h" +#include + +// FORWARD DECLARATIONS + +class CIMCVAppSmileIconUtility; +class MIMCVAppUi; +class MIMCVUiAppSkinVariant; +class CIMCVEngine; + +// CLASS DECLARATION + + +/** +* CIMCVAPPSmileyUtil +* +* Utility for dealing with smileys in editor +*/ +class CIMCVAppSmileyUtil : public CBase, public MIMCVAppMessageExtension + { + public: // Constructors and destructor + + /** + * Two-phased constructor. + * aAppUi CIMCVAppUI reference + * @param aType message extension type + */ + static CIMCVAppSmileyUtil* NewL( MIMCVUiAppSkinVariant& aSkinVariant, + MIMCVAppUi& aAppUi, + TMessageExtensionTypes aType, + CIMCVEngine& aServiceEngine); + + /** + * Destructor. + */ + virtual ~CIMCVAppSmileyUtil(); + + private: // From MIMCVAPPMessageExtension + + + + /** + * Inserts icon to editor + * @param anEditor Reference to editor + */ + void InsertExtensionL( CEikRichTextEditor& anEditor, + TBool& aCancelled, TSize size ); + + /** + * Deletes icon from editor + * @param aEditor Reference to editor + * @param aPos Position where icon is located + */ + void DeleteExtensionL( CEikRichTextEditor& aEditor, TInt aPos ); + + /** + * Converts smiley icons to string smileys + * @param anEditor Reference to editor + * @param aDes Text from editor + */ + void ExtensionToStringL( CEikRichTextEditor& anEditor, TDes& aDes ); + + /** + * @see MIMCVAPPMessageExtension + */ + void ConvertSelectionToExtensionL( CEikRichTextEditor& aEditor ); + + /** + * Converts all the extensions in selection area from strings to extensions. + * @since 3.0 + * @param aRichText Rich text to be converted + * @param aSelection Selection area + */ + void ConvertSelectionToExtensionL( CRichText& aRichText, TCursorSelection& aSelection ); + + /** + * @see MIMCVAPPMessageExtension + */ + void ConvertSelectionToStringL( CEikRichTextEditor& aEditor, TBool aPreserve ); + + /** + * @see MIMCVAPPMessageExtension + */ + void Reset(); + + /** + * Informs the extensions about changed size + * @param aSize + */ + void SizeChanged( TSize& aSize ); + + /** + * @see MIMCVAPPMessageExtension + */ + void ConvertSelectionToStringL( + CEikRichTextEditor& aEditor, + TDes& aResultString, + TCursorSelection& aSelectionAfterConversion, + TBool aPreserve ); + + + TInt ServiceId() const ; + + private: // Constructors and destructor + + /** + * C++ constructor. + * @param aType Type of TMessageExtensionTypes + */ + CIMCVAppSmileyUtil( TMessageExtensionTypes aType ); + + /** + * Second-phased constructor + */ + void ConstructL( MIMCVUiAppSkinVariant& aSkinVariant, + MIMCVAppUi& aAppUi, + CIMCVEngine& aServiceEngine ); + + private: // Data + + //util for icon/string convertings + CIMCVAppSmileIconUtility* iSmileUtil; + + // Doesn't own + CEikRichTextEditor* iEditor; + + // Count of current smiley icons in editor + TInt iCurrentCount; + + // Is smiley converted or not + RPointerArray< CIMCVAppSmileyInformation > iConvertArray; + + // service id + TInt iServiceId; + + }; + +#endif // CIMCVAPPSMILEYUTIL_H