OLD | NEW |
1 /** | 1 /** |
2 * Copyright (C) 2006, 2007, 2010 Apple Inc. All rights reserved. | 2 * Copyright (C) 2006, 2007, 2010 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. (http://www.torchmo
bile.com/) |
4 * Copyright (C) 2010 Google Inc. All rights reserved. | 4 * Copyright (C) 2010 Google Inc. All rights reserved. |
5 * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). | 5 * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). |
6 * | 6 * |
7 * This library is free software; you can redistribute it and/or | 7 * This library is free software; you can redistribute it and/or |
8 * modify it under the terms of the GNU Library General Public | 8 * modify it under the terms of the GNU Library General Public |
9 * License as published by the Free Software Foundation; either | 9 * License as published by the Free Software Foundation; either |
10 * version 2 of the License, or (at your option) any later version. | 10 * version 2 of the License, or (at your option) any later version. |
(...skipping 209 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
220 if (editingViewPortElement()->layoutBox()) | 220 if (editingViewPortElement()->layoutBox()) |
221 pointInParent -= toLayoutSize(editingViewPortElement()->layoutBo
x()->location()); | 221 pointInParent -= toLayoutSize(editingViewPortElement()->layoutBo
x()->location()); |
222 if (container->layoutBox()) | 222 if (container->layoutBox()) |
223 pointInParent -= toLayoutSize(container->layoutBox()->location()
); | 223 pointInParent -= toLayoutSize(container->layoutBox()->location()
); |
224 } | 224 } |
225 hitInnerEditorElement(result, pointInParent, accumulatedOffset); | 225 hitInnerEditorElement(result, pointInParent, accumulatedOffset); |
226 } | 226 } |
227 return true; | 227 return true; |
228 } | 228 } |
229 | 229 |
230 void LayoutTextControlSingleLine::styleDidChange(StyleDifference diff, const Lay
outStyle* oldStyle) | 230 void LayoutTextControlSingleLine::styleDidChange(StyleDifference diff, const Com
putedStyle* oldStyle) |
231 { | 231 { |
232 m_desiredInnerEditorLogicalHeight = -1; | 232 m_desiredInnerEditorLogicalHeight = -1; |
233 LayoutTextControl::styleDidChange(diff, oldStyle); | 233 LayoutTextControl::styleDidChange(diff, oldStyle); |
234 | 234 |
235 // We may have set the width and the height in the old style in layout(). | 235 // We may have set the width and the height in the old style in layout(). |
236 // Reset them now to avoid getting a spurious layout hint. | 236 // Reset them now to avoid getting a spurious layout hint. |
237 Element* viewPort = editingViewPortElement(); | 237 Element* viewPort = editingViewPortElement(); |
238 if (LayoutObject* viewPortRenderer = viewPort ? viewPort->layoutObject() : 0
) { | 238 if (LayoutObject* viewPortRenderer = viewPort ? viewPort->layoutObject() : 0
) { |
239 viewPortRenderer->mutableStyleRef().setHeight(Length()); | 239 viewPortRenderer->mutableStyleRef().setHeight(Length()); |
240 viewPortRenderer->mutableStyleRef().setWidth(Length()); | 240 viewPortRenderer->mutableStyleRef().setWidth(Length()); |
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
323 | 323 |
324 // For text inputs, IE adds some extra width. | 324 // For text inputs, IE adds some extra width. |
325 if (maxCharWidth > 0.f) | 325 if (maxCharWidth > 0.f) |
326 result += maxCharWidth - charWidth; | 326 result += maxCharWidth - charWidth; |
327 | 327 |
328 if (includesDecoration) { | 328 if (includesDecoration) { |
329 HTMLElement* spinButton = innerSpinButtonElement(); | 329 HTMLElement* spinButton = innerSpinButtonElement(); |
330 if (LayoutBox* spinRenderer = spinButton ? spinButton->layoutBox() : 0)
{ | 330 if (LayoutBox* spinRenderer = spinButton ? spinButton->layoutBox() : 0)
{ |
331 result += spinRenderer->borderAndPaddingLogicalWidth(); | 331 result += spinRenderer->borderAndPaddingLogicalWidth(); |
332 // Since the width of spinRenderer is not calculated yet, spinRender
er->logicalWidth() returns 0. | 332 // Since the width of spinRenderer is not calculated yet, spinRender
er->logicalWidth() returns 0. |
333 // So computedStyle()->logicalWidth() is used instead. | 333 // So ensureComputedStyle()->logicalWidth() is used instead. |
334 result += spinButton->computedStyle()->logicalWidth().value(); | 334 result += spinButton->ensureComputedStyle()->logicalWidth().value(); |
335 } | 335 } |
336 } | 336 } |
337 | 337 |
338 return result; | 338 return result; |
339 } | 339 } |
340 | 340 |
341 LayoutUnit LayoutTextControlSingleLine::computeControlLogicalHeight(LayoutUnit l
ineHeight, LayoutUnit nonContentHeight) const | 341 LayoutUnit LayoutTextControlSingleLine::computeControlLogicalHeight(LayoutUnit l
ineHeight, LayoutUnit nonContentHeight) const |
342 { | 342 { |
343 return lineHeight + nonContentHeight; | 343 return lineHeight + nonContentHeight; |
344 } | 344 } |
345 | 345 |
346 PassRefPtr<LayoutStyle> LayoutTextControlSingleLine::createInnerEditorStyle(cons
t LayoutStyle& startStyle) const | 346 PassRefPtr<ComputedStyle> LayoutTextControlSingleLine::createInnerEditorStyle(co
nst ComputedStyle& startStyle) const |
347 { | 347 { |
348 RefPtr<LayoutStyle> textBlockStyle = LayoutStyle::create(); | 348 RefPtr<ComputedStyle> textBlockStyle = ComputedStyle::create(); |
349 textBlockStyle->inheritFrom(startStyle); | 349 textBlockStyle->inheritFrom(startStyle); |
350 adjustInnerEditorStyle(*textBlockStyle); | 350 adjustInnerEditorStyle(*textBlockStyle); |
351 | 351 |
352 textBlockStyle->setWhiteSpace(PRE); | 352 textBlockStyle->setWhiteSpace(PRE); |
353 textBlockStyle->setOverflowWrap(NormalOverflowWrap); | 353 textBlockStyle->setOverflowWrap(NormalOverflowWrap); |
354 textBlockStyle->setOverflowX(OHIDDEN); | 354 textBlockStyle->setOverflowX(OHIDDEN); |
355 textBlockStyle->setOverflowY(OHIDDEN); | 355 textBlockStyle->setOverflowY(OHIDDEN); |
356 textBlockStyle->setTextOverflow(textShouldBeTruncated() ? TextOverflowEllips
is : TextOverflowClip); | 356 textBlockStyle->setTextOverflow(textShouldBeTruncated() ? TextOverflowEllips
is : TextOverflowClip); |
357 | 357 |
358 if (m_desiredInnerEditorLogicalHeight >= 0) | 358 if (m_desiredInnerEditorLogicalHeight >= 0) |
359 textBlockStyle->setLogicalHeight(Length(m_desiredInnerEditorLogicalHeigh
t, Fixed)); | 359 textBlockStyle->setLogicalHeight(Length(m_desiredInnerEditorLogicalHeigh
t, Fixed)); |
360 // Do not allow line-height to be smaller than our default. | 360 // Do not allow line-height to be smaller than our default. |
361 if (textBlockStyle->fontMetrics().lineSpacing() > lineHeight(true, Horizonta
lLine, PositionOfInteriorLineBoxes)) | 361 if (textBlockStyle->fontMetrics().lineSpacing() > lineHeight(true, Horizonta
lLine, PositionOfInteriorLineBoxes)) |
362 textBlockStyle->setLineHeight(LayoutStyle::initialLineHeight()); | 362 textBlockStyle->setLineHeight(ComputedStyle::initialLineHeight()); |
363 | 363 |
364 textBlockStyle->setDisplay(BLOCK); | 364 textBlockStyle->setDisplay(BLOCK); |
365 textBlockStyle->setUnique(); | 365 textBlockStyle->setUnique(); |
366 | 366 |
367 if (inputElement()->shouldRevealPassword()) | 367 if (inputElement()->shouldRevealPassword()) |
368 textBlockStyle->setTextSecurity(TSNONE); | 368 textBlockStyle->setTextSecurity(TSNONE); |
369 | 369 |
370 return textBlockStyle.release(); | 370 return textBlockStyle.release(); |
371 } | 371 } |
372 | 372 |
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
431 if (innerEditorElement()) | 431 if (innerEditorElement()) |
432 innerEditorElement()->setScrollTop(newTop); | 432 innerEditorElement()->setScrollTop(newTop); |
433 } | 433 } |
434 | 434 |
435 HTMLInputElement* LayoutTextControlSingleLine::inputElement() const | 435 HTMLInputElement* LayoutTextControlSingleLine::inputElement() const |
436 { | 436 { |
437 return toHTMLInputElement(node()); | 437 return toHTMLInputElement(node()); |
438 } | 438 } |
439 | 439 |
440 } | 440 } |
OLD | NEW |