dom_docimpl.h
来自「最新Nokia手机浏览器全套源代码完美版。」· C头文件 代码 · 共 889 行 · 第 1/3 页
H
889 行
khtml::DocLoader *docLoader() { return m_docLoader; }
void setDocLoader(khtml::DocLoader* dl);
virtual void attach();
virtual void detach();
RenderArena* renderArena() { return m_renderArena; }
#if APPLE_CHANGES
KWQAccObjectCache* getAccObjectCache();
#endif
// to get visually ordered hebrew and arabic pages right
void setVisuallyOrdered();
void updateSelection();
void open();
void implicitOpen();
void close();
void implicitClose();
void write ( const DOMString &text );
void write ( const QString &text );
void writeln ( const DOMString &text );
void finishParsing ( );
void clear();
QString URL() const { return m_url; }
void setURL(const QString& url);
QString baseURL() const { return m_baseURL.isEmpty() ? m_url : m_baseURL; }
void setBaseURL(const QString& baseURL) { m_baseURL = baseURL; }
QString baseTarget() const { return m_baseTarget; }
void setBaseTarget(const QString& baseTarget) { m_baseTarget = baseTarget; }
#if APPLE_CHANGES
QString completeURL(const QString &);
#else
QString completeURL(const QString& url) { return KURL(baseURL(),url).url(); };
#endif
// from cachedObjectClient
virtual void setStyleSheet(const DOMString &url, const DOMString &sheetStr);
void setUserStyleSheet(const QString& sheet);
QString userStyleSheet() const { return m_usersheet; }
void setPrintStyleSheet(const QString& sheet) { m_printSheet = sheet; }
QString printStyleSheet() const { return m_printSheet; }
CSSStyleSheetImpl* elementSheet();
virtual khtml::Tokenizer *createTokenizer();
khtml::Tokenizer *tokenizer() { return m_tokenizer; }
QPaintDeviceMetrics *paintDeviceMetrics() { return m_paintDeviceMetrics; }
QPaintDevice *paintDevice() const { return m_paintDevice; }
void setPaintDevice( QPaintDevice *dev );
enum HTMLMode {
Html3,
Html4,
XHtml
};
enum ParseMode {
Compat,
AlmostStrict,
Strict
};
virtual void determineParseMode( const QString &str );
void setParseMode( ParseMode m ) { pMode = m; }
ParseMode parseMode() const { return pMode; }
bool inCompatMode() { return pMode == Compat; }
bool inAlmostStrictMode() { return pMode == AlmostStrict; }
bool inStrictMode() { return pMode == Strict; }
void setHTMLMode( HTMLMode m ) { hMode = m; }
HTMLMode htmlMode() const { return hMode; }
#if NOKIA_CHANGES
bool isXHtmlMobile() const { return m_xHtmlMobile; }
#endif
void setParsing(bool b);
bool parsing() const { return m_bParsing; }
int minimumLayoutDelay();
bool shouldScheduleLayout();
int elapsedTime() const;
void setTextColor( QColor color ) { m_textColor = color; }
QColor textColor() const { return m_textColor; }
const QColor& linkColor() const { return m_linkColor; }
const QColor& visitedLinkColor() const { return m_visitedLinkColor; }
const QColor& activeLinkColor() const { return m_activeLinkColor; }
void setLinkColor(const QColor& c) { m_linkColor = c; }
void setVisitedLinkColor(const QColor& c) { m_visitedLinkColor = c; }
void setActiveLinkColor(const QColor& c) { m_activeLinkColor = c; }
void resetLinkColor();
void resetVisitedLinkColor();
void resetActiveLinkColor();
// internal
NodeImpl *findElement( Id id );
bool prepareMouseEvent(bool readonly, int x, int y, MouseEvent* ev);
bool prepareMouseEvent(bool readonly, bool active, int x, int y, MouseEvent *ev);
virtual bool childAllowed( NodeImpl *newChild );
virtual bool childTypeAllowed( unsigned short nodeType );
virtual NodeImpl *cloneNode ( bool deep );
// ### think about implementing ref'counting for the id's
// in order to be able to reassign those that are no longer in use
// (could make problems when it is still kept somewhere around, i.e. styleselector)
NodeImpl::Id tagId(DOMStringImpl* _namespaceURI, DOMStringImpl *_name, bool readonly);
DOMString tagName(NodeImpl::Id _id) const;
NodeImpl::Id attrId(DOMStringImpl* _namespaceURI, DOMStringImpl *_name, bool readonly);
DOMString attrName(NodeImpl::Id _id) const;
// the namespace uri is mapped to the same id for both
// tagnames as well as attributes.
DOMStringImpl* namespaceURI(NodeImpl::Id _id) const;
StyleSheetListImpl* styleSheets();
/* Newly proposed CSS3 mechanism for selecting alternate
stylesheets using the DOM. May be subject to change as
spec matures. - dwh
*/
DOMString preferredStylesheetSet();
DOMString selectedStylesheetSet();
void setSelectedStylesheetSet(const DOMString& aString);
QStringList availableStyleSheets() const;
NodeImpl *focusNode() const { return m_focusNode; }
bool setFocusNode(NodeImpl *newFocusNode);
void clearSelectionIfNeeded(NodeImpl *newFocusNode);
NodeImpl *hoverNode() const { return m_hoverNode; }
void setHoverNode(NodeImpl *newHoverNode);
NodeImpl *activeNode() const { return m_activeNode; }
void setActiveNode(NodeImpl *newActiveNode);
// Updates for :target (CSS3 selector).
void setCSSTarget(NodeImpl* n);
NodeImpl* getCSSTarget();
void setDocumentChanged(bool);
void attachNodeIterator(NodeIteratorImpl *ni);
void detachNodeIterator(NodeIteratorImpl *ni);
void notifyBeforeNodeRemoval(NodeImpl *n);
AbstractViewImpl *defaultView() const;
EventImpl *createEvent(const DOMString &eventType, int &exceptioncode);
// keep track of what types of event listeners are registered, so we don't
// dispatch events unnecessarily
enum ListenerType {
DOMSUBTREEMODIFIED_LISTENER = 0x01,
DOMNODEINSERTED_LISTENER = 0x02,
DOMNODEREMOVED_LISTENER = 0x04,
DOMNODEREMOVEDFROMDOCUMENT_LISTENER = 0x08,
DOMNODEINSERTEDINTODOCUMENT_LISTENER = 0x10,
DOMATTRMODIFIED_LISTENER = 0x20,
DOMCHARACTERDATAMODIFIED_LISTENER = 0x40
};
bool hasListenerType(ListenerType listenerType) const { return (m_listenerTypes & listenerType); }
void addListenerType(ListenerType listenerType) { m_listenerTypes = m_listenerTypes | listenerType; }
CSSStyleDeclarationImpl *getOverrideStyle(ElementImpl *elt, DOMStringImpl *pseudoElt);
typedef QMap<QString, ProcessingInstructionImpl*> LocalStyleRefs;
LocalStyleRefs* localStyleRefs() { return &m_localStyleRefs; }
virtual void defaultEventHandler(EventImpl *evt);
void setHTMLWindowEventListener(int id, EventListener *listener);
EventListener *getHTMLWindowEventListener(int id);
void removeHTMLWindowEventListener(int id);
void addWindowEventListener(int id, EventListener *listener, const bool useCapture);
void removeWindowEventListener(int id, EventListener *listener, bool useCapture);
bool hasWindowEventListener(int id);
EventListener *createHTMLEventListener(QString code, NodeImpl *node);
/**
* Searches through the document, starting from fromNode, for the next selectable element that comes after fromNode.
* The order followed is as specified in section 17.11.1 of the HTML4 spec, which is elements with tab indexes
* first (from lowest to highest), and then elements without tab indexes (in document order).
*
* @param fromNode The node from which to start searching. The node after this will be focused. May be null.
*
* @return The focus node that comes after fromNode
*
* See http://www.w3.org/TR/html4/interact/forms.html#h-17.11.1
*/
NodeImpl *nextFocusNode(NodeImpl *fromNode);
/**
* Searches through the document, starting from fromNode, for the previous selectable element (that comes _before_)
* fromNode. The order followed is as specified in section 17.11.1 of the HTML4 spec, which is elements with tab
* indexes first (from lowest to highest), and then elements without tab indexes (in document order).
*
* @param fromNode The node from which to start searching. The node before this will be focused. May be null.
*
* @return The focus node that comes before fromNode
*
* See http://www.w3.org/TR/html4/interact/forms.html#h-17.11.1
*/
NodeImpl *previousFocusNode(NodeImpl *fromNode);
int nodeAbsIndex(NodeImpl *node);
NodeImpl *nodeWithAbsIndex(int absIndex);
/**
* Handles a HTTP header equivalent set by a meta tag using <meta http-equiv="..." content="...">. This is called
* when a meta tag is encountered during document parsing, and also when a script dynamically changes or adds a meta
* tag. This enables scripts to use meta tags to perform refreshes and set expiry dates in addition to them being
* specified in a HTML file.
*
* @param equiv The http header name (value of the meta tag's "equiv" attribute)
* @param content The header value (value of the meta tag's "content" attribute)
*/
void processHttpEquiv(const DOMString &equiv, const DOMString &content);
void dispatchImageLoadEventSoon(HTMLImageLoader*);
void dispatchImageLoadEventsNow();
void removeImage(HTMLImageLoader*);
virtual void timerEvent(QTimerEvent *);
// Returns the owning element in the parent document.
// Returns 0 if this is the top level document.
ElementImpl *ownerElement();
DOMString domain() const;
void setDomain( const DOMString &newDomain, bool force = false ); // not part of the DOM
DOMString policyBaseURL() const { return m_policyBaseURL; }
void setPolicyBaseURL(const DOMString &s) { m_policyBaseURL = s; }
// The following implements the rule from HTML 4 for what valid names are.
// To get this right for all the XML cases, we probably have to improve this or move it
// and make it sensitive to the type of document.
static bool isValidName(const DOMString &);
void addElementById(const DOMString &elementId, ElementImpl *element);
void removeElementById(const DOMString &elementId, ElementImpl *element);
void addImageMap(HTMLMapElementImpl *);
void removeImageMap(HTMLMapElementImpl *);
HTMLMapElementImpl *getImageMap(const DOMString &URL) const;
HTMLElementImpl* body();
DOMString toString() const;
bool execCommand(const DOMString &command, bool userInterface, const DOMString &value);
bool queryCommandEnabled(const DOMString &command);
bool queryCommandIndeterm(const DOMString &command);
bool queryCommandState(const DOMString &command);
bool queryCommandSupported(const DOMString &command);
DOMString queryCommandValue(const DOMString &command);
void addMarker(Range range, DocumentMarker::MarkerType type);
void removeMarker(Range range, DocumentMarker::MarkerType type);
void addMarker(NodeImpl *node, DocumentMarker marker);
void removeMarker(NodeImpl *node, DocumentMarker marker);
void removeAllMarkers(NodeImpl *node, ulong startOffset, long length);
void removeAllMarkers(NodeImpl *node);
void removeAllMarkers();
void shiftMarkers(NodeImpl *node, ulong startOffset, long delta);
QValueList<DocumentMarker> markersForNode(NodeImpl *node);
/**
* designMode support
*/
enum InheritedBool {
off=false,
on=true,
inherit
};
void setDesignMode(InheritedBool value);
InheritedBool getDesignMode() const;
bool inDesignMode() const;
DocumentImpl *parentDocument() const;
DocumentImpl *topDocument() const;
int docID() const { return m_docID; }
#ifdef KHTML_XSLT
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?