1/*
2 * (C) Copyright IBM Corp. 1998-2010 - All Rights Reserved
3 *
4 */
5
6#ifndef __GLYPHPOSITIONINGLOOKUPPROCESSOR_H
7#define __GLYPHPOSITIONINGLOOKUPPROCESSOR_H
8
9/**
10 * \file
11 * \internal
12 */
13
14#include "LETypes.h"
15#include "LEFontInstance.h"
16#include "OpenTypeTables.h"
17#include "Lookups.h"
18#include "ICUFeatures.h"
19#include "GlyphDefinitionTables.h"
20#include "GlyphPositioningTables.h"
21#include "GlyphIterator.h"
22#include "LookupProcessor.h"
23
24U_NAMESPACE_BEGIN
25
26class GlyphPositioningLookupProcessor : public LookupProcessor
27{
28public:
29    GlyphPositioningLookupProcessor(const GlyphPositioningTableHeader *glyphPositioningTableHeader,
30        LETag scriptTag,
31        LETag languageTag,
32        const FeatureMap *featureMap,
33        le_int32 featureMapCount,
34        le_bool featureOrder,
35        LEErrorCode& success);
36
37    virtual ~GlyphPositioningLookupProcessor();
38
39    virtual le_uint32 applySubtable(const LookupSubtable *lookupSubtable, le_uint16 lookupType, GlyphIterator *glyphIterator,
40        const LEFontInstance *fontInstance, LEErrorCode& success) const;
41
42protected:
43    GlyphPositioningLookupProcessor();
44
45private:
46
47    GlyphPositioningLookupProcessor(const GlyphPositioningLookupProcessor &other); // forbid copying of this class
48    GlyphPositioningLookupProcessor &operator=(const GlyphPositioningLookupProcessor &other); // forbid copying of this class
49};
50
51U_NAMESPACE_END
52#endif
53