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

Side by Side Diff: third_party/WebKit/Source/core/layout/line/InlineBox.h

Issue 1497873002: Make DisplayItemClient an interface (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase Created 5 years 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, 2004, 2005, 2006, 2007, 2009, 2010, 2011 Apple Inc. All r ights reserved. 2 * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2009, 2010, 2011 Apple Inc. All r ights 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
(...skipping 21 matching lines...) Expand all
32 namespace blink { 32 namespace blink {
33 33
34 class HitTestRequest; 34 class HitTestRequest;
35 class HitTestResult; 35 class HitTestResult;
36 class RootInlineBox; 36 class RootInlineBox;
37 37
38 enum MarkLineBoxes { MarkLineBoxesDirty, DontMarkLineBoxes }; 38 enum MarkLineBoxes { MarkLineBoxesDirty, DontMarkLineBoxes };
39 39
40 // InlineBox represents a rectangle that occurs on a line. It corresponds to 40 // InlineBox represents a rectangle that occurs on a line. It corresponds to
41 // some LayoutObject (i.e., it represents a portion of that LayoutObject). 41 // some LayoutObject (i.e., it represents a portion of that LayoutObject).
42 class InlineBox { 42 class InlineBox : public DisplayItemClient {
43 WTF_MAKE_NONCOPYABLE(InlineBox); 43 WTF_MAKE_NONCOPYABLE(InlineBox);
44 public: 44 public:
45 InlineBox(LayoutObject& obj) 45 InlineBox(LayoutObject& obj)
46 : m_next(nullptr) 46 : m_next(nullptr)
47 , m_prev(nullptr) 47 , m_prev(nullptr)
48 , m_parent(nullptr) 48 , m_parent(nullptr)
49 , m_layoutObject(obj) 49 , m_layoutObject(obj)
50 , m_logicalWidth() 50 , m_logicalWidth()
51 #if ENABLE(ASSERT) 51 #if ENABLE(ASSERT)
52 , m_hasBadParent(false) 52 , m_hasBadParent(false)
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
96 96
97 #ifndef NDEBUG 97 #ifndef NDEBUG
98 void showTreeForThis() const; 98 void showTreeForThis() const;
99 void showLineTreeForThis() const; 99 void showLineTreeForThis() const;
100 100
101 virtual void showBox(int = 0) const; 101 virtual void showBox(int = 0) const;
102 virtual void showLineTreeAndMark(const InlineBox* = nullptr, const char* = n ullptr, const InlineBox* = nullptr, const char* = nullptr, const LayoutObject* = nullptr, int = 0) const; 102 virtual void showLineTreeAndMark(const InlineBox* = nullptr, const char* = n ullptr, const InlineBox* = nullptr, const char* = nullptr, const LayoutObject* = nullptr, int = 0) const;
103 #endif 103 #endif
104 104
105 virtual const char* boxName() const; 105 virtual const char* boxName() const;
106 virtual String debugName() const; 106 String debugName() const override;
107 107
108 bool isText() const { return m_bitfields.isText(); } 108 bool isText() const { return m_bitfields.isText(); }
109 void setIsText(bool isText) { m_bitfields.setIsText(isText); } 109 void setIsText(bool isText) { m_bitfields.setIsText(isText); }
110 110
111 virtual bool isInlineFlowBox() const { return false; } 111 virtual bool isInlineFlowBox() const { return false; }
112 virtual bool isInlineTextBox() const { return false; } 112 virtual bool isInlineTextBox() const { return false; }
113 virtual bool isRootInlineBox() const { return false; } 113 virtual bool isRootInlineBox() const { return false; }
114 114
115 virtual bool isSVGInlineTextBox() const { return false; } 115 virtual bool isSVGInlineTextBox() const { return false; }
116 virtual bool isSVGInlineFlowBox() const { return false; } 116 virtual bool isSVGInlineFlowBox() const { return false; }
(...skipping 175 matching lines...) Expand 10 before | Expand all | Expand 10 after
292 FloatPoint flipForWritingMode(const FloatPoint&) const; 292 FloatPoint flipForWritingMode(const FloatPoint&) const;
293 void flipForWritingMode(LayoutRect&) const; 293 void flipForWritingMode(LayoutRect&) const;
294 LayoutPoint flipForWritingMode(const LayoutPoint&) const; 294 LayoutPoint flipForWritingMode(const LayoutPoint&) const;
295 295
296 bool knownToHaveNoOverflow() const { return m_bitfields.knownToHaveNoOverflo w(); } 296 bool knownToHaveNoOverflow() const { return m_bitfields.knownToHaveNoOverflo w(); }
297 void clearKnownToHaveNoOverflow(); 297 void clearKnownToHaveNoOverflow();
298 298
299 bool dirOverride() const { return m_bitfields.dirOverride(); } 299 bool dirOverride() const { return m_bitfields.dirOverride(); }
300 void setDirOverride(bool dirOverride) { m_bitfields.setDirOverride(dirOverri de); } 300 void setDirOverride(bool dirOverride) { m_bitfields.setDirOverride(dirOverri de); }
301 301
302 DisplayItemClient displayItemClient() const { return toDisplayItemClient(thi s); }
303 // Invalidate display item clients in the whole sub inline box tree. 302 // Invalidate display item clients in the whole sub inline box tree.
304 void invalidateDisplayItemClientsRecursively(); 303 void invalidateDisplayItemClientsRecursively();
305 304
306 #define ADD_BOOLEAN_BITFIELD(name, Name) \ 305 #define ADD_BOOLEAN_BITFIELD(name, Name) \
307 private:\ 306 private:\
308 unsigned m_##name : 1;\ 307 unsigned m_##name : 1;\
309 public:\ 308 public:\
310 bool name() const { return m_##name; }\ 309 bool name() const { return m_##name; }\
311 void set##Name(bool name) { m_##name = name; }\ 310 void set##Name(bool name) { m_##name = name; }\
312 311
(...skipping 139 matching lines...) Expand 10 before | Expand all | Expand 10 after
452 451
453 } // namespace blink 452 } // namespace blink
454 453
455 #ifndef NDEBUG 454 #ifndef NDEBUG
456 // Outside the WebCore namespace for ease of invocation from gdb. 455 // Outside the WebCore namespace for ease of invocation from gdb.
457 void showTree(const blink::InlineBox*); 456 void showTree(const blink::InlineBox*);
458 void showLineTree(const blink::InlineBox*); 457 void showLineTree(const blink::InlineBox*);
459 #endif 458 #endif
460 459
461 #endif // InlineBox_h 460 #endif // InlineBox_h
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698