OLD | NEW |
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 * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009 Apple Inc. All rights
reserved. | 4 * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009 Apple Inc. All rights
reserved. |
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 * |
11 * This library is distributed in the hope that it will be useful, | 11 * This library is distributed in the hope that it will be useful, |
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of | 12 * but WITHOUT ANY WARRANTY; without even the implied warranty of |
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | 13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
14 * Library General Public License for more details. | 14 * Library General Public License for more details. |
15 * | 15 * |
16 * You should have received a copy of the GNU Library General Public License | 16 * You should have received a copy of the GNU Library General Public License |
17 * along with this library; see the file COPYING.LIB. If not, write to | 17 * along with this library; see the file COPYING.LIB. If not, write to |
18 * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, | 18 * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, |
19 * Boston, MA 02110-1301, USA. | 19 * Boston, MA 02110-1301, USA. |
20 * | 20 * |
21 */ | 21 */ |
22 | 22 |
23 #ifndef Text_h | 23 #ifndef Text_h |
24 #define Text_h | 24 #define Text_h |
25 | 25 |
26 #include "core/dom/CharacterData.h" | 26 #include "core/dom/CharacterData.h" |
27 | 27 |
28 namespace WebCore { | 28 namespace WebCore { |
29 | 29 |
| 30 class ContainerNode; |
30 class RenderText; | 31 class RenderText; |
31 class ScriptExecutionContext; | 32 class ScriptExecutionContext; |
32 | 33 |
33 class Text : public CharacterData { | 34 class Text : public CharacterData { |
34 public: | 35 public: |
35 static const unsigned defaultLengthLimit = 1 << 16; | 36 static const unsigned defaultLengthLimit = 1 << 16; |
36 | 37 |
37 static PassRefPtr<Text> create(Document*, const String&); | 38 static PassRefPtr<Text> create(Document*, const String&); |
38 static PassRefPtr<Text> createWithLengthLimit(Document*, const String&, unsi
gned positionInString, unsigned lengthLimit = defaultLengthLimit); | 39 static PassRefPtr<Text> createWithLengthLimit(Document*, const String&, unsi
gned positionInString, unsigned lengthLimit = defaultLengthLimit); |
39 static PassRefPtr<Text> createEditingText(Document*, const String&); | 40 static PassRefPtr<Text> createEditingText(Document*, const String&); |
40 | 41 |
41 PassRefPtr<Text> splitText(unsigned offset, ExceptionCode&); | 42 PassRefPtr<Text> splitText(unsigned offset, ExceptionCode&); |
42 | 43 |
43 // DOM Level 3: http://www.w3.org/TR/DOM-Level-3-Core/core.html#ID-131229577
2 | 44 // DOM Level 3: http://www.w3.org/TR/DOM-Level-3-Core/core.html#ID-131229577
2 |
44 | 45 |
45 String wholeText() const; | 46 String wholeText() const; |
46 PassRefPtr<Text> replaceWholeText(const String&); | 47 PassRefPtr<Text> replaceWholeText(const String&); |
47 | 48 |
48 bool recalcTextStyle(StyleChange); | 49 bool recalcTextStyle(StyleChange); |
49 void createTextRendererIfNeeded(); | 50 void createTextRendererIfNeeded(); |
50 bool textRendererIsNeeded(const NodeRenderingContext&); | 51 bool textRendererIsNeeded(const NodeRenderingContext&); |
51 virtual RenderText* createTextRenderer(RenderStyle*); | 52 RenderText* createTextRenderer(ContainerNode* renderingParent, RenderStyle*)
; |
52 void updateTextRenderer(unsigned offsetOfReplacedData, unsigned lengthOfRepl
acedData); | 53 void updateTextRenderer(unsigned offsetOfReplacedData, unsigned lengthOfRepl
acedData); |
53 | 54 |
54 virtual void attach(const AttachContext& = AttachContext()) OVERRIDE FINAL; | 55 virtual void attach(const AttachContext& = AttachContext()) OVERRIDE FINAL; |
55 | 56 |
56 virtual bool canContainRangeEndPoint() const OVERRIDE FINAL { return true; } | 57 virtual bool canContainRangeEndPoint() const OVERRIDE FINAL { return true; } |
57 virtual NodeType nodeType() const OVERRIDE; | 58 virtual NodeType nodeType() const OVERRIDE; |
58 | 59 |
59 protected: | 60 protected: |
60 Text(TreeScope* treeScope, const String& data, ConstructionType type) | 61 Text(TreeScope* treeScope, const String& data, ConstructionType type) |
61 : CharacterData(treeScope, data, type) | 62 : CharacterData(treeScope, data, type) |
(...skipping 17 matching lines...) Expand all Loading... |
79 | 80 |
80 inline Text* toText(Node* node) | 81 inline Text* toText(Node* node) |
81 { | 82 { |
82 ASSERT_WITH_SECURITY_IMPLICATION(!node || node->isTextNode()); | 83 ASSERT_WITH_SECURITY_IMPLICATION(!node || node->isTextNode()); |
83 return static_cast<Text*>(node); | 84 return static_cast<Text*>(node); |
84 } | 85 } |
85 | 86 |
86 } // namespace WebCore | 87 } // namespace WebCore |
87 | 88 |
88 #endif // Text_h | 89 #endif // Text_h |
OLD | NEW |