OLD | NEW |
1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "core/layout/ng/ng_units.h" | 5 #include "core/layout/ng/ng_units.h" |
6 | 6 |
7 namespace blink { | 7 namespace blink { |
8 | 8 |
9 LayoutUnit MinAndMaxContentSizes::ShrinkToFit(LayoutUnit available_size) const { | 9 LayoutUnit MinAndMaxContentSizes::ShrinkToFit(LayoutUnit available_size) const { |
10 DCHECK_GE(max_content, min_content); | 10 DCHECK_GE(max_content, min_content); |
(...skipping 188 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
199 break; | 199 break; |
200 case kSidewaysLeftRight: | 200 case kSidewaysLeftRight: |
201 strut = {bottom, top, left, right}; | 201 strut = {bottom, top, left, right}; |
202 break; | 202 break; |
203 } | 203 } |
204 if (direction == TextDirection::kRtl) | 204 if (direction == TextDirection::kRtl) |
205 std::swap(strut.inline_start, strut.inline_end); | 205 std::swap(strut.inline_start, strut.inline_end); |
206 return strut; | 206 return strut; |
207 } | 207 } |
208 | 208 |
209 LayoutUnit NGDeprecatedMarginStrut::BlockEndSum() const { | 209 LayoutUnit NGMarginStrut::Sum() const { |
210 return margin_block_end + negative_margin_block_end; | 210 return margin + negative_margin; |
211 } | 211 } |
212 | 212 |
213 void NGDeprecatedMarginStrut::AppendMarginBlockStart(const LayoutUnit& value) { | 213 bool NGMarginStrut::operator==(const NGMarginStrut& other) const { |
214 if (value < 0) { | 214 return margin == other.margin && negative_margin == other.negative_margin; |
215 negative_margin_block_start = | |
216 -std::max(value.abs(), negative_margin_block_start.abs()); | |
217 } else { | |
218 margin_block_start = std::max(value, margin_block_start); | |
219 } | |
220 } | |
221 | |
222 void NGDeprecatedMarginStrut::AppendMarginBlockEnd(const LayoutUnit& value) { | |
223 if (value < 0) { | |
224 negative_margin_block_end = | |
225 -std::max(value.abs(), negative_margin_block_end.abs()); | |
226 } else { | |
227 margin_block_end = std::max(value, margin_block_end); | |
228 } | |
229 } | |
230 | |
231 void NGDeprecatedMarginStrut::SetMarginBlockStart(const LayoutUnit& value) { | |
232 if (value < 0) { | |
233 negative_margin_block_start = value; | |
234 } else { | |
235 margin_block_start = value; | |
236 } | |
237 } | |
238 | |
239 void NGDeprecatedMarginStrut::SetMarginBlockEnd(const LayoutUnit& value) { | |
240 if (value < 0) { | |
241 negative_margin_block_end = value; | |
242 } else { | |
243 margin_block_end = value; | |
244 } | |
245 } | |
246 | |
247 String NGDeprecatedMarginStrut::ToString() const { | |
248 return String::format("Start: (%d %d) End: (%d %d)", | |
249 margin_block_start.toInt(), margin_block_end.toInt(), | |
250 negative_margin_block_start.toInt(), | |
251 negative_margin_block_end.toInt()); | |
252 } | |
253 | |
254 bool NGDeprecatedMarginStrut::IsEmpty() const { | |
255 return *this == NGDeprecatedMarginStrut(); | |
256 } | |
257 | |
258 bool NGDeprecatedMarginStrut::operator==( | |
259 const NGDeprecatedMarginStrut& other) const { | |
260 return std::tie(other.margin_block_start, other.margin_block_end, | |
261 other.negative_margin_block_start, | |
262 other.negative_margin_block_end) == | |
263 std::tie(margin_block_start, margin_block_end, | |
264 negative_margin_block_start, negative_margin_block_end); | |
265 } | 215 } |
266 | 216 |
267 void NGMarginStrut::Append(const LayoutUnit& value) { | 217 void NGMarginStrut::Append(const LayoutUnit& value) { |
268 if (value < 0) { | 218 if (value < 0) { |
269 negative_margin = std::min(value, negative_margin); | 219 negative_margin = std::min(value, negative_margin); |
270 } else { | 220 } else { |
271 margin = std::max(value, margin); | 221 margin = std::max(value, margin); |
272 } | 222 } |
273 } | 223 } |
274 | 224 |
275 LayoutUnit NGMarginStrut::Collapse() const { | |
276 return margin + negative_margin; | |
277 } | |
278 | |
279 String NGMarginStrut::ToString() const { | 225 String NGMarginStrut::ToString() const { |
280 return String::format("%d %d", margin.toInt(), negative_margin.toInt()); | 226 return String::format("%d %d", margin.toInt(), negative_margin.toInt()); |
281 } | 227 } |
282 | 228 |
283 bool NGMarginStrut::operator==(const NGMarginStrut& other) const { | |
284 return std::tie(other.margin, other.negative_margin) == | |
285 std::tie(margin, negative_margin); | |
286 } | |
287 | |
288 bool NGExclusion::operator==(const NGExclusion& other) const { | 229 bool NGExclusion::operator==(const NGExclusion& other) const { |
289 return std::tie(other.rect, other.type) == std::tie(rect, type); | 230 return std::tie(other.rect, other.type) == std::tie(rect, type); |
290 } | 231 } |
291 | 232 |
292 String NGExclusion::ToString() const { | 233 String NGExclusion::ToString() const { |
293 return String::format("Rect: %s Type: %d", rect.ToString().ascii().data(), | 234 return String::format("Rect: %s Type: %d", rect.ToString().ascii().data(), |
294 type); | 235 type); |
295 } | 236 } |
296 | 237 |
297 NGExclusions::NGExclusions() | 238 NGExclusions::NGExclusions() |
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
340 break; | 281 break; |
341 case kSidewaysLeftRight: | 282 case kSidewaysLeftRight: |
342 position.type = | 283 position.type = |
343 (direction == TextDirection::kLtr) ? kBottomLeft : kTopLeft; | 284 (direction == TextDirection::kLtr) ? kBottomLeft : kTopLeft; |
344 break; | 285 break; |
345 } | 286 } |
346 return position; | 287 return position; |
347 } | 288 } |
348 | 289 |
349 } // namespace blink | 290 } // namespace blink |
OLD | NEW |