sl@0: /*
sl@0:  * %W% %W%
sl@0:  *
sl@0:  * (C) Copyright IBM Corp. 1998-2003 - All Rights Reserved
sl@0:  *
sl@0:  */
sl@0: 
sl@0: #ifndef __DEFAULTCHARMAPPER_H
sl@0: #define __DEFAULTCHARMAPPER_H
sl@0: 
sl@0: /**
sl@0:  * \file
sl@0:  * \internal
sl@0:  */
sl@0: 
sl@0: #include "LETypes.h"
sl@0: #include "LEFontInstance.h"
sl@0: 
sl@0: U_NAMESPACE_BEGIN
sl@0: 
sl@0: /**
sl@0:  * This class is an instance of LECharMapper which
sl@0:  * implements control character filtering and bidi
sl@0:  * mirroring.
sl@0:  *
sl@0:  * @see LECharMapper
sl@0:  */
sl@0: class DefaultCharMapper : public UMemory, public LECharMapper
sl@0: {
sl@0: private:
sl@0:     le_bool fFilterControls;
sl@0:     le_bool fMirror;
sl@0: 
sl@0:     static const LEUnicode32 controlChars[];
sl@0: 
sl@0:     static const le_int32 controlCharsCount;
sl@0: 
sl@0:     static const LEUnicode32 mirroredChars[];
sl@0: 
sl@0:     static const le_int32 mirroredCharsCount;
sl@0: 
sl@0: public:
sl@0:     DefaultCharMapper(le_bool filterControls, le_bool mirror)
sl@0:         : fFilterControls(filterControls), fMirror(mirror)
sl@0:     {
sl@0:         // nothing
sl@0:     };
sl@0: 
sl@0:     ~DefaultCharMapper()
sl@0:     {
sl@0:         // nada
sl@0:     };
sl@0: 
sl@0:     LEUnicode32 mapChar(LEUnicode32 ch) const;
sl@0: };
sl@0: 
sl@0: U_NAMESPACE_END
sl@0: #endif