| OLD | NEW | 
|---|
| 1 /* | 1 /* | 
| 2  * (C) 1999 Lars Knoll (knoll@kde.org) | 2  * (C) 1999 Lars Knoll (knoll@kde.org) | 
| 3  * (C) 2000 Dirk Mueller (mueller@kde.org) | 3  * (C) 2000 Dirk Mueller (mueller@kde.org) | 
| 4  * Copyright (C) 2004, 2005, 2006, 2009, 2010, 2011 Apple Inc. All rights reserv
     ed. | 4  * Copyright (C) 2004, 2005, 2006, 2009, 2010, 2011 Apple Inc. All rights reserv
     ed. | 
| 5  * | 5  * | 
| 6  * This library is free software; you can redistribute it and/or | 6  * This library is free software; you can redistribute it and/or | 
| 7  * modify it under the terms of the GNU Library General Public | 7  * modify it under the terms of the GNU Library General Public | 
| 8  * License as published by the Free Software Foundation; either | 8  * License as published by the Free Software Foundation; either | 
| 9  * 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. | 
| 10  * | 10  * | 
| (...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 50     InlineTextBox(RenderObject* obj) | 50     InlineTextBox(RenderObject* obj) | 
| 51         : InlineBox(obj) | 51         : InlineBox(obj) | 
| 52         , m_prevTextBox(0) | 52         , m_prevTextBox(0) | 
| 53         , m_nextTextBox(0) | 53         , m_nextTextBox(0) | 
| 54         , m_start(0) | 54         , m_start(0) | 
| 55         , m_len(0) | 55         , m_len(0) | 
| 56         , m_truncation(cNoTruncation) | 56         , m_truncation(cNoTruncation) | 
| 57     { | 57     { | 
| 58     } | 58     } | 
| 59 | 59 | 
| 60     virtual void destroy(RenderArena*); | 60     virtual void destroy(RenderArena*) FINAL; | 
| 61 | 61 | 
| 62     InlineTextBox* prevTextBox() const { return m_prevTextBox; } | 62     InlineTextBox* prevTextBox() const { return m_prevTextBox; } | 
| 63     InlineTextBox* nextTextBox() const { return m_nextTextBox; } | 63     InlineTextBox* nextTextBox() const { return m_nextTextBox; } | 
| 64     void setNextTextBox(InlineTextBox* n) { m_nextTextBox = n; } | 64     void setNextTextBox(InlineTextBox* n) { m_nextTextBox = n; } | 
| 65     void setPreviousTextBox(InlineTextBox* p) { m_prevTextBox = p; } | 65     void setPreviousTextBox(InlineTextBox* p) { m_prevTextBox = p; } | 
| 66 | 66 | 
| 67     // FIXME: These accessors should ASSERT(!isDirty()). See https://bugs.webkit
     .org/show_bug.cgi?id=97264 | 67     // FIXME: These accessors should ASSERT(!isDirty()). See https://bugs.webkit
     .org/show_bug.cgi?id=97264 | 
| 68     unsigned start() const { return m_start; } | 68     unsigned start() const { return m_start; } | 
| 69     unsigned end() const { return m_len ? m_start + m_len - 1 : m_start; } | 69     unsigned end() const { return m_len ? m_start + m_len - 1 : m_start; } | 
| 70     unsigned len() const { return m_len; } | 70     unsigned len() const { return m_len; } | 
| 71 | 71 | 
| 72     void setStart(unsigned start) { m_start = start; } | 72     void setStart(unsigned start) { m_start = start; } | 
| 73     void setLen(unsigned len) { m_len = len; } | 73     void setLen(unsigned len) { m_len = len; } | 
| 74 | 74 | 
| 75     void offsetRun(int d) { ASSERT(!isDirty()); m_start += d; } | 75     void offsetRun(int d) { ASSERT(!isDirty()); m_start += d; } | 
| 76 | 76 | 
| 77     unsigned short truncation() { return m_truncation; } | 77     unsigned short truncation() { return m_truncation; } | 
| 78 | 78 | 
| 79     virtual void markDirty(bool dirty = true) OVERRIDE; | 79     virtual void markDirty(bool dirty = true) OVERRIDE FINAL; | 
| 80 | 80 | 
| 81     using InlineBox::hasHyphen; | 81     using InlineBox::hasHyphen; | 
| 82     using InlineBox::setHasHyphen; | 82     using InlineBox::setHasHyphen; | 
| 83     using InlineBox::canHaveLeadingExpansion; | 83     using InlineBox::canHaveLeadingExpansion; | 
| 84     using InlineBox::setCanHaveLeadingExpansion; | 84     using InlineBox::setCanHaveLeadingExpansion; | 
| 85 | 85 | 
| 86     static inline bool compareByStart(const InlineTextBox* first, const InlineTe
     xtBox* second) { return first->start() < second->start(); } | 86     static inline bool compareByStart(const InlineTextBox* first, const InlineTe
     xtBox* second) { return first->start() < second->start(); } | 
| 87 | 87 | 
| 88     virtual int baselinePosition(FontBaseline) const; | 88     virtual int baselinePosition(FontBaseline) const FINAL; | 
| 89     virtual LayoutUnit lineHeight() const; | 89     virtual LayoutUnit lineHeight() const FINAL; | 
| 90 | 90 | 
| 91     bool getEmphasisMarkPosition(RenderStyle*, TextEmphasisPosition&) const; | 91     bool getEmphasisMarkPosition(RenderStyle*, TextEmphasisPosition&) const; | 
| 92 | 92 | 
| 93     LayoutRect logicalOverflowRect() const; | 93     LayoutRect logicalOverflowRect() const; | 
| 94     void setLogicalOverflowRect(const LayoutRect&); | 94     void setLogicalOverflowRect(const LayoutRect&); | 
| 95     LayoutUnit logicalTopVisualOverflow() const { return logicalOverflowRect().y
     (); } | 95     LayoutUnit logicalTopVisualOverflow() const { return logicalOverflowRect().y
     (); } | 
| 96     LayoutUnit logicalBottomVisualOverflow() const { return logicalOverflowRect(
     ).maxY(); } | 96     LayoutUnit logicalBottomVisualOverflow() const { return logicalOverflowRect(
     ).maxY(); } | 
| 97     LayoutUnit logicalLeftVisualOverflow() const { return logicalOverflowRect().
     x(); } | 97     LayoutUnit logicalLeftVisualOverflow() const { return logicalOverflowRect().
     x(); } | 
| 98     LayoutUnit logicalRightVisualOverflow() const { return logicalOverflowRect()
     .maxX(); } | 98     LayoutUnit logicalRightVisualOverflow() const { return logicalOverflowRect()
     .maxX(); } | 
| 99 | 99 | 
| 100 #ifndef NDEBUG | 100 #ifndef NDEBUG | 
| 101     virtual void showBox(int = 0) const; | 101     virtual void showBox(int = 0) const; | 
| 102     virtual const char* boxName() const; | 102     virtual const char* boxName() const; | 
| 103 #endif | 103 #endif | 
| 104 | 104 | 
| 105     virtual void reportMemoryUsage(MemoryObjectInfo*) const OVERRIDE; | 105     virtual void reportMemoryUsage(MemoryObjectInfo*) const OVERRIDE FINAL; | 
| 106 | 106 | 
| 107 private: | 107 private: | 
| 108     LayoutUnit selectionTop(); | 108     LayoutUnit selectionTop(); | 
| 109     LayoutUnit selectionBottom(); | 109     LayoutUnit selectionBottom(); | 
| 110     LayoutUnit selectionHeight(); | 110     LayoutUnit selectionHeight(); | 
| 111 | 111 | 
| 112     TextRun constructTextRun(RenderStyle*, const Font&, BufferForAppendingHyphen
     * = 0) const; | 112     TextRun constructTextRun(RenderStyle*, const Font&, BufferForAppendingHyphen
     * = 0) const; | 
| 113     TextRun constructTextRun(RenderStyle*, const Font&, String, int maximumLengt
     h, BufferForAppendingHyphen* = 0) const; | 113     TextRun constructTextRun(RenderStyle*, const Font&, String, int maximumLengt
     h, BufferForAppendingHyphen* = 0) const; | 
| 114 | 114 | 
| 115 public: | 115 public: | 
| 116     virtual FloatRect calculateBoundaries() const { return FloatRect(x(), y(), w
     idth(), height()); } | 116     virtual FloatRect calculateBoundaries() const { return FloatRect(x(), y(), w
     idth(), height()); } | 
| 117 | 117 | 
| 118     virtual LayoutRect localSelectionRect(int startPos, int endPos); | 118     virtual LayoutRect localSelectionRect(int startPos, int endPos); | 
| 119     bool isSelected(int startPos, int endPos) const; | 119     bool isSelected(int startPos, int endPos) const; | 
| 120     void selectionStartEnd(int& sPos, int& ePos); | 120     void selectionStartEnd(int& sPos, int& ePos); | 
| 121 | 121 | 
| 122 protected: | 122 protected: | 
| 123     virtual void paint(PaintInfo&, const LayoutPoint&, LayoutUnit lineTop, Layou
     tUnit lineBottom); | 123     virtual void paint(PaintInfo&, const LayoutPoint&, LayoutUnit lineTop, Layou
     tUnit lineBottom); | 
| 124     virtual bool nodeAtPoint(const HitTestRequest&, HitTestResult&, const HitTes
     tLocation& locationInContainer, const LayoutPoint& accumulatedOffset, LayoutUnit
      lineTop, LayoutUnit lineBottom) OVERRIDE; | 124     virtual bool nodeAtPoint(const HitTestRequest&, HitTestResult&, const HitTes
     tLocation& locationInContainer, const LayoutPoint& accumulatedOffset, LayoutUnit
      lineTop, LayoutUnit lineBottom) OVERRIDE; | 
| 125 | 125 | 
| 126 public: | 126 public: | 
| 127     RenderText* textRenderer() const; | 127     RenderText* textRenderer() const; | 
| 128 | 128 | 
| 129 private: | 129 private: | 
| 130     virtual void deleteLine(RenderArena*); | 130     virtual void deleteLine(RenderArena*) FINAL; | 
| 131     virtual void extractLine(); | 131     virtual void extractLine() FINAL; | 
| 132     virtual void attachLine(); | 132     virtual void attachLine() FINAL; | 
| 133 | 133 | 
| 134 public: | 134 public: | 
| 135     virtual RenderObject::SelectionState selectionState(); | 135     virtual RenderObject::SelectionState selectionState() FINAL; | 
| 136 | 136 | 
| 137 private: | 137 private: | 
| 138     virtual void clearTruncation() { m_truncation = cNoTruncation; } | 138     virtual void clearTruncation() FINAL { m_truncation = cNoTruncation; } | 
| 139     virtual float placeEllipsisBox(bool flowIsLTR, float visibleLeftEdge, float 
     visibleRightEdge, float ellipsisWidth, float &truncatedWidth, bool& foundBox) OV
     ERRIDE; | 139     virtual float placeEllipsisBox(bool flowIsLTR, float visibleLeftEdge, float 
     visibleRightEdge, float ellipsisWidth, float &truncatedWidth, bool& foundBox) OV
     ERRIDE FINAL; | 
| 140 | 140 | 
| 141 public: | 141 public: | 
| 142     virtual bool isLineBreak() const; | 142     virtual bool isLineBreak() const FINAL; | 
| 143 | 143 | 
| 144     void setExpansion(int newExpansion) | 144     void setExpansion(int newExpansion) | 
| 145     { | 145     { | 
| 146         m_logicalWidth -= expansion(); | 146         m_logicalWidth -= expansion(); | 
| 147         InlineBox::setExpansion(newExpansion); | 147         InlineBox::setExpansion(newExpansion); | 
| 148         m_logicalWidth += newExpansion; | 148         m_logicalWidth += newExpansion; | 
| 149     } | 149     } | 
| 150 | 150 | 
| 151 private: | 151 private: | 
| 152     virtual bool isInlineTextBox() const { return true; } | 152     virtual bool isInlineTextBox() const FINAL { return true; } | 
| 153 | 153 | 
| 154 public: | 154 public: | 
| 155     virtual int caretMinOffset() const; | 155     virtual int caretMinOffset() const FINAL; | 
| 156     virtual int caretMaxOffset() const; | 156     virtual int caretMaxOffset() const FINAL; | 
| 157 | 157 | 
| 158 private: | 158 private: | 
| 159     float textPos() const; // returns the x position relative to the left start 
     of the text line. | 159     float textPos() const; // returns the x position relative to the left start 
     of the text line. | 
| 160 | 160 | 
| 161 public: | 161 public: | 
| 162     virtual int offsetForPosition(float x, bool includePartialGlyphs = true) con
     st; | 162     virtual int offsetForPosition(float x, bool includePartialGlyphs = true) con
     st; | 
| 163     virtual float positionForOffset(int offset) const; | 163     virtual float positionForOffset(int offset) const; | 
| 164 | 164 | 
| 165     bool containsCaretOffset(int offset) const; // false for offset after line b
     reak | 165     bool containsCaretOffset(int offset) const; // false for offset after line b
     reak | 
| 166 | 166 | 
| (...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 214 inline RenderText* InlineTextBox::textRenderer() const | 214 inline RenderText* InlineTextBox::textRenderer() const | 
| 215 { | 215 { | 
| 216     return toRenderText(renderer()); | 216     return toRenderText(renderer()); | 
| 217 } | 217 } | 
| 218 | 218 | 
| 219 void alignSelectionRectToDevicePixels(FloatRect&); | 219 void alignSelectionRectToDevicePixels(FloatRect&); | 
| 220 | 220 | 
| 221 } // namespace WebCore | 221 } // namespace WebCore | 
| 222 | 222 | 
| 223 #endif // InlineTextBox_h | 223 #endif // InlineTextBox_h | 
| OLD | NEW | 
|---|