/** Copyright (c) 2002 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: Declaration of Notepad Libaray utilitiy functions.**/#ifndef NPDUTIL_H#define NPDUTIL_H// INCLUDES#include <e32std.h>// FORWARD DECLARATIONSclass CCoeEnv;class CPlainText;/*** Utitilties used in Notepad Library.* NotepadUtil has some static library functions of Notepad Library.* */class NotepadUtil { public: /** * Leave with KErrDiskFull if writing aBytesToWrite makes the * free disk space under the critical level. * * @param aCoeEnv environment (for resource reading and RFs). * @param aBtyesToWrite expected data size to write */ static void LeaveIfCriticalLevelL( CCoeEnv& aCoeEnv, TInt aBytesToWrite = 0 ); /** * Show the database corrupted information note defined in * "Low Memory and Error Handling". */ static void ShowCorruptedNoteL(CCoeEnv& aCoeEnv); /** * Check whether a text is empty. * * @param aText text to be tested. * @return ETrue if aText is judged as empty */ static TBool IsEmpty(const TDesC& aText); /** * Append aText to aBuf. * * Perl like semantics: * $x = aText; * if ( aShortenConsecutiveSpaces ) { $x =~ s/\s+/ /g; } * else { $x =~ s/\s/ /g; } * aBuf .= $x; * * If aText is longer than rest length of aBuf, some characters in * aText will be discarded. * * @param aBuf buffer. * @param text to be appended. * @param aRemoveHeadingSpaces Doesn't append heading spaces if ETrue. */ static void AppendLabel( TDes& aBuf, const TDesC& aText, const TBool aRemoveHeadingSpaces ); /** * Load contents of a text file. * Character encoding of the file is detected automatically. * * @param aCoeEnv environment (for resource reading and RFs). * @param aFileName file name to be loaded. * @param aGuessEncoding guess encoding if ETrue (ignore aEncoding). * @param aEncoding encoding of the File * @param aText CPlainText object. */ static void LoadFileL( CCoeEnv& aCoeEnv, const TDesC& aFileName, TBool aGuessEncoding, TUint aEncoding, CPlainText& aText); /** * Load contents of a text file. * Character encoding of the file is detected automatically. * * @param aCoeEnv environment (for resource reading and RFs). * @param aFile file handle. * @param aGuessEncoding guess encoding if ETrue (ignore aEncoding). * @param aEncoding encoding of the File * @param aText CPlainText object. */ static TBool LoadFileL( CCoeEnv& aCoeEnv, RFile& aFile, TBool aGuessEncoding, TUint aEncoding, CPlainText& aText); /** * Checks wether the descriptor contains SHIFT-JIS encoded text * * @param aText Text to be analyzed * @return ETrue if the text is encoded with SHIFT-JIS */ static bool IsShiftJisText(TDesC8& aText); /** * Checks wether the descriptor contains big endian unicode text * * @param aText Text to be analyzed * @return ETrue if the text is big endian unicode text */ static bool IsBigEndianUnicodeText(TDesC8& aText); /** * Checks wether the descriptor contains little endian unicode text * * @param aText Text to be analyzed * @return ETrue if the text is little endian unicode text */ static bool IsLittleEndianUnicodeText(TDesC8& aText); /** * Checks wether the descriptor contains UTF8 text * * @param aText Text to be analyzed * @return ETrue if the text is UTF8 text */ static bool IsUTF8Text(TDesC8& aText); /** */ static TUint GuessEncodingFromLanguage(); /** */ static TUint GetISO8859Variant(TLanguage aLanguage); private: /** * Checks wether the given two TUints contain SHIFT-JIS encoded * character. * * @param aFirst First byte of the encoded character * @param aSecond Second byte of the encoded character * @return ETrue if the character is encoded with SHIFT-JIS */ static bool IsShiftJisChar(const TUint& aFirst, const TUint& aSecond); };#endif// End of File