diff options
author | sky@chromium.org <sky@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-02-21 01:17:36 +0000 |
---|---|---|
committer | sky@chromium.org <sky@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-02-21 01:17:36 +0000 |
commit | af5e2527f117e4187012285b731b7c19690b09c0 (patch) | |
tree | 6a81621eb664eeec75b8565e206a592c33625003 /ui/base/events | |
parent | 5436bd2533a236ca3c6ff6cc7ce7b9a89e9ab10d (diff) | |
download | chromium_src-af5e2527f117e4187012285b731b7c19690b09c0.zip chromium_src-af5e2527f117e4187012285b731b7c19690b09c0.tar.gz chromium_src-af5e2527f117e4187012285b731b7c19690b09c0.tar.bz2 |
Plumbs through ET_CANCEL_MODE, which is intended to be used when modal
type operations should cancel, such as menus. This is a precursor to
moving TooltipController to views.
BUG=175441
R=sadrul@chromium.org
Review URL: https://chromiumcodereview.appspot.com/12294051
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@183693 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ui/base/events')
-rw-r--r-- | ui/base/events/event.cc | 12 | ||||
-rw-r--r-- | ui/base/events/event.h | 6 | ||||
-rw-r--r-- | ui/base/events/event_constants.h | 4 | ||||
-rw-r--r-- | ui/base/events/event_handler.cc | 5 | ||||
-rw-r--r-- | ui/base/events/event_handler.h | 3 |
5 files changed, 30 insertions, 0 deletions
diff --git a/ui/base/events/event.cc b/ui/base/events/event.cc index 7383579e..50c265b 100644 --- a/ui/base/events/event.cc +++ b/ui/base/events/event.cc @@ -95,6 +95,7 @@ std::string EventTypeName(ui::EventType type) { CASE_TYPE(ET_SCROLL); CASE_TYPE(ET_SCROLL_FLING_START); CASE_TYPE(ET_SCROLL_FLING_CANCEL); + CASE_TYPE(ET_CANCEL_MODE); case ui::ET_LAST: NOTREACHED(); return std::string(); // Don't include default, so that we get an error when new type is added. } @@ -229,6 +230,17 @@ void Event::InitWithNativeEvent(const base::NativeEvent& native_event) { } //////////////////////////////////////////////////////////////////////////////// +// CancelModeEvent + +CancelModeEvent::CancelModeEvent() + : Event(ui::ET_CANCEL_MODE, base::TimeDelta(), 0) { + set_cancelable(false); +} + +CancelModeEvent::~CancelModeEvent() { +} + +//////////////////////////////////////////////////////////////////////////////// // LocatedEvent LocatedEvent::~LocatedEvent() { diff --git a/ui/base/events/event.h b/ui/base/events/event.h index 91a1ac8..a50823a 100644 --- a/ui/base/events/event.h +++ b/ui/base/events/event.h @@ -228,6 +228,12 @@ class UI_EXPORT Event { EventResult result_; }; +class UI_EXPORT CancelModeEvent : public Event { + public: + CancelModeEvent(); + virtual ~CancelModeEvent(); +}; + class UI_EXPORT LocatedEvent : public Event { public: // For testing. diff --git a/ui/base/events/event_constants.h b/ui/base/events/event_constants.h index 984b790..bb7706d 100644 --- a/ui/base/events/event_constants.h +++ b/ui/base/events/event_constants.h @@ -55,6 +55,10 @@ enum EventType { ET_SCROLL_FLING_START, ET_SCROLL_FLING_CANCEL, + // Sent by the system to indicate any modal type operations, such as drag and + // drop or menus, should stop. + ET_CANCEL_MODE, + // Must always be last. User namespace starts above this value. // See ui::RegisterCustomEventType(). ET_LAST diff --git a/ui/base/events/event_handler.cc b/ui/base/events/event_handler.cc index e36a01f..99295b15 100644 --- a/ui/base/events/event_handler.cc +++ b/ui/base/events/event_handler.cc @@ -31,6 +31,8 @@ void EventHandler::OnEvent(Event* event) { OnTouchEvent(static_cast<TouchEvent*>(event)); else if (event->IsGestureEvent()) OnGestureEvent(static_cast<GestureEvent*>(event)); + else if (event->type() == ET_CANCEL_MODE) + OnCancelMode(static_cast<CancelModeEvent*>(event)); } void EventHandler::OnKeyEvent(KeyEvent* event) { @@ -48,4 +50,7 @@ void EventHandler::OnTouchEvent(TouchEvent* event) { void EventHandler::OnGestureEvent(GestureEvent* event) { } +void EventHandler::OnCancelMode(CancelModeEvent* event) { +} + } // namespace ui diff --git a/ui/base/events/event_handler.h b/ui/base/events/event_handler.h index 92d164a..6ecc389 100644 --- a/ui/base/events/event_handler.h +++ b/ui/base/events/event_handler.h @@ -14,6 +14,7 @@ namespace ui { +class CancelModeEvent; class Event; class EventDispatcher; class EventTarget; @@ -46,6 +47,8 @@ class UI_EXPORT EventHandler { virtual void OnGestureEvent(GestureEvent* event); + virtual void OnCancelMode(CancelModeEvent* event); + private: friend class EventDispatcher; |