jdk/src/share/native/sun/font/layout/IndicReordering.h
changeset 3935 afcdb712a9c5
parent 2 90ce3da70b43
child 5506 202f599c92aa
equal deleted inserted replaced
3933:38e8ef00316e 3935:afcdb712a9c5
    30  */
    30  */
    31 
    31 
    32 #ifndef __INDICREORDERING_H
    32 #ifndef __INDICREORDERING_H
    33 #define __INDICREORDERING_H
    33 #define __INDICREORDERING_H
    34 
    34 
       
    35 /**
       
    36  * \file
       
    37  * \internal
       
    38  */
       
    39 
    35 #include "LETypes.h"
    40 #include "LETypes.h"
    36 #include "OpenTypeTables.h"
    41 #include "OpenTypeTables.h"
       
    42 
       
    43 U_NAMESPACE_BEGIN
    37 
    44 
    38 // Characters that get refered to by name...
    45 // Characters that get refered to by name...
    39 #define C_SIGN_ZWNJ           0x200C
    46 #define C_SIGN_ZWNJ           0x200C
    40 #define C_SIGN_ZWJ            0x200D
    47 #define C_SIGN_ZWJ            0x200D
    41 
    48 
   138     inline static le_bool hasBelowBaseForm(CharClass charClass);
   145     inline static le_bool hasBelowBaseForm(CharClass charClass);
   139 
   146 
   140     static const IndicClassTable *getScriptClassTable(le_int32 scriptCode);
   147     static const IndicClassTable *getScriptClassTable(le_int32 scriptCode);
   141 };
   148 };
   142 
   149 
   143 class IndicReordering {
   150 class IndicReordering /* not : public UObject because all methods are static */ {
   144 public:
   151 public:
   145     static le_int32 getWorstCaseExpansion(le_int32 scriptCode);
   152     static le_int32 getWorstCaseExpansion(le_int32 scriptCode);
   146 
   153 
   147     static le_int32 reorder(const LEUnicode *theChars, le_int32 charCount, le_int32 scriptCode,
   154     static le_int32 reorder(const LEUnicode *theChars, le_int32 charCount, le_int32 scriptCode,
   148         LEUnicode *outChars, LEGlyphStorage &glyphStorage,
   155         LEUnicode *outChars, LEGlyphStorage &glyphStorage,
   154 
   161 
   155 private:
   162 private:
   156     // do not instantiate
   163     // do not instantiate
   157     IndicReordering();
   164     IndicReordering();
   158 
   165 
   159     static le_int32 findSyllable(const IndicClassTable *classTable, const LEUnicode *chars,
   166     static le_int32 findSyllable(const IndicClassTable *classTable, const LEUnicode *chars, le_int32 prev, le_int32 charCount);
   160         le_int32 prev, le_int32 charCount);
       
   161 
   167 
   162 };
   168 };
   163 
   169 
   164 inline le_int32 IndicClassTable::getWorstCaseExpansion() const
   170 inline le_int32 IndicClassTable::getWorstCaseExpansion() const
   165 {
   171 {
   303 inline le_bool IndicClassTable::hasBelowBaseForm(LEUnicode ch) const
   309 inline le_bool IndicClassTable::hasBelowBaseForm(LEUnicode ch) const
   304 {
   310 {
   305     return hasBelowBaseForm(getCharClass(ch));
   311     return hasBelowBaseForm(getCharClass(ch));
   306 }
   312 }
   307 
   313 
       
   314 U_NAMESPACE_END
   308 #endif
   315 #endif