Chromium Code Reviews| Index: mojo/services/window_manager/view_target.h |
| diff --git a/mojo/services/window_manager/view_target.h b/mojo/services/window_manager/view_target.h |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..c04ff95ff3f5147cb1ba2f9a94080d580ea514c6 |
| --- /dev/null |
| +++ b/mojo/services/window_manager/view_target.h |
| @@ -0,0 +1,62 @@ |
| +// Copyright 2014 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 MOJO_SERVICES_WINDOW_MANAGER_VIEW_TARGET_H_ |
| +#define MOJO_SERVICES_WINDOW_MANAGER_VIEW_TARGET_H_ |
| + |
| +#include "ui/events/event_target.h" |
| + |
| +namespace ui { |
| +class EventTargeter; |
| +} |
| + |
| +namespace mojo { |
| + |
| +class View; |
| +class ViewTargeter; |
| +class WindowManagerApp; |
| + |
| +// A wrapper class around mojo::View. We maintain a shadow tree of |
| +// ViewTargets, which mirrors the main View tree. The ViewTarget tree |
| +// is |
|
sky
2014/11/10 20:45:30
is?
|
| +class ViewTarget : public ui::EventTarget { |
| + public: |
| + ViewTarget(WindowManagerApp* app, View* view_to_wrap); |
| + ~ViewTarget() override; |
| + |
| + View* view() { return view_; } |
| + |
| + bool HasParent() const; |
| + bool IsVisible() const; |
| + |
| + // We keep track of our children here. |
| + void AddChild(ViewTarget* view); |
| + |
| + // Sets a new ViewTargeter for the view, and returns the previous |
| + // ViewTargeter. |
| + scoped_ptr<ViewTargeter> SetEventTargeter(scoped_ptr<ViewTargeter> targeter); |
|
sky
2014/11/10 20:45:30
I wonder if we should support local properties on
|
| + |
| + // Overridden from ui::EventTarget: |
| + bool CanAcceptEvent(const ui::Event& event) override; |
| + EventTarget* GetParentTarget() override; |
| + scoped_ptr<ui::EventTargetIterator> GetChildIterator() const override; |
| + ui::EventTargeter* GetEventTargeter() override; |
| + void ConvertEventToTarget(ui::EventTarget* target, |
| + ui::LocatedEvent* event) override; |
| + |
| + private: |
| + // The WindowManagerApp which owns us. |
| + WindowManagerApp* app_; |
| + |
| + // The mojo::View that we dispatch to. |
| + View* view_; |
| + |
| + std::vector<ViewTarget*> children_; |
| + |
| + scoped_ptr<ViewTargeter> targeter_; |
| +}; |
|
sky
2014/11/10 20:45:30
DISALLOW...
|
| + |
| +} // namespace mojo |
| + |
| +#endif // MOJO_SERVICES_WINDOW_MANAGER_VIEW_TARGET_H_ |