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 "mojo/services/public/cpp/view_manager/view.h" | 5 #include "mojo/services/public/cpp/view_manager/view.h" |
6 | 6 |
7 #include "base/logging.h" | 7 #include "base/logging.h" |
8 #include "base/strings/stringprintf.h" | 8 #include "base/strings/stringprintf.h" |
9 #include "mojo/services/public/cpp/view_manager/lib/view_private.h" | 9 #include "mojo/services/public/cpp/view_manager/lib/view_private.h" |
10 #include "mojo/services/public/cpp/view_manager/util.h" | 10 #include "mojo/services/public/cpp/view_manager/util.h" |
(...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
110 const ViewObserver::TreeChangeParams& rhs) { | 110 const ViewObserver::TreeChangeParams& rhs) { |
111 return lhs.target == rhs.target && lhs.old_parent == rhs.old_parent && | 111 return lhs.target == rhs.target && lhs.old_parent == rhs.old_parent && |
112 lhs.new_parent == rhs.new_parent && lhs.receiver == rhs.receiver; | 112 lhs.new_parent == rhs.new_parent && lhs.receiver == rhs.receiver; |
113 } | 113 } |
114 | 114 |
115 class TreeChangeObserver : public ViewObserver { | 115 class TreeChangeObserver : public ViewObserver { |
116 public: | 116 public: |
117 explicit TreeChangeObserver(View* observee) : observee_(observee) { | 117 explicit TreeChangeObserver(View* observee) : observee_(observee) { |
118 observee_->AddObserver(this); | 118 observee_->AddObserver(this); |
119 } | 119 } |
120 virtual ~TreeChangeObserver() { | 120 ~TreeChangeObserver() override { observee_->RemoveObserver(this); } |
121 observee_->RemoveObserver(this); | |
122 } | |
123 | 121 |
124 void Reset() { | 122 void Reset() { |
125 received_params_.clear(); | 123 received_params_.clear(); |
126 } | 124 } |
127 | 125 |
128 const std::vector<TreeChangeParams>& received_params() { | 126 const std::vector<TreeChangeParams>& received_params() { |
129 return received_params_; | 127 return received_params_; |
130 } | 128 } |
131 | 129 |
132 private: | 130 private: |
133 // Overridden from ViewObserver: | 131 // Overridden from ViewObserver: |
134 virtual void OnTreeChanging(const TreeChangeParams& params) override { | 132 void OnTreeChanging(const TreeChangeParams& params) override { |
135 received_params_.push_back(params); | 133 received_params_.push_back(params); |
136 } | 134 } |
137 virtual void OnTreeChanged(const TreeChangeParams& params) override { | 135 void OnTreeChanged(const TreeChangeParams& params) override { |
138 received_params_.push_back(params); | 136 received_params_.push_back(params); |
139 } | 137 } |
140 | 138 |
141 View* observee_; | 139 View* observee_; |
142 std::vector<TreeChangeParams> received_params_; | 140 std::vector<TreeChangeParams> received_params_; |
143 | 141 |
144 DISALLOW_COPY_AND_ASSIGN(TreeChangeObserver); | 142 DISALLOW_COPY_AND_ASSIGN(TreeChangeObserver); |
145 }; | 143 }; |
146 | 144 |
147 // Adds/Removes v11 to v1. | 145 // Adds/Removes v11 to v1. |
(...skipping 198 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
346 struct Change { | 344 struct Change { |
347 View* view; | 345 View* view; |
348 View* relative_view; | 346 View* relative_view; |
349 OrderDirection direction; | 347 OrderDirection direction; |
350 }; | 348 }; |
351 typedef std::vector<Change> Changes; | 349 typedef std::vector<Change> Changes; |
352 | 350 |
353 explicit OrderChangeObserver(View* observee) : observee_(observee) { | 351 explicit OrderChangeObserver(View* observee) : observee_(observee) { |
354 observee_->AddObserver(this); | 352 observee_->AddObserver(this); |
355 } | 353 } |
356 virtual ~OrderChangeObserver() { | 354 ~OrderChangeObserver() override { observee_->RemoveObserver(this); } |
357 observee_->RemoveObserver(this); | |
358 } | |
359 | 355 |
360 Changes GetAndClearChanges() { | 356 Changes GetAndClearChanges() { |
361 Changes changes; | 357 Changes changes; |
362 changes_.swap(changes); | 358 changes_.swap(changes); |
363 return changes; | 359 return changes; |
364 } | 360 } |
365 | 361 |
366 private: | 362 private: |
367 // Overridden from ViewObserver: | 363 // Overridden from ViewObserver: |
368 virtual void OnViewReordering(View* view, | 364 void OnViewReordering(View* view, |
369 View* relative_view, | 365 View* relative_view, |
370 OrderDirection direction) override { | 366 OrderDirection direction) override { |
371 OnViewReordered(view, relative_view, direction); | 367 OnViewReordered(view, relative_view, direction); |
372 } | 368 } |
373 | 369 |
374 virtual void OnViewReordered(View* view, | 370 void OnViewReordered(View* view, |
375 View* relative_view, | 371 View* relative_view, |
376 OrderDirection direction) override { | 372 OrderDirection direction) override { |
377 Change change; | 373 Change change; |
378 change.view = view; | 374 change.view = view; |
379 change.relative_view = relative_view; | 375 change.relative_view = relative_view; |
380 change.direction = direction; | 376 change.direction = direction; |
381 changes_.push_back(change); | 377 changes_.push_back(change); |
382 } | 378 } |
383 | 379 |
384 View* observee_; | 380 View* observee_; |
385 Changes changes_; | 381 Changes changes_; |
386 | 382 |
(...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
493 std::string RectToString(const gfx::Rect& rect) { | 489 std::string RectToString(const gfx::Rect& rect) { |
494 return base::StringPrintf("%d,%d %dx%d", | 490 return base::StringPrintf("%d,%d %dx%d", |
495 rect.x(), rect.y(), rect.width(), rect.height()); | 491 rect.x(), rect.y(), rect.width(), rect.height()); |
496 } | 492 } |
497 | 493 |
498 class BoundsChangeObserver : public ViewObserver { | 494 class BoundsChangeObserver : public ViewObserver { |
499 public: | 495 public: |
500 explicit BoundsChangeObserver(View* view) : view_(view) { | 496 explicit BoundsChangeObserver(View* view) : view_(view) { |
501 view_->AddObserver(this); | 497 view_->AddObserver(this); |
502 } | 498 } |
503 virtual ~BoundsChangeObserver() { | 499 ~BoundsChangeObserver() override { view_->RemoveObserver(this); } |
504 view_->RemoveObserver(this); | |
505 } | |
506 | 500 |
507 Changes GetAndClearChanges() { | 501 Changes GetAndClearChanges() { |
508 Changes changes; | 502 Changes changes; |
509 changes.swap(changes_); | 503 changes.swap(changes_); |
510 return changes; | 504 return changes; |
511 } | 505 } |
512 | 506 |
513 private: | 507 private: |
514 // Overridden from ViewObserver: | 508 // Overridden from ViewObserver: |
515 virtual void OnViewBoundsChanging(View* view, | 509 void OnViewBoundsChanging(View* view, |
516 const gfx::Rect& old_bounds, | 510 const gfx::Rect& old_bounds, |
517 const gfx::Rect& new_bounds) override { | 511 const gfx::Rect& new_bounds) override { |
518 changes_.push_back( | 512 changes_.push_back( |
519 base::StringPrintf( | 513 base::StringPrintf( |
520 "view=%s old_bounds=%s new_bounds=%s phase=changing", | 514 "view=%s old_bounds=%s new_bounds=%s phase=changing", |
521 ViewIdToString(view->id()).c_str(), | 515 ViewIdToString(view->id()).c_str(), |
522 RectToString(old_bounds).c_str(), | 516 RectToString(old_bounds).c_str(), |
523 RectToString(new_bounds).c_str())); | 517 RectToString(new_bounds).c_str())); |
524 } | 518 } |
525 virtual void OnViewBoundsChanged(View* view, | 519 void OnViewBoundsChanged(View* view, |
526 const gfx::Rect& old_bounds, | 520 const gfx::Rect& old_bounds, |
527 const gfx::Rect& new_bounds) override { | 521 const gfx::Rect& new_bounds) override { |
528 changes_.push_back( | 522 changes_.push_back( |
529 base::StringPrintf( | 523 base::StringPrintf( |
530 "view=%s old_bounds=%s new_bounds=%s phase=changed", | 524 "view=%s old_bounds=%s new_bounds=%s phase=changed", |
531 ViewIdToString(view->id()).c_str(), | 525 ViewIdToString(view->id()).c_str(), |
532 RectToString(old_bounds).c_str(), | 526 RectToString(old_bounds).c_str(), |
533 RectToString(new_bounds).c_str())); | 527 RectToString(new_bounds).c_str())); |
534 } | 528 } |
535 | 529 |
536 View* view_; | 530 View* view_; |
537 Changes changes_; | 531 Changes changes_; |
(...skipping 20 matching lines...) Expand all Loading... |
558 } | 552 } |
559 } | 553 } |
560 | 554 |
561 namespace { | 555 namespace { |
562 | 556 |
563 class VisibilityChangeObserver : public ViewObserver { | 557 class VisibilityChangeObserver : public ViewObserver { |
564 public: | 558 public: |
565 explicit VisibilityChangeObserver(View* view) : view_(view) { | 559 explicit VisibilityChangeObserver(View* view) : view_(view) { |
566 view_->AddObserver(this); | 560 view_->AddObserver(this); |
567 } | 561 } |
568 virtual ~VisibilityChangeObserver() { view_->RemoveObserver(this); } | 562 ~VisibilityChangeObserver() override { view_->RemoveObserver(this); } |
569 | 563 |
570 Changes GetAndClearChanges() { | 564 Changes GetAndClearChanges() { |
571 Changes changes; | 565 Changes changes; |
572 changes.swap(changes_); | 566 changes.swap(changes_); |
573 return changes; | 567 return changes; |
574 } | 568 } |
575 | 569 |
576 private: | 570 private: |
577 // Overridden from ViewObserver: | 571 // Overridden from ViewObserver: |
578 virtual void OnViewVisibilityChanging(View* view) override { | 572 void OnViewVisibilityChanging(View* view) override { |
579 changes_.push_back( | 573 changes_.push_back( |
580 base::StringPrintf("view=%s phase=changing visibility=%s", | 574 base::StringPrintf("view=%s phase=changing visibility=%s", |
581 ViewIdToString(view->id()).c_str(), | 575 ViewIdToString(view->id()).c_str(), |
582 view->visible() ? "true" : "false")); | 576 view->visible() ? "true" : "false")); |
583 } | 577 } |
584 virtual void OnViewVisibilityChanged(View* view) override { | 578 void OnViewVisibilityChanged(View* view) override { |
585 changes_.push_back(base::StringPrintf("view=%s phase=changed visibility=%s", | 579 changes_.push_back(base::StringPrintf("view=%s phase=changed visibility=%s", |
586 ViewIdToString(view->id()).c_str(), | 580 ViewIdToString(view->id()).c_str(), |
587 view->visible() ? "true" : "false")); | 581 view->visible() ? "true" : "false")); |
588 } | 582 } |
589 | 583 |
590 View* view_; | 584 View* view_; |
591 Changes changes_; | 585 Changes changes_; |
592 | 586 |
593 DISALLOW_COPY_AND_ASSIGN(VisibilityChangeObserver); | 587 DISALLOW_COPY_AND_ASSIGN(VisibilityChangeObserver); |
594 }; | 588 }; |
(...skipping 15 matching lines...) Expand all Loading... |
610 } | 604 } |
611 { | 605 { |
612 // Set visible to existing value and verify no notifications. | 606 // Set visible to existing value and verify no notifications. |
613 VisibilityChangeObserver observer(&v1); | 607 VisibilityChangeObserver observer(&v1); |
614 v1.SetVisible(false); | 608 v1.SetVisible(false); |
615 EXPECT_TRUE(observer.GetAndClearChanges().empty()); | 609 EXPECT_TRUE(observer.GetAndClearChanges().empty()); |
616 } | 610 } |
617 } | 611 } |
618 | 612 |
619 } // namespace mojo | 613 } // namespace mojo |
OLD | NEW |