- add sources.
[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 }
13
14 namespace views {
15 class DesktopNativeWidgetAura;
16 class DesktopRootWindowHost;
17
18 namespace internal {
19 class NativeWidgetDelegate;
20 }
21
22 class VIEWS_EXPORT DesktopFactoryOzone {
23  public:
24   DesktopFactoryOzone();
25   virtual ~DesktopFactoryOzone();
26
27   // Returns the instance.
28   static DesktopFactoryOzone* GetInstance();
29
30   // Sets the implementation delegate. Ownership is retained by the caller.
31   static void SetInstance(DesktopFactoryOzone* impl);
32
33   // Delegates implementation of DesktopRootWindowHost::Create externally to
34   // Ozone implementation.
35   virtual DesktopRootWindowHost* CreateRootWindowHost(
36       internal::NativeWidgetDelegate* native_widget_delegate,
37       DesktopNativeWidgetAura* desktop_native_widget_aura) = 0;
38
39  private:
40   static DesktopFactoryOzone* impl_; // not owned
41 };
42
43 }  // namespace views
44
45 #endif // UI_VIEWS_WIDGET_DESKTOP_AURA_DESKTOP_FACTORY_OZONE_H_