📄 xbl_binding_manager.h
字号:
#include "qptrdict.h"
namespace khtml {
class CachedXBLDocument;
class BindingURI;
}
namespace DOM {
class DocumentImpl;
class NodeImpl;
class ElementImpl;
}
namespace XBL {
class XBLBindingChain;
class XBLChildNodeList;
// This class handles all access to XBL bindings and XBL binding information. It also handles the loading/installation of XBL
// bindings. In the comments below, the term "decorated DOM" is used to describe the final DOM that can be walked after all
// bindings have been installed.
class XBLBindingManager
OOM_MODIFIED
{
public:
XBLBindingManager(DOM::DocumentImpl* doc);
~XBLBindingManager();
bool loadBindings(DOM::NodeImpl* node, khtml::BindingURI* bindingURIs, bool isStyleBinding, bool* resolveStyle);
void checkLoadState(DOM::ElementImpl* elt);
XBLBindingChain* getBindingChain(DOM::NodeImpl* node);
void setBindingChain(DOM::NodeImpl* node, XBLBindingChain* binding);
private:
// The document whose bindings we manage.
DOM::DocumentImpl* m_document;
// A mapping from a DOM::NodeImpl* to the XBL::XBLBindingChain* that is
// installed on that element.
QPtrDict<XBLBindingChain>* m_bindingChainTable;
// A mapping from DOM::NodeImpl* to an XBLChildNodeListImpl*.
// This list contains an accurate reflection of our *explicit* children (once intermingled with
// insertion points) in the decorated DOM.
QPtrDict<XBLChildNodeList>* m_explicitChildNodesTable;
// A mapping from DOM::NodeImpl* to an XBLChildNodeListImpl*. This list contains an accurate
// reflection of our *anonymous* children (if and only if they are
// intermingled with insertion points) in the decorated DOM. This
// table is not used if no insertion points were defined directly
// underneath a <content> tag in a binding. The NodeList from the
// binding's cloned <content> element is used instead as a performance optimization.
QPtrDict<XBLChildNodeList>* m_anonymousChildNodesTable;
// A mapping from a DOM::NodeImpl* to a DOM::NodeImpl*. Used to obtain the node's parent
// element in the decorated DOM.
QPtrDict<DOM::NodeImpl>* m_parentElementTable;
// A mapping from
};
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -