--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/emailuis/uicomponents/inc/fsalftextstylemanager.h Thu Dec 17 08:39:21 2009 +0200
@@ -0,0 +1,145 @@
+/*
+* Copyright (c) 2007-2007 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: This component converts CRichText style's to HuiTextStyle
+*
+*/
+
+
+#ifndef C_FSALFTEXTSTYLEMANAGER_H
+#define C_FSALFTEXTSTYLEMANAGER_H
+
+#include <e32base.h>
+#include <txtfrmat.h>
+
+class CAlfTextStyleManager;
+class TFsTextStyleData;
+
+
+/**
+ * CFsAlfTextStyleManager
+ *
+ * This class is designed to convert CRichText style definitions to
+ * TAlfTextStyles. To avoid overlapping style definitions, all previously
+ * created styles are stored in a list.
+ *
+ * Example:
+ * @code
+ *
+ * manager = CFsTextStyleManager::NewL( Env().TextStyleManager() );
+ * rText.GetChars( someText, charFormat, position ); //CRichText
+ * TInt styleID = manager->GetStyleIDL( charFormat );
+ * visual = CAlfTextVisual::AddNewL( *iControl, iCurveLayout );
+ * visual->SetTextStyle( styleID );
+ *
+ * @endcode
+ *
+ * @since S60 v3.2
+ */
+class CFsAlfTextStyleManager : CBase
+ {
+public:
+
+ /**
+ * Two-phased constructor.
+ * @param aAlfTextStyleManager Reference to the CAlfTextStyleManager
+ */
+ static CFsAlfTextStyleManager* NewL( CAlfTextStyleManager& aAlfTextStyleManager );
+
+ /**
+ * Destructor.
+ */
+ ~CFsAlfTextStyleManager();
+
+ /**
+ * GetStyleIDL
+ *
+ * This is the only public method in CFsAlfTextStyleManager. If there
+ * already a style that matches the given TCharFormat, the ID of this
+ * style is returned. If not, a new style is created.
+ *
+ * @since S60 3.2
+ * @param aCharFormat Style format from CRichText
+ * @return ID for TAlfTextStyle
+ */
+ TInt GetStyleIDL( const TCharFormat& aCharFormat );
+
+ /**
+ * FindId
+ *
+ * The array of previously created styles is searched for matching
+ * TCharFormat. If not found KErrNotFound is returned.
+ *
+ * @since S60 3.2
+ * @param aCharFormat Style format from CRichText
+ * @return ID for TAlfTextStyle or KErrNotFound
+ */
+ TInt GetStyleIDWithOpositeUnderlineL( TInt aId );
+
+private:
+
+ CFsAlfTextStyleManager( CAlfTextStyleManager& aAlfTextStyleManager );
+
+ // void ConstructL(); This wasn't needed at the time
+
+ /**
+ * FindId
+ *
+ * The array of previously created styles is searched for matching
+ * TCharFormat. If not found KErrNotFound is returned.
+ *
+ * @since S60 3.2
+ * @param aCharFormat Style format from CRichText
+ * @return ID for TAlfTextStyle or KErrNotFound
+ */
+ TInt FindId( const TCharFormat& aCharFormat );
+
+
+ /**
+ * FindPositionOfId
+ *
+ * The array of previously created styles is searched for matching
+ * ID. If not found KErrNotFound is returned.
+ *
+ * @since S60 3.2
+ * @param ID Style format from CRichText
+ * @return position in table for TAlfTextStyle or KErrNotFound
+ */
+ TInt FindPositionOfId(TInt aId);
+
+ /**
+ * CreateNewTextStyleL
+ *
+ * Creates a new text style using TCharFormat.
+ *
+ * @since S60 3.2
+ * @param aCharFormat Style format from CRichText
+ * @return ID for TAlfTextStyle
+ */
+ TInt CreateNewTextStyleL( const TCharFormat& aCharFormat );
+
+private: // data
+
+ /**
+ * Reference to the CAlfTextStyleManager
+ */
+ CAlfTextStyleManager& iAlfTextStyleManager;
+
+ /**
+ * Array of previously created styles
+ */
+ RArray<TFsTextStyleData> iStyles;
+
+ };
+
+#endif // C_FSALFTEXTSTYLEMANAGER_H
\ No newline at end of file