| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "services/window_manager/view_target.h" | 5 #include "services/window_manager/view_target.h" |
| 6 | 6 |
| 7 #include "mojo/converters/geometry/geometry_type_converters.h" | 7 #include "mojo/converters/geometry/geometry_type_converters.h" |
| 8 #include "mojo/services/public/cpp/view_manager/view.h" | 8 #include "mojo/services/public/cpp/view_manager/view.h" |
| 9 #include "mojo/services/public/cpp/view_manager/view_property.h" | 9 #include "mojo/services/public/cpp/view_manager/view_property.h" |
| 10 #include "services/window_manager/view_targeter.h" | 10 #include "services/window_manager/view_targeter.h" |
| 11 #include "services/window_manager/window_manager_app.h" | 11 #include "services/window_manager/window_manager_app.h" |
| 12 #include "ui/events/event.h" | 12 #include "ui/events/event.h" |
| 13 #include "ui/events/event_target_iterator.h" | 13 #include "ui/events/event_target_iterator.h" |
| 14 #include "ui/events/event_targeter.h" | 14 #include "ui/events/event_targeter.h" |
| 15 #include "ui/gfx/geometry/rect.h" | 15 #include "ui/gfx/geometry/rect.h" |
| 16 #include "ui/gfx/point3_f.h" | 16 #include "ui/gfx/point3_f.h" |
| 17 #include "ui/gfx/transform.h" | 17 #include "ui/gfx/transform.h" |
| 18 | 18 |
| 19 namespace mojo { | 19 namespace window_manager { |
| 20 | 20 |
| 21 namespace { | 21 namespace { |
| 22 | 22 |
| 23 DEFINE_OWNED_VIEW_PROPERTY_KEY(ViewTarget, kViewTargetKey, nullptr); | 23 DEFINE_OWNED_VIEW_PROPERTY_KEY(ViewTarget, kViewTargetKey, nullptr); |
| 24 | 24 |
| 25 } // namespace | 25 } // namespace |
| 26 | 26 |
| 27 ViewTarget::~ViewTarget() { | 27 ViewTarget::~ViewTarget() { |
| 28 } | 28 } |
| 29 | 29 |
| 30 // static | 30 // static |
| 31 ViewTarget* ViewTarget::TargetFromView(View* view) { | 31 ViewTarget* ViewTarget::TargetFromView(mojo::View* view) { |
| 32 if (!view) | 32 if (!view) |
| 33 return nullptr; | 33 return nullptr; |
| 34 | 34 |
| 35 ViewTarget* target = view->GetLocalProperty(kViewTargetKey); | 35 ViewTarget* target = view->GetLocalProperty(kViewTargetKey); |
| 36 if (target) | 36 if (target) |
| 37 return target; | 37 return target; |
| 38 | 38 |
| 39 return new ViewTarget(view); | 39 return new ViewTarget(view); |
| 40 } | 40 } |
| 41 | 41 |
| (...skipping 10 matching lines...) Expand all Loading... |
| 52 CHECK_EQ(root_target, target->GetRoot()); | 52 CHECK_EQ(root_target, target->GetRoot()); |
| 53 | 53 |
| 54 if (source != root_target) | 54 if (source != root_target) |
| 55 source->ConvertPointForAncestor(root_target, point); | 55 source->ConvertPointForAncestor(root_target, point); |
| 56 if (target != root_target) | 56 if (target != root_target) |
| 57 target->ConvertPointFromAncestor(root_target, point); | 57 target->ConvertPointFromAncestor(root_target, point); |
| 58 } | 58 } |
| 59 | 59 |
| 60 std::vector<ViewTarget*> ViewTarget::GetChildren() { | 60 std::vector<ViewTarget*> ViewTarget::GetChildren() { |
| 61 std::vector<ViewTarget*> targets; | 61 std::vector<ViewTarget*> targets; |
| 62 for (View* child : view_->children()) | 62 for (mojo::View* child : view_->children()) |
| 63 targets.push_back(TargetFromView(child)); | 63 targets.push_back(TargetFromView(child)); |
| 64 return targets; | 64 return targets; |
| 65 } | 65 } |
| 66 | 66 |
| 67 const ViewTarget* ViewTarget::GetParent() const { | 67 const ViewTarget* ViewTarget::GetParent() const { |
| 68 return TargetFromView(view_->parent()); | 68 return TargetFromView(view_->parent()); |
| 69 } | 69 } |
| 70 | 70 |
| 71 gfx::Rect ViewTarget::GetBounds() const { | 71 gfx::Rect ViewTarget::GetBounds() const { |
| 72 return view_->bounds().To<gfx::Rect>(); | 72 return view_->bounds().To<gfx::Rect>(); |
| (...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 126 | 126 |
| 127 ui::EventTargeter* ViewTarget::GetEventTargeter() { | 127 ui::EventTargeter* ViewTarget::GetEventTargeter() { |
| 128 return targeter_.get(); | 128 return targeter_.get(); |
| 129 } | 129 } |
| 130 | 130 |
| 131 void ViewTarget::ConvertEventToTarget(ui::EventTarget* target, | 131 void ViewTarget::ConvertEventToTarget(ui::EventTarget* target, |
| 132 ui::LocatedEvent* event) { | 132 ui::LocatedEvent* event) { |
| 133 event->ConvertLocationToTarget(this, static_cast<ViewTarget*>(target)); | 133 event->ConvertLocationToTarget(this, static_cast<ViewTarget*>(target)); |
| 134 } | 134 } |
| 135 | 135 |
| 136 ViewTarget::ViewTarget(View* view_to_wrap) : view_(view_to_wrap) { | 136 ViewTarget::ViewTarget(mojo::View* view_to_wrap) : view_(view_to_wrap) { |
| 137 DCHECK(view_->GetLocalProperty(kViewTargetKey) == nullptr); | 137 DCHECK(view_->GetLocalProperty(kViewTargetKey) == nullptr); |
| 138 view_->SetLocalProperty(kViewTargetKey, this); | 138 view_->SetLocalProperty(kViewTargetKey, this); |
| 139 } | 139 } |
| 140 | 140 |
| 141 bool ViewTarget::ConvertPointForAncestor(const ViewTarget* ancestor, | 141 bool ViewTarget::ConvertPointForAncestor(const ViewTarget* ancestor, |
| 142 gfx::Point* point) const { | 142 gfx::Point* point) const { |
| 143 gfx::Vector2d offset; | 143 gfx::Vector2d offset; |
| 144 bool result = GetTargetOffsetRelativeTo(ancestor, &offset); | 144 bool result = GetTargetOffsetRelativeTo(ancestor, &offset); |
| 145 *point += offset; | 145 *point += offset; |
| 146 return result; | 146 return result; |
| (...skipping 10 matching lines...) Expand all Loading... |
| 157 bool ViewTarget::GetTargetOffsetRelativeTo(const ViewTarget* ancestor, | 157 bool ViewTarget::GetTargetOffsetRelativeTo(const ViewTarget* ancestor, |
| 158 gfx::Vector2d* offset) const { | 158 gfx::Vector2d* offset) const { |
| 159 const ViewTarget* v = this; | 159 const ViewTarget* v = this; |
| 160 for (; v && v != ancestor; v = v->GetParent()) { | 160 for (; v && v != ancestor; v = v->GetParent()) { |
| 161 gfx::Rect bounds = v->GetBounds(); | 161 gfx::Rect bounds = v->GetBounds(); |
| 162 *offset += gfx::Vector2d(bounds.x(), bounds.y()); | 162 *offset += gfx::Vector2d(bounds.x(), bounds.y()); |
| 163 } | 163 } |
| 164 return v == ancestor; | 164 return v == ancestor; |
| 165 } | 165 } |
| 166 | 166 |
| 167 } // namespace mojo | 167 } // namespace window_manager |
| OLD | NEW |