48 lines
1.6 KiB
C
48 lines
1.6 KiB
C
|
// Copyright (c) 2012 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_LOOP_MESSAGE_PUMP_OBSERVER_H
|
||
|
#define BASE_MESSAGE_LOOP_MESSAGE_PUMP_OBSERVER_H
|
||
|
|
||
|
#include "base/base_export.h"
|
||
|
#include "base/event_types.h"
|
||
|
|
||
|
namespace base {
|
||
|
|
||
|
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
|
||
|
// MessagePumpAuraX11.
|
||
|
//
|
||
|
// NOTE: An Observer implementation should be extremely fast!
|
||
|
//
|
||
|
// For use with MessagePumpAuraX11, 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& event) = 0;
|
||
|
|
||
|
// 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_LOOP_MESSAGE_PUMP_OBSERVER_H
|