initial import
[vuplus_webkit] / Source / WebCore / platform / efl / PlatformMouseEventEfl.cpp
1 /*
2  * Copyright (C) 2006 Zack Rusin <zack@kde.org>
3  * Copyright (C) 2008, 2009 INdT - Instituto Nokia de Tecnologia
4  * Copyright (C) 2009-2010 ProFUSION embedded systems
5  * Copyright (C) 2009-2010 Samsung Electronics
6  *
7  * All rights reserved.
8  *
9  * Redistribution and use in source and binary forms, with or without
10  * modification, are permitted provided that the following conditions
11  * are met:
12  * 1. Redistributions of source code must retain the above copyright
13  *    notice, this list of conditions and the following disclaimer.
14  * 2. Redistributions in binary form must reproduce the above copyright
15  *    notice, this list of conditions and the following disclaimer in the
16  *    documentation and/or other materials provided with the distribution.
17  *
18  * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
19  * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
20  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
21  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE COMPUTER, INC. OR
22  * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
23  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
24  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
25  * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
26  * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
27  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
28  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29  */
30
31 #include "config.h"
32
33 #include "PlatformMouseEvent.h"
34
35 #include <Evas.h>
36 #include <wtf/CurrentTime.h>
37
38 namespace WebCore {
39
40 void PlatformMouseEvent::setClickCount(unsigned int flags)
41 {
42     if (flags & EVAS_BUTTON_TRIPLE_CLICK)
43         m_clickCount = 3;
44     else if (flags & EVAS_BUTTON_DOUBLE_CLICK)
45         m_clickCount = 2;
46     else
47         m_clickCount = 1;
48 }
49
50 PlatformMouseEvent::PlatformMouseEvent(const Evas_Event_Mouse_Down* event, IntPoint position)
51     : m_position(IntPoint(event->canvas.x - position.x(), event->canvas.y - position.y()))
52     , m_globalPosition(IntPoint(event->canvas.x, event->canvas.y))
53     , m_button(MouseButton(event->button - 1))
54     , m_eventType(MouseEventPressed)
55     , m_shiftKey(evas_key_modifier_is_set(event->modifiers, "Shift"))
56     , m_ctrlKey(evas_key_modifier_is_set(event->modifiers, "Control"))
57     , m_altKey(evas_key_modifier_is_set(event->modifiers, "Alt"))
58     , m_metaKey(evas_key_modifier_is_set(event->modifiers, "Meta"))
59     , m_timestamp(currentTime())
60 {
61     setClickCount(event->flags);
62 }
63
64 PlatformMouseEvent::PlatformMouseEvent(const Evas_Event_Mouse_Up* event, IntPoint position)
65     : m_position(IntPoint(event->canvas.x - position.x(), event->canvas.y - position.y()))
66     , m_globalPosition(IntPoint(event->canvas.x, event->canvas.y))
67     , m_button(MouseButton(event->button - 1))
68     , m_eventType(MouseEventReleased)
69     , m_shiftKey(evas_key_modifier_is_set(event->modifiers, "Shift"))
70     , m_ctrlKey(evas_key_modifier_is_set(event->modifiers, "Control"))
71     , m_altKey(evas_key_modifier_is_set(event->modifiers, "Alt"))
72     , m_metaKey(evas_key_modifier_is_set(event->modifiers, "Meta"))
73     , m_timestamp(currentTime())
74 {
75     setClickCount(event->flags);
76 }
77
78 PlatformMouseEvent::PlatformMouseEvent(const Evas_Event_Mouse_Move* event, IntPoint position)
79     : m_position(IntPoint(event->cur.canvas.x - position.x(), event->cur.canvas.y - position.y()))
80     , m_globalPosition(IntPoint(event->cur.canvas.x, event->cur.canvas.y))
81     , m_button(MouseButton(event->buttons - 1))
82     , m_eventType(MouseEventMoved)
83     , m_clickCount(0)
84     , m_shiftKey(evas_key_modifier_is_set(event->modifiers, "Shift"))
85     , m_ctrlKey(evas_key_modifier_is_set(event->modifiers, "Control"))
86     , m_altKey(evas_key_modifier_is_set(event->modifiers, "Alt"))
87     , m_metaKey(evas_key_modifier_is_set(event->modifiers, "Meta"))
88     , m_timestamp(currentTime())
89 {
90 }
91
92 }