Upstream version 11.40.277.0
[platform/framework/web/crosswalk.git] / src / ui / views / widget / desktop_aura / desktop_factory_ozone.h
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.
4
5 #ifndef UI_VIEWS_WIDGET_DESKTOP_AURA_DESKTOP_FACTORY_OZONE_H_
6 #define UI_VIEWS_WIDGET_DESKTOP_AURA_DESKTOP_FACTORY_OZONE_H_
7
8 #include "ui/views/views_export.h"
9
10 namespace gfx {
11 class Rect;
12 class Screen;
13 }
14
15 namespace views {
16 class DesktopNativeWidgetAura;
17 class DesktopWindowTreeHost;
18
19 namespace internal {
20 class NativeWidgetDelegate;
21 }
22
23 class VIEWS_EXPORT DesktopFactoryOzone {
24  public:
25   DesktopFactoryOzone();
26   virtual ~DesktopFactoryOzone();
27
28   // Returns the instance.
29   static DesktopFactoryOzone* GetInstance();
30
31   // Sets the implementation delegate. Ownership is retained by the caller.
32   static void SetInstance(DesktopFactoryOzone* impl);
33
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;
39
40   // Delegates implementation of DesktopScreen externally to
41   // Ozone implementation.
42   virtual gfx::Screen* CreateDesktopScreen() = 0;
43
44  private:
45   static DesktopFactoryOzone* impl_; // not owned
46 };
47
48 }  // namespace views
49
50 #endif // UI_VIEWS_WIDGET_DESKTOP_AURA_DESKTOP_FACTORY_OZONE_H_