• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright 2008, The Android Open Source Project
3  *
4  * Redistribution and use in source and binary forms, with or without
5  * modification, are permitted provided that the following conditions
6  * are met:
7  *  * Redistributions of source code must retain the above copyright
8  *    notice, this list of conditions and the following disclaimer.
9  *  * Redistributions in binary form must reproduce the above copyright
10  *    notice, this list of conditions and the following disclaimer in the
11  *    documentation and/or other materials provided with the distribution.
12  *
13  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS'' AND ANY
14  * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
15  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
16  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE COMPUTER, INC. OR
17  * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
18  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
19  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
20  * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
21  * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
22  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
23  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
24  */
25 
26 #ifndef TouchEvent_h
27 #define TouchEvent_h
28 
29 #if ENABLE(TOUCH_EVENTS)
30 
31 #include "MouseRelatedEvent.h"
32 #include "TouchList.h"
33 
34 namespace WebCore {
35 
36 class TouchEvent : public MouseRelatedEvent {
37 public:
38     virtual ~TouchEvent();
39 
create()40     static PassRefPtr<TouchEvent> create()
41     {
42         return adoptRef(new TouchEvent);
43     }
create(TouchList * touches,TouchList * targetTouches,TouchList * changedTouches,const AtomicString & type,PassRefPtr<AbstractView> view,int screenX,int screenY,int pageX,int pageY,bool ctrlKey,bool altKey,bool shiftKey,bool metaKey)44     static PassRefPtr<TouchEvent> create(TouchList* touches,
45             TouchList* targetTouches, TouchList* changedTouches,
46             const AtomicString& type, PassRefPtr<AbstractView> view,
47             int screenX, int screenY, int pageX, int pageY,
48             bool ctrlKey, bool altKey, bool shiftKey, bool metaKey)
49     {
50         return adoptRef(new TouchEvent(touches, targetTouches, changedTouches,
51                 type, view, screenX, screenY, pageX, pageY,
52                 ctrlKey, altKey, shiftKey, metaKey));
53     }
54 
55     void initTouchEvent(TouchList* touches, TouchList* targetTouches,
56             TouchList* changedTouches, const AtomicString& type,
57             PassRefPtr<AbstractView> view, int screenX, int screenY,
58             int clientX, int clientY,
59             bool ctrlKey, bool altKey, bool shiftKey, bool metaKey);
60 
touches()61     TouchList* touches() const { return m_touches.get(); }
targetTouches()62     TouchList* targetTouches() const { return m_targetTouches.get(); }
changedTouches()63     TouchList* changedTouches() const { return m_changedTouches.get(); }
64 
65 #if PLATFORM(ANDROID)
hitTouchHandler()66     virtual bool hitTouchHandler() const { return m_hitTouchHandler; }
setHitTouchHandler()67     virtual void setHitTouchHandler() { m_hitTouchHandler = true; }
68 #endif
69 
70 private:
71     TouchEvent();
72     TouchEvent(TouchList* touches, TouchList* targetTouches,
73             TouchList* changedTouches, const AtomicString& type,
74             PassRefPtr<AbstractView>, int screenX, int screenY, int pageX,
75             int pageY,
76             bool ctrlKey, bool altKey, bool shiftKey, bool metaKey);
77 
isTouchEvent()78     virtual bool isTouchEvent() const { return true; }
79 
80 #if PLATFORM(ANDROID)
81     bool m_hitTouchHandler;
82 #endif
83 
84     RefPtr<TouchList> m_touches;
85     RefPtr<TouchList> m_targetTouches;
86     RefPtr<TouchList> m_changedTouches;
87 };
88 
89 } // namespace WebCore
90 
91 #endif // ENABLE(TOUCH_EVENTS)
92 
93 #endif // TouchEvent_h
94