Merge Chromium + Blink git repositories
[chromium-blink-merge.git] / ui / views / widget / desktop_aura / desktop_factory_ozone.h
blob2af191b445f3c67f9eef22000931cd454e6f0aa6
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
3 // found in the LICENSE file.
5 #ifndef UI_VIEWS_WIDGET_DESKTOP_AURA_DESKTOP_FACTORY_OZONE_H_
6 #define UI_VIEWS_WIDGET_DESKTOP_AURA_DESKTOP_FACTORY_OZONE_H_
8 #include "ui/views/views_export.h"
10 namespace gfx {
11 class Rect;
12 class Screen;
15 namespace views {
16 class DesktopNativeWidgetAura;
17 class DesktopWindowTreeHost;
19 namespace internal {
20 class NativeWidgetDelegate;
23 class VIEWS_EXPORT DesktopFactoryOzone {
24 public:
25 DesktopFactoryOzone();
26 virtual ~DesktopFactoryOzone();
28 // Returns the instance.
29 static DesktopFactoryOzone* GetInstance();
31 // Sets the implementation delegate. Ownership is retained by the caller.
32 static void SetInstance(DesktopFactoryOzone* impl);
34 // Delegates implementation of DesktopWindowTreeHost::Create externally to
35 // Ozone implementation.
36 virtual DesktopWindowTreeHost* CreateWindowTreeHost(
37 internal::NativeWidgetDelegate* native_widget_delegate,
38 DesktopNativeWidgetAura* desktop_native_widget_aura) = 0;
40 // Delegates implementation of DesktopScreen externally to
41 // Ozone implementation.
42 virtual gfx::Screen* CreateDesktopScreen() = 0;
44 private:
45 static DesktopFactoryOzone* impl_; // not owned
48 } // namespace views
50 #endif // UI_VIEWS_WIDGET_DESKTOP_AURA_DESKTOP_FACTORY_OZONE_H_