~ubuntu-branches/ubuntu/quantal/icu/quantal

« back to all changes in this revision

Viewing changes to source/layout/GlyphIterator.h

  • Committer: Package Import Robot
  • Author(s): Yves Arrouye
  • Date: 2002-03-03 15:31:13 UTC
  • Revision ID: package-import@ubuntu.com-20020303153113-3ssceqlq45xbmbnc
Tags: upstream-2.0-2.1pre20020303
ImportĀ upstreamĀ versionĀ 2.0-2.1pre20020303

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*
 
2
 * %W% %E%
 
3
 *
 
4
 * (C) Copyright IBM Corp. 1998, 1999, 2000, 2001 - All Rights Reserved
 
5
 *
 
6
 */
 
7
 
 
8
#ifndef __GLYPHITERATOR_H
 
9
#define __GLYPHITERATOR_H
 
10
 
 
11
#include "LETypes.h"
 
12
#include "OpenTypeTables.h"
 
13
#include "GlyphDefinitionTables.h"
 
14
#include "GlyphPositionAdjustments.h"
 
15
 
 
16
U_NAMESPACE_BEGIN
 
17
 
 
18
class GlyphIterator
 
19
{
 
20
public:
 
21
    GlyphIterator(LEGlyphID *theGlyphs, GlyphPositionAdjustment *theGlyphPositionAdjustments, le_int32 theGlyphCount,
 
22
        le_bool rightToLeft, le_uint16 theLookupFlags, LETag theFeatureTag, const LETag *theGlyphTags[],
 
23
        const GlyphDefinitionTableHeader *theGlyphDefinitionTableHeader);
 
24
 
 
25
    GlyphIterator(GlyphIterator &that);
 
26
 
 
27
    GlyphIterator(GlyphIterator &that, le_uint16 newLookupFlags);
 
28
 
 
29
    ~GlyphIterator();
 
30
 
 
31
    le_bool next(le_uint32 delta = 1);
 
32
    le_bool prev(le_uint32 delta = 1);
 
33
    le_bool findFeatureTag();
 
34
 
 
35
    le_bool isRightToLeft() const;
 
36
    le_bool ignoresMarks() const;
 
37
 
 
38
    LEGlyphID getCurrGlyphID() const;
 
39
    le_int32  getCurrStreamPosition() const;
 
40
    void   getCurrGlyphPositionAdjustment(GlyphPositionAdjustment& adjustment) const;
 
41
 
 
42
    le_int32  getMarkComponent(le_int32 markPosition) const;
 
43
 
 
44
    void setCurrGlyphID(LEGlyphID glyphID);
 
45
    void setCurrStreamPosition(le_int32 position);
 
46
    void setCurrGlyphPositionAdjustment(const GlyphPositionAdjustment *adjustment);
 
47
    void adjustCurrGlyphPositionAdjustment(float xPlacmentAdjust, float yPlacementAdjust,
 
48
                                           float xAdvanceAdjust, float yAdvanceAdjust);
 
49
 
 
50
private:
 
51
    GlyphIterator();
 
52
    le_bool filterGlyph(le_uint32 index) const;
 
53
    le_bool hasFeatureTag() const;
 
54
    le_bool nextInternal(le_uint32 delta = 1);
 
55
    le_bool prevInternal(le_uint32 delta = 1);
 
56
 
 
57
    le_int32  direction;
 
58
    le_int32  position;
 
59
    le_int32  nextLimit;
 
60
    le_int32  prevLimit;
 
61
    LEGlyphID *glyphs;
 
62
    GlyphPositionAdjustment *glyphPositionAdjustments;
 
63
    le_uint16 lookupFlags;
 
64
    LETag    featureTag;
 
65
    const LETag **glyphTags;
 
66
    const GlyphClassDefinitionTable *glyphClassDefinitionTable;
 
67
    const MarkAttachClassDefinitionTable *markAttachClassDefinitionTable;
 
68
};
 
69
 
 
70
U_NAMESPACE_END
 
71
#endif