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