Index: chromecast/browser/cast_window_manager_aura.h |
diff --git a/chromecast/browser/cast_window_manager_aura.h b/chromecast/browser/cast_window_manager_aura.h |
new file mode 100644 |
index 0000000000000000000000000000000000000000..0260cca6ad7fa76215f4a5caa6e181136ba2430f |
--- /dev/null |
+++ b/chromecast/browser/cast_window_manager_aura.h |
@@ -0,0 +1,57 @@ |
+// 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. |
+#ifndef CHROMECAST_BROWSER_CAST_WINDOW_MANAGER_AURA_H_ |
+#define CHROMECAST_BROWSER_CAST_WINDOW_MANAGER_AURA_H_ |
+ |
+#include <memory> |
+ |
+#include "base/macros.h" |
+#include "chromecast/browser/cast_window_manager.h" |
+#include "chromecast/graphics/cast_vsync_settings.h" |
+#include "ui/aura/layout_manager.h" |
+ |
+namespace aura { |
+class Window; |
+class WindowTreeHost; |
+} |
+ |
+namespace chromecast { |
+namespace shell { |
+ |
+class CastWindowManagerAura : public CastWindowManager, |
+ public CastVSyncSettings::Observer, |
+ public aura::LayoutManager { |
+ public: |
+ CastWindowManagerAura(); |
+ |
+ ~CastWindowManagerAura() override; |
+ |
+ // CastWindowManager implementation: |
+ void StartWindowManager() override; |
+ void AddWebContents(content::WebContents* web_contents, |
+ bool is_overlay, bool is_transparent) override; |
+ |
+ // CastVSyncSettings::Observer implementation: |
+ void OnVSyncIntervalChanged(base::TimeDelta interval) override; |
+ |
+ // aura::LayoutManager implementation: |
+ void OnWindowResized() override; |
+ void OnWindowAddedToLayout(aura::Window* child) override; |
+ void OnWillRemoveWindowFromLayout(aura::Window* child) override; |
+ void OnWindowRemovedFromLayout(aura::Window* child) override; |
+ void OnChildWindowVisibilityChanged(aura::Window* child, |
+ bool visible) override; |
+ void SetChildBounds(aura::Window* child, |
+ const gfx::Rect& requested_bounds) override; |
+ |
+ private: |
+ std::unique_ptr<aura::WindowTreeHost> window_tree_host_; |
+ |
+ DISALLOW_COPY_AND_ASSIGN(CastWindowManagerAura); |
+}; |
+ |
+} // namespace shell |
+} // namespace chromecast |
+ |
+#endif // CHROMECAST_BROWSER_CAST_WINDOW_MANAGER_AURA_H_ |