1 /* 2 * Copyright (C) 2006 Apple Computer, Inc. 3 * Copyright (C) 2009 Torch Mobile Inc. http://www.torchmobile.com/ 4 * Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies) 5 * 6 * This library is free software; you can redistribute it and/or 7 * modify it under the terms of the GNU Library General Public 8 * License as published by the Free Software Foundation; either 9 * version 2 of the License, or (at your option) any later version. 10 * 11 * This library is distributed in the hope that it will be useful, 12 * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 * Library General Public License for more details. 15 * 16 * You should have received a copy of the GNU Library General Public License 17 * along with this library; see the file COPYING.LIB. If not, write to 18 * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 19 * Boston, MA 02110-1301, USA. 20 * 21 */ 22 23 #ifndef HitTestRequest_h 24 #define HitTestRequest_h 25 26 namespace blink { 27 28 class HitTestRequest { 29 public: 30 enum RequestType { 31 ReadOnly = 1 << 1, 32 Active = 1 << 2, 33 Move = 1 << 3, 34 Release = 1 << 4, 35 IgnoreClipping = 1 << 5, 36 SVGClipContent = 1 << 6, 37 TouchEvent = 1 << 7, 38 AllowChildFrameContent = 1 << 8, 39 ChildFrameHitTest = 1 << 9, 40 IgnorePointerEventsNone = 1 << 10, 41 }; 42 43 typedef unsigned HitTestRequestType; 44 HitTestRequest(HitTestRequestType requestType)45 HitTestRequest(HitTestRequestType requestType) 46 : m_requestType(requestType) 47 { 48 } 49 readOnly()50 bool readOnly() const { return m_requestType & ReadOnly; } active()51 bool active() const { return m_requestType & Active; } move()52 bool move() const { return m_requestType & Move; } release()53 bool release() const { return m_requestType & Release; } ignoreClipping()54 bool ignoreClipping() const { return m_requestType & IgnoreClipping; } svgClipContent()55 bool svgClipContent() const { return m_requestType & SVGClipContent; } touchEvent()56 bool touchEvent() const { return m_requestType & TouchEvent; } mouseEvent()57 bool mouseEvent() const { return !touchEvent(); } allowsChildFrameContent()58 bool allowsChildFrameContent() const { return m_requestType & AllowChildFrameContent; } isChildFrameHitTest()59 bool isChildFrameHitTest() const { return m_requestType & ChildFrameHitTest; } ignorePointerEventsNone()60 bool ignorePointerEventsNone() const { return m_requestType & IgnorePointerEventsNone; } 61 62 // Convenience functions touchMove()63 bool touchMove() const { return move() && touchEvent(); } touchRelease()64 bool touchRelease() const { return release() && touchEvent(); } 65 type()66 HitTestRequestType type() const { return m_requestType; } 67 68 private: 69 HitTestRequestType m_requestType; 70 }; 71 72 } // namespace blink 73 74 #endif // HitTestRequest_h 75