fontservices/textshaperplugin/IcuSource/layout/StateTableProcessor.h
changeset 0 1fb32624e06b
equal deleted inserted replaced
-1:000000000000 0:1fb32624e06b
       
     1 /*
       
     2  *
       
     3  * (C) Copyright IBM Corp. 1998-2004 - All Rights Reserved
       
     4  *
       
     5  */
       
     6 
       
     7 #ifndef __STATETABLEPROCESSOR_H
       
     8 #define __STATETABLEPROCESSOR_H
       
     9 
       
    10 /**
       
    11  * \file
       
    12  * \internal
       
    13  */
       
    14 
       
    15 #include "LETypes.h"
       
    16 #include "MorphTables.h"
       
    17 #include "MorphStateTables.h"
       
    18 #include "SubtableProcessor.h"
       
    19 
       
    20 U_NAMESPACE_BEGIN
       
    21 
       
    22 class LEGlyphStorage;
       
    23 
       
    24 class StateTableProcessor : public SubtableProcessor
       
    25 {
       
    26 public:
       
    27     void process(LEGlyphStorage &glyphStorage);
       
    28 
       
    29     virtual void beginStateTable() = 0;
       
    30 
       
    31     virtual ByteOffset processStateEntry(LEGlyphStorage &glyphStorage, le_int32 &currGlyph, EntryTableIndex index) = 0;
       
    32 
       
    33     virtual void endStateTable() = 0;
       
    34 
       
    35 protected:
       
    36     StateTableProcessor(const MorphSubtableHeader *morphSubtableHeader);
       
    37     virtual ~StateTableProcessor();
       
    38 
       
    39     StateTableProcessor();
       
    40 
       
    41     le_int16 stateSize;
       
    42     ByteOffset classTableOffset;
       
    43     ByteOffset stateArrayOffset;
       
    44     ByteOffset entryTableOffset;
       
    45 
       
    46     const ClassTable *classTable;
       
    47     TTGlyphID firstGlyph;
       
    48     TTGlyphID lastGlyph;
       
    49 
       
    50     const MorphStateTableHeader *stateTableHeader;
       
    51 
       
    52 private:
       
    53     StateTableProcessor(const StateTableProcessor &other); // forbid copying of this class
       
    54     StateTableProcessor &operator=(const StateTableProcessor &other); // forbid copying of this class
       
    55 };
       
    56 
       
    57 U_NAMESPACE_END
       
    58 #endif