--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/phonebookui/Phonebook2/inc/Pbk2PresentationUtils.h Wed Sep 01 12:29:52 2010 +0100
@@ -0,0 +1,150 @@
+/*
+* Copyright (c) 2005-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: Phonebook 2 presentation utilities.
+*
+*/
+
+
+#ifndef PBK2PRESENTATIONUTILS_H
+#define PBK2PRESENTATIONUTILS_H
+
+#include <e32std.h>
+
+class CFbsBitmap;
+
+/**
+ * Util class with static text formatting functions
+ */
+class Pbk2PresentationUtils
+ {
+ public: // Interface
+
+ /**
+ * Appends given text to given descriptor. Ignores all leading
+ * and trailing spaces in the given text and converts consencutive
+ * space characters to a single space character.
+ *
+ * @precond aDest.MaxLength()-aDest.Length() >= TrimAllLength(aText)
+ * @postcond aDest.Length()-old(aDest.Length()) == TrimAllLength(aText)
+ * @param aText Text to append as a trimmed version.
+ * @param aDest Buffer where thed trimmed text is appended.
+ * Must have enough room for the copied text.
+ * @return Number of characters appended.
+ */
+ static TInt TrimAllAppend(
+ const TDesC& aText,
+ TDes& aDest );
+
+ /**
+ * Appends given text to given descriptor. Ignores all trailing
+ * spaces in the given text and converts consencutive space
+ * characters to a single space character. Leading spaces remain
+ * unaffected.
+ *
+ * @precond aDest.MaxLength()-aDest.Length() >= TrimRightLength(aText)
+ * @postcond aDest.Length()-old(aDest.Length())==TrimRightLength(aText)
+ * @param aText Text to append as a trimmed version.
+ * @param aDest Buffer where the trimmed text is appended.
+ * Must have enough room for the copied text.
+ * @return Number of characters appended.
+ */
+ IMPORT_C static TInt TrimRightAppend(
+ const TDesC& aText,
+ TDes& aDest );
+
+ /**
+ * Appends a descriptor to another and replaces characters while
+ * appending.
+ *
+ * @precond (aDest.MaxLength()-aDest.Length()) >= aSrc.Length()
+ * @precond aCharsToReplace.Length() == aReplaceChars.Length()
+ * @param aDest Destination descriptor.
+ * @param aSrc Source descriptor.
+ * @param aCharsToReplace Characters to replace.
+ * @param aReplaceChars Replace characters. The replace position
+ * maps to the position in aCharsToReplace.
+ * @return Number of characters replaced.
+ */
+ IMPORT_C static TInt AppendAndReplaceChars(
+ TDes& aDest,
+ const TDesC& aSrc,
+ const TDesC& aCharsToReplace,
+ const TDesC& aReplaceChars );
+
+ /**
+ * Replaces all non-graphic characters (!TChar::IsGraph()) in
+ * a string with the specified character.
+ *
+ * @param aText The string where to replace
+ * non-graphics characters.
+ * @param aChar The character used to replace non-graphic
+ * characters.
+ */
+ IMPORT_C static void ReplaceNonGraphicCharacters(
+ TDes& aText,
+ TText aChar );
+
+ /**
+ * Replaces all CR, LF or CRLF characters with unicode Paragraph
+ * Separator (0x2029) character that for example Avkon controls
+ * understand. Copies all other text as-is. Copies only as many
+ * characters from the beginning of aText as aBuffer has space for.
+ *
+ * @param aBuffer Destination buffer where aText is appended with
+ * newlines translated to Paragraph Separators.
+ * @param aText Source text to be translated.
+ */
+ IMPORT_C static void AppendWithNewlineTranslationL(
+ TDes& aBuffer,
+ const TDesC& aText );
+
+ /**
+ * Solves the correct language specific resource filename.
+ * With all resource files the same pbk2presentation.rsg can be used.
+ *
+ * @return A reference to resource file
+ */
+ IMPORT_C static const TDesC& PresentationResourceFile();
+
+ private: // Disabled functions
+ Pbk2PresentationUtils();
+ };
+
+class Pbk2PresentationImageUtils
+ {
+public:
+ enum TCroppingMode
+ {
+ /// Image is cropped to square, target size is not used
+ ECropping = 0x0,
+ /**
+ * Image is cropped to square and optimized to target size.
+ * Cropped bitmap minimum width/height is aTargetSize width/height.
+ */
+ EOptimizedCropping
+ };
+
+ IMPORT_C static void CropImageL(
+ CFbsBitmap& aBitmap,
+ TCroppingMode aCroppingMode,
+ const TSize& aTargetSize );
+
+private: // Disabled functions
+ Pbk2PresentationImageUtils();
+ };
+
+
+#endif // PBK2PRESENTATIONUTILS_H
+
+// End of File