summaryrefslogtreecommitdiffstats
path: root/ui/base/events
diff options
context:
space:
mode:
authorsky@chromium.org <sky@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-02-21 01:17:36 +0000
committersky@chromium.org <sky@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-02-21 01:17:36 +0000
commitaf5e2527f117e4187012285b731b7c19690b09c0 (patch)
tree6a81621eb664eeec75b8565e206a592c33625003 /ui/base/events
parent5436bd2533a236ca3c6ff6cc7ce7b9a89e9ab10d (diff)
downloadchromium_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.cc12
-rw-r--r--ui/base/events/event.h6
-rw-r--r--ui/base/events/event_constants.h4
-rw-r--r--ui/base/events/event_handler.cc5
-rw-r--r--ui/base/events/event_handler.h3
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;