| Index: ui/aura/window.cc
|
| diff --git a/ui/aura/window.cc b/ui/aura/window.cc
|
| index 07c48e64fc089fbc2a43102b87cbb791ca4dba68..c619a7bf2597f3b5138964656dbe326899d5f9e6 100644
|
| --- a/ui/aura/window.cc
|
| +++ b/ui/aura/window.cc
|
| @@ -13,6 +13,7 @@
|
| #include "ui/aura/event_filter.h"
|
| #include "ui/aura/layout_manager.h"
|
| #include "ui/aura/window_delegate.h"
|
| +#include "ui/aura/window_observer.h"
|
| #include "ui/aura/window_types.h"
|
| #include "ui/base/animation/multi_animation.h"
|
| #include "ui/gfx/canvas_skia.h"
|
| @@ -205,11 +206,13 @@ void Window::AddChild(Window* child) {
|
| child->parent_ = this;
|
| layer_->Add(child->layer_.get());
|
| children_.push_back(child);
|
| + FOR_EACH_OBSERVER(WindowObserver, observers_, OnWindowAdded(child));
|
| }
|
|
|
| void Window::RemoveChild(Window* child) {
|
| Windows::iterator i = std::find(children_.begin(), children_.end(), child);
|
| DCHECK(i != children_.end());
|
| + FOR_EACH_OBSERVER(WindowObserver, observers_, OnWillRemoveWindow(child));
|
| child->parent_ = NULL;
|
| layer_->Remove(child->layer_.get());
|
| children_.erase(i);
|
| @@ -259,6 +262,14 @@ bool Window::OnKeyEvent(KeyEvent* event) {
|
| return IsVisible() && delegate_->OnKeyEvent(event);
|
| }
|
|
|
| +void Window::AddObserver(WindowObserver* observer) {
|
| + observers_.AddObserver(observer);
|
| +}
|
| +
|
| +void Window::RemoveObserver(WindowObserver* observer) {
|
| + observers_.RemoveObserver(observer);
|
| +}
|
| +
|
| bool Window::HitTest(const gfx::Point& point) {
|
| gfx::Rect local_bounds(gfx::Point(), bounds().size());
|
| // TODO(beng): hittest masks.
|
|
|