Home | History | Annotate | Download | only in page
      1 /*
      2    Copyright (C) 2006 Apple Computer, Inc.
      3 
      4    This library is free software; you can redistribute it and/or
      5    modify it under the terms of the GNU Library General Public
      6    License as published by the Free Software Foundation; either
      7    version 2 of the License, or (at your option) any later version.
      8 
      9    This library is distributed in the hope that it will be useful,
     10    but WITHOUT ANY WARRANTY; without even the implied warranty of
     11    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
     12    Library General Public License for more details.
     13 
     14    You should have received a copy of the GNU Library General Public License
     15    along with this library; see the file COPYING.LIB.  If not, write to
     16    the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
     17    Boston, MA 02110-1301, USA.
     18 */
     19 
     20 #include "config.h"
     21 #include "MouseEventWithHitTestResults.h"
     22 
     23 #include "Element.h"
     24 #include "Node.h"
     25 
     26 // Would TargetedMouseEvent be a better name?
     27 
     28 namespace WebCore {
     29 
     30 MouseEventWithHitTestResults::MouseEventWithHitTestResults(const PlatformMouseEvent& event, const HitTestResult& hitTestResult)
     31     : m_event(event)
     32     , m_hitTestResult(hitTestResult)
     33 {
     34 }
     35 
     36 Node* MouseEventWithHitTestResults::targetNode() const
     37 {
     38     Node* node = m_hitTestResult.innerNode();
     39     if (!node)
     40         return 0;
     41     if (node->inDocument())
     42         return node;
     43 
     44     Element* element = node->parentElement();
     45     if (element && element->inDocument())
     46         return element;
     47 
     48     return node;
     49 }
     50 
     51 const IntPoint MouseEventWithHitTestResults::localPoint() const
     52 {
     53     return m_hitTestResult.localPoint();
     54 }
     55 
     56 Scrollbar* MouseEventWithHitTestResults::scrollbar() const
     57 {
     58     return m_hitTestResult.scrollbar();
     59 }
     60 
     61 bool MouseEventWithHitTestResults::isOverLink() const
     62 {
     63     return m_hitTestResult.URLElement() && m_hitTestResult.URLElement()->isLink();
     64 }
     65 
     66 }
     67