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

Side by Side Diff: Source/core/layout/LayoutBlock.h

Issue 1224933002: Combine outline and focus ring code paths (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Rebase Created 5 years, 3 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 | Annotate | Revision Log
OLDNEW
1 /* 1 /*
2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org)
3 * (C) 1999 Antti Koivisto (koivisto@kde.org) 3 * (C) 1999 Antti Koivisto (koivisto@kde.org)
4 * (C) 2007 David Smith (catfish.man@gmail.com) 4 * (C) 2007 David Smith (catfish.man@gmail.com)
5 * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Apple Inc. All r ights reserved. 5 * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Apple Inc. All r ights reserved.
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 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
42 class LayoutInline; 42 class LayoutInline;
43 class WordMeasurement; 43 class WordMeasurement;
44 44
45 typedef WTF::ListHashSet<LayoutBox*, 16> TrackedLayoutBoxListHashSet; 45 typedef WTF::ListHashSet<LayoutBox*, 16> TrackedLayoutBoxListHashSet;
46 typedef WTF::HashMap<const LayoutBlock*, OwnPtr<TrackedLayoutBoxListHashSet>> Tr ackedDescendantsMap; 46 typedef WTF::HashMap<const LayoutBlock*, OwnPtr<TrackedLayoutBoxListHashSet>> Tr ackedDescendantsMap;
47 typedef WTF::HashMap<const LayoutBox*, OwnPtr<HashSet<LayoutBlock*>>> TrackedCon tainerMap; 47 typedef WTF::HashMap<const LayoutBox*, OwnPtr<HashSet<LayoutBlock*>>> TrackedCon tainerMap;
48 typedef Vector<WordMeasurement, 64> WordMeasurements; 48 typedef Vector<WordMeasurement, 64> WordMeasurements;
49 49
50 enum ContainingBlockState { NewContainingBlock, SameContainingBlock }; 50 enum ContainingBlockState { NewContainingBlock, SameContainingBlock };
51 51
52 typedef WTF::HashMap<LayoutBlock*, OwnPtr<ListHashSet<LayoutInline*>>> Continuat ionOutlineTableMap;
53
54 ContinuationOutlineTableMap* continuationOutlineTable();
55
56 class CORE_EXPORT LayoutBlock : public LayoutBox { 52 class CORE_EXPORT LayoutBlock : public LayoutBox {
57 public: 53 public:
58 friend class LineLayoutState; 54 friend class LineLayoutState;
59 55
60 protected: 56 protected:
61 explicit LayoutBlock(ContainerNode*); 57 explicit LayoutBlock(ContainerNode*);
62 ~LayoutBlock() override; 58 ~LayoutBlock() override;
63 59
64 public: 60 public:
65 LayoutObject* firstChild() const { ASSERT(children() == virtualChildren()); return children()->firstChild(); } 61 LayoutObject* firstChild() const { ASSERT(children() == virtualChildren()); return children()->firstChild(); }
(...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after
157 void setSelectionState(SelectionState) override; 153 void setSelectionState(SelectionState) override;
158 154
159 LayoutRect logicalRectToPhysicalRect(const LayoutPoint& physicalPosition, co nst LayoutRect& logicalRect) const; 155 LayoutRect logicalRectToPhysicalRect(const LayoutPoint& physicalPosition, co nst LayoutRect& logicalRect) const;
160 156
161 // Helper methods for computing line counts and heights for line counts. 157 // Helper methods for computing line counts and heights for line counts.
162 RootInlineBox* lineAtIndex(int) const; 158 RootInlineBox* lineAtIndex(int) const;
163 int lineCount(const RootInlineBox* = nullptr, bool* = nullptr) const; 159 int lineCount(const RootInlineBox* = nullptr, bool* = nullptr) const;
164 int heightForLineCount(int); 160 int heightForLineCount(int);
165 void clearTruncation(); 161 void clearTruncation();
166 162
167 void addContinuationWithOutline(LayoutInline*);
168
169 LayoutBoxModelObject* virtualContinuation() const final { return continuatio n(); } 163 LayoutBoxModelObject* virtualContinuation() const final { return continuatio n(); }
170 bool isAnonymousBlockContinuation() const { return continuation() && isAnony mousBlock(); } 164 bool isAnonymousBlockContinuation() const { return continuation() && isAnony mousBlock(); }
171 LayoutInline* inlineElementContinuation() const; 165 LayoutInline* inlineElementContinuation() const;
172 166
173 using LayoutBoxModelObject::continuation; 167 using LayoutBoxModelObject::continuation;
174 using LayoutBoxModelObject::setContinuation; 168 using LayoutBoxModelObject::setContinuation;
175 169
176 static LayoutBlock* createAnonymousWithParentAndDisplay(const LayoutObject*, EDisplay = BLOCK); 170 static LayoutBlock* createAnonymousWithParentAndDisplay(const LayoutObject*, EDisplay = BLOCK);
177 LayoutBlock* createAnonymousBlock(EDisplay display = BLOCK) const { return c reateAnonymousWithParentAndDisplay(this, display); } 171 LayoutBlock* createAnonymousBlock(EDisplay display = BLOCK) const { return c reateAnonymousWithParentAndDisplay(this, display); }
178 172
(...skipping 25 matching lines...) Expand all
204 LayoutUnit logicalLeftOffsetForContent() const { return isHorizontalWritingM ode() ? borderLeft() + paddingLeft() : borderTop() + paddingTop(); } 198 LayoutUnit logicalLeftOffsetForContent() const { return isHorizontalWritingM ode() ? borderLeft() + paddingLeft() : borderTop() + paddingTop(); }
205 LayoutUnit logicalRightOffsetForContent() const { return logicalLeftOffsetFo rContent() + availableLogicalWidth(); } 199 LayoutUnit logicalRightOffsetForContent() const { return logicalLeftOffsetFo rContent() + availableLogicalWidth(); }
206 LayoutUnit startOffsetForContent() const { return style()->isLeftToRightDire ction() ? logicalLeftOffsetForContent() : logicalWidth() - logicalRightOffsetFor Content(); } 200 LayoutUnit startOffsetForContent() const { return style()->isLeftToRightDire ction() ? logicalLeftOffsetForContent() : logicalWidth() - logicalRightOffsetFor Content(); }
207 LayoutUnit endOffsetForContent() const { return !style()->isLeftToRightDirec tion() ? logicalLeftOffsetForContent() : logicalWidth() - logicalRightOffsetForC ontent(); } 201 LayoutUnit endOffsetForContent() const { return !style()->isLeftToRightDirec tion() ? logicalLeftOffsetForContent() : logicalWidth() - logicalRightOffsetForC ontent(); }
208 202
209 virtual LayoutUnit logicalLeftSelectionOffset(const LayoutBlock* rootBlock, LayoutUnit position) const; 203 virtual LayoutUnit logicalLeftSelectionOffset(const LayoutBlock* rootBlock, LayoutUnit position) const;
210 virtual LayoutUnit logicalRightSelectionOffset(const LayoutBlock* rootBlock, LayoutUnit position) const; 204 virtual LayoutUnit logicalRightSelectionOffset(const LayoutBlock* rootBlock, LayoutUnit position) const;
211 205
212 #if ENABLE(ASSERT) 206 #if ENABLE(ASSERT)
213 void checkPositionedObjectsNeedLayout(); 207 void checkPositionedObjectsNeedLayout();
214 bool paintsContinuationOutline(LayoutInline* flow);
215 #endif 208 #endif
216 #ifndef NDEBUG 209 #ifndef NDEBUG
217 void showLineTreeAndMark(const InlineBox* = nullptr, const char* = nullptr, const InlineBox* = nullptr, const char* = nullptr, const LayoutObject* = nullptr ) const; 210 void showLineTreeAndMark(const InlineBox* = nullptr, const char* = nullptr, const InlineBox* = nullptr, const char* = nullptr, const LayoutObject* = nullptr ) const;
218 #endif 211 #endif
219 212
220 bool recalcChildOverflowAfterStyleChange(); 213 bool recalcChildOverflowAfterStyleChange();
221 bool recalcOverflowAfterStyleChange(); 214 bool recalcOverflowAfterStyleChange();
222 215
223 protected: 216 protected:
224 void willBeDestroyed() override; 217 void willBeDestroyed() override;
(...skipping 198 matching lines...) Expand 10 before | Expand all | Expand 10 after
423 // FIXME: This is temporary as we move code that accesses block flow 416 // FIXME: This is temporary as we move code that accesses block flow
424 // member variables out of LayoutBlock and into LayoutBlockFlow. 417 // member variables out of LayoutBlock and into LayoutBlockFlow.
425 friend class LayoutBlockFlow; 418 friend class LayoutBlockFlow;
426 }; 419 };
427 420
428 DEFINE_LAYOUT_OBJECT_TYPE_CASTS(LayoutBlock, isLayoutBlock()); 421 DEFINE_LAYOUT_OBJECT_TYPE_CASTS(LayoutBlock, isLayoutBlock());
429 422
430 } // namespace blink 423 } // namespace blink
431 424
432 #endif // LayoutBlock_h 425 #endif // LayoutBlock_h
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698