aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorarthurhsu <arthurhsu@google.com>2011-07-08 23:09:32 +0000
committerarthurhsu <arthurhsu@google.com>2011-07-08 23:09:32 +0000
commit007bac39b5a613b17384f72d96457ab91638bab6 (patch)
tree13a65c05eb6dd6316c974dd06806a096146d5b3a
parent89fd9a230d44fef8b413f82bd9b256431e8e70df (diff)
downloadsfntly-007bac39b5a613b17384f72d96457ab91638bab6.tar.gz
Update static const ints to enums so that these enums can be used in
switch-case. There are two exceptions: 1. if original Java code uses static const int, we keep it that way. 2. C++ compilers may not support 64-bit enum so we need to define them as static const uint64_t
-rw-r--r--cpp/src/sfntly/cmap_table.cc86
-rw-r--r--cpp/src/sfntly/cmap_table.h236
-rw-r--r--cpp/src/sfntly/data/font_data.cc17
-rw-r--r--cpp/src/sfntly/data/font_data.h34
-rw-r--r--cpp/src/sfntly/font.cc76
-rw-r--r--cpp/src/sfntly/font.h146
-rw-r--r--cpp/src/sfntly/font_factory.cc8
-rw-r--r--cpp/src/sfntly/font_factory.h24
-rw-r--r--cpp/src/sfntly/font_header_table.cc30
-rw-r--r--cpp/src/sfntly/font_header_table.h54
-rw-r--r--cpp/src/sfntly/glyph_table.cc15
-rw-r--r--cpp/src/sfntly/glyph_table.h48
-rw-r--r--cpp/src/sfntly/horizontal_header_table.cc17
-rw-r--r--cpp/src/sfntly/horizontal_header_table.h28
-rw-r--r--cpp/src/sfntly/horizontal_metrics_table.cc9
-rw-r--r--cpp/src/sfntly/horizontal_metrics_table.h16
-rw-r--r--cpp/src/sfntly/maximum_profile_table.cc19
-rw-r--r--cpp/src/sfntly/maximum_profile_table.h36
-rw-r--r--cpp/src/sfntly/name_table.cc372
-rw-r--r--cpp/src/sfntly/name_table.h750
-rw-r--r--cpp/src/sfntly/os2_table.cc92
-rw-r--r--cpp/src/sfntly/os2_table.h188
22 files changed, 809 insertions, 1492 deletions
diff --git a/cpp/src/sfntly/cmap_table.cc b/cpp/src/sfntly/cmap_table.cc
index 79b083a..e73b657 100644
--- a/cpp/src/sfntly/cmap_table.cc
+++ b/cpp/src/sfntly/cmap_table.cc
@@ -23,93 +23,7 @@
namespace sfntly {
-/******************************************************************************
- * Constants
- ******************************************************************************/
const int32_t CMapTable::NOTDEF = 0;
-const int32_t CMapTable::Offset::kVersion = 0;
-const int32_t CMapTable::Offset::kNumTables = 2;
-const int32_t CMapTable::Offset::kEncodingRecordStart = 4;
-const int32_t CMapTable::Offset::kEncodingRecordPlatformId = 0;
-const int32_t CMapTable::Offset::kEncodingRecordEncodingId = 2;
-const int32_t CMapTable::Offset::kEncodingRecordOffset = 4;
-const int32_t CMapTable::Offset::kEncodingRecordSize = 8;
-const int32_t CMapTable::Offset::kFormat = 0;
-const int32_t CMapTable::Offset::kFormat0Format = 0;
-const int32_t CMapTable::Offset::kFormat0Length = 2;
-const int32_t CMapTable::Offset::kFormat0Language = 4;
-const int32_t CMapTable::Offset::kFormat0GlyphIdArray = 6;
-const int32_t CMapTable::Offset::kFormat2Format = 0;
-const int32_t CMapTable::Offset::kFormat2Length = 2;
-const int32_t CMapTable::Offset::kFormat2Language = 4;
-const int32_t CMapTable::Offset::kFormat2SubHeaderKeys = 6;
-const int32_t CMapTable::Offset::kFormat2SubHeaders = 518;
-const int32_t CMapTable::Offset::kFormat2SubHeader_firstCode = 0;
-const int32_t CMapTable::Offset::kFormat2SubHeader_entryCount = 2;
-const int32_t CMapTable::Offset::kFormat2SubHeader_idDelta = 4;
-const int32_t CMapTable::Offset::kFormat2SubHeader_idRangeOffset = 6;
-const int32_t CMapTable::Offset::kFormat2SubHeader_structLength = 8;
-const int32_t CMapTable::Offset::kFormat4Format = 0;
-const int32_t CMapTable::Offset::kFormat4Length = 2;
-const int32_t CMapTable::Offset::kFormat4Language = 4;
-const int32_t CMapTable::Offset::kFormat4SegCountX2 = 6;
-const int32_t CMapTable::Offset::kFormat4SearchRange = 8;
-const int32_t CMapTable::Offset::kFormat4EntrySelector = 10;
-const int32_t CMapTable::Offset::kFormat4RangeShift = 12;
-const int32_t CMapTable::Offset::kFormat4EndCount = 14;
-const int32_t CMapTable::Offset::kFormat6Format = 0;
-const int32_t CMapTable::Offset::kFormat6Length = 2;
-const int32_t CMapTable::Offset::kFormat6Language = 4;
-const int32_t CMapTable::Offset::kFormat6FirstCode = 6;
-const int32_t CMapTable::Offset::kFormat6EntryCount = 8;
-const int32_t CMapTable::Offset::kFormat6GlyphIdArray = 10;
-const int32_t CMapTable::Offset::kFormat8Format = 0;
-const int32_t CMapTable::Offset::kFormat8Length = 4;
-const int32_t CMapTable::Offset::kFormat8Language = 8;
-const int32_t CMapTable::Offset::kFormat8Is32 = 12;
-const int32_t CMapTable::Offset::kFormat8nGroups204 = 8204;
-const int32_t CMapTable::Offset::kFormat8Groups208 = 8208;
-const int32_t CMapTable::Offset::kFormat8Group_startCharCode = 0;
-const int32_t CMapTable::Offset::kFormat8Group_endCharCode = 4;
-const int32_t CMapTable::Offset::kFormat8Group_startGlyphId = 8;
-const int32_t CMapTable::Offset::kFormat8Group_structLength = 12;
-const int32_t CMapTable::Offset::kFormat10Format = 0;
-const int32_t CMapTable::Offset::kFormat10Length = 4;
-const int32_t CMapTable::Offset::kFormat10Language = 8;
-const int32_t CMapTable::Offset::kFormat10StartCharCode = 12;
-const int32_t CMapTable::Offset::kFormat10NumChars = 16;
-const int32_t CMapTable::Offset::kFormat10Glyphs0 = 20;
-const int32_t CMapTable::Offset::kFormat12Format = 0;
-const int32_t CMapTable::Offset::kFormat12Length = 4;
-const int32_t CMapTable::Offset::kFormat12Language = 8;
-const int32_t CMapTable::Offset::kFormat12nGroups = 12;
-const int32_t CMapTable::Offset::kFormat12Groups = 16;
-const int32_t CMapTable::Offset::kFormat12Groups_structLength = 12;
-const int32_t CMapTable::Offset::kFormat12_startCharCode = 0;
-const int32_t CMapTable::Offset::kFormat12_endCharCode = 4;
-const int32_t CMapTable::Offset::kFormat12_startGlyphId = 8;
-const int32_t CMapTable::Offset::kFormat13Format = 0;
-const int32_t CMapTable::Offset::kFormat13Length = 4;
-const int32_t CMapTable::Offset::kFormat13Language = 8;
-const int32_t CMapTable::Offset::kFormat13nGroups = 12;
-const int32_t CMapTable::Offset::kFormat13Groups = 16;
-const int32_t CMapTable::Offset::kFormat13Groups_structLength = 12;
-const int32_t CMapTable::Offset::kFormat13_startCharCode = 0;
-const int32_t CMapTable::Offset::kFormat13_endCharCode = 4;
-const int32_t CMapTable::Offset::kFormat13_glyphId = 8;
-const int32_t CMapTable::Offset::kFormat14Format = 0;
-const int32_t CMapTable::Offset::kFormat14Length = 2;
-const int32_t CMapTable::Offset::kLast = -1;
-
-const int32_t CMapTable::CMapFormat::kFormat0 = 0;
-const int32_t CMapTable::CMapFormat::kFormat2 = 2;
-const int32_t CMapTable::CMapFormat::kFormat4 = 4;
-const int32_t CMapTable::CMapFormat::kFormat6 = 6;
-const int32_t CMapTable::CMapFormat::kFormat8 = 8;
-const int32_t CMapTable::CMapFormat::kFormat10 = 10;
-const int32_t CMapTable::CMapFormat::kFormat12 = 12;
-const int32_t CMapTable::CMapFormat::kFormat13 = 13;
-const int32_t CMapTable::CMapFormat::kFormat14 = 14;
/******************************************************************************
* CMapTable class
diff --git a/cpp/src/sfntly/cmap_table.h b/cpp/src/sfntly/cmap_table.h
index 9e9aa87..c13318e 100644
--- a/cpp/src/sfntly/cmap_table.h
+++ b/cpp/src/sfntly/cmap_table.h
@@ -27,127 +27,131 @@
namespace sfntly {
+// CMap subtable formats
+struct CMapFormat {
+ enum {
+ kFormat0 = 0,
+ kFormat2 = 2,
+ kFormat4 = 4,
+ kFormat6 = 6,
+ kFormat8 = 8,
+ kFormat10 = 10,
+ kFormat12 = 12,
+ kFormat13 = 13,
+ kFormat14 = 14
+ };
+};
+
// A CMap table
class CMapTable : public Table, public RefCounted<CMapTable> {
private:
static const int32_t NOTDEF;
struct Offset {
- static const int32_t kVersion;
- static const int32_t kNumTables;
- static const int32_t kEncodingRecordStart;
-
- // offsets relative to the encoding record
- static const int32_t kEncodingRecordPlatformId;
- static const int32_t kEncodingRecordEncodingId;
- static const int32_t kEncodingRecordOffset;
- static const int32_t kEncodingRecordSize;
-
- static const int32_t kFormat;
-
- // Format 0: Byte encoding table
- static const int32_t kFormat0Format;
- static const int32_t kFormat0Length;
- static const int32_t kFormat0Language;
- static const int32_t kFormat0GlyphIdArray;
-
- // Format 2: High-byte mapping through table
- static const int32_t kFormat2Format;
- static const int32_t kFormat2Length;
- static const int32_t kFormat2Language;
- static const int32_t kFormat2SubHeaderKeys;
- static const int32_t kFormat2SubHeaders;
- // offset relative to the subHeader structure
- static const int32_t kFormat2SubHeader_firstCode;
- static const int32_t kFormat2SubHeader_entryCount;
- static const int32_t kFormat2SubHeader_idDelta;
- static const int32_t kFormat2SubHeader_idRangeOffset;
- static const int32_t kFormat2SubHeader_structLength;
-
- // Format 4: Segment mapping to delta values
- static const int32_t kFormat4Format;
- static const int32_t kFormat4Length;
- static const int32_t kFormat4Language;
- static const int32_t kFormat4SegCountX2;
- static const int32_t kFormat4SearchRange;
- static const int32_t kFormat4EntrySelector;
- static const int32_t kFormat4RangeShift;
- static const int32_t kFormat4EndCount;
-
- // format 6: Trimmed table mapping
- static const int32_t kFormat6Format;
- static const int32_t kFormat6Length;
- static const int32_t kFormat6Language;
- static const int32_t kFormat6FirstCode;
- static const int32_t kFormat6EntryCount;
- static const int32_t kFormat6GlyphIdArray;
-
- // Format 8: mixed 16-bit and 32-bit coverage
- static const int32_t kFormat8Format;
- static const int32_t kFormat8Length;
- static const int32_t kFormat8Language;
- static const int32_t kFormat8Is32;
- static const int32_t kFormat8nGroups204;
- static const int32_t kFormat8Groups208;
- // ofset relative to the group structure
- static const int32_t kFormat8Group_startCharCode;
- static const int32_t kFormat8Group_endCharCode;
- static const int32_t kFormat8Group_startGlyphId;
- static const int32_t kFormat8Group_structLength;
-
- // Format 10: Trimmed array
- static const int32_t kFormat10Format;
- static const int32_t kFormat10Length;
- static const int32_t kFormat10Language;
- static const int32_t kFormat10StartCharCode;
- static const int32_t kFormat10NumChars;
- static const int32_t kFormat10Glyphs0;
-
- // Format 12: Segmented coverage
- static const int32_t kFormat12Format;
- static const int32_t kFormat12Length;
- static const int32_t kFormat12Language;
- static const int32_t kFormat12nGroups;
- static const int32_t kFormat12Groups;
- static const int32_t kFormat12Groups_structLength;
- // offsets within the group structure
- static const int32_t kFormat12_startCharCode;
- static const int32_t kFormat12_endCharCode;
- static const int32_t kFormat12_startGlyphId;
-
- // Format 13: Last Resort Font
- static const int32_t kFormat13Format;
- static const int32_t kFormat13Length;
- static const int32_t kFormat13Language;
- static const int32_t kFormat13nGroups;
- static const int32_t kFormat13Groups;
- static const int32_t kFormat13Groups_structLength;
- // offsets within the group structure
- static const int32_t kFormat13_startCharCode;
- static const int32_t kFormat13_endCharCode;
- static const int32_t kFormat13_glyphId;
-
- // Format 14: Unicode Variation Sequences
- static const int32_t kFormat14Format;
- static const int32_t kFormat14Length;
-
- // TODO(stuartg): finish tables
- // Default UVS Table
-
- // Non-default UVS Table
- static const int32_t kLast;
- };
-
- // CMap subtable formats
- struct CMapFormat {
- static const int32_t kFormat0;
- static const int32_t kFormat2;
- static const int32_t kFormat4;
- static const int32_t kFormat6;
- static const int32_t kFormat8;
- static const int32_t kFormat10;
- static const int32_t kFormat12;
- static const int32_t kFormat13;
- static const int32_t kFormat14;
+ enum {
+ kVersion = 0,
+ kNumTables = 2,
+ kEncodingRecordStart = 4,
+
+ // offsets relative to the encoding record
+ kEncodingRecordPlatformId = 0,
+ kEncodingRecordEncodingId = 2,
+ kEncodingRecordOffset = 4,
+ kEncodingRecordSize = 8,
+
+ kFormat = 0,
+
+ // Format 0: Byte encoding table
+ kFormat0Format = 0,
+ kFormat0Length = 2,
+ kFormat0Language = 4,
+ kFormat0GlyphIdArray = 6,
+
+ // Format 2: High-byte mapping through table
+ kFormat2Format = 0,
+ kFormat2Length = 2,
+ kFormat2Language = 4,
+ kFormat2SubHeaderKeys = 6,
+ kFormat2SubHeaders = 518,
+ // offset relative to the subHeader structure
+ kFormat2SubHeader_firstCode = 0,
+ kFormat2SubHeader_entryCount = 2,
+ kFormat2SubHeader_idDelta = 4,
+ kFormat2SubHeader_idRangeOffset = 6,
+ kFormat2SubHeader_structLength = 8,
+
+ // Format 4: Segment mapping to delta values
+ kFormat4Format = 0,
+ kFormat4Length = 2,
+ kFormat4Language = 4,
+ kFormat4SegCountX2 = 6,
+ kFormat4SearchRange = 8,
+ kFormat4EntrySelector = 10,
+ kFormat4RangeShift = 12,
+ kFormat4EndCount = 14,
+
+ // format 6: Trimmed table mapping
+ kFormat6Format = 0,
+ kFormat6Length = 2,
+ kFormat6Language = 4,
+ kFormat6FirstCode = 6,
+ kFormat6EntryCount = 8,
+ kFormat6GlyphIdArray = 10,
+
+ // Format 8: mixed 16-bit and 32-bit coverage
+ kFormat8Format = 0,
+ kFormat8Length = 4,
+ kFormat8Language = 8,
+ kFormat8Is32 = 12,
+ kFormat8nGroups204 = 8204,
+ kFormat8Groups208 = 8208,
+ // offset relative to the group structure
+ kFormat8Group_startCharCode = 0,
+ kFormat8Group_endCharCode = 4,
+ kFormat8Group_startGlyphId = 8,
+ kFormat8Group_structLength = 12,
+
+ // Format 10: Trimmed array
+ kFormat10Format = 0,
+ kFormat10Length = 4,
+ kFormat10Language = 8,
+ kFormat10StartCharCode = 12,
+ kFormat10NumChars = 16,
+ kFormat10Glyphs0 = 20,
+
+ // Format 12: Segmented coverage
+ kFormat12Format = 0,
+ kFormat12Length = 4,
+ kFormat12Language = 8,
+ kFormat12nGroups = 12,
+ kFormat12Groups = 16,
+ kFormat12Groups_structLength = 12,
+ // offsets within the group structure
+ kFormat12_startCharCode = 0,
+ kFormat12_endCharCode = 4,
+ kFormat12_startGlyphId = 8,
+
+ // Format 13: Last Resort Font
+ kFormat13Format = 0,
+ kFormat13Length = 4,
+ kFormat13Language = 8,
+ kFormat13nGroups = 12,
+ kFormat13Groups = 16,
+ kFormat13Groups_structLength = 12,
+ // offsets within the group structure
+ kFormat13_startCharCode = 0,
+ kFormat13_endCharCode = 4,
+ kFormat13_glyphId = 8,
+
+ // Format 14: Unicode Variation Sequences
+ kFormat14Format = 0,
+ kFormat14Length = 2,
+
+ // TODO(stuartg): finish tables
+ // Default UVS Table
+
+ // Non-default UVS Table
+ kLast = -1
+ };
};
public:
diff --git a/cpp/src/sfntly/data/font_data.cc b/cpp/src/sfntly/data/font_data.cc
index 8cda562..fdba5f8 100644
--- a/cpp/src/sfntly/data/font_data.cc
+++ b/cpp/src/sfntly/data/font_data.cc
@@ -22,23 +22,6 @@
namespace sfntly {
-const int32_t DataSize::kBYTE = 1;
-const int32_t DataSize::kCHAR = 1;
-const int32_t DataSize::kUSHORT = 2;
-const int32_t DataSize::kSHORT = 2;
-const int32_t DataSize::kUINT24 = 3;
-const int32_t DataSize::kULONG = 4;
-const int32_t DataSize::kLONG = 4;
-const int32_t DataSize::kFixed = 4;
-const int32_t DataSize::kFUNIT = 4;
-const int32_t DataSize::kFWORD = 2;
-const int32_t DataSize::kUFWORD = 2;
-const int32_t DataSize::kF2DOT14 = 2;
-const int32_t DataSize::kLONGDATETIME = 8;
-const int32_t DataSize::kTag = 4;
-const int32_t DataSize::kGlyphID = 2;
-const int32_t DataSize::kOffset = 2;
-
FontData::~FontData() {}
void FontData::init(ByteArray* ba) {
diff --git a/cpp/src/sfntly/data/font_data.h b/cpp/src/sfntly/data/font_data.h
index 5766cb8..6bcdb73 100644
--- a/cpp/src/sfntly/data/font_data.h
+++ b/cpp/src/sfntly/data/font_data.h
@@ -25,22 +25,24 @@
namespace sfntly {
struct DataSize {
- static const int32_t kBYTE;
- static const int32_t kCHAR;
- static const int32_t kUSHORT;
- static const int32_t kSHORT;
- static const int32_t kUINT24;
- static const int32_t kULONG;
- static const int32_t kLONG;
- static const int32_t kFixed;
- static const int32_t kFUNIT;
- static const int32_t kFWORD;
- static const int32_t kUFWORD;
- static const int32_t kF2DOT14;
- static const int32_t kLONGDATETIME;
- static const int32_t kTag;
- static const int32_t kGlyphID;
- static const int32_t kOffset;
+ enum {
+ kBYTE = 1,
+ kCHAR = 1,
+ kUSHORT = 2,
+ kSHORT = 2,
+ kUINT24 = 3,
+ kULONG = 4,
+ kLONG = 4,
+ kFixed = 4,
+ kFUNIT = 4,
+ kFWORD = 2,
+ kUFWORD = 2,
+ kF2DOT14 = 2,
+ kLONGDATETIME = 8,
+ kTag = 4,
+ kGlyphID = 2,
+ kOffset = 2
+ };
};
class FontData : virtual public RefCount {
diff --git a/cpp/src/sfntly/font.cc b/cpp/src/sfntly/font.cc
index 46dc48c..1532f49 100644
--- a/cpp/src/sfntly/font.cc
+++ b/cpp/src/sfntly/font.cc
@@ -34,84 +34,8 @@
namespace sfntly {
-/******************************************************************************
- * constant definitions
- ******************************************************************************/
-const int32_t PlatformId::kUnknown = -1;
-const int32_t PlatformId::kUnicode = 0;
-const int32_t PlatformId::kMacintosh = 1;
-const int32_t PlatformId::kISO = 2;
-const int32_t PlatformId::kWindows = 3;
-const int32_t PlatformId::kCustom = 4;
-
-const int32_t UnicodeEncodingId::kUnknown = -1;
-const int32_t UnicodeEncodingId::kUnicode1_0 = 0;
-const int32_t UnicodeEncodingId::kUnicode1_1 = 1;
-const int32_t UnicodeEncodingId::kISO10646 = 2;
-const int32_t UnicodeEncodingId::kUnicode2_0_BMP = 3;
-const int32_t UnicodeEncodingId::kUnicode2_0 = 4;
-const int32_t UnicodeEncodingId::kUnicodeVariationSequences = 5;
-
-const int32_t WindowsEncodingId::kUnknown = 0xffffffff;
-const int32_t WindowsEncodingId::kSymbol = 0;
-const int32_t WindowsEncodingId::kUnicodeUCS2 = 1;
-const int32_t WindowsEncodingId::kShiftJIS = 2;
-const int32_t WindowsEncodingId::kPRC = 3;
-const int32_t WindowsEncodingId::kBig5 = 4;
-const int32_t WindowsEncodingId::kWansung = 5;
-const int32_t WindowsEncodingId::kJohab = 6;
-const int32_t WindowsEncodingId::kUnicodeUCS4 = 10;
-
-const int32_t MacintoshEncodingId::kUnknown = -1;
-const int32_t MacintoshEncodingId::kRoman = 0;
-const int32_t MacintoshEncodingId::kJapanese = 1;
-const int32_t MacintoshEncodingId::kChineseTraditional = 2;
-const int32_t MacintoshEncodingId::kKorean = 3;
-const int32_t MacintoshEncodingId::kArabic = 4;
-const int32_t MacintoshEncodingId::kHebrew = 5;
-const int32_t MacintoshEncodingId::kGreek = 6;
-const int32_t MacintoshEncodingId::kRussian = 7;
-const int32_t MacintoshEncodingId::kRSymbol = 8;
-const int32_t MacintoshEncodingId::kDevanagari = 9;
-const int32_t MacintoshEncodingId::kGurmukhi = 10;
-const int32_t MacintoshEncodingId::kGujarati = 11;
-const int32_t MacintoshEncodingId::kOriya = 12;
-const int32_t MacintoshEncodingId::kBengali = 13;
-const int32_t MacintoshEncodingId::kTamil = 14;
-const int32_t MacintoshEncodingId::kTelugu = 15;
-const int32_t MacintoshEncodingId::kKannada = 16;
-const int32_t MacintoshEncodingId::kMalayalam = 17;
-const int32_t MacintoshEncodingId::kSinhalese = 18;
-const int32_t MacintoshEncodingId::kBurmese = 19;
-const int32_t MacintoshEncodingId::kKhmer = 20;
-const int32_t MacintoshEncodingId::kThai = 21;
-const int32_t MacintoshEncodingId::kLaotian = 22;
-const int32_t MacintoshEncodingId::kGeorgian = 23;
-const int32_t MacintoshEncodingId::kArmenian = 24;
-const int32_t MacintoshEncodingId::kChineseSimplified = 25;
-const int32_t MacintoshEncodingId::kTibetan = 26;
-const int32_t MacintoshEncodingId::kMongolian = 27;
-const int32_t MacintoshEncodingId::kGeez = 28;
-const int32_t MacintoshEncodingId::kSlavic = 29;
-const int32_t MacintoshEncodingId::kVietnamese = 30;
-const int32_t MacintoshEncodingId::kSindhi = 31;
-const int32_t MacintoshEncodingId::kUninterpreted = 32;
-
const int32_t SFNTVERSION_1 = Fixed1616::fixed(1, 0);
-const int32_t Font::Offset::kSfntVersion = 0;
-const int32_t Font::Offset::kNumTables = 4;
-const int32_t Font::Offset::kSearchRange = 6;
-const int32_t Font::Offset::kEntrySelector = 8;
-const int32_t Font::Offset::kRangeShift = 10;
-const int32_t Font::Offset::kTableRecordBegin = 12;
-const int32_t Font::Offset::kSfntHeaderSize = 12;
-const int32_t Font::Offset::kTableTag = 0;
-const int32_t Font::Offset::kTableCheckSum = 4;
-const int32_t Font::Offset::kTableOffset = 8;
-const int32_t Font::Offset::kTableLength = 12;
-const int32_t Font::Offset::kTableRecordSize = 16;
-
/******************************************************************************
* Font class
******************************************************************************/
diff --git a/cpp/src/sfntly/font.h b/cpp/src/sfntly/font.h
index 4b1dc1b..cbd9607 100644
--- a/cpp/src/sfntly/font.h
+++ b/cpp/src/sfntly/font.h
@@ -36,78 +36,86 @@ namespace sfntly {
// Platform ids. These are used in a number of places within the font whenever
// the platform needs to be specified.
struct PlatformId {
- static const int32_t kUnknown;
- static const int32_t kUnicode;
- static const int32_t kMacintosh;
- static const int32_t kISO;
- static const int32_t kWindows;
- static const int32_t kCustom;
+ enum {
+ kUnknown = -1,
+ kUnicode = 0,
+ kMacintosh = 1,
+ kISO = 2,
+ kWindows = 3,
+ kCustom = 4
+ };
};
// Unicode encoding ids. These are used in a number of places within the font
// whenever character encodings need to be specified.
struct UnicodeEncodingId {
- static const int32_t kUnknown;
- static const int32_t kUnicode1_0;
- static const int32_t kUnicode1_1;
- static const int32_t kISO10646;
- static const int32_t kUnicode2_0_BMP;
- static const int32_t kUnicode2_0;
- static const int32_t kUnicodeVariationSequences;
+ enum {
+ kUnknown = -1,
+ kUnicode1_0 = 0,
+ kUnicode1_1 = 1,
+ kISO10646 = 2,
+ kUnicode2_0_BMP = 3,
+ kUnicode2_0 = 4,
+ kUnicodeVariationSequences = 5
+ };
};
// Windows encoding ids. These are used in a number of places within the font
// whenever character encodings need to be specified.
struct WindowsEncodingId {
- static const int32_t kUnknown;
- static const int32_t kSymbol;
- static const int32_t kUnicodeUCS2;
- static const int32_t kShiftJIS;
- static const int32_t kPRC;
- static const int32_t kBig5;
- static const int32_t kWansung;
- static const int32_t kJohab;
- static const int32_t kUnicodeUCS4;
+ enum {
+ kUnknown = 0xffffffff,
+ kSymbol = 0,
+ kUnicodeUCS2 = 1,
+ kShiftJIS = 2,
+ kPRC = 3,
+ kBig5 = 4,
+ kWansung = 5,
+ kJohab = 6,
+ kUnicodeUCS4 = 10
+ };
};
// Macintosh encoding ids. These are used in a number of places within the
// font whenever character encodings need to be specified.
struct MacintoshEncodingId {
// Macintosh Platform Encodings
- static const int32_t kUnknown;
- static const int32_t kRoman;
- static const int32_t kJapanese;
- static const int32_t kChineseTraditional;
- static const int32_t kKorean;
- static const int32_t kArabic;
- static const int32_t kHebrew;
- static const int32_t kGreek;
- static const int32_t kRussian;
- static const int32_t kRSymbol;
- static const int32_t kDevanagari;
- static const int32_t kGurmukhi;
- static const int32_t kGujarati;
- static const int32_t kOriya;
- static const int32_t kBengali;
- static const int32_t kTamil;
- static const int32_t kTelugu;
- static const int32_t kKannada;
- static const int32_t kMalayalam;
- static const int32_t kSinhalese;
- static const int32_t kBurmese;
- static const int32_t kKhmer;
- static const int32_t kThai;
- static const int32_t kLaotian;
- static const int32_t kGeorgian;
- static const int32_t kArmenian;
- static const int32_t kChineseSimplified;
- static const int32_t kTibetan;
- static const int32_t kMongolian;
- static const int32_t kGeez;
- static const int32_t kSlavic;
- static const int32_t kVietnamese;
- static const int32_t kSindhi;
- static const int32_t kUninterpreted;
+ enum {
+ kUnknown = -1,
+ kRoman = 0,
+ kJapanese = 1,
+ kChineseTraditional = 2,
+ kKorean = 3,
+ kArabic = 4,
+ kHebrew = 5,
+ kGreek = 6,
+ kRussian = 7,
+ kRSymbol = 8,
+ kDevanagari = 9,
+ kGurmukhi = 10,
+ kGujarati = 11,
+ kOriya = 12,
+ kBengali = 13,
+ kTamil = 14,
+ kTelugu = 15,
+ kKannada = 16,
+ kMalayalam = 17,
+ kSinhalese = 18,
+ kBurmese = 19,
+ kKhmer = 20,
+ kThai = 21,
+ kLaotian = 22,
+ kGeorgian = 23,
+ kArmenian = 24,
+ kChineseSimplified = 25,
+ kTibetan = 26,
+ kMongolian = 27,
+ kGeez = 28,
+ kSlavic = 29,
+ kVietnamese = 30,
+ kSindhi = 31,
+ kUninterpreted = 32
+ };
};
extern const int32_t SFNTVERSION_1;
@@ -119,21 +127,23 @@ class Font : public RefCounted<Font> {
// relative to the start of the table or the start of sub-blocks within the
// table.
struct Offset {
+ enum {
// Offsets within the main directory
- static const int32_t kSfntVersion;
- static const int32_t kNumTables;
- static const int32_t kSearchRange;
- static const int32_t kEntrySelector;
- static const int32_t kRangeShift;
- static const int32_t kTableRecordBegin;
- static const int32_t kSfntHeaderSize;
+ kSfntVersion = 0,
+ kNumTables = 4,
+ kSearchRange = 6,
+ kEntrySelector = 8,
+ kRangeShift = 10,
+ kTableRecordBegin = 12,
+ kSfntHeaderSize = 12,
// Offsets within a specific table record
- static const int32_t kTableTag;
- static const int32_t kTableCheckSum;
- static const int32_t kTableOffset;
- static const int32_t kTableLength;
- static const int32_t kTableRecordSize;
+ kTableTag = 0,
+ kTableCheckSum = 4,
+ kTableOffset = 8,
+ kTableLength = 12,
+ kTableRecordSize = 16
+ };
};
// Note: the two constants are moved to tag.h to avoid VC++ bug.
diff --git a/cpp/src/sfntly/font_factory.cc b/cpp/src/sfntly/font_factory.cc
index f1d1f25..b741f0a 100644
--- a/cpp/src/sfntly/font_factory.cc
+++ b/cpp/src/sfntly/font_factory.cc
@@ -23,14 +23,6 @@
namespace sfntly {
-const int32_t FontFactory::Offset::kTTCTag = 0;
-const int32_t FontFactory::Offset::kVersion = 4;
-const int32_t FontFactory::Offset::kNumFonts = 8;
-const int32_t FontFactory::Offset::kOffsetTable = 12;
-const int32_t FontFactory::Offset::kulDsigTag = 0;
-const int32_t FontFactory::Offset::kulDsigLength = 4;
-const int32_t FontFactory::Offset::kulDsigOffset = 8;
-
FontFactory::FontFactory() : fingerprint_(false) {
}
diff --git a/cpp/src/sfntly/font_factory.h b/cpp/src/sfntly/font_factory.h
index 9307d91..907ea66 100644
--- a/cpp/src/sfntly/font_factory.h
+++ b/cpp/src/sfntly/font_factory.h
@@ -31,17 +31,19 @@ class FontFactory : public RefCounted<FontFactory> {
// relative to the start of the table or the start of sub-blocks within the
// table.
struct Offset {
- // Offsets within the main directory
- static const int32_t kTTCTag;
- static const int32_t kVersion;
- static const int32_t kNumFonts;
- static const int32_t kOffsetTable;
-
- // TTC Version 2.0 extensions
- // offsets from end of OffsetTable
- static const int32_t kulDsigTag;
- static const int32_t kulDsigLength;
- static const int32_t kulDsigOffset;
+ enum {
+ // Offsets within the main directory
+ kTTCTag = 0,
+ kVersion = 4,
+ kNumFonts = 8,
+ kOffsetTable = 12,
+
+ // TTC Version 2.0 extensions
+ // offsets from end of OffsetTable
+ kulDsigTag = 0,
+ kulDsigLength = 4,
+ kulDsigOffset = 8
+ };
};
FontFactory();
diff --git a/cpp/src/sfntly/font_header_table.cc b/cpp/src/sfntly/font_header_table.cc
index 5d23d39..7710c5a 100644
--- a/cpp/src/sfntly/font_header_table.cc
+++ b/cpp/src/sfntly/font_header_table.cc
@@ -18,36 +18,6 @@
namespace sfntly {
/******************************************************************************
- * Constants
- ******************************************************************************/
-const int32_t FontHeaderTable::Offset::kTableVersion = 0;
-const int32_t FontHeaderTable::Offset::kFontRevision = 4;
-const int32_t FontHeaderTable::Offset::kCheckSumAdjustment = 8;
-const int32_t FontHeaderTable::Offset::kMagicNumber = 12;
-const int32_t FontHeaderTable::Offset::kFlags = 16;
-const int32_t FontHeaderTable::Offset::kUnitsPerEm = 18;
-const int32_t FontHeaderTable::Offset::kCreated = 20;
-const int32_t FontHeaderTable::Offset::kModified = 28;
-const int32_t FontHeaderTable::Offset::kXMin = 36;
-const int32_t FontHeaderTable::Offset::kYMin = 38;
-const int32_t FontHeaderTable::Offset::kXMax = 40;
-const int32_t FontHeaderTable::Offset::kYMax = 42;
-const int32_t FontHeaderTable::Offset::kMacStyle = 44;
-const int32_t FontHeaderTable::Offset::kLowestRecPPEM = 46;
-const int32_t FontHeaderTable::Offset::kFontDirectionHint = 48;
-const int32_t FontHeaderTable::Offset::kIndexToLocFormat = 50;
-const int32_t FontHeaderTable::Offset::kGlyphDataFormat = 52;
-
-const int32_t IndexToLocFormat::kShortOffset = 0;
-const int32_t IndexToLocFormat::kLongOffset = 1;
-
-const int32_t FontDirectionHint::kFullyMixed = 0;
-const int32_t FontDirectionHint::kOnlyStrongLTR = 1;
-const int32_t FontDirectionHint::kStrongLTRAndNeutral = 2;
-const int32_t FontDirectionHint::kOnlyStrongRTL = -1;
-const int32_t FontDirectionHint::kStrongRTLAndNeutral = -2;
-
-/******************************************************************************
* FontHeaderTable class
******************************************************************************/
FontHeaderTable::FontHeaderTable(Header* header, ReadableFontData* data)
diff --git a/cpp/src/sfntly/font_header_table.h b/cpp/src/sfntly/font_header_table.h
index cac33c8..c8aa9fe 100644
--- a/cpp/src/sfntly/font_header_table.h
+++ b/cpp/src/sfntly/font_header_table.h
@@ -22,38 +22,44 @@
namespace sfntly {
struct IndexToLocFormat {
- static const int32_t kShortOffset;
- static const int32_t kLongOffset;
+ enum {
+ kShortOffset = 0,
+ kLongOffset = 1
+ };
};
struct FontDirectionHint {
- static const int32_t kFullyMixed;
- static const int32_t kOnlyStrongLTR;
- static const int32_t kStrongLTRAndNeutral;
- static const int32_t kOnlyStrongRTL;
- static const int32_t kStrongRTLAndNeutral;
+ enum {
+ kFullyMixed = 0,
+ kOnlyStrongLTR = 1,
+ kStrongLTRAndNeutral = 2,
+ kOnlyStrongRTL = -1,
+ kStrongRTLAndNeutral = -2
+ };
};
class FontHeaderTable : public Table, public RefCounted<FontHeaderTable> {
private:
struct Offset {
- static const int32_t kTableVersion;
- static const int32_t kFontRevision;
- static const int32_t kCheckSumAdjustment;
- static const int32_t kMagicNumber;
- static const int32_t kFlags;
- static const int32_t kUnitsPerEm;
- static const int32_t kCreated;
- static const int32_t kModified;
- static const int32_t kXMin;
- static const int32_t kYMin;
- static const int32_t kXMax;
- static const int32_t kYMax;
- static const int32_t kMacStyle;
- static const int32_t kLowestRecPPEM;
- static const int32_t kFontDirectionHint;
- static const int32_t kIndexToLocFormat;
- static const int32_t kGlyphDataFormat;
+ enum {
+ kTableVersion = 0,
+ kFontRevision = 4,
+ kCheckSumAdjustment = 8,
+ kMagicNumber = 12,
+ kFlags = 16,
+ kUnitsPerEm = 18,
+ kCreated = 20,
+ kModified = 28,
+ kXMin = 36,
+ kYMin = 38,
+ kXMax = 40,
+ kYMax = 42,
+ kMacStyle = 44,
+ kLowestRecPPEM = 46,
+ kFontDirectionHint = 48,
+ kIndexToLocFormat = 50,
+ kGlyphDataFormat = 52
+ };
};
private:
diff --git a/cpp/src/sfntly/glyph_table.cc b/cpp/src/sfntly/glyph_table.cc
index 4cd6436..3ff6d97 100644
--- a/cpp/src/sfntly/glyph_table.cc
+++ b/cpp/src/sfntly/glyph_table.cc
@@ -23,21 +23,6 @@ namespace sfntly {
/******************************************************************************
* Constants
******************************************************************************/
-const int32_t GlyphTable::Offset::kNumberOfContours = 0;
-const int32_t GlyphTable::Offset::kXMin = 2;
-const int32_t GlyphTable::Offset::kYMin = 4;
-const int32_t GlyphTable::Offset::kXMax = 6;
-const int32_t GlyphTable::Offset::kYMax = 8;
-const int32_t GlyphTable::Offset::kSimpleEndPtsOfCountours = 10;
-const int32_t GlyphTable::Offset::kSimpleInstructionLength = 0;
-const int32_t GlyphTable::Offset::kSimpleInstructions = 2;
-const int32_t GlyphTable::Offset::kCompositeFlags = 0;
-const int32_t GlyphTable::Offset::kCompositeGyphIndexWithoutFlag = 0;
-const int32_t GlyphTable::Offset::kCompositeGlyphIndexWithFlag = 2;
-
-const int32_t GlyphType::kSimple = 0;
-const int32_t GlyphType::kComposite = 1;
-
const int32_t GlyphTable::SimpleGlyph::kFLAG_ONCURVE = 1;
const int32_t GlyphTable::SimpleGlyph::kFLAG_XSHORT = 1 << 1;
const int32_t GlyphTable::SimpleGlyph::kFLAG_YSHORT = 1 << 2;
diff --git a/cpp/src/sfntly/glyph_table.h b/cpp/src/sfntly/glyph_table.h
index 6f04d45..8a7a8aa 100644
--- a/cpp/src/sfntly/glyph_table.h
+++ b/cpp/src/sfntly/glyph_table.h
@@ -25,8 +25,10 @@
namespace sfntly {
struct GlyphType {
- static const int32_t kSimple;
- static const int32_t kComposite;
+ enum {
+ kSimple = 0,
+ kComposite = 1
+ };
};
// Note: due to the complexity of this class, the order of declaration is
@@ -35,26 +37,28 @@ struct GlyphType {
class GlyphTable : public Table, public RefCounted<GlyphTable> {
public:
struct Offset {
- // header
- static const int32_t kNumberOfContours;
- static const int32_t kXMin;
- static const int32_t kYMin;
- static const int32_t kXMax;
- static const int32_t kYMax;
-
- // Simple Glyph Description
- static const int32_t kSimpleEndPtsOfCountours;
- // offset from the end of the contours array
- static const int32_t kSimpleInstructionLength;
- static const int32_t kSimpleInstructions;
- // flags
- // xCoordinates
- // yCoordinates
-
- // Composite Glyph Description
- static const int32_t kCompositeFlags;
- static const int32_t kCompositeGyphIndexWithoutFlag;
- static const int32_t kCompositeGlyphIndexWithFlag;
+ enum {
+ // header
+ kNumberOfContours = 0,
+ kXMin = 2,
+ kYMin = 4,
+ kXMax = 6,
+ kYMax = 8,
+
+ // Simple Glyph Description
+ kSimpleEndPtsOfCountours = 10,
+ // offset from the end of the contours array
+ kSimpleInstructionLength = 0,
+ kSimpleInstructions = 2,
+ // flags
+ // xCoordinates
+ // yCoordinates
+
+ // Composite Glyph Description
+ kCompositeFlags = 0,
+ kCompositeGyphIndexWithoutFlag = 0,
+ kCompositeGlyphIndexWithFlag = 2,
+ };
};
private:
diff --git a/cpp/src/sfntly/horizontal_header_table.cc b/cpp/src/sfntly/horizontal_header_table.cc
index 68afeea..f30e8db 100644
--- a/cpp/src/sfntly/horizontal_header_table.cc
+++ b/cpp/src/sfntly/horizontal_header_table.cc
@@ -22,23 +22,6 @@
namespace sfntly {
/******************************************************************************
- * HorizontalHeaderTable::Builder class
- ******************************************************************************/
-const int32_t HorizontalHeaderTable::Offset::kVersion = 0;
-const int32_t HorizontalHeaderTable::Offset::kAscender = 4;
-const int32_t HorizontalHeaderTable::Offset::kDescender = 6;
-const int32_t HorizontalHeaderTable::Offset::kLineGap = 8;
-const int32_t HorizontalHeaderTable::Offset::kAdvanceWidthMax = 10;
-const int32_t HorizontalHeaderTable::Offset::kMinLeftSideBearing = 12;
-const int32_t HorizontalHeaderTable::Offset::kMinRightSideBearing = 14;
-const int32_t HorizontalHeaderTable::Offset::kXMaxExtent = 16;
-const int32_t HorizontalHeaderTable::Offset::kCaretSlopeRise = 18;
-const int32_t HorizontalHeaderTable::Offset::kCaretSlopeRun = 20;
-const int32_t HorizontalHeaderTable::Offset::kCaretOffset = 22;
-const int32_t HorizontalHeaderTable::Offset::kMetricDataFormat = 32;
-const int32_t HorizontalHeaderTable::Offset::kNumberOfHMetrics = 34;
-
-/******************************************************************************
* HorizontalHeaderTable class
******************************************************************************/
HorizontalHeaderTable:: HorizontalHeaderTable(Header* header,
diff --git a/cpp/src/sfntly/horizontal_header_table.h b/cpp/src/sfntly/horizontal_header_table.h
index 36f4180..704391c 100644
--- a/cpp/src/sfntly/horizontal_header_table.h
+++ b/cpp/src/sfntly/horizontal_header_table.h
@@ -25,19 +25,21 @@ class HorizontalHeaderTable : public Table,
public RefCounted<HorizontalHeaderTable> {
private:
struct Offset {
- static const int32_t kVersion;
- static const int32_t kAscender;
- static const int32_t kDescender;
- static const int32_t kLineGap;
- static const int32_t kAdvanceWidthMax;
- static const int32_t kMinLeftSideBearing;
- static const int32_t kMinRightSideBearing;
- static const int32_t kXMaxExtent;
- static const int32_t kCaretSlopeRise;
- static const int32_t kCaretSlopeRun;
- static const int32_t kCaretOffset;
- static const int32_t kMetricDataFormat;
- static const int32_t kNumberOfHMetrics;
+ enum {
+ kVersion = 0,
+ kAscender = 4,
+ kDescender = 6,
+ kLineGap = 8,
+ kAdvanceWidthMax = 10,
+ kMinLeftSideBearing = 12,
+ kMinRightSideBearing = 14,
+ kXMaxExtent = 16,
+ kCaretSlopeRise = 18,
+ kCaretSlopeRun = 20,
+ kCaretOffset = 22,
+ kMetricDataFormat = 32,
+ kNumberOfHMetrics = 34,
+ };
};
private:
diff --git a/cpp/src/sfntly/horizontal_metrics_table.cc b/cpp/src/sfntly/horizontal_metrics_table.cc
index d6beab1..c151e18 100644
--- a/cpp/src/sfntly/horizontal_metrics_table.cc
+++ b/cpp/src/sfntly/horizontal_metrics_table.cc
@@ -19,15 +19,6 @@
namespace sfntly {
/******************************************************************************
- * Constants
- ******************************************************************************/
-const int32_t HorizontalMetricsTable::Offset::kHMetricsStart = 0;
-const int32_t HorizontalMetricsTable::Offset::kHMetricsSize = 4;
-const int32_t HorizontalMetricsTable::Offset::kHMetricsAdvanceWidth = 0;
-const int32_t HorizontalMetricsTable::Offset::kHMetricsLeftSideBearing = 2;
-const int32_t HorizontalMetricsTable::Offset::kLeftSideBearingSize = 2;
-
-/******************************************************************************
* HorizontalMetricsTable class
******************************************************************************/
HorizontalMetricsTable::HorizontalMetricsTable(Header* header,
diff --git a/cpp/src/sfntly/horizontal_metrics_table.h b/cpp/src/sfntly/horizontal_metrics_table.h
index 0f1d651..c393fee 100644
--- a/cpp/src/sfntly/horizontal_metrics_table.h
+++ b/cpp/src/sfntly/horizontal_metrics_table.h
@@ -25,15 +25,17 @@ class HorizontalMetricsTable : public Table,
public RefCounted<HorizontalMetricsTable> {
private:
struct Offset {
- // hMetrics
- static const int32_t kHMetricsStart;
- static const int32_t kHMetricsSize;
+ enum {
+ // hMetrics
+ kHMetricsStart = 0,
+ kHMetricsSize = 4,
- // Offset within an hMetric
- static const int32_t kHMetricsAdvanceWidth;
- static const int32_t kHMetricsLeftSideBearing;
+ // Offset within an hMetric
+ kHMetricsAdvanceWidth = 0,
+ kHMetricsLeftSideBearing = 2,
- static const int32_t kLeftSideBearingSize;
+ kLeftSideBearingSize = 2
+ };
};
private:
diff --git a/cpp/src/sfntly/maximum_profile_table.cc b/cpp/src/sfntly/maximum_profile_table.cc
index a79d1e4..61a176e 100644
--- a/cpp/src/sfntly/maximum_profile_table.cc
+++ b/cpp/src/sfntly/maximum_profile_table.cc
@@ -18,25 +18,6 @@
namespace sfntly {
/******************************************************************************
- * Constants
- ******************************************************************************/
-const int32_t MaximumProfileTable::Offset::kVersion = 0;
-const int32_t MaximumProfileTable::Offset::kNumGlyphs = 4;
-const int32_t MaximumProfileTable::Offset::kMaxPoints = 6;
-const int32_t MaximumProfileTable::Offset::kMaxContours = 8;
-const int32_t MaximumProfileTable::Offset::kMaxCompositePoints = 10;
-const int32_t MaximumProfileTable::Offset::kMaxCompositeContours = 12;
-const int32_t MaximumProfileTable::Offset::kMaxZones = 14;
-const int32_t MaximumProfileTable::Offset::kMaxTwilightPoints = 16;
-const int32_t MaximumProfileTable::Offset::kMaxStorage = 18;
-const int32_t MaximumProfileTable::Offset::kMaxFunctionDefs = 20;
-const int32_t MaximumProfileTable::Offset::kMaxInstructionDefs = 22;
-const int32_t MaximumProfileTable::Offset::kMaxStackElements = 24;
-const int32_t MaximumProfileTable::Offset::kMaxSizeOfInstructions = 26;
-const int32_t MaximumProfileTable::Offset::kMaxComponentElements = 28;
-const int32_t MaximumProfileTable::Offset::kMaxComponentDepth = 30;
-
-/******************************************************************************
* MaximumProfileTable class
******************************************************************************/
MaximumProfileTable::MaximumProfileTable(Header* header,
diff --git a/cpp/src/sfntly/maximum_profile_table.h b/cpp/src/sfntly/maximum_profile_table.h
index 7a0b941..044eccf 100644
--- a/cpp/src/sfntly/maximum_profile_table.h
+++ b/cpp/src/sfntly/maximum_profile_table.h
@@ -26,24 +26,26 @@ class MaximumProfileTable : public Table,
public RefCounted<MaximumProfileTable> {
private:
struct Offset {
- // version 0.5 and 1.0
- static const int32_t kVersion;
- static const int32_t kNumGlyphs;
+ enum {
+ // version 0.5 and 1.0
+ kVersion = 0,
+ kNumGlyphs = 4,
- // version 1.0
- static const int32_t kMaxPoints;
- static const int32_t kMaxContours;
- static const int32_t kMaxCompositePoints;
- static const int32_t kMaxCompositeContours;
- static const int32_t kMaxZones;
- static const int32_t kMaxTwilightPoints;
- static const int32_t kMaxStorage;
- static const int32_t kMaxFunctionDefs;
- static const int32_t kMaxInstructionDefs;
- static const int32_t kMaxStackElements;
- static const int32_t kMaxSizeOfInstructions;
- static const int32_t kMaxComponentElements;
- static const int32_t kMaxComponentDepth;
+ // version 1.0
+ kMaxPoints = 6,
+ kMaxContours = 8,
+ kMaxCompositePoints = 10,
+ kMaxCompositeContours = 12,
+ kMaxZones = 14,
+ kMaxTwilightPoints = 16,
+ kMaxStorage = 18,
+ kMaxFunctionDefs = 20,
+ kMaxInstructionDefs = 22,
+ kMaxStackElements = 24,
+ kMaxSizeOfInstructions = 26,
+ kMaxComponentElements = 28,
+ kMaxComponentDepth = 30,
+ };
};
private:
diff --git a/cpp/src/sfntly/name_table.cc b/cpp/src/sfntly/name_table.cc
index b344bfa..cee6e3d 100644
--- a/cpp/src/sfntly/name_table.cc
+++ b/cpp/src/sfntly/name_table.cc
@@ -20,378 +20,6 @@
namespace sfntly {
/******************************************************************************
- * Constants
- ******************************************************************************/
-const int32_t NameTable::Offset::kFormat = 0;
-const int32_t NameTable::Offset::kCount = 2;
-const int32_t NameTable::Offset::kStringOffset = 4;
-const int32_t NameTable::Offset::kNameRecordStart = 6;
-const int32_t NameTable::Offset::kLangTagCount = 0;
-const int32_t NameTable::Offset::kLangTagRecord = 2;
-const int32_t NameTable::Offset::kNameRecordSize = 12;
-const int32_t NameTable::Offset::kNameRecordPlatformId = 0;
-const int32_t NameTable::Offset::kNameRecordEncodingId = 2;
-const int32_t NameTable::Offset::kNameRecordLanguageId = 4;
-const int32_t NameTable::Offset::kNameRecordNameId = 6;
-const int32_t NameTable::Offset::kNameRecordStringLength = 8;
-const int32_t NameTable::Offset::kNameRecordStringOffset = 10;
-
-const int32_t NameTable::NameId::kUnknown = -1;
-const int32_t NameTable::NameId::kCopyrightNotice = 0;
-const int32_t NameTable::NameId::kFontFamilyName = 1;
-const int32_t NameTable::NameId::kFontSubfamilyName = 2;
-const int32_t NameTable::NameId::kUniqueFontIdentifier = 3;
-const int32_t NameTable::NameId::kFullFontName = 4;
-const int32_t NameTable::NameId::kVersionString = 5;
-const int32_t NameTable::NameId::kPostscriptName = 6;
-const int32_t NameTable::NameId::kTrademark = 7;
-const int32_t NameTable::NameId::kManufacturerName = 8;
-const int32_t NameTable::NameId::kDesigner = 9;
-const int32_t NameTable::NameId::kDescription = 10;
-const int32_t NameTable::NameId::kVendorURL = 11;
-const int32_t NameTable::NameId::kDesignerURL = 12;
-const int32_t NameTable::NameId::kLicenseDescription = 13;
-const int32_t NameTable::NameId::kLicenseInfoURL = 14;
-const int32_t NameTable::NameId::kReserved15 = 15;
-const int32_t NameTable::NameId::kPreferredFamily = 16;
-const int32_t NameTable::NameId::kPreferredSubfamily = 17;
-const int32_t NameTable::NameId::kCompatibleFullName = 18;
-const int32_t NameTable::NameId::kSampleText = 19;
-const int32_t NameTable::NameId::kPostscriptCID = 20;
-const int32_t NameTable::NameId::kWWSFamilyName = 21;
-const int32_t NameTable::NameId::kWWSSubfamilyName = 22;
-
-const int32_t UnicodeLanguageId::kUnknown = -1;
-const int32_t UnicodeLanguageId::kAll = 0;
-
-const int32_t MacintoshLanguageId::kUnknown = -1;
-const int32_t MacintoshLanguageId::kEnglish = 0;
-const int32_t MacintoshLanguageId::kFrench = 1;
-const int32_t MacintoshLanguageId::kGerman = 2;
-const int32_t MacintoshLanguageId::kItalian = 3;
-const int32_t MacintoshLanguageId::kDutch = 4;
-const int32_t MacintoshLanguageId::kSwedish = 5;
-const int32_t MacintoshLanguageId::kSpanish = 6;
-const int32_t MacintoshLanguageId::kDanish = 7;
-const int32_t MacintoshLanguageId::kPortuguese = 8;
-const int32_t MacintoshLanguageId::kNorwegian = 9;
-const int32_t MacintoshLanguageId::kHebrew = 10;
-const int32_t MacintoshLanguageId::kJapanese = 11;
-const int32_t MacintoshLanguageId::kArabic = 12;
-const int32_t MacintoshLanguageId::kFinnish = 13;
-const int32_t MacintoshLanguageId::kGreek = 14;
-const int32_t MacintoshLanguageId::kIcelandic = 15;
-const int32_t MacintoshLanguageId::kMaltese = 16;
-const int32_t MacintoshLanguageId::kTurkish = 17;
-const int32_t MacintoshLanguageId::kCroatian = 18;
-const int32_t MacintoshLanguageId::kChinese_Traditional = 19;
-const int32_t MacintoshLanguageId::kUrdu = 20;
-const int32_t MacintoshLanguageId::kHindi = 21;
-const int32_t MacintoshLanguageId::kThai = 22;
-const int32_t MacintoshLanguageId::kKorean = 23;
-const int32_t MacintoshLanguageId::kLithuanian = 24;
-const int32_t MacintoshLanguageId::kPolish = 25;
-const int32_t MacintoshLanguageId::kHungarian = 26;
-const int32_t MacintoshLanguageId::kEstonian = 27;
-const int32_t MacintoshLanguageId::kLatvian = 28;
-const int32_t MacintoshLanguageId::kSami = 29;
-const int32_t MacintoshLanguageId::kFaroese = 30;
-const int32_t MacintoshLanguageId::kFarsiPersian = 31;
-const int32_t MacintoshLanguageId::kRussian = 32;
-const int32_t MacintoshLanguageId::kChinese_Simplified = 33;
-const int32_t MacintoshLanguageId::kFlemish = 34;
-const int32_t MacintoshLanguageId::kIrishGaelic = 35;
-const int32_t MacintoshLanguageId::kAlbanian = 36;
-const int32_t MacintoshLanguageId::kRomanian = 37;
-const int32_t MacintoshLanguageId::kCzech = 38;
-const int32_t MacintoshLanguageId::kSlovak = 39;
-const int32_t MacintoshLanguageId::kSlovenian = 40;
-const int32_t MacintoshLanguageId::kYiddish = 41;
-const int32_t MacintoshLanguageId::kSerbian = 42;
-const int32_t MacintoshLanguageId::kMacedonian = 43;
-const int32_t MacintoshLanguageId::kBulgarian = 44;
-const int32_t MacintoshLanguageId::kUkrainian = 45;
-const int32_t MacintoshLanguageId::kByelorussian = 46;
-const int32_t MacintoshLanguageId::kUzbek = 47;
-const int32_t MacintoshLanguageId::kKazakh = 48;
-const int32_t MacintoshLanguageId::kAzerbaijani_Cyrillic = 49;
-const int32_t MacintoshLanguageId::kAzerbaijani_Arabic = 50;
-const int32_t MacintoshLanguageId::kArmenian = 51;
-const int32_t MacintoshLanguageId::kGeorgian = 52;
-const int32_t MacintoshLanguageId::kMoldavian = 53;
-const int32_t MacintoshLanguageId::kKirghiz = 54;
-const int32_t MacintoshLanguageId::kTajiki = 55;
-const int32_t MacintoshLanguageId::kTurkmen = 56;
-const int32_t MacintoshLanguageId::kMongolian_Mongolian = 57;
-const int32_t MacintoshLanguageId::kMongolian_Cyrillic = 58;
-const int32_t MacintoshLanguageId::kPashto = 59;
-const int32_t MacintoshLanguageId::kKurdish = 60;
-const int32_t MacintoshLanguageId::kKashmiri = 61;
-const int32_t MacintoshLanguageId::kSindhi = 62;
-const int32_t MacintoshLanguageId::kTibetan = 63;
-const int32_t MacintoshLanguageId::kNepali = 64;
-const int32_t MacintoshLanguageId::kSanskrit = 65;
-const int32_t MacintoshLanguageId::kMarathi = 66;
-const int32_t MacintoshLanguageId::kBengali = 67;
-const int32_t MacintoshLanguageId::kAssamese = 68;
-const int32_t MacintoshLanguageId::kGujarati = 69;
-const int32_t MacintoshLanguageId::kPunjabi = 70;
-const int32_t MacintoshLanguageId::kOriya = 71;
-const int32_t MacintoshLanguageId::kMalayalam = 72;
-const int32_t MacintoshLanguageId::kKannada = 73;
-const int32_t MacintoshLanguageId::kTamil = 74;
-const int32_t MacintoshLanguageId::kTelugu = 75;
-const int32_t MacintoshLanguageId::kSinhalese = 76;
-const int32_t MacintoshLanguageId::kBurmese = 77;
-const int32_t MacintoshLanguageId::kKhmer = 78;
-const int32_t MacintoshLanguageId::kLao = 79;
-const int32_t MacintoshLanguageId::kVietnamese = 80;
-const int32_t MacintoshLanguageId::kIndonesian = 81;
-const int32_t MacintoshLanguageId::kTagalong = 82;
-const int32_t MacintoshLanguageId::kMalay_Roman = 83;
-const int32_t MacintoshLanguageId::kMalay_Arabic = 84;
-const int32_t MacintoshLanguageId::kAmharic = 85;
-const int32_t MacintoshLanguageId::kTigrinya = 86;
-const int32_t MacintoshLanguageId::kGalla = 87;
-const int32_t MacintoshLanguageId::kSomali = 88;
-const int32_t MacintoshLanguageId::kSwahili = 89;
-const int32_t MacintoshLanguageId::kKinyarwandaRuanda = 90;
-const int32_t MacintoshLanguageId::kRundi = 91;
-const int32_t MacintoshLanguageId::kNyanjaChewa = 92;
-const int32_t MacintoshLanguageId::kMalagasy = 93;
-const int32_t MacintoshLanguageId::kEsperanto = 94;
-const int32_t MacintoshLanguageId::kWelsh = 128;
-const int32_t MacintoshLanguageId::kBasque = 129;
-const int32_t MacintoshLanguageId::kCatalan = 130;
-const int32_t MacintoshLanguageId::kLatin = 131;
-const int32_t MacintoshLanguageId::kQuenchua = 132;
-const int32_t MacintoshLanguageId::kGuarani = 133;
-const int32_t MacintoshLanguageId::kAymara = 134;
-const int32_t MacintoshLanguageId::kTatar = 135;
-const int32_t MacintoshLanguageId::kUighur = 136;
-const int32_t MacintoshLanguageId::kDzongkha = 137;
-const int32_t MacintoshLanguageId::kJavanese_Roman = 138;
-const int32_t MacintoshLanguageId::kSundanese_Roman = 139;
-const int32_t MacintoshLanguageId::kGalician = 140;
-const int32_t MacintoshLanguageId::kAfrikaans = 141;
-const int32_t MacintoshLanguageId::kBreton = 142;
-const int32_t MacintoshLanguageId::kInuktitut = 143;
-const int32_t MacintoshLanguageId::kScottishGaelic = 144;
-const int32_t MacintoshLanguageId::kManxGaelic = 145;
-const int32_t MacintoshLanguageId::kIrishGaelic_WithDotAbove = 146;
-const int32_t MacintoshLanguageId::kTongan = 147;
-const int32_t MacintoshLanguageId::kGreek_Polytonic = 148;
-const int32_t MacintoshLanguageId::kGreenlandic = 149;
-const int32_t MacintoshLanguageId::kAzerbaijani_Roman = 150;
-
-const int32_t WindowsLanguageId::kUnknown = -1;
-const int32_t WindowsLanguageId::kAfrikaans_SouthAfrica = 0x0436;
-const int32_t WindowsLanguageId::kAlbanian_Albania = 0x041C;
-const int32_t WindowsLanguageId::kAlsatian_France = 0x0484;
-const int32_t WindowsLanguageId::kAmharic_Ethiopia = 0x045E;
-const int32_t WindowsLanguageId::kArabic_Algeria = 0x1401;
-const int32_t WindowsLanguageId::kArabic_Bahrain = 0x3C01;
-const int32_t WindowsLanguageId::kArabic_Egypt = 0x0C01;
-const int32_t WindowsLanguageId::kArabic_Iraq = 0x0801;
-const int32_t WindowsLanguageId::kArabic_Jordan = 0x2C01;
-const int32_t WindowsLanguageId::kArabic_Kuwait = 0x3401;
-const int32_t WindowsLanguageId::kArabic_Lebanon = 0x3001;
-const int32_t WindowsLanguageId::kArabic_Libya = 0x1001;
-const int32_t WindowsLanguageId::kArabic_Morocco = 0x1801;
-const int32_t WindowsLanguageId::kArabic_Oman = 0x2001;
-const int32_t WindowsLanguageId::kArabic_Qatar = 0x4001;
-const int32_t WindowsLanguageId::kArabic_SaudiArabia = 0x0401;
-const int32_t WindowsLanguageId::kArabic_Syria = 0x2801;
-const int32_t WindowsLanguageId::kArabic_Tunisia = 0x1C01;
-const int32_t WindowsLanguageId::kArabic_UAE = 0x3801;
-const int32_t WindowsLanguageId::kArabic_Yemen = 0x2401;
-const int32_t WindowsLanguageId::kArmenian_Armenia = 0x042B;
-const int32_t WindowsLanguageId::kAssamese_India = 0x044D;
-const int32_t WindowsLanguageId::kAzeri_Cyrillic_Azerbaijan = 0x082C;
-const int32_t WindowsLanguageId::kAzeri_Latin_Azerbaijan = 0x042C;
-const int32_t WindowsLanguageId::kBashkir_Russia = 0x046D;
-const int32_t WindowsLanguageId::kBasque_Basque = 0x042D;
-const int32_t WindowsLanguageId::kBelarusian_Belarus = 0x0423;
-const int32_t WindowsLanguageId::kBengali_Bangladesh = 0x0845;
-const int32_t WindowsLanguageId::kBengali_India = 0x0445;
-const int32_t WindowsLanguageId::kBosnian_Cyrillic_BosniaAndHerzegovina = 0x201A;
-const int32_t WindowsLanguageId::kBosnian_Latin_BosniaAndHerzegovina = 0x141A;
-const int32_t WindowsLanguageId::kBreton_France = 0x047E;
-const int32_t WindowsLanguageId::kBulgarian_Bulgaria = 0x0402;
-const int32_t WindowsLanguageId::kCatalan_Catalan = 0x0403;
-const int32_t WindowsLanguageId::kChinese_HongKongSAR = 0x0C04;
-const int32_t WindowsLanguageId::kChinese_MacaoSAR = 0x1404;
-const int32_t WindowsLanguageId::kChinese_PeoplesRepublicOfChina = 0x0804;
-const int32_t WindowsLanguageId::kChinese_Singapore = 0x1004;
-const int32_t WindowsLanguageId::kChinese_Taiwan = 0x0404;
-const int32_t WindowsLanguageId::kCorsican_France = 0x0483;
-const int32_t WindowsLanguageId::kCroatian_Croatia = 0x041A;
-const int32_t WindowsLanguageId::kCroatian_Latin_BosniaAndHerzegovina = 0x101A;
-const int32_t WindowsLanguageId::kCzech_CzechRepublic = 0x0405;
-const int32_t WindowsLanguageId::kDanish_Denmark = 0x0406;
-const int32_t WindowsLanguageId::kDari_Afghanistan = 0x048C;
-const int32_t WindowsLanguageId::kDivehi_Maldives = 0x0465;
-const int32_t WindowsLanguageId::kDutch_Belgium = 0x0813;
-const int32_t WindowsLanguageId::kDutch_Netherlands = 0x0413;
-const int32_t WindowsLanguageId::kEnglish_Australia = 0x0C09;
-const int32_t WindowsLanguageId::kEnglish_Belize = 0x2809;
-const int32_t WindowsLanguageId::kEnglish_Canada = 0x1009;
-const int32_t WindowsLanguageId::kEnglish_Caribbean = 0x2409;
-const int32_t WindowsLanguageId::kEnglish_India = 0x4009;
-const int32_t WindowsLanguageId::kEnglish_Ireland = 0x1809;
-const int32_t WindowsLanguageId::kEnglish_Jamaica = 0x2009;
-const int32_t WindowsLanguageId::kEnglish_Malaysia = 0x4409;
-const int32_t WindowsLanguageId::kEnglish_NewZealand = 0x1409;
-const int32_t WindowsLanguageId::kEnglish_RepublicOfThePhilippines = 0x3409;
-const int32_t WindowsLanguageId::kEnglish_Singapore = 0x4809;
-const int32_t WindowsLanguageId::kEnglish_SouthAfrica = 0x1C09;
-const int32_t WindowsLanguageId::kEnglish_TrinidadAndTobago = 0x2C09;
-const int32_t WindowsLanguageId::kEnglish_UnitedKingdom = 0x0809;
-const int32_t WindowsLanguageId::kEnglish_UnitedStates = 0x0409;
-const int32_t WindowsLanguageId::kEnglish_Zimbabwe = 0x3009;
-const int32_t WindowsLanguageId::kEstonian_Estonia = 0x0425;
-const int32_t WindowsLanguageId::kFaroese_FaroeIslands = 0x0438;
-const int32_t WindowsLanguageId::kFilipino_Philippines = 0x0464;
-const int32_t WindowsLanguageId::kFinnish_Finland = 0x040B;
-const int32_t WindowsLanguageId::kFrench_Belgium = 0x080C;
-const int32_t WindowsLanguageId::kFrench_Canada = 0x0C0C;
-const int32_t WindowsLanguageId::kFrench_France = 0x040C;
-const int32_t WindowsLanguageId::kFrench_Luxembourg = 0x140c;
-const int32_t WindowsLanguageId::kFrench_PrincipalityOfMonoco = 0x180C;
-const int32_t WindowsLanguageId::kFrench_Switzerland = 0x100C;
-const int32_t WindowsLanguageId::kFrisian_Netherlands = 0x0462;
-const int32_t WindowsLanguageId::kGalician_Galician = 0x0456;
-const int32_t WindowsLanguageId::kGeorgian_Georgia = 0x0437;
-const int32_t WindowsLanguageId::kGerman_Austria = 0x0C07;
-const int32_t WindowsLanguageId::kGerman_Germany = 0x0407;
-const int32_t WindowsLanguageId::kGerman_Liechtenstein = 0x1407;
-const int32_t WindowsLanguageId::kGerman_Luxembourg = 0x1007;
-const int32_t WindowsLanguageId::kGerman_Switzerland = 0x0807;
-const int32_t WindowsLanguageId::kGreek_Greece = 0x0408;
-const int32_t WindowsLanguageId::kGreenlandic_Greenland = 0x046F;
-const int32_t WindowsLanguageId::kGujarati_India = 0x0447;
-const int32_t WindowsLanguageId::kHausa_Latin_Nigeria = 0x0468;
-const int32_t WindowsLanguageId::kHebrew_Israel = 0x040D;
-const int32_t WindowsLanguageId::kHindi_India = 0x0439;
-const int32_t WindowsLanguageId::kHungarian_Hungary = 0x040E;
-const int32_t WindowsLanguageId::kIcelandic_Iceland = 0x040F;
-const int32_t WindowsLanguageId::kIgbo_Nigeria = 0x0470;
-const int32_t WindowsLanguageId::kIndonesian_Indonesia = 0x0421;
-const int32_t WindowsLanguageId::kInuktitut_Canada = 0x045D;
-const int32_t WindowsLanguageId::kInuktitut_Latin_Canada = 0x085D;
-const int32_t WindowsLanguageId::kIrish_Ireland = 0x083C;
-const int32_t WindowsLanguageId::kisiXhosa_SouthAfrica = 0x0434;
-const int32_t WindowsLanguageId::kisiZulu_SouthAfrica = 0x0435;
-const int32_t WindowsLanguageId::kItalian_Italy = 0x0410;
-const int32_t WindowsLanguageId::kItalian_Switzerland = 0x0810;
-const int32_t WindowsLanguageId::kJapanese_Japan = 0x0411;
-const int32_t WindowsLanguageId::kKannada_India = 0x044B;
-const int32_t WindowsLanguageId::kKazakh_Kazakhstan = 0x043F;
-const int32_t WindowsLanguageId::kKhmer_Cambodia = 0x0453;
-const int32_t WindowsLanguageId::kKiche_Guatemala = 0x0486;
-const int32_t WindowsLanguageId::kKinyarwanda_Rwanda = 0x0487;
-const int32_t WindowsLanguageId::kKiswahili_Kenya = 0x0441;
-const int32_t WindowsLanguageId::kKonkani_India = 0x0457;
-const int32_t WindowsLanguageId::kKorean_Korea = 0x0412;
-const int32_t WindowsLanguageId::kKyrgyz_Kyrgyzstan = 0x0440;
-const int32_t WindowsLanguageId::kLao_LaoPDR = 0x0454;
-const int32_t WindowsLanguageId::kLatvian_Latvia = 0x0426;
-const int32_t WindowsLanguageId::kLithuanian_Lithuania = 0x0427;
-const int32_t WindowsLanguageId::kLowerSorbian_Germany = 0x082E;
-const int32_t WindowsLanguageId::kLuxembourgish_Luxembourg = 0x046E;
-const int32_t WindowsLanguageId::kMacedonian_FYROM_FormerYugoslavRepublicOfMacedonia = 0x042F;
-const int32_t WindowsLanguageId::kMalay_BruneiDarussalam = 0x083E;
-const int32_t WindowsLanguageId::kMalay_Malaysia = 0x043E;
-const int32_t WindowsLanguageId::kMalayalam_India = 0x044C;
-const int32_t WindowsLanguageId::kMaltese_Malta = 0x043A;
-const int32_t WindowsLanguageId::kMaori_NewZealand = 0x0481;
-const int32_t WindowsLanguageId::kMapudungun_Chile = 0x047A;
-const int32_t WindowsLanguageId::kMarathi_India = 0x044E;
-const int32_t WindowsLanguageId::kMohawk_Mohawk = 0x047C;
-const int32_t WindowsLanguageId::kMongolian_Cyrillic_Mongolia = 0x0450;
-const int32_t WindowsLanguageId::kMongolian_Traditional_PeoplesRepublicOfChina = 0x0850;
-const int32_t WindowsLanguageId::kNepali_Nepal = 0x0461;
-const int32_t WindowsLanguageId::kNorwegian_Bokmal_Norway = 0x0414;
-const int32_t WindowsLanguageId::kNorwegian_Nynorsk_Norway = 0x0814;
-const int32_t WindowsLanguageId::kOccitan_France = 0x0482;
-const int32_t WindowsLanguageId::kOriya_India = 0x0448;
-const int32_t WindowsLanguageId::kPashto_Afghanistan = 0x0463;
-const int32_t WindowsLanguageId::kPolish_Poland = 0x0415;
-const int32_t WindowsLanguageId::kPortuguese_Brazil = 0x0416;
-const int32_t WindowsLanguageId::kPortuguese_Portugal = 0x0816;
-const int32_t WindowsLanguageId::kPunjabi_India = 0x0446;
-const int32_t WindowsLanguageId::kQuechua_Bolivia = 0x046B;
-const int32_t WindowsLanguageId::kQuechua_Ecuador = 0x086B;
-const int32_t WindowsLanguageId::kQuechua_Peru = 0x0C6B;
-const int32_t WindowsLanguageId::kRomanian_Romania = 0x0418;
-const int32_t WindowsLanguageId::kRomansh_Switzerland = 0x0417;
-const int32_t WindowsLanguageId::kRussian_Russia = 0x0419;
-const int32_t WindowsLanguageId::kSami_Inari_Finland = 0x243B;
-const int32_t WindowsLanguageId::kSami_Lule_Norway = 0x103B;
-const int32_t WindowsLanguageId::kSami_Lule_Sweden = 0x143B;
-const int32_t WindowsLanguageId::kSami_Northern_Finland = 0x0C3B;
-const int32_t WindowsLanguageId::kSami_Northern_Norway = 0x043B;
-const int32_t WindowsLanguageId::kSami_Northern_Sweden = 0x083B;
-const int32_t WindowsLanguageId::kSami_Skolt_Finland = 0x203B;
-const int32_t WindowsLanguageId::kSami_Southern_Norway = 0x183B;
-const int32_t WindowsLanguageId::kSami_Southern_Sweden = 0x1C3B;
-const int32_t WindowsLanguageId::kSanskrit_India = 0x044F;
-const int32_t WindowsLanguageId::kSerbian_Cyrillic_BosniaAndHerzegovina = 0x1C1A;
-const int32_t WindowsLanguageId::kSerbian_Cyrillic_Serbia = 0x0C1A;
-const int32_t WindowsLanguageId::kSerbian_Latin_BosniaAndHerzegovina = 0x181A;
-const int32_t WindowsLanguageId::kSerbian_Latin_Serbia = 0x081A;
-const int32_t WindowsLanguageId::kSesothoSaLeboa_SouthAfrica = 0x046C;
-const int32_t WindowsLanguageId::kSetswana_SouthAfrica = 0x0432;
-const int32_t WindowsLanguageId::kSinhala_SriLanka = 0x045B;
-const int32_t WindowsLanguageId::kSlovak_Slovakia = 0x041B;
-const int32_t WindowsLanguageId::kSlovenian_Slovenia = 0x0424;
-const int32_t WindowsLanguageId::kSpanish_Argentina = 0x2C0A;
-const int32_t WindowsLanguageId::kSpanish_Bolivia = 0x400A;
-const int32_t WindowsLanguageId::kSpanish_Chile = 0x340A;
-const int32_t WindowsLanguageId::kSpanish_Colombia = 0x240A;
-const int32_t WindowsLanguageId::kSpanish_CostaRica = 0x140A;
-const int32_t WindowsLanguageId::kSpanish_DominicanRepublic = 0x1C0A;
-const int32_t WindowsLanguageId::kSpanish_Ecuador = 0x300A;
-const int32_t WindowsLanguageId::kSpanish_ElSalvador = 0x440A;
-const int32_t WindowsLanguageId::kSpanish_Guatemala = 0x100A;
-const int32_t WindowsLanguageId::kSpanish_Honduras = 0x480A;
-const int32_t WindowsLanguageId::kSpanish_Mexico = 0x080A;
-const int32_t WindowsLanguageId::kSpanish_Nicaragua = 0x4C0A;
-const int32_t WindowsLanguageId::kSpanish_Panama = 0x180A;
-const int32_t WindowsLanguageId::kSpanish_Paraguay = 0x3C0A;
-const int32_t WindowsLanguageId::kSpanish_Peru = 0x280A;
-const int32_t WindowsLanguageId::kSpanish_PuertoRico = 0x500A;
-const int32_t WindowsLanguageId::kSpanish_ModernSort_Spain = 0x0C0A;
-const int32_t WindowsLanguageId::kSpanish_TraditionalSort_Spain = 0x040A;
-const int32_t WindowsLanguageId::kSpanish_UnitedStates = 0x540A;
-const int32_t WindowsLanguageId::kSpanish_Uruguay = 0x380A;
-const int32_t WindowsLanguageId::kSpanish_Venezuela = 0x200A;
-const int32_t WindowsLanguageId::kSweden_Finland = 0x081D;
-const int32_t WindowsLanguageId::kSwedish_Sweden = 0x041D;
-const int32_t WindowsLanguageId::kSyriac_Syria = 0x045A;
-const int32_t WindowsLanguageId::kTajik_Cyrillic_Tajikistan = 0x0428;
-const int32_t WindowsLanguageId::kTamazight_Latin_Algeria = 0x085F;
-const int32_t WindowsLanguageId::kTamil_India = 0x0449;
-const int32_t WindowsLanguageId::kTatar_Russia = 0x0444;
-const int32_t WindowsLanguageId::kTelugu_India = 0x044A;
-const int32_t WindowsLanguageId::kThai_Thailand = 0x041E;
-const int32_t WindowsLanguageId::kTibetan_PRC = 0x0451;
-const int32_t WindowsLanguageId::kTurkish_Turkey = 0x041F;
-const int32_t WindowsLanguageId::kTurkmen_Turkmenistan = 0x0442;
-const int32_t WindowsLanguageId::kUighur_PRC = 0x0480;
-const int32_t WindowsLanguageId::kUkrainian_Ukraine = 0x0422;
-const int32_t WindowsLanguageId::kUpperSorbian_Germany = 0x042E;
-const int32_t WindowsLanguageId::kUrdu_IslamicRepublicOfPakistan = 0x0420;
-const int32_t WindowsLanguageId::kUzbek_Cyrillic_Uzbekistan = 0x0843;
-const int32_t WindowsLanguageId::kUzbek_Latin_Uzbekistan = 0x0443;
-const int32_t WindowsLanguageId::kVietnamese_Vietnam = 0x042A;
-const int32_t WindowsLanguageId::kWelsh_UnitedKingdom = 0x0452;
-const int32_t WindowsLanguageId::kWolof_Senegal = 0x0448;
-const int32_t WindowsLanguageId::kYakut_Russia = 0x0485;
-const int32_t WindowsLanguageId::kYi_PRC = 0x0478;
-const int32_t WindowsLanguageId::kYoruba_Nigeria = 0x046A;
-
-/******************************************************************************
* NameTable class
******************************************************************************/
NameTable::NameTable(Header* header, ReadableFontData* data)
diff --git a/cpp/src/sfntly/name_table.h b/cpp/src/sfntly/name_table.h
index 7553aa0..948c6b9 100644
--- a/cpp/src/sfntly/name_table.h
+++ b/cpp/src/sfntly/name_table.h
@@ -25,391 +25,401 @@
namespace sfntly {
+struct NameId {
+ enum {
+ kUnknown = -1,
+ kCopyrightNotice = 0,
+ kFontFamilyName = 1,
+ kFontSubfamilyName = 2,
+ kUniqueFontIdentifier = 3,
+ kFullFontName = 4,
+ kVersionString = 5,
+ kPostscriptName = 6,
+ kTrademark = 7,
+ kManufacturerName = 8,
+ kDesigner = 9,
+ kDescription = 10,
+ kVendorURL = 11,
+ kDesignerURL = 12,
+ kLicenseDescription = 13,
+ kLicenseInfoURL = 14,
+ kReserved15 = 15,
+ kPreferredFamily = 16,
+ kPreferredSubfamily = 17,
+ kCompatibleFullName = 18,
+ kSampleText = 19,
+ kPostscriptCID = 20,
+ kWWSFamilyName = 21,
+ kWWSSubfamilyName = 22
+ };
+};
+
struct UnicodeLanguageId {
- static const int32_t kUnknown;
- static const int32_t kAll;
+ enum {
+ kUnknown = -1,
+ kAll = 0
+ };
};
-// Macinstosh Language IDs (platform ID = 1)
+// Macintosh Language IDs (platform ID = 1)
struct MacintoshLanguageId {
- static const int32_t kUnknown;
- static const int32_t kEnglish;
- static const int32_t kFrench;
- static const int32_t kGerman;
- static const int32_t kItalian;
- static const int32_t kDutch;
- static const int32_t kSwedish;
- static const int32_t kSpanish;
- static const int32_t kDanish;
- static const int32_t kPortuguese;
- static const int32_t kNorwegian;
- static const int32_t kHebrew;
- static const int32_t kJapanese;
- static const int32_t kArabic;
- static const int32_t kFinnish;
- static const int32_t kGreek;
- static const int32_t kIcelandic;
- static const int32_t kMaltese;
- static const int32_t kTurkish;
- static const int32_t kCroatian;
- static const int32_t kChinese_Traditional;
- static const int32_t kUrdu;
- static const int32_t kHindi;
- static const int32_t kThai;
- static const int32_t kKorean;
- static const int32_t kLithuanian;
- static const int32_t kPolish;
- static const int32_t kHungarian;
- static const int32_t kEstonian;
- static const int32_t kLatvian;
- static const int32_t kSami;
- static const int32_t kFaroese;
- static const int32_t kFarsiPersian;
- static const int32_t kRussian;
- static const int32_t kChinese_Simplified;
- static const int32_t kFlemish;
- static const int32_t kIrishGaelic;
- static const int32_t kAlbanian;
- static const int32_t kRomanian;
- static const int32_t kCzech;
- static const int32_t kSlovak;
- static const int32_t kSlovenian;
- static const int32_t kYiddish;
- static const int32_t kSerbian;
- static const int32_t kMacedonian;
- static const int32_t kBulgarian;
- static const int32_t kUkrainian;
- static const int32_t kByelorussian;
- static const int32_t kUzbek;
- static const int32_t kKazakh;
- static const int32_t kAzerbaijani_Cyrillic;
- static const int32_t kAzerbaijani_Arabic;
- static const int32_t kArmenian;
- static const int32_t kGeorgian;
- static const int32_t kMoldavian;
- static const int32_t kKirghiz;
- static const int32_t kTajiki;
- static const int32_t kTurkmen;
- static const int32_t kMongolian_Mongolian;
- static const int32_t kMongolian_Cyrillic;
- static const int32_t kPashto;
- static const int32_t kKurdish;
- static const int32_t kKashmiri;
- static const int32_t kSindhi;
- static const int32_t kTibetan;
- static const int32_t kNepali;
- static const int32_t kSanskrit;
- static const int32_t kMarathi;
- static const int32_t kBengali;
- static const int32_t kAssamese;
- static const int32_t kGujarati;
- static const int32_t kPunjabi;
- static const int32_t kOriya;
- static const int32_t kMalayalam;
- static const int32_t kKannada;
- static const int32_t kTamil;
- static const int32_t kTelugu;
- static const int32_t kSinhalese;
- static const int32_t kBurmese;
- static const int32_t kKhmer;
- static const int32_t kLao;
- static const int32_t kVietnamese;
- static const int32_t kIndonesian;
- static const int32_t kTagalong;
- static const int32_t kMalay_Roman;
- static const int32_t kMalay_Arabic;
- static const int32_t kAmharic;
- static const int32_t kTigrinya;
- static const int32_t kGalla;
- static const int32_t kSomali;
- static const int32_t kSwahili;
- static const int32_t kKinyarwandaRuanda;
- static const int32_t kRundi;
- static const int32_t kNyanjaChewa;
- static const int32_t kMalagasy;
- static const int32_t kEsperanto;
- static const int32_t kWelsh;
- static const int32_t kBasque;
- static const int32_t kCatalan;
- static const int32_t kLatin;
- static const int32_t kQuenchua;
- static const int32_t kGuarani;
- static const int32_t kAymara;
- static const int32_t kTatar;
- static const int32_t kUighur;
- static const int32_t kDzongkha;
- static const int32_t kJavanese_Roman;
- static const int32_t kSundanese_Roman;
- static const int32_t kGalician;
- static const int32_t kAfrikaans;
- static const int32_t kBreton;
- static const int32_t kInuktitut;
- static const int32_t kScottishGaelic;
- static const int32_t kManxGaelic;
- static const int32_t kIrishGaelic_WithDotAbove;
- static const int32_t kTongan;
- static const int32_t kGreek_Polytonic;
- static const int32_t kGreenlandic;
- static const int32_t kAzerbaijani_Roman;
+ enum {
+ kUnknown = -1,
+ kEnglish = 0,
+ kFrench = 1,
+ kGerman = 2,
+ kItalian = 3,
+ kDutch = 4,
+ kSwedish = 5,
+ kSpanish = 6,
+ kDanish = 7,
+ kPortuguese = 8,
+ kNorwegian = 9,
+ kHebrew = 10,
+ kJapanese = 11,
+ kArabic = 12,
+ kFinnish = 13,
+ kGreek = 14,
+ kIcelandic = 15,
+ kMaltese = 16,
+ kTurkish = 17,
+ kCroatian = 18,
+ kChinese_Traditional = 19,
+ kUrdu = 20,
+ kHindi = 21,
+ kThai = 22,
+ kKorean = 23,
+ kLithuanian = 24,
+ kPolish = 25,
+ kHungarian = 26,
+ kEstonian = 27,
+ kLatvian = 28,
+ kSami = 29,
+ kFaroese = 30,
+ kFarsiPersian = 31,
+ kRussian = 32,
+ kChinese_Simplified = 33,
+ kFlemish = 34,
+ kIrishGaelic = 35,
+ kAlbanian = 36,
+ kRomanian = 37,
+ kCzech = 38,
+ kSlovak = 39,
+ kSlovenian = 40,
+ kYiddish = 41,
+ kSerbian = 42,
+ kMacedonian = 43,
+ kBulgarian = 44,
+ kUkrainian = 45,
+ kByelorussian = 46,
+ kUzbek = 47,
+ kKazakh = 48,
+ kAzerbaijani_Cyrillic = 49,
+ kAzerbaijani_Arabic = 50,
+ kArmenian = 51,
+ kGeorgian = 52,
+ kMoldavian = 53,
+ kKirghiz = 54,
+ kTajiki = 55,
+ kTurkmen = 56,
+ kMongolian_Mongolian = 57,
+ kMongolian_Cyrillic = 58,
+ kPashto = 59,
+ kKurdish = 60,
+ kKashmiri = 61,
+ kSindhi = 62,
+ kTibetan = 63,
+ kNepali = 64,
+ kSanskrit = 65,
+ kMarathi = 66,
+ kBengali = 67,
+ kAssamese = 68,
+ kGujarati = 69,
+ kPunjabi = 70,
+ kOriya = 71,
+ kMalayalam = 72,
+ kKannada = 73,
+ kTamil = 74,
+ kTelugu = 75,
+ kSinhalese = 76,
+ kBurmese = 77,
+ kKhmer = 78,
+ kLao = 79,
+ kVietnamese = 80,
+ kIndonesian = 81,
+ kTagalong = 82,
+ kMalay_Roman = 83,
+ kMalay_Arabic = 84,
+ kAmharic = 85,
+ kTigrinya = 86,
+ kGalla = 87,
+ kSomali = 88,
+ kSwahili = 89,
+ kKinyarwandaRuanda = 90,
+ kRundi = 91,
+ kNyanjaChewa = 92,
+ kMalagasy = 93,
+ kEsperanto = 94,
+ kWelsh = 128,
+ kBasque = 129,
+ kCatalan = 130,
+ kLatin = 131,
+ kQuenchua = 132,
+ kGuarani = 133,
+ kAymara = 134,
+ kTatar = 135,
+ kUighur = 136,
+ kDzongkha = 137,
+ kJavanese_Roman = 138,
+ kSundanese_Roman = 139,
+ kGalician = 140,
+ kAfrikaans = 141,
+ kBreton = 142,
+ kInuktitut = 143,
+ kScottishGaelic = 144,
+ kManxGaelic = 145,
+ kIrishGaelic_WithDotAbove = 146,
+ kTongan = 147,
+ kGreek_Polytonic = 148,
+ kGreenlandic = 149,
+ kAzerbaijani_Roman = 150
+ };
};
// Windows Language IDs (platformID = 3)
struct WindowsLanguageId {
- static const int32_t kUnknown;
- static const int32_t kAfrikaans_SouthAfrica;
- static const int32_t kAlbanian_Albania;
- static const int32_t kAlsatian_France;
- static const int32_t kAmharic_Ethiopia;
- static const int32_t kArabic_Algeria;
- static const int32_t kArabic_Bahrain;
- static const int32_t kArabic_Egypt;
- static const int32_t kArabic_Iraq;
- static const int32_t kArabic_Jordan;
- static const int32_t kArabic_Kuwait;
- static const int32_t kArabic_Lebanon;
- static const int32_t kArabic_Libya;
- static const int32_t kArabic_Morocco;
- static const int32_t kArabic_Oman;
- static const int32_t kArabic_Qatar;
- static const int32_t kArabic_SaudiArabia;
- static const int32_t kArabic_Syria;
- static const int32_t kArabic_Tunisia;
- static const int32_t kArabic_UAE;
- static const int32_t kArabic_Yemen;
- static const int32_t kArmenian_Armenia;
- static const int32_t kAssamese_India;
- static const int32_t kAzeri_Cyrillic_Azerbaijan;
- static const int32_t kAzeri_Latin_Azerbaijan;
- static const int32_t kBashkir_Russia;
- static const int32_t kBasque_Basque;
- static const int32_t kBelarusian_Belarus;
- static const int32_t kBengali_Bangladesh;
- static const int32_t kBengali_India;
- static const int32_t kBosnian_Cyrillic_BosniaAndHerzegovina;
- static const int32_t kBosnian_Latin_BosniaAndHerzegovina;
- static const int32_t kBreton_France;
- static const int32_t kBulgarian_Bulgaria;
- static const int32_t kCatalan_Catalan;
- static const int32_t kChinese_HongKongSAR;
- static const int32_t kChinese_MacaoSAR;
- static const int32_t kChinese_PeoplesRepublicOfChina;
- static const int32_t kChinese_Singapore;
- static const int32_t kChinese_Taiwan;
- static const int32_t kCorsican_France;
- static const int32_t kCroatian_Croatia;
- static const int32_t kCroatian_Latin_BosniaAndHerzegovina;
- static const int32_t kCzech_CzechRepublic;
- static const int32_t kDanish_Denmark;
- static const int32_t kDari_Afghanistan;
- static const int32_t kDivehi_Maldives;
- static const int32_t kDutch_Belgium;
- static const int32_t kDutch_Netherlands;
- static const int32_t kEnglish_Australia;
- static const int32_t kEnglish_Belize;
- static const int32_t kEnglish_Canada;
- static const int32_t kEnglish_Caribbean;
- static const int32_t kEnglish_India;
- static const int32_t kEnglish_Ireland;
- static const int32_t kEnglish_Jamaica;
- static const int32_t kEnglish_Malaysia;
- static const int32_t kEnglish_NewZealand;
- static const int32_t kEnglish_RepublicOfThePhilippines;
- static const int32_t kEnglish_Singapore;
- static const int32_t kEnglish_SouthAfrica;
- static const int32_t kEnglish_TrinidadAndTobago;
- static const int32_t kEnglish_UnitedKingdom;
- static const int32_t kEnglish_UnitedStates;
- static const int32_t kEnglish_Zimbabwe;
- static const int32_t kEstonian_Estonia;
- static const int32_t kFaroese_FaroeIslands;
- static const int32_t kFilipino_Philippines;
- static const int32_t kFinnish_Finland;
- static const int32_t kFrench_Belgium;
- static const int32_t kFrench_Canada;
- static const int32_t kFrench_France;
- static const int32_t kFrench_Luxembourg;
- static const int32_t kFrench_PrincipalityOfMonoco;
- static const int32_t kFrench_Switzerland;
- static const int32_t kFrisian_Netherlands;
- static const int32_t kGalician_Galician;
- static const int32_t kGeorgian_Georgia;
- static const int32_t kGerman_Austria;
- static const int32_t kGerman_Germany;
- static const int32_t kGerman_Liechtenstein;
- static const int32_t kGerman_Luxembourg;
- static const int32_t kGerman_Switzerland;
- static const int32_t kGreek_Greece;
- static const int32_t kGreenlandic_Greenland;
- static const int32_t kGujarati_India;
- static const int32_t kHausa_Latin_Nigeria;
- static const int32_t kHebrew_Israel;
- static const int32_t kHindi_India;
- static const int32_t kHungarian_Hungary;
- static const int32_t kIcelandic_Iceland;
- static const int32_t kIgbo_Nigeria;
- static const int32_t kIndonesian_Indonesia;
- static const int32_t kInuktitut_Canada;
- static const int32_t kInuktitut_Latin_Canada;
- static const int32_t kIrish_Ireland;
- static const int32_t kisiXhosa_SouthAfrica;
- static const int32_t kisiZulu_SouthAfrica;
- static const int32_t kItalian_Italy;
- static const int32_t kItalian_Switzerland;
- static const int32_t kJapanese_Japan;
- static const int32_t kKannada_India;
- static const int32_t kKazakh_Kazakhstan;
- static const int32_t kKhmer_Cambodia;
- static const int32_t kKiche_Guatemala;
- static const int32_t kKinyarwanda_Rwanda;
- static const int32_t kKiswahili_Kenya;
- static const int32_t kKonkani_India;
- static const int32_t kKorean_Korea;
- static const int32_t kKyrgyz_Kyrgyzstan;
- static const int32_t kLao_LaoPDR;
- static const int32_t kLatvian_Latvia;
- static const int32_t kLithuanian_Lithuania;
- static const int32_t kLowerSorbian_Germany;
- static const int32_t kLuxembourgish_Luxembourg;
- static const int32_t kMacedonian_FYROM_FormerYugoslavRepublicOfMacedonia;
- static const int32_t kMalay_BruneiDarussalam;
- static const int32_t kMalay_Malaysia;
- static const int32_t kMalayalam_India;
- static const int32_t kMaltese_Malta;
- static const int32_t kMaori_NewZealand;
- static const int32_t kMapudungun_Chile;
- static const int32_t kMarathi_India;
- static const int32_t kMohawk_Mohawk;
- static const int32_t kMongolian_Cyrillic_Mongolia;
- static const int32_t kMongolian_Traditional_PeoplesRepublicOfChina;
- static const int32_t kNepali_Nepal;
- static const int32_t kNorwegian_Bokmal_Norway;
- static const int32_t kNorwegian_Nynorsk_Norway;
- static const int32_t kOccitan_France;
- static const int32_t kOriya_India;
- static const int32_t kPashto_Afghanistan;
- static const int32_t kPolish_Poland;
- static const int32_t kPortuguese_Brazil;
- static const int32_t kPortuguese_Portugal;
- static const int32_t kPunjabi_India;
- static const int32_t kQuechua_Bolivia;
- static const int32_t kQuechua_Ecuador;
- static const int32_t kQuechua_Peru;
- static const int32_t kRomanian_Romania;
- static const int32_t kRomansh_Switzerland;
- static const int32_t kRussian_Russia;
- static const int32_t kSami_Inari_Finland;
- static const int32_t kSami_Lule_Norway;
- static const int32_t kSami_Lule_Sweden;
- static const int32_t kSami_Northern_Finland;
- static const int32_t kSami_Northern_Norway;
- static const int32_t kSami_Northern_Sweden;
- static const int32_t kSami_Skolt_Finland;
- static const int32_t kSami_Southern_Norway;
- static const int32_t kSami_Southern_Sweden;
- static const int32_t kSanskrit_India;
- static const int32_t kSerbian_Cyrillic_BosniaAndHerzegovina;
- static const int32_t kSerbian_Cyrillic_Serbia;
- static const int32_t kSerbian_Latin_BosniaAndHerzegovina;
- static const int32_t kSerbian_Latin_Serbia;
- static const int32_t kSesothoSaLeboa_SouthAfrica;
- static const int32_t kSetswana_SouthAfrica;
- static const int32_t kSinhala_SriLanka;
- static const int32_t kSlovak_Slovakia;
- static const int32_t kSlovenian_Slovenia;
- static const int32_t kSpanish_Argentina;
- static const int32_t kSpanish_Bolivia;
- static const int32_t kSpanish_Chile;
- static const int32_t kSpanish_Colombia;
- static const int32_t kSpanish_CostaRica;
- static const int32_t kSpanish_DominicanRepublic;
- static const int32_t kSpanish_Ecuador;
- static const int32_t kSpanish_ElSalvador;
- static const int32_t kSpanish_Guatemala;
- static const int32_t kSpanish_Honduras;
- static const int32_t kSpanish_Mexico;
- static const int32_t kSpanish_Nicaragua;
- static const int32_t kSpanish_Panama;
- static const int32_t kSpanish_Paraguay;
- static const int32_t kSpanish_Peru;
- static const int32_t kSpanish_PuertoRico;
- static const int32_t kSpanish_ModernSort_Spain;
- static const int32_t kSpanish_TraditionalSort_Spain;
- static const int32_t kSpanish_UnitedStates;
- static const int32_t kSpanish_Uruguay;
- static const int32_t kSpanish_Venezuela;
- static const int32_t kSweden_Finland;
- static const int32_t kSwedish_Sweden;
- static const int32_t kSyriac_Syria;
- static const int32_t kTajik_Cyrillic_Tajikistan;
- static const int32_t kTamazight_Latin_Algeria;
- static const int32_t kTamil_India;
- static const int32_t kTatar_Russia;
- static const int32_t kTelugu_India;
- static const int32_t kThai_Thailand;
- static const int32_t kTibetan_PRC;
- static const int32_t kTurkish_Turkey;
- static const int32_t kTurkmen_Turkmenistan;
- static const int32_t kUighur_PRC;
- static const int32_t kUkrainian_Ukraine;
- static const int32_t kUpperSorbian_Germany;
- static const int32_t kUrdu_IslamicRepublicOfPakistan;
- static const int32_t kUzbek_Cyrillic_Uzbekistan;
- static const int32_t kUzbek_Latin_Uzbekistan;
- static const int32_t kVietnamese_Vietnam;
- static const int32_t kWelsh_UnitedKingdom;
- static const int32_t kWolof_Senegal;
- static const int32_t kYakut_Russia;
- static const int32_t kYi_PRC;
- static const int32_t kYoruba_Nigeria;
+ enum {
+ kUnknown = -1,
+ kAfrikaans_SouthAfrica = 0x0436,
+ kAlbanian_Albania = 0x041C,
+ kAlsatian_France = 0x0484,
+ kAmharic_Ethiopia = 0x045E,
+ kArabic_Algeria = 0x1401,
+ kArabic_Bahrain = 0x3C01,
+ kArabic_Egypt = 0x0C01,
+ kArabic_Iraq = 0x0801,
+ kArabic_Jordan = 0x2C01,
+ kArabic_Kuwait = 0x3401,
+ kArabic_Lebanon = 0x3001,
+ kArabic_Libya = 0x1001,
+ kArabic_Morocco = 0x1801,
+ kArabic_Oman = 0x2001,
+ kArabic_Qatar = 0x4001,
+ kArabic_SaudiArabia = 0x0401,
+ kArabic_Syria = 0x2801,
+ kArabic_Tunisia = 0x1C01,
+ kArabic_UAE = 0x3801,
+ kArabic_Yemen = 0x2401,
+ kArmenian_Armenia = 0x042B,
+ kAssamese_India = 0x044D,
+ kAzeri_Cyrillic_Azerbaijan = 0x082C,
+ kAzeri_Latin_Azerbaijan = 0x042C,
+ kBashkir_Russia = 0x046D,
+ kBasque_Basque = 0x042D,
+ kBelarusian_Belarus = 0x0423,
+ kBengali_Bangladesh = 0x0845,
+ kBengali_India = 0x0445,
+ kBosnian_Cyrillic_BosniaAndHerzegovina = 0x201A,
+ kBosnian_Latin_BosniaAndHerzegovina = 0x141A,
+ kBreton_France = 0x047E,
+ kBulgarian_Bulgaria = 0x0402,
+ kCatalan_Catalan = 0x0403,
+ kChinese_HongKongSAR = 0x0C04,
+ kChinese_MacaoSAR = 0x1404,
+ kChinese_PeoplesRepublicOfChina = 0x0804,
+ kChinese_Singapore = 0x1004,
+ kChinese_Taiwan = 0x0404,
+ kCorsican_France = 0x0483,
+ kCroatian_Croatia = 0x041A,
+ kCroatian_Latin_BosniaAndHerzegovina = 0x101A,
+ kCzech_CzechRepublic = 0x0405,
+ kDanish_Denmark = 0x0406,
+ kDari_Afghanistan = 0x048C,
+ kDivehi_Maldives = 0x0465,
+ kDutch_Belgium = 0x0813,
+ kDutch_Netherlands = 0x0413,
+ kEnglish_Australia = 0x0C09,
+ kEnglish_Belize = 0x2809,
+ kEnglish_Canada = 0x1009,
+ kEnglish_Caribbean = 0x2409,
+ kEnglish_India = 0x4009,
+ kEnglish_Ireland = 0x1809,
+ kEnglish_Jamaica = 0x2009,
+ kEnglish_Malaysia = 0x4409,
+ kEnglish_NewZealand = 0x1409,
+ kEnglish_RepublicOfThePhilippines = 0x3409,
+ kEnglish_Singapore = 0x4809,
+ kEnglish_SouthAfrica = 0x1C09,
+ kEnglish_TrinidadAndTobago = 0x2C09,
+ kEnglish_UnitedKingdom = 0x0809,
+ kEnglish_UnitedStates = 0x0409,
+ kEnglish_Zimbabwe = 0x3009,
+ kEstonian_Estonia = 0x0425,
+ kFaroese_FaroeIslands = 0x0438,
+ kFilipino_Philippines = 0x0464,
+ kFinnish_Finland = 0x040B,
+ kFrench_Belgium = 0x080C,
+ kFrench_Canada = 0x0C0C,
+ kFrench_France = 0x040C,
+ kFrench_Luxembourg = 0x140c,
+ kFrench_PrincipalityOfMonoco = 0x180C,
+ kFrench_Switzerland = 0x100C,
+ kFrisian_Netherlands = 0x0462,
+ kGalician_Galician = 0x0456,
+ kGeorgian_Georgia = 0x0437,
+ kGerman_Austria = 0x0C07,
+ kGerman_Germany = 0x0407,
+ kGerman_Liechtenstein = 0x1407,
+ kGerman_Luxembourg = 0x1007,
+ kGerman_Switzerland = 0x0807,
+ kGreek_Greece = 0x0408,
+ kGreenlandic_Greenland = 0x046F,
+ kGujarati_India = 0x0447,
+ kHausa_Latin_Nigeria = 0x0468,
+ kHebrew_Israel = 0x040D,
+ kHindi_India = 0x0439,
+ kHungarian_Hungary = 0x040E,
+ kIcelandic_Iceland = 0x040F,
+ kIgbo_Nigeria = 0x0470,
+ kIndonesian_Indonesia = 0x0421,
+ kInuktitut_Canada = 0x045D,
+ kInuktitut_Latin_Canada = 0x085D,
+ kIrish_Ireland = 0x083C,
+ kisiXhosa_SouthAfrica = 0x0434,
+ kisiZulu_SouthAfrica = 0x0435,
+ kItalian_Italy = 0x0410,
+ kItalian_Switzerland = 0x0810,
+ kJapanese_Japan = 0x0411,
+ kKannada_India = 0x044B,
+ kKazakh_Kazakhstan = 0x043F,
+ kKhmer_Cambodia = 0x0453,
+ kKiche_Guatemala = 0x0486,
+ kKinyarwanda_Rwanda = 0x0487,
+ kKiswahili_Kenya = 0x0441,
+ kKonkani_India = 0x0457,
+ kKorean_Korea = 0x0412,
+ kKyrgyz_Kyrgyzstan = 0x0440,
+ kLao_LaoPDR = 0x0454,
+ kLatvian_Latvia = 0x0426,
+ kLithuanian_Lithuania = 0x0427,
+ kLowerSorbian_Germany = 0x082E,
+ kLuxembourgish_Luxembourg = 0x046E,
+ kMacedonian_FYROM_FormerYugoslavRepublicOfMacedonia = 0x042F,
+ kMalay_BruneiDarussalam = 0x083E,
+ kMalay_Malaysia = 0x043E,
+ kMalayalam_India = 0x044C,
+ kMaltese_Malta = 0x043A,
+ kMaori_NewZealand = 0x0481,
+ kMapudungun_Chile = 0x047A,
+ kMarathi_India = 0x044E,
+ kMohawk_Mohawk = 0x047C,
+ kMongolian_Cyrillic_Mongolia = 0x0450,
+ kMongolian_Traditional_PeoplesRepublicOfChina = 0x0850,
+ kNepali_Nepal = 0x0461,
+ kNorwegian_Bokmal_Norway = 0x0414,
+ kNorwegian_Nynorsk_Norway = 0x0814,
+ kOccitan_France = 0x0482,
+ kOriya_India = 0x0448,
+ kPashto_Afghanistan = 0x0463,
+ kPolish_Poland = 0x0415,
+ kPortuguese_Brazil = 0x0416,
+ kPortuguese_Portugal = 0x0816,
+ kPunjabi_India = 0x0446,
+ kQuechua_Bolivia = 0x046B,
+ kQuechua_Ecuador = 0x086B,
+ kQuechua_Peru = 0x0C6B,
+ kRomanian_Romania = 0x0418,
+ kRomansh_Switzerland = 0x0417,
+ kRussian_Russia = 0x0419,
+ kSami_Inari_Finland = 0x243B,
+ kSami_Lule_Norway = 0x103B,
+ kSami_Lule_Sweden = 0x143B,
+ kSami_Northern_Finland = 0x0C3B,
+ kSami_Northern_Norway = 0x043B,
+ kSami_Northern_Sweden = 0x083B,
+ kSami_Skolt_Finland = 0x203B,
+ kSami_Southern_Norway = 0x183B,
+ kSami_Southern_Sweden = 0x1C3B,
+ kSanskrit_India = 0x044F,
+ kSerbian_Cyrillic_BosniaAndHerzegovina = 0x1C1A,
+ kSerbian_Cyrillic_Serbia = 0x0C1A,
+ kSerbian_Latin_BosniaAndHerzegovina = 0x181A,
+ kSerbian_Latin_Serbia = 0x081A,
+ kSesothoSaLeboa_SouthAfrica = 0x046C,
+ kSetswana_SouthAfrica = 0x0432,
+ kSinhala_SriLanka = 0x045B,
+ kSlovak_Slovakia = 0x041B,
+ kSlovenian_Slovenia = 0x0424,
+ kSpanish_Argentina = 0x2C0A,
+ kSpanish_Bolivia = 0x400A,
+ kSpanish_Chile = 0x340A,
+ kSpanish_Colombia = 0x240A,
+ kSpanish_CostaRica = 0x140A,
+ kSpanish_DominicanRepublic = 0x1C0A,
+ kSpanish_Ecuador = 0x300A,
+ kSpanish_ElSalvador = 0x440A,
+ kSpanish_Guatemala = 0x100A,
+ kSpanish_Honduras = 0x480A,
+ kSpanish_Mexico = 0x080A,
+ kSpanish_Nicaragua = 0x4C0A,
+ kSpanish_Panama = 0x180A,
+ kSpanish_Paraguay = 0x3C0A,
+ kSpanish_Peru = 0x280A,
+ kSpanish_PuertoRico = 0x500A,
+ kSpanish_ModernSort_Spain = 0x0C0A,
+ kSpanish_TraditionalSort_Spain = 0x040A,
+ kSpanish_UnitedStates = 0x540A,
+ kSpanish_Uruguay = 0x380A,
+ kSpanish_Venezuela = 0x200A,
+ kSweden_Finland = 0x081D,
+ kSwedish_Sweden = 0x041D,
+ kSyriac_Syria = 0x045A,
+ kTajik_Cyrillic_Tajikistan = 0x0428,
+ kTamazight_Latin_Algeria = 0x085F,
+ kTamil_India = 0x0449,
+ kTatar_Russia = 0x0444,
+ kTelugu_India = 0x044A,
+ kThai_Thailand = 0x041E,
+ kTibetan_PRC = 0x0451,
+ kTurkish_Turkey = 0x041F,
+ kTurkmen_Turkmenistan = 0x0442,
+ kUighur_PRC = 0x0480,
+ kUkrainian_Ukraine = 0x0422,
+ kUpperSorbian_Germany = 0x042E,
+ kUrdu_IslamicRepublicOfPakistan = 0x0420,
+ kUzbek_Cyrillic_Uzbekistan = 0x0843,
+ kUzbek_Latin_Uzbekistan = 0x0443,
+ kVietnamese_Vietnam = 0x042A,
+ kWelsh_UnitedKingdom = 0x0452,
+ kWolof_Senegal = 0x0448,
+ kYakut_Russia = 0x0485,
+ kYi_PRC = 0x0478,
+ kYoruba_Nigeria = 0x046A
+ };
};
class NameTable : public Table, public RefCounted<NameTable> {
private:
struct Offset {
- static const int32_t kFormat;
- static const int32_t kCount;
- static const int32_t kStringOffset;
- static const int32_t kNameRecordStart;
+ enum {
+ kFormat = 0,
+ kCount = 2,
+ kStringOffset = 4,
+ kNameRecordStart = 6,
- // format 1 - offset from the end of the name records
- static const int32_t kLangTagCount;
- static const int32_t kLangTagRecord;
-
- static const int32_t kNameRecordSize;
- // Name Records
- static const int32_t kNameRecordPlatformId;
- static const int32_t kNameRecordEncodingId;
- static const int32_t kNameRecordLanguageId;
- static const int32_t kNameRecordNameId;
- static const int32_t kNameRecordStringLength;
- static const int32_t kNameRecordStringOffset;
- };
+ // format 1 - offset from the end of the name records
+ kLangTagCount = 0,
+ kLangTagRecord = 2,
- struct NameId {
- static const int32_t kUnknown;
- static const int32_t kCopyrightNotice;
- static const int32_t kFontFamilyName;
- static const int32_t kFontSubfamilyName;
- static const int32_t kUniqueFontIdentifier;
- static const int32_t kFullFontName;
- static const int32_t kVersionString;
- static const int32_t kPostscriptName;
- static const int32_t kTrademark;
- static const int32_t kManufacturerName;
- static const int32_t kDesigner;
- static const int32_t kDescription;
- static const int32_t kVendorURL;
- static const int32_t kDesignerURL;
- static const int32_t kLicenseDescription;
- static const int32_t kLicenseInfoURL;
- static const int32_t kReserved15;
- static const int32_t kPreferredFamily;
- static const int32_t kPreferredSubfamily;
- static const int32_t kCompatibleFullName;
- static const int32_t kSampleText;
- static const int32_t kPostscriptCID;
- static const int32_t kWWSFamilyName;
- static const int32_t kWWSSubfamilyName;
+ kNameRecordSize = 12,
+ // Name Records
+ kNameRecordPlatformId = 0,
+ kNameRecordEncodingId = 2,
+ kNameRecordLanguageId = 4,
+ kNameRecordNameId = 6,
+ kNameRecordStringLength = 8,
+ kNameRecordStringOffset = 10
+ };
};
public:
diff --git a/cpp/src/sfntly/os2_table.cc b/cpp/src/sfntly/os2_table.cc
index 73d98cc..4e7189d 100644
--- a/cpp/src/sfntly/os2_table.cc
+++ b/cpp/src/sfntly/os2_table.cc
@@ -20,98 +20,6 @@ namespace sfntly {
/******************************************************************************
* Constants
******************************************************************************/
-const int32_t OS2Table::Offset::kVersion = 0;
-const int32_t OS2Table::Offset::kXAvgCharWidth = 2;
-const int32_t OS2Table::Offset::kUsWeightClass = 4;
-const int32_t OS2Table::Offset::kUsWidthClass = 6;
-const int32_t OS2Table::Offset::kFsType = 8;
-const int32_t OS2Table::Offset::kYSubscriptXSize = 10;
-const int32_t OS2Table::Offset::kYSubscriptYSize = 12;
-const int32_t OS2Table::Offset::kYSubscriptXOffset = 14;
-const int32_t OS2Table::Offset::kYSubscriptYOffset = 16;
-const int32_t OS2Table::Offset::kYSuperscriptXSize = 18;
-const int32_t OS2Table::Offset::kYSuperscriptYSize = 20;
-const int32_t OS2Table::Offset::kYSuperscriptXOffset = 22;
-const int32_t OS2Table::Offset::kYSuperscriptYOffset = 24;
-const int32_t OS2Table::Offset::kYStrikeoutSize = 26;
-const int32_t OS2Table::Offset::kYStrikeoutPosition = 28;
-const int32_t OS2Table::Offset::kSFamilyClass = 30;
-const int32_t OS2Table::Offset::kPanose = 32;
-const int32_t OS2Table::Offset::kUlUnicodeRange1 = 42;
-const int32_t OS2Table::Offset::kUlUnicodeRange2 = 46;
-const int32_t OS2Table::Offset::kUlUnicodeRange3 = 50;
-const int32_t OS2Table::Offset::kUlUnicodeRange4 = 54;
-const int32_t OS2Table::Offset::kAchVendId = 58;
-const int32_t OS2Table::Offset::kFsSelection = 62;
-const int32_t OS2Table::Offset::kUsFirstCharIndex = 64;
-const int32_t OS2Table::Offset::kUsLastCharIndex = 66;
-const int32_t OS2Table::Offset::kSTypoAscender = 68;
-const int32_t OS2Table::Offset::kSTypoDescender = 70;
-const int32_t OS2Table::Offset::kSTypoLineGap = 72;
-const int32_t OS2Table::Offset::kUsWinAscent = 74;
-const int32_t OS2Table::Offset::kUsWinDescent = 76;
-const int32_t OS2Table::Offset::kUlCodePageRange1 = 78;
-const int32_t OS2Table::Offset::kUlCodePageRange2 = 82;
-const int32_t OS2Table::Offset::kSxHeight = 86;
-const int32_t OS2Table::Offset::kSCapHeight = 88;
-const int32_t OS2Table::Offset::kUsDefaultChar = 90;
-const int32_t OS2Table::Offset::kUsBreakChar = 92;
-const int32_t OS2Table::Offset::kUsMaxContext = 94;
-
-const int32_t WeightClass::kThin = 100;
-const int32_t WeightClass::kExtraLight = 200;
-const int32_t WeightClass::kUltraLight = 200;
-const int32_t WeightClass::kLight = 300;
-const int32_t WeightClass::kNormal = 400;
-const int32_t WeightClass::kRegular = 400;
-const int32_t WeightClass::kMedium = 500;
-const int32_t WeightClass::kSemiBold = 600;
-const int32_t WeightClass::kDemiBold = 600;
-const int32_t WeightClass::kBold = 700;
-const int32_t WeightClass::kExtraBold = 800;
-const int32_t WeightClass::kUltraBold = 800;
-const int32_t WeightClass::kBlack = 900;
-const int32_t WeightClass::kHeavy = 900;
-
-const int32_t WidthClass::kUltraCondensed = 1;
-const int32_t WidthClass::kExtraCondensed = 2;
-const int32_t WidthClass::kCondensed = 3;
-const int32_t WidthClass::kSemiCondensed = 4;
-const int32_t WidthClass::kMedium = 5;
-const int32_t WidthClass::kNormal = 5;
-const int32_t WidthClass::kSemiExpanded = 6;
-const int32_t WidthClass::kExpanded = 7;
-const int32_t WidthClass::kExtraExpanded = 8;
-const int32_t WidthClass::kUltraExpanded = 9;
-
-const int32_t EmbeddingFlags::kReserved0 = 1 << 0;
-const int32_t EmbeddingFlags::kRestrictedLicenseEmbedding = 1 << 1;
-const int32_t EmbeddingFlags::kPreviewAndPrintEmbedding = 1 << 2;
-const int32_t EmbeddingFlags::kEditableEmbedding = 1 << 3;
-const int32_t EmbeddingFlags::kReserved4 = 1 << 4;
-const int32_t EmbeddingFlags::kReserved5 = 1 << 5;
-const int32_t EmbeddingFlags::kReserved6 = 1 << 6;
-const int32_t EmbeddingFlags::kReserved7 = 1 << 7;
-const int32_t EmbeddingFlags::kNoSubsetting = 1 << 8;
-const int32_t EmbeddingFlags::kBitmapEmbeddingOnly = 1 << 9;
-const int32_t EmbeddingFlags::kReserved10 = 1 << 10;
-const int32_t EmbeddingFlags::kReserved11 = 1 << 11;
-const int32_t EmbeddingFlags::kReserved12 = 1 << 12;
-const int32_t EmbeddingFlags::kReserved13 = 1 << 13;
-const int32_t EmbeddingFlags::kReserved14 = 1 << 14;
-const int32_t EmbeddingFlags::kReserved15 = 1 << 15;
-
-const int32_t FsSelection::kITALIC = 1 << 0;
-const int32_t FsSelection::kUNDERSCORE = 1 << 1;
-const int32_t FsSelection::kNEGATIVE = 1 << 2;
-const int32_t FsSelection::kOUTLINED = 1 << 3;
-const int32_t FsSelection::kSTRIKEOUT = 1 << 4;
-const int32_t FsSelection::kBOLD = 1 << 5;
-const int32_t FsSelection::kREGULAR = 1 << 6;
-const int32_t FsSelection::kUSE_TYPO_METRICS = 1 << 7;
-const int32_t FsSelection::kWWS = 1 << 8;
-const int32_t FsSelection::kOBLIQUE = 1 << 9;
-
const int64_t CodePageRange::kLatin1_1252 = (int64_t)1 << 0;
const int64_t CodePageRange::kLatin2_1250 = (int64_t)1 << (int64_t)1;
const int64_t CodePageRange::kCyrillic_1251 = (int64_t)1 << 2;
diff --git a/cpp/src/sfntly/os2_table.h b/cpp/src/sfntly/os2_table.h
index 88d4769..9bf33c2 100644
--- a/cpp/src/sfntly/os2_table.h
+++ b/cpp/src/sfntly/os2_table.h
@@ -23,56 +23,64 @@
namespace sfntly {
struct WeightClass {
- static const int32_t kThin;
- static const int32_t kExtraLight;
- static const int32_t kUltraLight;
- static const int32_t kLight;
- static const int32_t kNormal;
- static const int32_t kRegular;
- static const int32_t kMedium;
- static const int32_t kSemiBold;
- static const int32_t kDemiBold;
- static const int32_t kBold;
- static const int32_t kExtraBold;
- static const int32_t kUltraBold;
- static const int32_t kBlack;
- static const int32_t kHeavy;
+ enum {
+ kThin = 100,
+ kExtraLight = 200,
+ kUltraLight = 200,
+ kLight = 300,
+ kNormal = 400,
+ kRegular = 400,
+ kMedium = 500,
+ kSemiBold = 600,
+ kDemiBold = 600,
+ kBold = 700,
+ kExtraBold = 800,
+ kUltraBold = 800,
+ kBlack = 900,
+ kHeavy = 900
+ };
};
struct WidthClass {
- static const int32_t kUltraCondensed;
- static const int32_t kExtraCondensed;
- static const int32_t kCondensed;
- static const int32_t kSemiCondensed;
- static const int32_t kMedium;
- static const int32_t kNormal;
- static const int32_t kSemiExpanded;
- static const int32_t kExpanded;
- static const int32_t kExtraExpanded;
- static const int32_t kUltraExpanded;
+ enum {
+ kUltraCondensed = 1,
+ kExtraCondensed = 2,
+ kCondensed = 3,
+ kSemiCondensed = 4,
+ kMedium = 5,
+ kNormal = 5,
+ kSemiExpanded = 6,
+ kExpanded = 7,
+ kExtraExpanded = 8,
+ kUltraExpanded = 9
+ };
};
struct EmbeddingFlags {
- static const int32_t kReserved0;
- static const int32_t kRestrictedLicenseEmbedding;
- static const int32_t kPreviewAndPrintEmbedding;
- static const int32_t kEditableEmbedding;
- static const int32_t kReserved4;
- static const int32_t kReserved5;
- static const int32_t kReserved6;
- static const int32_t kReserved7;
- static const int32_t kNoSubsetting;
- static const int32_t kBitmapEmbeddingOnly;
- static const int32_t kReserved10;
- static const int32_t kReserved11;
- static const int32_t kReserved12;
- static const int32_t kReserved13;
- static const int32_t kReserved14;
- static const int32_t kReserved15;
+ enum {
+ kReserved0 = 1 << 0,
+ kRestrictedLicenseEmbedding = 1 << 1,
+ kPreviewAndPrintEmbedding = 1 << 2,
+ kEditableEmbedding = 1 << 3,
+ kReserved4 = 1 << 4,
+ kReserved5 = 1 << 5,
+ kReserved6 = 1 << 6,
+ kReserved7 = 1 << 7,
+ kNoSubsetting = 1 << 8,
+ kBitmapEmbeddingOnly = 1 << 9,
+ kReserved10 = 1 << 10,
+ kReserved11 = 1 << 11,
+ kReserved12 = 1 << 12,
+ kReserved13 = 1 << 13,
+ kReserved14 = 1 << 14,
+ kReserved15 = 1 << 15
+ };
};
struct UnicodeRange {
enum {
+ // This enum relies on the ordering of the data matching the ordinal numbers
+ // of the properties.
kBasicLatin,
kLatin1Supplement,
kLatinExtendedA,
@@ -208,18 +216,22 @@ struct UnicodeRange {
};
struct FsSelection {
- static const int32_t kITALIC;
- static const int32_t kUNDERSCORE;
- static const int32_t kNEGATIVE;
- static const int32_t kOUTLINED;
- static const int32_t kSTRIKEOUT;
- static const int32_t kBOLD;
- static const int32_t kREGULAR;
- static const int32_t kUSE_TYPO_METRICS;
- static const int32_t kWWS;
- static const int32_t kOBLIQUE;
+ enum {
+ kITALIC = 1 << 0,
+ kUNDERSCORE = 1 << 1,
+ kNEGATIVE = 1 << 2,
+ kOUTLINED = 1 << 3,
+ kSTRIKEOUT = 1 << 4,
+ kBOLD = 1 << 5,
+ kREGULAR = 1 << 6,
+ kUSE_TYPO_METRICS = 1 << 7,
+ kWWS = 1 << 8,
+ kOBLIQUE = 1 << 9
+ };
};
+// C++ port only: C++ does not support 64-bit enums until C++0x. For better
+// portability, we need to use static const int64_t instead.
struct CodePageRange {
static const int64_t kLatin1_1252;
static const int64_t kLatin2_1250;
@@ -290,43 +302,45 @@ struct CodePageRange {
class OS2Table : public Table, public RefCounted<OS2Table> {
private:
struct Offset {
- static const int32_t kVersion;
- static const int32_t kXAvgCharWidth;
- static const int32_t kUsWeightClass;
- static const int32_t kUsWidthClass;
- static const int32_t kFsType;
- static const int32_t kYSubscriptXSize;
- static const int32_t kYSubscriptYSize;
- static const int32_t kYSubscriptXOffset;
- static const int32_t kYSubscriptYOffset;
- static const int32_t kYSuperscriptXSize;
- static const int32_t kYSuperscriptYSize;
- static const int32_t kYSuperscriptXOffset;
- static const int32_t kYSuperscriptYOffset;
- static const int32_t kYStrikeoutSize;
- static const int32_t kYStrikeoutPosition;
- static const int32_t kSFamilyClass;
- static const int32_t kPanose;
- static const int32_t kUlUnicodeRange1;
- static const int32_t kUlUnicodeRange2;
- static const int32_t kUlUnicodeRange3;
- static const int32_t kUlUnicodeRange4;
- static const int32_t kAchVendId;
- static const int32_t kFsSelection;
- static const int32_t kUsFirstCharIndex;
- static const int32_t kUsLastCharIndex;
- static const int32_t kSTypoAscender;
- static const int32_t kSTypoDescender;
- static const int32_t kSTypoLineGap;
- static const int32_t kUsWinAscent;
- static const int32_t kUsWinDescent;
- static const int32_t kUlCodePageRange1;
- static const int32_t kUlCodePageRange2;
- static const int32_t kSxHeight;
- static const int32_t kSCapHeight;
- static const int32_t kUsDefaultChar;
- static const int32_t kUsBreakChar;
- static const int32_t kUsMaxContext;
+ enum {
+ kVersion = 0,
+ kXAvgCharWidth = 2,
+ kUsWeightClass = 4,
+ kUsWidthClass = 6,
+ kFsType = 8,
+ kYSubscriptXSize = 10,
+ kYSubscriptYSize = 12,
+ kYSubscriptXOffset = 14,
+ kYSubscriptYOffset = 16,
+ kYSuperscriptXSize = 18,
+ kYSuperscriptYSize = 20,
+ kYSuperscriptXOffset = 22,
+ kYSuperscriptYOffset = 24,
+ kYStrikeoutSize = 26,
+ kYStrikeoutPosition = 28,
+ kSFamilyClass = 30,
+ kPanose = 32,
+ kUlUnicodeRange1 = 42,
+ kUlUnicodeRange2 = 46,
+ kUlUnicodeRange3 = 50,
+ kUlUnicodeRange4 = 54,
+ kAchVendId = 58,
+ kFsSelection = 62,
+ kUsFirstCharIndex = 64,
+ kUsLastCharIndex = 66,
+ kSTypoAscender = 68,
+ kSTypoDescender = 70,
+ kSTypoLineGap = 72,
+ kUsWinAscent = 74,
+ kUsWinDescent = 76,
+ kUlCodePageRange1 = 78,
+ kUlCodePageRange2 = 82,
+ kSxHeight = 86,
+ kSCapHeight = 88,
+ kUsDefaultChar = 90,
+ kUsBreakChar = 92,
+ kUsMaxContext = 94
+ };
};
OS2Table(Header* header, ReadableFontData* data);