• 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) // Android
30 
31 #include "MouseRelatedEvent.h"
32 #include "TouchList.h"
33 
34 namespace WebCore {
35 
36     class TouchEvent : public MouseRelatedEvent {
37     public:
create()38         static PassRefPtr<TouchEvent> create()
39         {
40             return adoptRef(new TouchEvent);
41         }
create(TouchList * touches,TouchList * targetTouches,TouchList * changedTouches,const AtomicString & type,PassRefPtr<AbstractView> view,int screenX,int screenY,int pageX,int pageY)42         static PassRefPtr<TouchEvent> create(TouchList* touches,
43                 TouchList* targetTouches, TouchList* changedTouches,
44                 const AtomicString& type, PassRefPtr<AbstractView> view,
45                 int screenX, int screenY, int pageX, int pageY)
46         {
47             return adoptRef(new TouchEvent(touches, targetTouches, changedTouches,
48                     type, view, screenX, screenY, pageX, pageY));
49         }
50 
51         void initTouchEvent(TouchList* touches, TouchList* targetTouches,
52                 TouchList* changedTouches, const AtomicString& type,
53                 PassRefPtr<AbstractView> view, int screenX, int screenY,
54                 int clientX, int clientY);
55 
touches()56         TouchList* touches() const {return m_touches.get();}
targetTouches()57         TouchList* targetTouches() const {return m_targetTouches.get();}
changedTouches()58         TouchList* changedTouches() const {return m_changedTouches.get();}
59 
60     private:
TouchEvent()61         TouchEvent() {}
62         TouchEvent(TouchList* touches, TouchList* targetTouches,
63                 TouchList* changedTouches, const AtomicString& type,
64                 PassRefPtr<AbstractView>, int screenX, int screenY, int pageX,
65                 int pageY);
66 
isTouchEvent()67         virtual bool isTouchEvent() const {return true;}
68 
69         RefPtr<TouchList> m_touches;
70         RefPtr<TouchList> m_targetTouches;
71         RefPtr<TouchList> m_changedTouches;
72     };
73 
74 } // namespace WebCore
75 
76 #endif // ENABLE(TOUCH_EVENTS)
77 
78 #endif // TouchEvent_h
79