| // Copyright 2016 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. |
| |
| #include "mojo/ui/associates/resolved_hits.h" |
| |
| #include "base/bind.h" |
| #include "base/logging.h" |
| #include "mojo/services/gfx/composition/cpp/formatting.h" |
| #include "mojo/services/ui/views/cpp/formatting.h" |
| |
| namespace mojo { |
| namespace ui { |
| |
| ResolvedHits::ResolvedHits(mojo::gfx::composition::HitTestResultPtr result) |
| : result_(result.Pass()) { |
| DCHECK(result_); |
| } |
| |
| ResolvedHits::~ResolvedHits() {} |
| |
| void ResolvedHits::AddMapping(uint32_t scene_token_value, |
| mojo::ui::ViewTokenPtr view_token) { |
| DCHECK(scene_token_value); |
| DCHECK(view_token); |
| |
| auto pair = map_.emplace(scene_token_value, view_token.Pass()); |
| DCHECK(pair.second); |
| } |
| |
| std::ostream& operator<<(std::ostream& os, |
| const mojo::ui::ResolvedHits& value) { |
| os << "{result="; |
| if (value.result()) |
| os << *value.result(); |
| else |
| os << "null"; |
| os << ", map={"; |
| bool first = true; |
| for (const auto& pair : value.map()) { |
| if (first) |
| first = false; |
| else |
| os << ", "; |
| os << pair.first << ": " << pair.second; |
| } |
| return os << "}}"; |
| } |
| |
| std::ostream& operator<<(std::ostream& os, |
| const mojo::ui::ResolvedHits* value) { |
| return value ? os << *value : os << "null"; |
| } |
| |
| } // namespace ui |
| } // namespace mojo |