class EventListener;
class FloatPoint;
class Frame;
-class InputElement;
+class HTMLInputElement;
class IntRect;
class KeyboardEvent;
class NSResolver;
SVGUseElement* svgShadowHost() const;
#endif
-#if ENABLE(WML)
- virtual bool isWMLElement() const { return false; }
-#else
- static bool isWMLElement() { return false; }
-#endif
-
virtual bool isMediaControlElement() const { return false; }
bool isStyledElement() const { return getFlag(IsStyledElementFlag); }
virtual bool isFrameOwnerElement() const { return false; }
void setPreviousSibling(Node* previous) { m_previous = previous; }
void setNextSibling(Node* next) { m_next = next; }
+ virtual bool canContainRangeEndPoint() const { return false; }
+
// FIXME: These two functions belong in editing -- "atomic node" is an editing concept.
Node* previousNodeConsideringAtomicNodes() const;
Node* nextNodeConsideringAtomicNodes() const;
// Returns the DOM ownerDocument attribute. This method never returns NULL, except in the case
// of (1) a Document node or (2) a DocumentType node that is not used with any Document yet.
- virtual Document* ownerDocument() const;
+ Document* ownerDocument() const;
// Returns the document associated with this node. This method never returns NULL, except in the case
// of a DocumentType node that is not used with any Document yet. A Document node returns itself.
// Number of DOM 16-bit units contained in node. Note that rendered text length can be different - e.g. because of
// css-transform:capitalize breaking up precomposed characters and ligatures.
virtual int maxCharacterOffset() const;
-
- // FIXME: We should try to find a better location for these methods.
- virtual bool canSelectAll() const { return false; }
- virtual void selectAll() { }
// Whether or not a selection can be started in this object
virtual bool canStartSelection() const;
// the node's rendering object from the rendering tree and delete it.
virtual void detach();
+ void forceReattach();
+
virtual void willRemove();
void createRendererIfNeeded();
PassRefPtr<RenderStyle> styleForRenderer();
virtual bool rendererIsNeeded(RenderStyle*);
virtual bool childShouldCreateRenderer(Node*) const { return true; }
virtual RenderObject* createRenderer(RenderArena*, RenderStyle*);
- ContainerNode* parentNodeForRenderingAndStyle() const;
+ ContainerNode* parentNodeForRenderingAndStyle();
// Wrapper for nodes that don't have a renderer, but still cache the style (like HTMLOptionElement).
RenderStyle* renderStyle() const;
virtual Node* toNode() { return this; }
- virtual InputElement* toInputElement();
+ virtual HTMLInputElement* toInputElement();
virtual ScriptExecutionContext* scriptExecutionContext() const;
// Used to share code between lazyAttach and setNeedsStyleRecalc.
void markAncestorsWithChildNeedsStyleRecalc();
- RenderObject* createRendererAndStyle();
-
virtual void refEventTarget();
virtual void derefEventTarget();
return parentOrHostNode();
}
+inline void Node::forceReattach()
+{
+ if (!attached())
+ return;
+ detach();
+ attach();
+}
+
} //namespace
#ifndef NDEBUG