Index: athena/wm/window_list_provider_impl.h |
diff --git a/athena/wm/window_list_provider_impl.h b/athena/wm/window_list_provider_impl.h |
index a62507ee907601f0adb0d6a33ef3e09bcbd48bfc..40499284bd22801835a21d4de8d94c3c407c063d 100644 |
--- a/athena/wm/window_list_provider_impl.h |
+++ b/athena/wm/window_list_provider_impl.h |
@@ -6,21 +6,40 @@ |
#define ATHENA_WM_WINDOW_LIST_PROVIDER_IMPL_H_ |
#include "athena/wm/public/window_list_provider.h" |
+#include "ui/aura/window_observer.h" |
namespace athena { |
+class WindowListProviderObserver; |
+ |
// This implementation of the WindowListProviderImpl uses the same order as in |
// the container window's stacking order. |
-class ATHENA_EXPORT WindowListProviderImpl : public WindowListProvider { |
+class ATHENA_EXPORT WindowListProviderImpl : public WindowListProvider, |
+ public aura::WindowObserver { |
public: |
explicit WindowListProviderImpl(aura::Window* container); |
virtual ~WindowListProviderImpl(); |
private: |
// WindowListProvider: |
+ virtual void AddObserver(WindowListProviderObserver* observer) OVERRIDE; |
+ virtual void RemoveObserver(WindowListProviderObserver* observer) OVERRIDE; |
virtual aura::Window::Windows GetWindowList() const OVERRIDE; |
+ virtual bool IsWindowInList(aura::Window* window) const OVERRIDE; |
+ virtual bool IsValidWindow(aura::Window* window) const OVERRIDE; |
+ virtual void MoveToFront(aura::Window* window) OVERRIDE; |
+ virtual void StackWindowFrontOf(aura::Window* window, |
+ aura::Window*reference_window) OVERRIDE; |
+ virtual void StackWindowBehindTo(aura::Window* window, |
+ aura::Window*reference_window) OVERRIDE; |
+ |
+ // aura::WindowObserver: |
+ virtual void OnWindowAdded(aura::Window* new_window) OVERRIDE; |
+ virtual void OnWillRemoveWindow(aura::Window* old_window) OVERRIDE; |
+ virtual void OnWindowStackingChanged(aura::Window* window) OVERRIDE; |
aura::Window* container_; |
+ ObserverList<WindowListProviderObserver> observers_; |
DISALLOW_COPY_AND_ASSIGN(WindowListProviderImpl); |
}; |