Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(663)

Side by Side Diff: third_party/WebKit/Source/core/layout/LayoutTextControl.cpp

Issue 2405633002: Reformat comments in core/layout (Closed)
Patch Set: Created 4 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 /** 1 /**
2 * Copyright (C) 2006, 2007 Apple Inc. All rights reserved. 2 * Copyright (C) 2006, 2007 Apple Inc. All rights reserved.
3 * (C) 2008 Torch Mobile Inc. All rights reserved. (http://www.torchmo bile.com/) 3 * (C) 2008 Torch Mobile Inc. All rights reserved.
4 * (http://www.torchmobile.com/)
4 * 5 *
5 * This library is free software; you can redistribute it and/or 6 * This library is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU Library General Public 7 * modify it under the terms of the GNU Library General Public
7 * License as published by the Free Software Foundation; either 8 * License as published by the Free Software Foundation; either
8 * version 2 of the License, or (at your option) any later version. 9 * version 2 of the License, or (at your option) any later version.
9 * 10 *
10 * This library is distributed in the hope that it will be useful, 11 * This library is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 * Library General Public License for more details. 14 * Library General Public License for more details.
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
66 67
67 static inline void updateUserModifyProperty(HTMLTextFormControlElement& node, 68 static inline void updateUserModifyProperty(HTMLTextFormControlElement& node,
68 ComputedStyle& style) { 69 ComputedStyle& style) {
69 style.setUserModify(node.isDisabledOrReadOnly() ? READ_ONLY 70 style.setUserModify(node.isDisabledOrReadOnly() ? READ_ONLY
70 : READ_WRITE_PLAINTEXT_ONLY); 71 : READ_WRITE_PLAINTEXT_ONLY);
71 } 72 }
72 73
73 void LayoutTextControl::adjustInnerEditorStyle( 74 void LayoutTextControl::adjustInnerEditorStyle(
74 ComputedStyle& textBlockStyle) const { 75 ComputedStyle& textBlockStyle) const {
75 // The inner block, if present, always has its direction set to LTR, 76 // The inner block, if present, always has its direction set to LTR,
76 // so we need to inherit the direction and unicode-bidi style from the element . 77 // so we need to inherit the direction and unicode-bidi style from the
78 // element.
77 textBlockStyle.setDirection(style()->direction()); 79 textBlockStyle.setDirection(style()->direction());
78 textBlockStyle.setUnicodeBidi(style()->unicodeBidi()); 80 textBlockStyle.setUnicodeBidi(style()->unicodeBidi());
79 81
80 updateUserModifyProperty(*textFormControlElement(), textBlockStyle); 82 updateUserModifyProperty(*textFormControlElement(), textBlockStyle);
81 } 83 }
82 84
83 int LayoutTextControl::textBlockLogicalHeight() const { 85 int LayoutTextControl::textBlockLogicalHeight() const {
84 return (logicalHeight() - borderAndPaddingLogicalHeight()).toInt(); 86 return (logicalHeight() - borderAndPaddingLogicalHeight()).toInt();
85 } 87 }
86 88
(...skipping 10 matching lines...) Expand all
97 } 99 }
98 100
99 void LayoutTextControl::updateFromElement() { 101 void LayoutTextControl::updateFromElement() {
100 Element* innerEditor = innerEditorElement(); 102 Element* innerEditor = innerEditorElement();
101 if (innerEditor && innerEditor->layoutObject()) 103 if (innerEditor && innerEditor->layoutObject())
102 updateUserModifyProperty(*textFormControlElement(), 104 updateUserModifyProperty(*textFormControlElement(),
103 innerEditor->layoutObject()->mutableStyleRef()); 105 innerEditor->layoutObject()->mutableStyleRef());
104 } 106 }
105 107
106 int LayoutTextControl::scrollbarThickness() const { 108 int LayoutTextControl::scrollbarThickness() const {
107 // FIXME: We should get the size of the scrollbar from the LayoutTheme instead . 109 // FIXME: We should get the size of the scrollbar from the LayoutTheme
110 // instead.
108 return ScrollbarTheme::theme().scrollbarThickness(); 111 return ScrollbarTheme::theme().scrollbarThickness();
109 } 112 }
110 113
111 void LayoutTextControl::computeLogicalHeight( 114 void LayoutTextControl::computeLogicalHeight(
112 LayoutUnit logicalHeight, 115 LayoutUnit logicalHeight,
113 LayoutUnit logicalTop, 116 LayoutUnit logicalTop,
114 LogicalExtentComputedValues& computedValues) const { 117 LogicalExtentComputedValues& computedValues) const {
115 HTMLElement* innerEditor = innerEditorElement(); 118 HTMLElement* innerEditor = innerEditorElement();
116 ASSERT(innerEditor); 119 ASSERT(innerEditor);
117 if (LayoutBox* innerEditorBox = innerEditor->layoutBox()) { 120 if (LayoutBox* innerEditorBox = innerEditor->layoutBox()) {
118 LayoutUnit nonContentHeight = innerEditorBox->borderAndPaddingHeight() + 121 LayoutUnit nonContentHeight = innerEditorBox->borderAndPaddingHeight() +
119 innerEditorBox->marginHeight(); 122 innerEditorBox->marginHeight();
120 logicalHeight = computeControlLogicalHeight( 123 logicalHeight = computeControlLogicalHeight(
121 innerEditorBox->lineHeight(true, HorizontalLine, 124 innerEditorBox->lineHeight(true, HorizontalLine,
122 PositionOfInteriorLineBoxes), 125 PositionOfInteriorLineBoxes),
123 nonContentHeight); 126 nonContentHeight);
124 127
125 // We are able to have a horizontal scrollbar if the overflow style is scrol l, or if its auto and there's no word wrap. 128 // We are able to have a horizontal scrollbar if the overflow style is
129 // scroll, or if its auto and there's no word wrap.
126 if (style()->overflowInlineDirection() == OverflowScroll || 130 if (style()->overflowInlineDirection() == OverflowScroll ||
127 (style()->overflowInlineDirection() == OverflowAuto && 131 (style()->overflowInlineDirection() == OverflowAuto &&
128 innerEditor->layoutObject()->style()->overflowWrap() == 132 innerEditor->layoutObject()->style()->overflowWrap() ==
129 NormalOverflowWrap)) 133 NormalOverflowWrap))
130 logicalHeight += scrollbarThickness(); 134 logicalHeight += scrollbarThickness();
131 135
132 // FIXME: The logical height of the inner text box should have been added be fore calling computeLogicalHeight to 136 // FIXME: The logical height of the inner text box should have been added
133 // avoid this hack. 137 // before calling computeLogicalHeight to avoid this hack.
134 setIntrinsicContentLogicalHeight(logicalHeight); 138 setIntrinsicContentLogicalHeight(logicalHeight);
135 139
136 logicalHeight += borderAndPaddingHeight(); 140 logicalHeight += borderAndPaddingHeight();
137 } 141 }
138 142
139 LayoutBox::computeLogicalHeight(logicalHeight, logicalTop, computedValues); 143 LayoutBox::computeLogicalHeight(logicalHeight, logicalTop, computedValues);
140 } 144 }
141 145
142 void LayoutTextControl::hitInnerEditorElement( 146 void LayoutTextControl::hitInnerEditorElement(
143 HitTestResult& result, 147 HitTestResult& result,
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
186 "Apple LiSung", 190 "Apple LiSung",
187 "Apple Symbols", 191 "Apple Symbols",
188 "AppleGothic", 192 "AppleGothic",
189 "AppleMyungjo", 193 "AppleMyungjo",
190 "#GungSeo", 194 "#GungSeo",
191 "#HeadLineA", 195 "#HeadLineA",
192 "#PCMyungjo", 196 "#PCMyungjo",
193 "#PilGi", 197 "#PilGi",
194 }; 198 };
195 199
196 // For font families where any of the fonts don't have a valid entry in the OS/2 table 200 // For font families where any of the fonts don't have a valid entry in the OS/2
197 // for avgCharWidth, fallback to the legacy webkit behavior of getting the avgCh arWidth 201 // table for avgCharWidth, fallback to the legacy webkit behavior of getting the
198 // from the width of a '0'. This only seems to apply to a fixed number of Mac fo nts, 202 // avgCharWidth from the width of a '0'. This only seems to apply to a fixed
199 // but, in order to get similar rendering across platforms, we do this check for 203 // number of Mac fonts, but, in order to get similar rendering across platforms,
200 // all platforms. 204 // we do this check for all platforms.
201 bool LayoutTextControl::hasValidAvgCharWidth(const SimpleFontData* font, 205 bool LayoutTextControl::hasValidAvgCharWidth(const SimpleFontData* font,
202 const AtomicString& family) { 206 const AtomicString& family) {
203 // Some fonts match avgCharWidth to CJK full-width characters. 207 // Some fonts match avgCharWidth to CJK full-width characters.
204 // Heuristic check to avoid such fonts. 208 // Heuristic check to avoid such fonts.
205 DCHECK(font); 209 DCHECK(font);
206 const FontMetrics& metrics = font->getFontMetrics(); 210 const FontMetrics& metrics = font->getFontMetrics();
207 if (metrics.hasZeroWidth() && 211 if (metrics.hasZeroWidth() &&
208 font->avgCharWidth() > metrics.zeroWidth() * 1.7) 212 font->avgCharWidth() > metrics.zeroWidth() * 1.7)
209 return false; 213 return false;
210 214
(...skipping 22 matching lines...) Expand all
233 return roundf(primaryFont->avgCharWidth()); 237 return roundf(primaryFont->avgCharWidth());
234 238
235 const UChar ch = '0'; 239 const UChar ch = '0';
236 const String str = String(&ch, 1); 240 const String str = String(&ch, 1);
237 TextRun textRun = 241 TextRun textRun =
238 constructTextRun(font, str, styleRef(), TextRun::AllowTrailingExpansion); 242 constructTextRun(font, str, styleRef(), TextRun::AllowTrailingExpansion);
239 return font.width(textRun); 243 return font.width(textRun);
240 } 244 }
241 245
242 float LayoutTextControl::scaleEmToUnits(int x) const { 246 float LayoutTextControl::scaleEmToUnits(int x) const {
243 // This matches the unitsPerEm value for MS Shell Dlg and Courier New from the "head" font table. 247 // This matches the unitsPerEm value for MS Shell Dlg and Courier New from the
248 // "head" font table.
244 float unitsPerEm = 2048.0f; 249 float unitsPerEm = 2048.0f;
245 return roundf(style()->font().getFontDescription().computedSize() * x / 250 return roundf(style()->font().getFontDescription().computedSize() * x /
246 unitsPerEm); 251 unitsPerEm);
247 } 252 }
248 253
249 void LayoutTextControl::computeIntrinsicLogicalWidths( 254 void LayoutTextControl::computeIntrinsicLogicalWidths(
250 LayoutUnit& minLogicalWidth, 255 LayoutUnit& minLogicalWidth,
251 LayoutUnit& maxLogicalWidth) const { 256 LayoutUnit& maxLogicalWidth) const {
252 // Use average character width. Matches IE. 257 // Use average character width. Matches IE.
253 AtomicString family = style()->font().getFontDescription().family().family(); 258 AtomicString family = style()->font().getFontDescription().family().family();
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after
319 LayoutObject* placeholderLayoutObject = 324 LayoutObject* placeholderLayoutObject =
320 placeholder ? placeholder->layoutObject() : nullptr; 325 placeholder ? placeholder->layoutObject() : nullptr;
321 if (!placeholderLayoutObject) 326 if (!placeholderLayoutObject)
322 return nullptr; 327 return nullptr;
323 if (relayoutChildren) 328 if (relayoutChildren)
324 layoutScope.setChildNeedsLayout(placeholderLayoutObject); 329 layoutScope.setChildNeedsLayout(placeholderLayoutObject);
325 return placeholderLayoutObject; 330 return placeholderLayoutObject;
326 } 331 }
327 332
328 } // namespace blink 333 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698