diff options
author | Simon Hausmann <simon.hausmann@nokia.com> | 2009-06-15 09:06:43 (GMT) |
---|---|---|
committer | Simon Hausmann <simon.hausmann@nokia.com> | 2009-06-15 09:31:31 (GMT) |
commit | c411f16870f112c3407c28c22b617f613a82cff4 (patch) | |
tree | 29a1bcd590c8b31af2aab445bfe8a978dc5bf582 /src/3rdparty/webkit/WebCore/rendering/InlineTextBox.h | |
parent | 3d77b56b32a0c53ec0bbfaa07236fedb900ff336 (diff) | |
download | Qt-c411f16870f112c3407c28c22b617f613a82cff4.zip Qt-c411f16870f112c3407c28c22b617f613a82cff4.tar.gz Qt-c411f16870f112c3407c28c22b617f613a82cff4.tar.bz2 |
Updated WebKit from /home/shausman/src/webkit/trunk to qtwebkit-4.6-snapshot-15062009 ( 65232bf00dc494ebfd978f998c88f58d18ecce1e )
Diffstat (limited to 'src/3rdparty/webkit/WebCore/rendering/InlineTextBox.h')
-rw-r--r-- | src/3rdparty/webkit/WebCore/rendering/InlineTextBox.h | 59 |
1 files changed, 33 insertions, 26 deletions
diff --git a/src/3rdparty/webkit/WebCore/rendering/InlineTextBox.h b/src/3rdparty/webkit/WebCore/rendering/InlineTextBox.h index d8a250b..3bbb453 100644 --- a/src/3rdparty/webkit/WebCore/rendering/InlineTextBox.h +++ b/src/3rdparty/webkit/WebCore/rendering/InlineTextBox.h @@ -1,9 +1,7 @@ /* - * This file is part of the DOM implementation for KDE. - * * (C) 1999 Lars Knoll (knoll@kde.org) * (C) 2000 Dirk Mueller (mueller@kde.org) - * Copyright (C) 2004, 2005, 2006 Apple Computer, Inc. + * Copyright (C) 2004, 2005, 2006, 2009 Apple Inc. All rights reserved. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public @@ -25,22 +23,16 @@ #ifndef InlineTextBox_h #define InlineTextBox_h -#include "DocumentMarker.h" #include "InlineRunBox.h" -#include "RenderText.h" +#include "RenderText.h" // so textRenderer() can be inline namespace WebCore { +struct CompositionUnderline; + const unsigned short cNoTruncation = USHRT_MAX; const unsigned short cFullTruncation = USHRT_MAX - 1; -class String; -class StringImpl; -class HitTestResult; -class Position; - -struct CompositionUnderline; - // Helper functions shared by InlineTextBox / SVGRootInlineBox void updateGraphicsContext(GraphicsContext* context, const Color& fillColor, const Color& strokeColor, float strokeThickness); Color correctedTextColor(Color textColor, Color backgroundColor); @@ -67,46 +59,61 @@ public: void offsetRun(int d) { m_start += d; } + void setFallbackFonts(const HashSet<const SimpleFontData*>&); + void takeFallbackFonts(Vector<const SimpleFontData*>&); + +private: virtual int selectionTop(); virtual int selectionHeight(); +public: virtual IntRect selectionRect(int absx, int absy, int startPos, int endPos); bool isSelected(int startPos, int endPos) const; void selectionStartEnd(int& sPos, int& ePos); +private: virtual void paint(RenderObject::PaintInfo&, int tx, int ty); virtual bool nodeAtPoint(const HitTestRequest&, HitTestResult&, int x, int y, int tx, int ty); - RenderText* textObject() const; +public: + RenderText* textRenderer() const; +private: virtual void deleteLine(RenderArena*); virtual void extractLine(); virtual void attachLine(); +public: virtual RenderObject::SelectionState selectionState(); +private: virtual void clearTruncation() { m_truncation = cNoTruncation; } - virtual int placeEllipsisBox(bool ltr, int blockEdge, int ellipsisWidth, bool& foundBox); + virtual int placeEllipsisBox(bool flowIsLTR, int visibleLeftEdge, int visibleRightEdge, int ellipsisWidth, bool& foundBox); +public: virtual bool isLineBreak() const; void setSpaceAdd(int add) { m_width -= m_toAdd; m_toAdd = add; m_width += m_toAdd; } - int spaceAdd() { return m_toAdd; } +private: virtual bool isInlineTextBox() { return true; } - virtual bool isText() const { return m_treatAsText; } - void setIsText(bool b) { m_treatAsText = b; } +public: virtual int caretMinOffset() const; virtual int caretMaxOffset() const; + +private: virtual unsigned caretMaxRenderedOffset() const; int textPos() const; + +public: virtual int offsetForPosition(int x, bool includePartialGlyphs = true) const; virtual int positionForOffset(int offset) const; bool containsCaretOffset(int offset) const; // false for offset after line break +private: int m_start; unsigned short m_len; @@ -114,24 +121,24 @@ public: // denote no truncation (the whole run paints) and full truncation (nothing paints at all). protected: - void paintCompositionBackground(GraphicsContext*, int tx, int ty, RenderStyle*, const Font*, int startPos, int endPos); - void paintDocumentMarkers(GraphicsContext*, int tx, int ty, RenderStyle*, const Font*, bool background); + void paintCompositionBackground(GraphicsContext*, int tx, int ty, RenderStyle*, const Font&, int startPos, int endPos); + void paintDocumentMarkers(GraphicsContext*, int tx, int ty, RenderStyle*, const Font&, bool background); void paintCompositionUnderline(GraphicsContext*, int tx, int ty, const CompositionUnderline&); #if PLATFORM(MAC) void paintCustomHighlight(int tx, int ty, const AtomicString& type); #endif private: - void paintDecoration(GraphicsContext*, int tx, int ty, int decoration, ShadowData* shadow); - void paintSelection(GraphicsContext*, int tx, int ty, RenderStyle*, const Font*); - void paintSpellingOrGrammarMarker(GraphicsContext*, int tx, int ty, DocumentMarker, RenderStyle*, const Font*, bool grammar); - void paintTextMatchMarker(GraphicsContext*, int tx, int ty, DocumentMarker, RenderStyle*, const Font*); - friend class RenderText; + void paintDecoration(GraphicsContext*, int tx, int ty, int decoration, ShadowData*); + void paintSelection(GraphicsContext*, int tx, int ty, RenderStyle*, const Font&); + void paintSpellingOrGrammarMarker(GraphicsContext*, int tx, int ty, DocumentMarker, RenderStyle*, const Font&, bool grammar); + void paintTextMatchMarker(GraphicsContext*, int tx, int ty, DocumentMarker, RenderStyle*, const Font&); + void computeRectForReplacementMarker(int tx, int ty, DocumentMarker, RenderStyle*, const Font&); }; -inline RenderText* InlineTextBox::textObject() const +inline RenderText* InlineTextBox::textRenderer() const { - return static_cast<RenderText*>(m_object); + return toRenderText(renderer()); } } // namespace WebCore |