Line data Source code
1 : /*
2 : * Copyright 2011 Google Inc. All Rights Reserved.
3 : *
4 : * Licensed under the Apache License, Version 2.0 (the "License");
5 : * you may not use this file except in compliance with the License.
6 : * You may obtain a copy of the License at
7 : *
8 : * http://www.apache.org/licenses/LICENSE-2.0
9 : *
10 : * Unless required by applicable law or agreed to in writing, software
11 : * distributed under the License is distributed on an "AS IS" BASIS,
12 : * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 : * See the License for the specific language governing permissions and
14 : * limitations under the License.
15 : */
16 :
17 : #include "sfntly/table/core/horizontal_header_table.h"
18 :
19 : namespace sfntly {
20 : /******************************************************************************
21 : * HorizontalHeaderTable class
22 : ******************************************************************************/
23 0 : HorizontalHeaderTable:: ~HorizontalHeaderTable() {}
24 :
25 0 : int32_t HorizontalHeaderTable::TableVersion() {
26 0 : return data_->ReadFixed(Offset::kVersion);
27 : }
28 :
29 0 : int32_t HorizontalHeaderTable::Ascender() {
30 0 : return data_->ReadShort(Offset::kAscender);
31 : }
32 :
33 0 : int32_t HorizontalHeaderTable::Descender() {
34 0 : return data_->ReadShort(Offset::kDescender);
35 : }
36 :
37 0 : int32_t HorizontalHeaderTable::LineGap() {
38 0 : return data_->ReadShort(Offset::kLineGap);
39 : }
40 :
41 0 : int32_t HorizontalHeaderTable::AdvanceWidthMax() {
42 0 : return data_->ReadUShort(Offset::kAdvanceWidthMax);
43 : }
44 :
45 0 : int32_t HorizontalHeaderTable::MinLeftSideBearing() {
46 0 : return data_->ReadShort(Offset::kMinLeftSideBearing);
47 : }
48 :
49 0 : int32_t HorizontalHeaderTable::MinRightSideBearing() {
50 0 : return data_->ReadShort(Offset::kMinRightSideBearing);
51 : }
52 :
53 0 : int32_t HorizontalHeaderTable::XMaxExtent() {
54 0 : return data_->ReadShort(Offset::kXMaxExtent);
55 : }
56 :
57 0 : int32_t HorizontalHeaderTable::CaretSlopeRise() {
58 0 : return data_->ReadShort(Offset::kCaretSlopeRise);
59 : }
60 :
61 0 : int32_t HorizontalHeaderTable::CaretSlopeRun() {
62 0 : return data_->ReadShort(Offset::kCaretSlopeRun);
63 : }
64 :
65 0 : int32_t HorizontalHeaderTable::CaretOffset() {
66 0 : return data_->ReadShort(Offset::kCaretOffset);
67 : }
68 :
69 0 : int32_t HorizontalHeaderTable::MetricDataFormat() {
70 0 : return data_->ReadShort(Offset::kMetricDataFormat);
71 : }
72 :
73 0 : int32_t HorizontalHeaderTable::NumberOfHMetrics() {
74 0 : return data_->ReadUShort(Offset::kNumberOfHMetrics);
75 : }
76 :
77 0 : HorizontalHeaderTable:: HorizontalHeaderTable(Header* header,
78 0 : ReadableFontData* data)
79 0 : : Table(header, data) {
80 0 : }
81 :
82 : /******************************************************************************
83 : * HorizontalHeaderTable::Builder class
84 : ******************************************************************************/
85 0 : HorizontalHeaderTable::Builder::Builder(Header* header, WritableFontData* data)
86 0 : : TableBasedTableBuilder(header, data) {
87 0 : }
88 :
89 0 : HorizontalHeaderTable::Builder::Builder(Header* header, ReadableFontData* data)
90 0 : : TableBasedTableBuilder(header, data) {
91 0 : }
92 :
93 0 : HorizontalHeaderTable::Builder::~Builder() {}
94 :
95 : CALLER_ATTACH FontDataTable*
96 0 : HorizontalHeaderTable::Builder::SubBuildTable(ReadableFontData* data) {
97 0 : FontDataTablePtr table = new HorizontalHeaderTable(header(), data);
98 0 : return table.Detach();
99 : }
100 :
101 : CALLER_ATTACH HorizontalHeaderTable::Builder*
102 0 : HorizontalHeaderTable::Builder::CreateBuilder(Header* header,
103 : WritableFontData* data) {
104 0 : Ptr<HorizontalHeaderTable::Builder> builder;
105 0 : builder = new HorizontalHeaderTable::Builder(header, data);
106 0 : return builder.Detach();
107 : }
108 :
109 0 : int32_t HorizontalHeaderTable::Builder::TableVersion() {
110 0 : return InternalReadData()->ReadFixed(Offset::kVersion);
111 : }
112 :
113 0 : void HorizontalHeaderTable::Builder::SetTableVersion(int32_t version) {
114 0 : InternalWriteData()->WriteFixed(Offset::kVersion, version);
115 0 : }
116 :
117 0 : int32_t HorizontalHeaderTable::Builder::Ascender() {
118 0 : return InternalReadData()->ReadShort(Offset::kAscender);
119 : }
120 :
121 0 : void HorizontalHeaderTable::Builder::SetAscender(int32_t ascender) {
122 0 : InternalWriteData()->WriteShort(Offset::kVersion, ascender);
123 0 : }
124 :
125 0 : int32_t HorizontalHeaderTable::Builder::Descender() {
126 0 : return InternalReadData()->ReadShort(Offset::kDescender);
127 : }
128 :
129 0 : void HorizontalHeaderTable::Builder::SetDescender(int32_t descender) {
130 0 : InternalWriteData()->WriteShort(Offset::kDescender, descender);
131 0 : }
132 :
133 0 : int32_t HorizontalHeaderTable::Builder::LineGap() {
134 0 : return InternalReadData()->ReadShort(Offset::kLineGap);
135 : }
136 :
137 0 : void HorizontalHeaderTable::Builder::SetLineGap(int32_t line_gap) {
138 0 : InternalWriteData()->WriteShort(Offset::kLineGap, line_gap);
139 0 : }
140 :
141 0 : int32_t HorizontalHeaderTable::Builder::AdvanceWidthMax() {
142 0 : return InternalReadData()->ReadUShort(Offset::kAdvanceWidthMax);
143 : }
144 :
145 0 : void HorizontalHeaderTable::Builder::SetAdvanceWidthMax(int32_t value) {
146 0 : InternalWriteData()->WriteUShort(Offset::kAdvanceWidthMax, value);
147 0 : }
148 :
149 0 : int32_t HorizontalHeaderTable::Builder::MinLeftSideBearing() {
150 0 : return InternalReadData()->ReadShort(Offset::kMinLeftSideBearing);
151 : }
152 :
153 0 : void HorizontalHeaderTable::Builder::SetMinLeftSideBearing(int32_t value) {
154 0 : InternalWriteData()->WriteShort(Offset::kMinLeftSideBearing, value);
155 0 : }
156 :
157 0 : int32_t HorizontalHeaderTable::Builder::MinRightSideBearing() {
158 0 : return InternalReadData()->ReadShort(Offset::kMinRightSideBearing);
159 : }
160 :
161 0 : void HorizontalHeaderTable::Builder::SetMinRightSideBearing(int32_t value) {
162 0 : InternalWriteData()->WriteShort(Offset::kMinRightSideBearing, value);
163 0 : }
164 :
165 0 : int32_t HorizontalHeaderTable::Builder::XMaxExtent() {
166 0 : return InternalReadData()->ReadShort(Offset::kXMaxExtent);
167 : }
168 :
169 0 : void HorizontalHeaderTable::Builder::SetXMaxExtent(int32_t value) {
170 0 : InternalWriteData()->WriteShort(Offset::kXMaxExtent, value);
171 0 : }
172 :
173 0 : int32_t HorizontalHeaderTable::Builder::CaretSlopeRise() {
174 0 : return InternalReadData()->ReadUShort(Offset::kCaretSlopeRise);
175 : }
176 :
177 0 : void HorizontalHeaderTable::Builder::SetCaretSlopeRise(int32_t value) {
178 0 : InternalWriteData()->WriteUShort(Offset::kCaretSlopeRise, value);
179 0 : }
180 :
181 0 : int32_t HorizontalHeaderTable::Builder::CaretSlopeRun() {
182 0 : return InternalReadData()->ReadUShort(Offset::kCaretSlopeRun);
183 : }
184 :
185 0 : void HorizontalHeaderTable::Builder::SetCaretSlopeRun(int32_t value) {
186 0 : InternalWriteData()->WriteUShort(Offset::kCaretSlopeRun, value);
187 0 : }
188 :
189 0 : int32_t HorizontalHeaderTable::Builder::CaretOffset() {
190 0 : return InternalReadData()->ReadUShort(Offset::kCaretOffset);
191 : }
192 :
193 0 : void HorizontalHeaderTable::Builder::SetCaretOffset(int32_t value) {
194 0 : InternalWriteData()->WriteUShort(Offset::kCaretOffset, value);
195 0 : }
196 :
197 0 : int32_t HorizontalHeaderTable::Builder::MetricDataFormat() {
198 0 : return InternalReadData()->ReadUShort(Offset::kMetricDataFormat);
199 : }
200 :
201 0 : void HorizontalHeaderTable::Builder::SetMetricDataFormat(int32_t value) {
202 0 : InternalWriteData()->WriteUShort(Offset::kMetricDataFormat, value);
203 0 : }
204 :
205 0 : int32_t HorizontalHeaderTable::Builder::NumberOfHMetrics() {
206 0 : return InternalReadData()->ReadUShort(Offset::kNumberOfHMetrics);
207 : }
208 :
209 0 : void HorizontalHeaderTable::Builder::SetNumberOfHMetrics(int32_t value) {
210 0 : InternalWriteData()->WriteUShort(Offset::kNumberOfHMetrics, value);
211 0 : }
212 :
213 : } // namespace sfntly
|