Home | History | Annotate | Download | only in nav

Lines Matching full:node

98 static bool hasEventListener(Node* node, const AtomicString& eventType) {
99 if (!node->isElementNode())
101 Element* element = static_cast<Element*>(node);
345 Node* node = doc;
346 Node* focus = doc->focusedNode();
349 if ((atLeastOne |= isFocusable(node)) != false)
351 } while ((node = node->traverseNextNode()) != NULL);
361 node = doc;
366 if (hasEventListener(node, eventNames().clickEvent))
368 if (hasEventListener(node, eventNames().mousedownEvent))
370 if (hasEventListener(node, eventNames().mouseupEvent))
372 if (hasEventListener(node, eventNames().mouseoverEvent))
374 if (hasEventListener(node, eventNames().mouseoutEvent))
376 if (hasEventListener(node, eventNames().keydownEvent))
378 if (hasEventListener(node, eventNames().keyupEvent))
380 if (CacheBuilder::HasFrame(node))
382 if (focus == node) {
386 if (node->isKeyboardFocusable(NULL))
388 if (node->isMouseFocusable())
390 if (node->isFocusable())
396 IntRect rect = node->getRect();
397 if (node->hasTagName(HTMLNames::areaTag))
398 rect = getAreaRect(static_cast<HTMLAreaElement*>(node));
406 localName(node);
409 int parentIndex = ParentIndex(node, count, node->parentNode());
413 Element* element = static_cast<Element*>(node);
414 if (node->isElementNode() && element->hasID())
416 else if (node->isTextNode()) {
418 if (rect.isEmpty() && node->textContent().length() > 100) {
419 wideString(node->textContent().characters(), 100, false);
421 node->textContent().length() - 100);
425 wideString(node->textContent().characters(), node->textContent().length(), true);
426 } else if (node
427 node->hasTagName(HTMLNames::areaTag))
429 HTMLAnchorElement* anchor = static_cast<HTMLAnchorElement*>(node);
431 } else if (node->hasTagName(HTMLNames::imgTag)) {
432 HTMLImageElement* image = static_cast<HTMLImageElement*>(node);
436 RenderObject* renderer = node->renderer();
437 int tabindex = node->isElementNode() ? node->tabIndex() : 0;
459 if (node->isElementNode()) {
460 Element* element = static_cast<Element*>(node);
488 } while ((node = node->traverseNextNode()) != NULL);
493 node = doc;
500 bool _isFocusable = isFocusable(node) || (node->isTextNode()
501 && node->getRect().isEmpty() == false
506 RenderObject* renderer = node->renderer();
513 if (node->isTextNode()) {
514 Text* textNode = (Text*) node;
520 IntRect nodeBounds = node->getRect();
521 if (CacheBuilder::ConstructPartRects(node, nodeBounds, rectPtr,
532 if (node->isTextNode() == false) {
541 RenderText* renderText = (RenderText*) node->renderer();
560 wideString(node->textContent().characters() + textBox->start(), textBox->len(), true);
566 } while ((node = node->traverseNextNode()) != NULL);
579 bool CacheBuilder::Debug::isFocusable(Node* node) {
580 if (node->hasTagName(HTMLNames::areaTag))
582 if (node->renderer() == false)
584 if (node->isKeyboardFocusable(NULL))
586 if (node->isMouseFocusable())
588 if (node->isFocusable())
590 if (CacheBuilder::AnyIsClick(node))
592 if (CacheBuilder::HasTriggerEvent(node))
597 void CacheBuilder::Debug::localName(Node* node) {
598 const AtomicString& local = node->localName();
599 if (node->isTextNode())
631 int CacheBuilder::Debug::ParentIndex(Node* node, int count, Node* parent)
635 ASSERT(node != parent);
637 Node* previous = node;
647 } while ((node = node->traverseNextNode()) != NULL && node != parent);
648 if (node != NULL)
757 CachedNode* node, IntRect* bounds)
774 node->move(x, y);
783 // Checks if a node has one of event listener types.
784 bool CacheBuilder::NodeHasEventListeners(Node* node, AtomicString* eventTypes, int length) {
786 if (!node->getEventListeners(eventTypes[i]).isEmpty())
792 bool CacheBuilder::AnyChildIsClick(Node* node)
802 Node* child = node->firstChild();
814 bool CacheBuilder::AnyIsClick(Node* node)
816 if (node->hasTagName(HTMLNames::bodyTag))
817 return AnyChildIsClick(node);
826 if (!NodeHasEventListeners(node, eventTypeSetOne, 4))
835 if (NodeHasEventListeners(node, eventTypeSetTwo, 3))
838 return AnyChildIsClick(node);
849 static Node* ParentWithChildren(Node* node)
851 Node* parent = node;
864 static Node* OneAfter(Node* node)
866 Node* parent = node;
867 Node* sibling = NULL;
912 // a node is a grandchild of the focus's parent
940 Node* parent = doc;
947 Node* node = parent;
950 Node* focused = doc->focusedNode();
956 while (walk.mMore || (node = node->traverseNextNode()) != NULL) {
962 while (node == last->mLastChild) {
971 if (node != lastClip->mLastChild)
977 if (node != lastLayer->mLastChild)
983 if (node != lastTabIndex->mLastChild)
987 Frame* child = HasFrame(node);
992 RenderObject* nodeRenderer = node->renderer();
999 cachedNode.init(node);
1006 node, nodeIndex, NULL);
1013 int tabIndex = node->tabIndex();
1014 Node* lastChild = node->lastChild();
1018 DBG_NAV_LOGD("tabIndex=%d node=%p", tabIndex, node);
1024 RenderObject* nodeRenderer = node->renderer();
1069 // GetGlobalBounds(node, &bounds, false);
1074 bool isFocus = node == focused;
1085 if (node->hasTagName(HTMLNames::areaTag)) {
1087 HTMLAreaElement* area = static_cast<HTMLAreaElement*>(node);
1106 if (node->hasTagName(HTMLNames::bodyTag))
1130 clip.mNode = node;
1140 if (node->isTextNode() && mAllowableTypes != NORMAL_CACHEDNODE_BITS) {
1141 if (last->mSomeParentTakesFocus) // don't look at text inside focusable node
1144 if (isFocusableText(&walk, more, node, &checkType,
1158 cachedNode.init(node);
1162 if (ConstructTextRects((WebCore::Text*) node, walk.mStart,
1178 if (node->hasTagName(WebCore::HTMLNames::inputTag)) {
1179 HTMLInputElement* input = static_cast<HTMLInputElement*>(node);
1196 } else if (node->hasTagName(HTMLNames::textareaTag)) {
1199 HTMLTextAreaElement* area = static_cast<HTMLTextAreaElement*>(node);
1206 } else if (node->hasTagName(HTMLNames::aTag)) {
1208 (const HTMLAnchorElement*) node;
1209 if (!anchorNode->isFocusable() && !HasTriggerEvent(node))
1211 if (node->disabled())
1213 hasMouseOver = NodeHasEventListeners(node, &eventNames().mouseoverEvent, 1);
1239 bool isFocusable = node->isKeyboardFocusable(NULL) ||
1240 node->isMouseFocusable() || node->isFocusable();
1242 if (node->disabled())
1244 bool overOrOut = HasOverOrOut(node);
1245 bool hasTrigger = HasTriggerEvent(node);
1253 cachedNode.init(node);
1257 } else if (ConstructPartRects(node, bounds, &cachedNode.mBounds,
1263 if (clipTracker.last().mNode == node)
1280 continue; // skip this node if clip prevents all drawing
1282 continue; // skip this node if outside of the clip
1292 continue; // skip this node if outside of the clip
1312 cachedNode.setParentGroup(ParentWithChildren(node));
1324 node, nodeIndex, (Node*) cachedNode.parentGroup());
1329 if (node == focused) {
1364 Node* lastNode = (Node*) lastCached->nodePointer();
1374 Node* onlyChild = (Node*) onlyChildCached->nodePointer();
1389 Node* CacheBuilder::currentFocus() const
1394 Node* focus = doc->focusedNode();
1401 Node* focus = cacheBuilder->currentFocus();
1776 // incorrectly discards addresses where the house number is in one node
1827 if (s->mBases[0] != s->mBases[shift]) // if we're past the original node, bail
2161 // either walk the node tree directly or make a callout to get the next or previous node, if there is one
2430 Node* node = area->document();
2431 while ((node = node->traverseNextNode()) != NULL) {
2432 RenderObject* renderer = node->renderer();
2437 Node* n;
2452 void CacheBuilder::GetGlobalOffset(Node* node, int* x, int * y)
2454 GetGlobalOffset(node->document()->frame(), x, y);
2476 Frame* CacheBuilder::HasFrame(Node* node)
2478 RenderObject* renderer = node->renderer();
2491 bool CacheBuilder::HasOverOrOut(Node* node)
2499 return NodeHasEventListeners(node, eventTypes, 2);
2502 bool CacheBuilder::HasTriggerEvent(Node* node)
2512 return NodeHasEventListeners(node, eventTypes, 5);
2527 bool CacheBuilder::isFocusableText(NodeWalk* walk, bool more, Node* node,
2530 Text* textNode = static_cast<Text*>(node);
2543 walk->mFinalNode = node;
2546 // starting with this node, search forward for email, phone number, and address
2549 RenderText* renderer = (RenderText*) node->renderer();
2575 Node* lastPartialNode = NULL;
2603 lastPartialNode = node;
2614 walk->mFinalNode = node;
2616 walk->mMore = node == textNode &&
2630 Node* temp = textNode;
2666 if (state == FOUND_PARTIAL && node == textNode)
2671 // search for next text node, if any
2676 node = node->traverseNextNode();
2677 if (node == NULL || node->hasTagName(HTMLNames::aTag)
2678 || node->hasTagName(HTMLNames::inputTag)
2679 || node->hasTagName(HTMLNames::textareaTag)) {
2692 } while (node->isTextNode() == false);
2693 nextNode = static_cast<Text*>(node);
2706 node = textNode;
2783 RenderObject* nodeRenderer, Node* lastChild, int offsetX, int offsetY)
2814 Node* node = startFrame->document();
2815 while (node != NULL) {
2816 if (node == matchNode) {
2817 const IntRect& rect = node
2818 getAreaRect(static_cast<HTMLAreaElement*>(node)) : node->getRect();
2825 node = node->traverseNextNode();
2827 DBG_NAV_LOGD("frame=%p valid node=%p invalid\n", matchFrame, matchNode);
2839 DBG_NAV_LOGD("frame=%p node=%p false\n", matchFrame, matchNode);
2888 bool CacheBuilder::ConstructPartRects(Node* node, const IntRect& bounds,
2894 if (node->hasChildNodes() && node->hasTagName(HTMLNames::buttonTag) == false
2895 && node->hasTagName(HTMLNames::selectTag) == false) {
2897 Node* test = node->firstChild();
2898 Node* last = NULL;
2899 Node* prior = node;
2903 bool nodeIsAnchor = node->hasTagName(HTMLNames::aTag);
2960 Node* lastChild = test->lastChild();
3023 bool CacheBuilder::ConstructTextRects(Text* node, int start,
3030 RenderText* renderText = (RenderText*) node->renderer();
3031 int relEnd = node == last ? end : renderText->textLength();
3038 if (textBox && ConstructTextRect(node, textBox, start, relEnd,
3044 if (node == last)
3046 node = (Text*) node->traverseNextNode();
3047 ASSERT(node != NULL);
3048 } while (node->isTextNode() == false || node->renderer() == NULL);