53 lines
1.7 KiB
C
53 lines
1.7 KiB
C
|
// Copyright (c) 2013 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_OZONE_H_
|
||
|
#define BASE_MESSAGE_LOOP_MESSAGE_PUMP_OZONE_H_
|
||
|
|
||
|
#include "base/memory/scoped_ptr.h"
|
||
|
#include "base/memory/scoped_vector.h"
|
||
|
#include "base/message_loop/message_pump_dispatcher.h"
|
||
|
#include "base/message_loop/message_pump_libevent.h"
|
||
|
#include "base/message_loop/message_pump_observer.h"
|
||
|
#include "base/observer_list.h"
|
||
|
|
||
|
namespace base {
|
||
|
|
||
|
// This class implements a message-pump for processing events from input devices
|
||
|
// Refer to MessagePump for further documentation.
|
||
|
class BASE_EXPORT MessagePumpOzone : public MessagePumpLibevent,
|
||
|
public MessagePumpDispatcher {
|
||
|
public:
|
||
|
MessagePumpOzone();
|
||
|
virtual ~MessagePumpOzone();
|
||
|
|
||
|
// Returns the UI message pump.
|
||
|
static MessagePumpOzone* Current();
|
||
|
|
||
|
// Add/Remove the root window dispatcher.
|
||
|
void AddDispatcherForRootWindow(MessagePumpDispatcher* dispatcher);
|
||
|
void RemoveDispatcherForRootWindow(MessagePumpDispatcher* dispatcher);
|
||
|
|
||
|
void RunWithDispatcher(Delegate* delegate, MessagePumpDispatcher* dispatcher);
|
||
|
|
||
|
// Add / remove an Observer, which will start receiving notifications
|
||
|
// immediately.
|
||
|
void AddObserver(MessagePumpObserver* observer);
|
||
|
void RemoveObserver(MessagePumpObserver* observer);
|
||
|
|
||
|
// Overridden from MessagePumpDispatcher.
|
||
|
virtual bool Dispatch(const NativeEvent& event) OVERRIDE;
|
||
|
|
||
|
private:
|
||
|
std::vector<MessagePumpDispatcher*> dispatcher_;
|
||
|
|
||
|
DISALLOW_COPY_AND_ASSIGN(MessagePumpOzone);
|
||
|
};
|
||
|
|
||
|
typedef MessagePumpOzone MessagePumpForUI;
|
||
|
|
||
|
} // namespace base
|
||
|
|
||
|
#endif // BASE_MESSAGE_LOOP_MESSAGE_PUMP_OZONE_H_
|