1 /* 2 * 3 * (C) Copyright IBM Corp. 1998-2004 - All Rights Reserved 4 * 5 */ 6 7 #ifndef __CHARSUBSTITUTIONFILTER_H 8 #define __CHARSUBSTITUTIONFILTER_H 9 10 #include "LETypes.h" 11 #include "LEGlyphFilter.h" 12 13 U_NAMESPACE_BEGIN 14 15 class LEFontInstance; 16 17 /** 18 * This filter is used by character-based GSUB processors. It 19 * accepts only those characters which the given font can display. 20 * 21 * @internal 22 */ 23 class CharSubstitutionFilter : public UMemory, public LEGlyphFilter 24 { 25 private: 26 /** 27 * Holds the font which is used to test the characters. 28 * 29 * @internal 30 */ 31 const LEFontInstance *fFontInstance; 32 33 /** 34 * The copy constructor. Not allowed! 35 * 36 * @internal 37 */ 38 CharSubstitutionFilter(const CharSubstitutionFilter &other); // forbid copying of this class 39 40 /** 41 * The replacement operator. Not allowed! 42 * 43 * @internal 44 */ 45 CharSubstitutionFilter &operator=(const CharSubstitutionFilter &other); // forbid copying of this class 46 47 public: 48 /** 49 * The constructor. 50 * 51 * @param fontInstance - the font to use to test the characters. 52 * 53 * @internal 54 */ 55 CharSubstitutionFilter(const LEFontInstance *fontInstance); 56 57 /** 58 * The destructor. 59 * 60 * @internal 61 */ 62 ~CharSubstitutionFilter(); 63 64 /** 65 * This method is used to test if a particular 66 * character can be displayed by the filter's 67 * font. 68 * 69 * @param glyph - the Unicode character code to be tested 70 * 71 * @return TRUE if the filter's font can display this character. 72 * 73 * @internal 74 */ 75 le_bool accept(LEGlyphID glyph) const; 76 }; 77 78 U_NAMESPACE_END 79 #endif 80 81 82