OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009 Apple Inc. | 2 * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009 Apple Inc. |
3 * All rights reserved. | 3 * All rights reserved. |
4 * | 4 * |
5 * This library is free software; you can redistribute it and/or | 5 * This library is free software; you can redistribute it and/or |
6 * modify it under the terms of the GNU Library General Public | 6 * modify it under the terms of the GNU Library General Public |
7 * License as published by the Free Software Foundation; either | 7 * License as published by the Free Software Foundation; either |
8 * version 2 of the License, or (at your option) any later version. | 8 * version 2 of the License, or (at your option) any later version. |
9 * | 9 * |
10 * This library is distributed in the hope that it will be useful, | 10 * This library is distributed in the hope that it will be useful, |
(...skipping 806 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
817 : bottom_ruby_base_leading; | 817 : bottom_ruby_base_leading; |
818 box_height -= (top_ruby_base_leading + bottom_ruby_base_leading); | 818 box_height -= (top_ruby_base_leading + bottom_ruby_base_leading); |
819 } | 819 } |
820 } | 820 } |
821 if (curr->IsInlineTextBox()) { | 821 if (curr->IsInlineTextBox()) { |
822 TextEmphasisPosition emphasis_mark_position; | 822 TextEmphasisPosition emphasis_mark_position; |
823 if (ToInlineTextBox(curr)->GetEmphasisMarkPosition( | 823 if (ToInlineTextBox(curr)->GetEmphasisMarkPosition( |
824 curr->GetLineLayoutItem().StyleRef(IsFirstLineStyle()), | 824 curr->GetLineLayoutItem().StyleRef(IsFirstLineStyle()), |
825 emphasis_mark_position)) { | 825 emphasis_mark_position)) { |
826 bool emphasis_mark_is_over = | 826 bool emphasis_mark_is_over = |
827 emphasis_mark_position == kTextEmphasisPositionOver; | 827 emphasis_mark_position == TextEmphasisPosition::kOver; |
828 if (emphasis_mark_is_over != curr->GetLineLayoutItem() | 828 if (emphasis_mark_is_over != curr->GetLineLayoutItem() |
829 .Style(IsFirstLineStyle()) | 829 .Style(IsFirstLineStyle()) |
830 ->IsFlippedLinesWritingMode()) | 830 ->IsFlippedLinesWritingMode()) |
831 has_annotations_before = true; | 831 has_annotations_before = true; |
832 else | 832 else |
833 has_annotations_after = true; | 833 has_annotations_after = true; |
834 } | 834 } |
835 } | 835 } |
836 | 836 |
837 if (!set_line_top) { | 837 if (!set_line_top) { |
(...skipping 206 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1044 float top_glyph_overflow = -stroke_overflow - top_glyph_edge; | 1044 float top_glyph_overflow = -stroke_overflow - top_glyph_edge; |
1045 float bottom_glyph_overflow = stroke_overflow + bottom_glyph_edge; | 1045 float bottom_glyph_overflow = stroke_overflow + bottom_glyph_edge; |
1046 float left_glyph_overflow = -stroke_overflow - left_glyph_edge; | 1046 float left_glyph_overflow = -stroke_overflow - left_glyph_edge; |
1047 float right_glyph_overflow = stroke_overflow + right_glyph_edge; | 1047 float right_glyph_overflow = stroke_overflow + right_glyph_edge; |
1048 | 1048 |
1049 TextEmphasisPosition emphasis_mark_position; | 1049 TextEmphasisPosition emphasis_mark_position; |
1050 if (style.GetTextEmphasisMark() != kTextEmphasisMarkNone && | 1050 if (style.GetTextEmphasisMark() != kTextEmphasisMarkNone && |
1051 text_box->GetEmphasisMarkPosition(style, emphasis_mark_position)) { | 1051 text_box->GetEmphasisMarkPosition(style, emphasis_mark_position)) { |
1052 float emphasis_mark_height = | 1052 float emphasis_mark_height = |
1053 style.GetFont().EmphasisMarkHeight(style.TextEmphasisMarkString()); | 1053 style.GetFont().EmphasisMarkHeight(style.TextEmphasisMarkString()); |
1054 if ((emphasis_mark_position == kTextEmphasisPositionOver) == | 1054 if ((emphasis_mark_position == TextEmphasisPosition::kOver) == |
1055 (!style.IsFlippedLinesWritingMode())) | 1055 (!style.IsFlippedLinesWritingMode())) |
1056 top_glyph_overflow = std::min(top_glyph_overflow, -emphasis_mark_height); | 1056 top_glyph_overflow = std::min(top_glyph_overflow, -emphasis_mark_height); |
1057 else | 1057 else |
1058 bottom_glyph_overflow = | 1058 bottom_glyph_overflow = |
1059 std::max(bottom_glyph_overflow, emphasis_mark_height); | 1059 std::max(bottom_glyph_overflow, emphasis_mark_height); |
1060 } | 1060 } |
1061 | 1061 |
1062 // If letter-spacing is negative, we should factor that into right layout | 1062 // If letter-spacing is negative, we should factor that into right layout |
1063 // overflow. Even in RTL, letter-spacing is applied to the right, so this is | 1063 // overflow. Even in RTL, letter-spacing is applied to the right, so this is |
1064 // not an issue with left overflow. | 1064 // not an issue with left overflow. |
(...skipping 477 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1542 } | 1542 } |
1543 } | 1543 } |
1544 | 1544 |
1545 if (curr->IsInlineTextBox()) { | 1545 if (curr->IsInlineTextBox()) { |
1546 const ComputedStyle& style = | 1546 const ComputedStyle& style = |
1547 curr->GetLineLayoutItem().StyleRef(IsFirstLineStyle()); | 1547 curr->GetLineLayoutItem().StyleRef(IsFirstLineStyle()); |
1548 TextEmphasisPosition emphasis_mark_position; | 1548 TextEmphasisPosition emphasis_mark_position; |
1549 if (style.GetTextEmphasisMark() != kTextEmphasisMarkNone && | 1549 if (style.GetTextEmphasisMark() != kTextEmphasisMarkNone && |
1550 ToInlineTextBox(curr)->GetEmphasisMarkPosition( | 1550 ToInlineTextBox(curr)->GetEmphasisMarkPosition( |
1551 style, emphasis_mark_position) && | 1551 style, emphasis_mark_position) && |
1552 emphasis_mark_position == kTextEmphasisPositionOver) { | 1552 emphasis_mark_position == TextEmphasisPosition::kOver) { |
1553 if (!style.IsFlippedLinesWritingMode()) { | 1553 if (!style.IsFlippedLinesWritingMode()) { |
1554 int top_of_emphasis_mark = | 1554 int top_of_emphasis_mark = |
1555 (curr->LogicalTop() - style.GetFont().EmphasisMarkHeight( | 1555 (curr->LogicalTop() - style.GetFont().EmphasisMarkHeight( |
1556 style.TextEmphasisMarkString())) | 1556 style.TextEmphasisMarkString())) |
1557 .ToInt(); | 1557 .ToInt(); |
1558 result = std::max(result, allowed_position - top_of_emphasis_mark); | 1558 result = std::max(result, allowed_position - top_of_emphasis_mark); |
1559 } else { | 1559 } else { |
1560 int bottom_of_emphasis_mark = | 1560 int bottom_of_emphasis_mark = |
1561 (curr->LogicalBottom() + style.GetFont().EmphasisMarkHeight( | 1561 (curr->LogicalBottom() + style.GetFont().EmphasisMarkHeight( |
1562 style.TextEmphasisMarkString())) | 1562 style.TextEmphasisMarkString())) |
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1610 bottom_of_last_ruby_text_line += curr->LogicalTop(); | 1610 bottom_of_last_ruby_text_line += curr->LogicalTop(); |
1611 result = | 1611 result = |
1612 std::max(result, bottom_of_last_ruby_text_line - allowed_position); | 1612 std::max(result, bottom_of_last_ruby_text_line - allowed_position); |
1613 } | 1613 } |
1614 } | 1614 } |
1615 | 1615 |
1616 if (curr->IsInlineTextBox()) { | 1616 if (curr->IsInlineTextBox()) { |
1617 const ComputedStyle& style = | 1617 const ComputedStyle& style = |
1618 curr->GetLineLayoutItem().StyleRef(IsFirstLineStyle()); | 1618 curr->GetLineLayoutItem().StyleRef(IsFirstLineStyle()); |
1619 if (style.GetTextEmphasisMark() != kTextEmphasisMarkNone && | 1619 if (style.GetTextEmphasisMark() != kTextEmphasisMarkNone && |
1620 style.GetTextEmphasisPosition() == kTextEmphasisPositionUnder) { | 1620 style.GetTextEmphasisPosition() == TextEmphasisPosition::kUnder) { |
1621 if (!style.IsFlippedLinesWritingMode()) { | 1621 if (!style.IsFlippedLinesWritingMode()) { |
1622 LayoutUnit bottom_of_emphasis_mark = | 1622 LayoutUnit bottom_of_emphasis_mark = |
1623 curr->LogicalBottom() + style.GetFont().EmphasisMarkHeight( | 1623 curr->LogicalBottom() + style.GetFont().EmphasisMarkHeight( |
1624 style.TextEmphasisMarkString()); | 1624 style.TextEmphasisMarkString()); |
1625 result = std::max(result, bottom_of_emphasis_mark - allowed_position); | 1625 result = std::max(result, bottom_of_emphasis_mark - allowed_position); |
1626 } else { | 1626 } else { |
1627 LayoutUnit top_of_emphasis_mark = | 1627 LayoutUnit top_of_emphasis_mark = |
1628 curr->LogicalTop() - style.GetFont().EmphasisMarkHeight( | 1628 curr->LogicalTop() - style.GetFont().EmphasisMarkHeight( |
1629 style.TextEmphasisMarkString()); | 1629 style.TextEmphasisMarkString()); |
1630 result = std::max(result, allowed_position - top_of_emphasis_mark); | 1630 result = std::max(result, allowed_position - top_of_emphasis_mark); |
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1707 InlineBox::ShowLineTreeAndMark(marked_box1, marked_label1, marked_box2, | 1707 InlineBox::ShowLineTreeAndMark(marked_box1, marked_label1, marked_box2, |
1708 marked_label2, obj, depth); | 1708 marked_label2, obj, depth); |
1709 for (const InlineBox* box = FirstChild(); box; box = box->NextOnLine()) | 1709 for (const InlineBox* box = FirstChild(); box; box = box->NextOnLine()) |
1710 box->ShowLineTreeAndMark(marked_box1, marked_label1, marked_box2, | 1710 box->ShowLineTreeAndMark(marked_box1, marked_label1, marked_box2, |
1711 marked_label2, obj, depth + 1); | 1711 marked_label2, obj, depth + 1); |
1712 } | 1712 } |
1713 | 1713 |
1714 #endif | 1714 #endif |
1715 | 1715 |
1716 } // namespace blink | 1716 } // namespace blink |
OLD | NEW |