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

Side by Side Diff: sky/engine/core/rendering/RootInlineBox.cpp

Issue 1068683002: Delete RenderBlockFlow. (Closed) Base URL: https://github.com/domokit/mojo.git@block
Patch Set: Remove unused float-related code instead of moving it. Created 5 years, 8 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) 2003, 2006, 2008 Apple Inc. All rights reserved. 2 * Copyright (C) 2003, 2006, 2008 Apple Inc. All rights reserved.
3 * 3 *
4 * This library is free software; you can redistribute it and/or 4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Library General Public 5 * modify it under the terms of the GNU Library General Public
6 * License as published by the Free Software Foundation; either 6 * License as published by the Free Software Foundation; either
7 * version 2 of the License, or (at your option) any later version. 7 * version 2 of the License, or (at your option) any later version.
8 * 8 *
9 * This library is distributed in the hope that it will be useful, 9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Library General Public License for more details. 12 * Library General Public License for more details.
13 * 13 *
14 * You should have received a copy of the GNU Library General Public License 14 * You should have received a copy of the GNU Library General Public License
15 * along with this library; see the file COPYING.LIB. If not, write to 15 * along with this library; see the file COPYING.LIB. If not, write to
16 * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 16 * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
17 * Boston, MA 02110-1301, USA. 17 * Boston, MA 02110-1301, USA.
18 */ 18 */
19 19
20 #include "sky/engine/config.h" 20 #include "sky/engine/config.h"
21 #include "sky/engine/core/rendering/RootInlineBox.h" 21 #include "sky/engine/core/rendering/RootInlineBox.h"
22 22
23 #include "sky/engine/core/dom/Document.h" 23 #include "sky/engine/core/dom/Document.h"
24 #include "sky/engine/core/dom/StyleEngine.h" 24 #include "sky/engine/core/dom/StyleEngine.h"
25 #include "sky/engine/core/rendering/EllipsisBox.h" 25 #include "sky/engine/core/rendering/EllipsisBox.h"
26 #include "sky/engine/core/rendering/HitTestResult.h" 26 #include "sky/engine/core/rendering/HitTestResult.h"
27 #include "sky/engine/core/rendering/InlineTextBox.h" 27 #include "sky/engine/core/rendering/InlineTextBox.h"
28 #include "sky/engine/core/rendering/PaintInfo.h" 28 #include "sky/engine/core/rendering/PaintInfo.h"
29 #include "sky/engine/core/rendering/RenderBlockFlow.h" 29 #include "sky/engine/core/rendering/RenderParagraph.h"
30 #include "sky/engine/core/rendering/RenderInline.h" 30 #include "sky/engine/core/rendering/RenderInline.h"
31 #include "sky/engine/core/rendering/RenderView.h" 31 #include "sky/engine/core/rendering/RenderView.h"
32 #include "sky/engine/core/rendering/VerticalPositionCache.h" 32 #include "sky/engine/core/rendering/VerticalPositionCache.h"
33 #include "sky/engine/platform/text/BidiResolver.h" 33 #include "sky/engine/platform/text/BidiResolver.h"
34 #include "sky/engine/wtf/unicode/Unicode.h" 34 #include "sky/engine/wtf/unicode/Unicode.h"
35 35
36 namespace blink { 36 namespace blink {
37 37
38 struct SameSizeAsRootInlineBox : public InlineFlowBox { 38 struct SameSizeAsRootInlineBox : public InlineFlowBox {
39 unsigned unsignedVariable; 39 unsigned unsignedVariable;
40 void* pointers[4]; 40 void* pointers[3];
41 LayoutUnit layoutVariables[5]; 41 LayoutUnit layoutVariables[5];
42 }; 42 };
43 43
44 COMPILE_ASSERT(sizeof(RootInlineBox) == sizeof(SameSizeAsRootInlineBox), RootInl ineBox_should_stay_small); 44 COMPILE_ASSERT(sizeof(RootInlineBox) == sizeof(SameSizeAsRootInlineBox), RootInl ineBox_should_stay_small);
45 45
46 typedef WTF::HashMap<const RootInlineBox*, EllipsisBox*> EllipsisBoxMap; 46 typedef WTF::HashMap<const RootInlineBox*, EllipsisBox*> EllipsisBoxMap;
47 static EllipsisBoxMap* gEllipsisBoxMap = 0; 47 static EllipsisBoxMap* gEllipsisBoxMap = 0;
48 48
49 RootInlineBox::RootInlineBox(RenderBlockFlow& block) 49 RootInlineBox::RootInlineBox(RenderParagraph& block)
50 : InlineFlowBox(block) 50 : InlineFlowBox(block)
51 , m_lineBreakPos(0) 51 , m_lineBreakPos(0)
52 , m_lineBreakObj(0) 52 , m_lineBreakObj(0)
53 , m_lineTop(0) 53 , m_lineTop(0)
54 , m_lineBottom(0) 54 , m_lineBottom(0)
55 , m_lineTopWithLeading(0) 55 , m_lineTopWithLeading(0)
56 , m_lineBottomWithLeading(0) 56 , m_lineBottomWithLeading(0)
57 , m_selectionBottom(0) 57 , m_selectionBottom(0)
58 { 58 {
59 } 59 }
(...skipping 325 matching lines...) Expand 10 before | Expand all | Expand 10 after
385 LayoutUnit RootInlineBox::selectionTopAdjustedForPrecedingBlock() const 385 LayoutUnit RootInlineBox::selectionTopAdjustedForPrecedingBlock() const
386 { 386 {
387 LayoutUnit top = selectionTop(); 387 LayoutUnit top = selectionTop();
388 388
389 RenderObject::SelectionState blockSelectionState = root().block().selectionS tate(); 389 RenderObject::SelectionState blockSelectionState = root().block().selectionS tate();
390 if (blockSelectionState != RenderObject::SelectionInside && blockSelectionSt ate != RenderObject::SelectionEnd) 390 if (blockSelectionState != RenderObject::SelectionInside && blockSelectionSt ate != RenderObject::SelectionEnd)
391 return top; 391 return top;
392 392
393 LayoutSize offsetToBlockBefore; 393 LayoutSize offsetToBlockBefore;
394 if (RenderBlock* block = root().block().blockBeforeWithinSelectionRoot(offse tToBlockBefore)) { 394 if (RenderBlock* block = root().block().blockBeforeWithinSelectionRoot(offse tToBlockBefore)) {
395 if (block->isRenderBlockFlow()) { 395 if (block->isRenderParagraph()) {
396 if (RootInlineBox* lastLine = toRenderBlockFlow(block)->lastRootBox( )) { 396 if (RootInlineBox* lastLine = toRenderParagraph(block)->lastRootBox( )) {
397 RenderObject::SelectionState lastLineSelectionState = lastLine-> selectionState(); 397 RenderObject::SelectionState lastLineSelectionState = lastLine-> selectionState();
398 if (lastLineSelectionState != RenderObject::SelectionInside && l astLineSelectionState != RenderObject::SelectionStart) 398 if (lastLineSelectionState != RenderObject::SelectionInside && l astLineSelectionState != RenderObject::SelectionStart)
399 return top; 399 return top;
400 400
401 LayoutUnit lastLineSelectionBottom = lastLine->selectionBottom() + offsetToBlockBefore.height(); 401 LayoutUnit lastLineSelectionBottom = lastLine->selectionBottom() + offsetToBlockBefore.height();
402 top = std::max(top, lastLineSelectionBottom); 402 top = std::max(top, lastLineSelectionBottom);
403 } 403 }
404 } 404 }
405 } 405 }
406 406
407 return top; 407 return top;
408 } 408 }
409 409
410 LayoutUnit RootInlineBox::selectionBottom() const 410 LayoutUnit RootInlineBox::selectionBottom() const
411 { 411 {
412 LayoutUnit selectionBottom = m_selectionBottom; 412 LayoutUnit selectionBottom = m_selectionBottom;
413 if (m_hasAnnotationsAfter) 413 if (m_hasAnnotationsAfter)
414 selectionBottom += computeUnderAnnotationAdjustment(m_lineBottom); 414 selectionBottom += computeUnderAnnotationAdjustment(m_lineBottom);
415 return selectionBottom; 415 return selectionBottom;
416 } 416 }
417 417
418 int RootInlineBox::blockDirectionPointInLine() const 418 int RootInlineBox::blockDirectionPointInLine() const
419 { 419 {
420 return std::max(lineTop(), selectionTop()); 420 return std::max(lineTop(), selectionTop());
421 } 421 }
422 422
423 RenderBlockFlow& RootInlineBox::block() const 423 RenderParagraph& RootInlineBox::block() const
424 { 424 {
425 return toRenderBlockFlow(renderer()); 425 return toRenderParagraph(renderer());
426 } 426 }
427 427
428 static bool isEditableLeaf(InlineBox* leaf) 428 static bool isEditableLeaf(InlineBox* leaf)
429 { 429 {
430 return leaf && leaf->renderer().node() && leaf->renderer().node()->hasEditab leStyle(); 430 return leaf && leaf->renderer().node() && leaf->renderer().node()->hasEditab leStyle();
431 } 431 }
432 432
433 InlineBox* RootInlineBox::closestLeafChildForPoint(const IntPoint& pointInConten ts, bool onlyEditableLeaves) 433 InlineBox* RootInlineBox::closestLeafChildForPoint(const IntPoint& pointInConten ts, bool onlyEditableLeaves)
434 { 434 {
435 return closestLeafChildForLogicalLeftPosition(pointInContents.x(), onlyEdita bleLeaves); 435 return closestLeafChildForLogicalLeftPosition(pointInContents.x(), onlyEdita bleLeaves);
(...skipping 367 matching lines...) Expand 10 before | Expand all | Expand 10 after
803 } 803 }
804 804
805 #ifndef NDEBUG 805 #ifndef NDEBUG
806 const char* RootInlineBox::boxName() const 806 const char* RootInlineBox::boxName() const
807 { 807 {
808 return "RootInlineBox"; 808 return "RootInlineBox";
809 } 809 }
810 #endif 810 #endif
811 811
812 } // namespace blink 812 } // namespace blink
OLDNEW
« no previous file with comments | « sky/engine/core/rendering/RootInlineBox.h ('k') | sky/engine/core/rendering/TrailingFloatsRootInlineBox.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698