| 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 #ifndef UI_EVENTS_EVENT_DISPATCHER_H_ | 5 #ifndef UI_EVENTS_EVENT_DISPATCHER_H_ |
| 6 #define UI_EVENTS_EVENT_DISPATCHER_H_ | 6 #define UI_EVENTS_EVENT_DISPATCHER_H_ |
| 7 | 7 |
| 8 #include "base/auto_reset.h" | 8 #include "base/auto_reset.h" |
| 9 #include "ui/base/ui_export.h" | |
| 10 #include "ui/events/event.h" | 9 #include "ui/events/event.h" |
| 11 #include "ui/events/event_constants.h" | 10 #include "ui/events/event_constants.h" |
| 12 #include "ui/events/event_target.h" | 11 #include "ui/events/event_target.h" |
| 12 #include "ui/events/events_export.h" |
| 13 | 13 |
| 14 namespace ui { | 14 namespace ui { |
| 15 | 15 |
| 16 class EventDispatcher; | 16 class EventDispatcher; |
| 17 | 17 |
| 18 class UI_EXPORT EventDispatcherDelegate { | 18 class EVENTS_EXPORT EventDispatcherDelegate { |
| 19 public: | 19 public: |
| 20 EventDispatcherDelegate(); | 20 EventDispatcherDelegate(); |
| 21 virtual ~EventDispatcherDelegate(); | 21 virtual ~EventDispatcherDelegate(); |
| 22 | 22 |
| 23 // Returns whether an event can still be dispatched to a target. (e.g. during | 23 // Returns whether an event can still be dispatched to a target. (e.g. during |
| 24 // event dispatch, one of the handlers may have destroyed the target, in which | 24 // event dispatch, one of the handlers may have destroyed the target, in which |
| 25 // case the event can no longer be dispatched to the target). | 25 // case the event can no longer be dispatched to the target). |
| 26 virtual bool CanDispatchToTarget(EventTarget* target) = 0; | 26 virtual bool CanDispatchToTarget(EventTarget* target) = 0; |
| 27 | 27 |
| 28 // Returns the event being dispatched (or NULL if no event is being | 28 // Returns the event being dispatched (or NULL if no event is being |
| 29 // dispatched). | 29 // dispatched). |
| 30 Event* current_event(); | 30 Event* current_event(); |
| 31 | 31 |
| 32 protected: | 32 protected: |
| 33 // Dispatches the event to the target. Returns true if the delegate is still | 33 // Dispatches the event to the target. Returns true if the delegate is still |
| 34 // alive after dispatching event, and false if the delegate was destroyed | 34 // alive after dispatching event, and false if the delegate was destroyed |
| 35 // during the event dispatch. | 35 // during the event dispatch. |
| 36 bool DispatchEvent(EventTarget* target, Event* event); | 36 bool DispatchEvent(EventTarget* target, Event* event); |
| 37 | 37 |
| 38 private: | 38 private: |
| 39 EventDispatcher* dispatcher_; | 39 EventDispatcher* dispatcher_; |
| 40 | 40 |
| 41 DISALLOW_COPY_AND_ASSIGN(EventDispatcherDelegate); | 41 DISALLOW_COPY_AND_ASSIGN(EventDispatcherDelegate); |
| 42 }; | 42 }; |
| 43 | 43 |
| 44 // Dispatches events to appropriate targets. | 44 // Dispatches events to appropriate targets. |
| 45 class UI_EXPORT EventDispatcher { | 45 class EVENTS_EXPORT EventDispatcher { |
| 46 public: | 46 public: |
| 47 explicit EventDispatcher(EventDispatcherDelegate* delegate); | 47 explicit EventDispatcher(EventDispatcherDelegate* delegate); |
| 48 virtual ~EventDispatcher(); | 48 virtual ~EventDispatcher(); |
| 49 | 49 |
| 50 void ProcessEvent(EventTarget* target, Event* event); | 50 void ProcessEvent(EventTarget* target, Event* event); |
| 51 | 51 |
| 52 const Event* current_event() const { return current_event_; } | 52 const Event* current_event() const { return current_event_; } |
| 53 Event* current_event() { return current_event_; } | 53 Event* current_event() { return current_event_; } |
| 54 | 54 |
| 55 bool delegate_destroyed() const { return !delegate_; } | 55 bool delegate_destroyed() const { return !delegate_; } |
| (...skipping 15 matching lines...) Expand all Loading... |
| 71 Event* current_event_; | 71 Event* current_event_; |
| 72 | 72 |
| 73 EventHandlerList handler_list_; | 73 EventHandlerList handler_list_; |
| 74 | 74 |
| 75 DISALLOW_COPY_AND_ASSIGN(EventDispatcher); | 75 DISALLOW_COPY_AND_ASSIGN(EventDispatcher); |
| 76 }; | 76 }; |
| 77 | 77 |
| 78 } // namespace ui | 78 } // namespace ui |
| 79 | 79 |
| 80 #endif // UI_EVENTS_EVENT_DISPATCHER_H_ | 80 #endif // UI_EVENTS_EVENT_DISPATCHER_H_ |
| OLD | NEW |