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"
15 class DesktopNativeWidgetAura;
16 class DesktopRootWindowHost;
19 class NativeWidgetDelegate;
22 class VIEWS_EXPORT DesktopFactoryOzone {
24 DesktopFactoryOzone();
25 virtual ~DesktopFactoryOzone();
27 // Returns the instance.
28 static DesktopFactoryOzone* GetInstance();
30 // Sets the implementation delegate. Ownership is retained by the caller.
31 static void SetInstance(DesktopFactoryOzone* impl);
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;
40 static DesktopFactoryOzone* impl_; // not owned
45 #endif // UI_VIEWS_WIDGET_DESKTOP_AURA_DESKTOP_FACTORY_OZONE_H_