OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "ui/base/events/event_dispatcher.h" | 5 #include "ui/base/events/event_dispatcher.h" |
6 #include "ui/base/events/event_handler.h" | 6 #include "ui/base/events/event_handler.h" |
7 | 7 |
8 #include "ui/base/events/event.h" | 8 #include "ui/base/events/event.h" |
9 | 9 |
10 namespace ui { | 10 namespace ui { |
11 | 11 |
12 EventHandler::EventHandler() { | 12 EventHandler::EventHandler() { |
13 } | 13 } |
14 | 14 |
15 EventHandler::~EventHandler() { | 15 EventHandler::~EventHandler() { |
16 while (!dispatchers_.empty()) { | 16 while (!dispatchers_.empty()) { |
17 EventDispatcher* dispatcher = dispatchers_.top(); | 17 EventDispatcher* dispatcher = dispatchers_.top(); |
18 dispatchers_.pop(); | 18 dispatchers_.pop(); |
19 dispatcher->OnHandlerDestroyed(this); | 19 dispatcher->OnHandlerDestroyed(this); |
20 } | 20 } |
21 } | 21 } |
22 | 22 |
23 void EventHandler::OnEvent(Event* event) { | 23 void EventHandler::OnEvent(Event* event) { |
24 ui::EventResult result = ui::ER_UNHANDLED; | |
25 if (event->IsKeyEvent()) | 24 if (event->IsKeyEvent()) |
26 OnKeyEvent(static_cast<KeyEvent*>(event)); | 25 OnKeyEvent(static_cast<KeyEvent*>(event)); |
27 else if (event->IsMouseEvent()) | 26 else if (event->IsMouseEvent()) |
28 result = OnMouseEvent(static_cast<MouseEvent*>(event)); | 27 OnMouseEvent(static_cast<MouseEvent*>(event)); |
29 else if (event->IsScrollEvent()) | 28 else if (event->IsScrollEvent()) |
30 OnScrollEvent(static_cast<ScrollEvent*>(event)); | 29 OnScrollEvent(static_cast<ScrollEvent*>(event)); |
31 else if (event->IsTouchEvent()) | 30 else if (event->IsTouchEvent()) |
32 OnTouchEvent(static_cast<TouchEvent*>(event)); | 31 OnTouchEvent(static_cast<TouchEvent*>(event)); |
33 else if (event->IsGestureEvent()) | 32 else if (event->IsGestureEvent()) |
34 OnGestureEvent(static_cast<GestureEvent*>(event)); | 33 OnGestureEvent(static_cast<GestureEvent*>(event)); |
35 | |
36 if (result & ui::ER_CONSUMED) | |
37 event->StopPropagation(); | |
38 if (result & ui::ER_HANDLED) | |
39 event->SetHandled(); | |
40 } | 34 } |
41 | 35 |
42 void EventHandler::OnKeyEvent(KeyEvent* event) { | 36 void EventHandler::OnKeyEvent(KeyEvent* event) { |
43 } | 37 } |
44 | 38 |
45 EventResult EventHandler::OnMouseEvent(MouseEvent* event) { | 39 void EventHandler::OnMouseEvent(MouseEvent* event) { |
46 return ui::ER_UNHANDLED; | |
47 } | 40 } |
48 | 41 |
49 void EventHandler::OnScrollEvent(ScrollEvent* event) { | 42 void EventHandler::OnScrollEvent(ScrollEvent* event) { |
50 } | 43 } |
51 | 44 |
52 void EventHandler::OnTouchEvent(TouchEvent* event) { | 45 void EventHandler::OnTouchEvent(TouchEvent* event) { |
53 } | 46 } |
54 | 47 |
55 void EventHandler::OnGestureEvent(GestureEvent* event) { | 48 void EventHandler::OnGestureEvent(GestureEvent* event) { |
56 } | 49 } |
57 | 50 |
58 } // namespace ui | 51 } // namespace ui |
OLD | NEW |