Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(600)

Side by Side Diff: ui/events/test/test_event_target.cc

Issue 2628393003: Remove ScopedVector from ui/events/. (Closed)
Patch Set: chromeos2 Created 3 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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 "ui/events/test/test_event_target.h" 5 #include "ui/events/test/test_event_target.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <utility> 8 #include <utility>
9 9
10 #include "base/memory/ptr_util.h" 10 #include "base/memory/ptr_util.h"
11 #include "ui/events/event.h" 11 #include "ui/events/event.h"
12 #include "ui/events/event_target_iterator.h" 12 #include "ui/events/event_target_iterator.h"
13 #include "ui/events/event_targeter.h" 13 #include "ui/events/event_targeter.h"
14 14
15 namespace ui { 15 namespace ui {
16 namespace test { 16 namespace test {
17 17
18 TestEventTarget::TestEventTarget() 18 TestEventTarget::TestEventTarget()
19 : parent_(NULL), 19 : parent_(NULL),
20 mark_events_as_handled_(false), 20 mark_events_as_handled_(false),
21 recorder_(NULL), 21 recorder_(NULL),
22 target_name_("unknown") { 22 target_name_("unknown") {
23 SetTargetHandler(this); 23 SetTargetHandler(this);
24 } 24 }
25 TestEventTarget::~TestEventTarget() {} 25 TestEventTarget::~TestEventTarget() {}
26 26
27 void TestEventTarget::AddChild(std::unique_ptr<TestEventTarget> child) { 27 void TestEventTarget::AddChild(std::unique_ptr<TestEventTarget> child) {
28 TestEventTarget* child_r = child.get(); 28 DCHECK(!child->parent());
29 if (child->parent()) { 29 children_.push_back(std::move(child));
30 AddChild(child->parent()->RemoveChild(child.release())); 30 children_.back()->set_parent(this);
31 } else {
32 children_.push_back(std::move(child));
33 }
34 child_r->set_parent(this);
35 } 31 }
36 32
37 std::unique_ptr<TestEventTarget> TestEventTarget::RemoveChild( 33 std::unique_ptr<TestEventTarget> TestEventTarget::RemoveChild(
38 TestEventTarget* c) { 34 TestEventTarget* c) {
39 ScopedVector<TestEventTarget>::iterator iter = std::find(children_.begin(), 35 for (auto iter = children_.begin(); iter != children_.end(); ++iter) {
40 children_.end(), 36 if (iter->get() == c) {
41 c); 37 std::unique_ptr<TestEventTarget> child = std::move(*iter);
42 if (iter != children_.end()) { 38 children_.erase(iter);
43 children_.weak_erase(iter); 39 child->set_parent(nullptr);
44 c->set_parent(NULL); 40 return child;
45 return base::WrapUnique(c); 41 }
46 } 42 }
47 return nullptr; 43 return nullptr;
48 } 44 }
49 45
50 void TestEventTarget::SetEventTargeter( 46 void TestEventTarget::SetEventTargeter(
51 std::unique_ptr<EventTargeter> targeter) { 47 std::unique_ptr<EventTargeter> targeter) {
52 targeter_ = std::move(targeter); 48 targeter_ = std::move(targeter);
53 } 49 }
54 50
55 bool TestEventTarget::DidReceiveEvent(ui::EventType type) const { 51 bool TestEventTarget::DidReceiveEvent(ui::EventType type) const {
56 return received_.count(type) > 0; 52 return received_.count(type) > 0;
57 } 53 }
58 54
59 void TestEventTarget::ResetReceivedEvents() { 55 void TestEventTarget::ResetReceivedEvents() {
60 received_.clear(); 56 received_.clear();
61 } 57 }
62 58
63 //////////////////////////////////////////////////////////////////////////////// 59 ////////////////////////////////////////////////////////////////////////////////
64 // TestEventTarget, protected 60 // TestEventTarget, protected
65 61
66 bool TestEventTarget::CanAcceptEvent(const ui::Event& event) { 62 bool TestEventTarget::CanAcceptEvent(const ui::Event& event) {
67 return true; 63 return true;
68 } 64 }
69 65
70 EventTarget* TestEventTarget::GetParentTarget() { 66 EventTarget* TestEventTarget::GetParentTarget() {
71 return parent_; 67 return parent_;
72 } 68 }
73 69
74 std::unique_ptr<EventTargetIterator> TestEventTarget::GetChildIterator() const { 70 std::unique_ptr<EventTargetIterator> TestEventTarget::GetChildIterator() const {
75 return base::MakeUnique<EventTargetIteratorImpl<TestEventTarget>>( 71 return base::MakeUnique<EventTargetIteratorUniquePtrImpl<TestEventTarget>>(
76 children_.get()); 72 children_);
77 } 73 }
78 74
79 EventTargeter* TestEventTarget::GetEventTargeter() { 75 EventTargeter* TestEventTarget::GetEventTargeter() {
80 return targeter_.get(); 76 return targeter_.get();
81 } 77 }
82 78
83 void TestEventTarget::OnEvent(Event* event) { 79 void TestEventTarget::OnEvent(Event* event) {
84 if (recorder_) 80 if (recorder_)
85 recorder_->push_back(target_name_); 81 recorder_->push_back(target_name_);
86 received_.insert(event->type()); 82 received_.insert(event->type());
87 EventHandler::OnEvent(event); 83 EventHandler::OnEvent(event);
88 if (!event->handled() && mark_events_as_handled_) 84 if (!event->handled() && mark_events_as_handled_)
89 event->SetHandled(); 85 event->SetHandled();
90 } 86 }
91 87
92 //////////////////////////////////////////////////////////////////////////////// 88 ////////////////////////////////////////////////////////////////////////////////
93 // TestEventTarget, private 89 // TestEventTarget, private
94 90
95 bool TestEventTarget::Contains(TestEventTarget* target) const { 91 bool TestEventTarget::Contains(TestEventTarget* target) const {
96 while (target && target != this) 92 while (target && target != this)
97 target = target->parent(); 93 target = target->parent();
98 return target == this; 94 return target == this;
99 } 95 }
100 96
101 } // namespace test 97 } // namespace test
102 } // namespace ui 98 } // namespace ui
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698