Chromium Code Reviews| Index: base/message_pump_observer.h |
| diff --git a/base/message_pump_observer.h b/base/message_pump_observer.h |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..a0fe5b00d7bc75097c767cf8caf4a86ec3caa8a4 |
| --- /dev/null |
| +++ b/base/message_pump_observer.h |
| @@ -0,0 +1,54 @@ |
| +// Copyright (c) 2011 The Chromium Authors. All rights reserved. |
| +// Use of this source code is governed by a BSD-style license that can be |
| +// found in the LICENSE file. |
| + |
| +#ifndef BASE_MESSAGE_PUMP_OBSERVER_H |
| +#define BASE_MESSAGE_PUMP_OBSERVER_H |
| + |
| +#if defined(USE_X11) |
| +typedef union _XEvent XEvent; |
| +#endif |
| + |
| +namespace base { |
| + |
| +#if defined(OS_WIN) |
| +typedef MSG NativeEvent; |
| +#elif defined(USE_X11) |
| +typedef XEvent* NativeEvent; |
| +#endif |
| + |
| +enum EventStatus { |
| + EVENT_CONTINUE, // The event should be dispatched as normal. |
| +#if defined(USE_X11) |
| + EVENT_HANDLED // The event should not be processed any farther. |
| +#endif |
| +}; |
| + |
| +// A MessagePumpObserver is an object that receives global |
| +// notifications from the UI MessageLoop with MessagePumpWin or |
| +// MessagePumpX. |
| +// |
| +// NOTE: An Observer implementation should be extremely fast! |
| +// |
| +// For use with MessagePumpX, please see message_pump_glib.h for more |
| +// info about how this is invoked in this environment. |
| +class BASE_EXPORT MessagePumpObserver { |
| + public: |
| + // This method is called before processing a NativeEvent. If the |
| + // method returns EVENT_HANDLED, it indicates the event has already |
| + // been handled, so the event is not processed any farther. If the |
| + // method returns EVENT_CONTINUE, the event dispatching proceeds as |
| + // normal. |
| + virtual EventStatus WillProcessEvent(const NativeEvent& xevent) = 0; |
|
msw
2011/09/27 01:16:46
Should this param be named xevent if it's cross-pl
oshima
2011/09/27 02:12:12
Done.
|
| + |
| + // This method is called after processing a message. This method |
| + // will not be called if WillProcessEvent returns EVENT_HANDLED. |
| + virtual void DidProcessEvent(const NativeEvent& event) = 0; |
| + |
| + protected: |
| + virtual ~MessagePumpObserver() {} |
| +}; |
| + |
| +} // namespace base |
| + |
| +#endif // BASE_MESSAGE_PUMP_OBSERVER_VIEWS_H |