1b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru/*
250294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho * (C) Copyright IBM Corp. 1998-2010 - All Rights Reserved
3b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru *
4b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru */
5b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru
6b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru#ifndef __GLYPHSUBSTITUTIONLOOKUPPROCESSOR_H
7b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru#define __GLYPHSUBSTITUTIONLOOKUPPROCESSOR_H
8b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru
9b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru/**
10b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * \file
11b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * \internal
12b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru */
13b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru
14b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru#include "LETypes.h"
15b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru#include "LEGlyphFilter.h"
16b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru#include "LEFontInstance.h"
17b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru#include "OpenTypeTables.h"
18b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru#include "Lookups.h"
1950294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho#include "ICUFeatures.h"
20b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru#include "GlyphDefinitionTables.h"
21b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru#include "GlyphSubstitutionTables.h"
22b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru#include "GlyphIterator.h"
23b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru#include "LookupProcessor.h"
24b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru
25b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste QueruU_NAMESPACE_BEGIN
26b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru
27b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queruclass GlyphSubstitutionLookupProcessor : public LookupProcessor
28b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru{
29b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Querupublic:
30b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru    GlyphSubstitutionLookupProcessor(const GlyphSubstitutionTableHeader *glyphSubstitutionTableHeader,
31b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru        LETag scriptTag,
32b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru        LETag languageTag,
33b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru        const LEGlyphFilter *filter,
34b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru        const FeatureMap *featureMap,
35b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru        le_int32 featureMapCount,
36b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru        le_bool featureOrder,
37b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru        LEErrorCode& success);
38b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru
39b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru    virtual ~GlyphSubstitutionLookupProcessor();
40b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru
41b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru    virtual le_uint32 applySubtable(const LookupSubtable *lookupSubtable, le_uint16 lookupType, GlyphIterator *glyphIterator,
42b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru        const LEFontInstance *fontInstance, LEErrorCode& success) const;
43b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru
44b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queruprotected:
45b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru    GlyphSubstitutionLookupProcessor();
46b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru
47b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queruprivate:
48b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru    const LEGlyphFilter *fFilter;
49b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru
50b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru    GlyphSubstitutionLookupProcessor(const GlyphSubstitutionLookupProcessor &other); // forbid copying of this class
51b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru    GlyphSubstitutionLookupProcessor &operator=(const GlyphSubstitutionLookupProcessor &other); // forbid copying of this class
52b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru};
53b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru
54b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste QueruU_NAMESPACE_END
55b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru#endif
56