Roll src/third_party/WebKit d9c6159:8139f33 (svn 201974:201975)
[chromium-blink-merge.git] / ui / aura / client / event_client.h
blob3ce88e3f62f154a392c6114c707f1bbf29b6d389
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #ifndef UI_AURA_CLIENT_EVENT_CLIENT_H_
6 #define UI_AURA_CLIENT_EVENT_CLIENT_H_
8 #include "ui/aura/aura_export.h"
10 namespace ui {
11 class EventTarget;
14 namespace aura {
15 class Window;
16 namespace client {
18 // An interface implemented by an object that alters event processing.
19 class AURA_EXPORT EventClient {
20 public:
21 // Returns true if events can be processed by |window| or any of its children.
22 virtual bool CanProcessEventsWithinSubtree(const Window* window) const = 0;
24 // Returns the top level EventTarget for the current environment.
25 virtual ui::EventTarget* GetToplevelEventTarget() = 0;
27 protected:
28 virtual ~EventClient() {}
31 // Sets/Gets the event client on the root Window.
32 AURA_EXPORT void SetEventClient(Window* root_window, EventClient* client);
33 AURA_EXPORT EventClient* GetEventClient(const Window* root_window);
35 } // namespace clients
36 } // namespace aura
38 #endif // UI_AURA_CLIENT_EVENT_CLIENT_H_