1 // Copyright 2014 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 #include "ui/views/test/test_views_delegate.h"
7 #include "ui/aura/env.h"
8 #include "ui/wm/core/wm_state.h"
10 #if !defined(OS_CHROMEOS)
11 #include "ui/views/widget/desktop_aura/desktop_native_widget_aura.h"
12 #endif // !defined(OS_CHROMEOS)
17 TestViewsDelegate::TestViewsDelegate()
18 : context_factory_(nullptr),
19 use_desktop_native_widgets_(false),
20 use_transparent_windows_(false) {
21 DCHECK(!ViewsDelegate::views_delegate
);
22 ViewsDelegate::views_delegate
= this;
24 wm_state_
.reset(new wm::WMState
);
28 TestViewsDelegate::~TestViewsDelegate() {
29 if (ViewsDelegate::views_delegate
== this)
30 ViewsDelegate::views_delegate
= NULL
;
33 void TestViewsDelegate::OnBeforeWidgetInit(
34 Widget::InitParams
* params
,
35 internal::NativeWidgetDelegate
* delegate
) {
36 if (params
->opacity
== Widget::InitParams::INFER_OPACITY
) {
37 params
->opacity
= use_transparent_windows_
?
38 Widget::InitParams::TRANSLUCENT_WINDOW
:
39 Widget::InitParams::OPAQUE_WINDOW
;
41 #if !defined(OS_CHROMEOS)
42 if (!params
->native_widget
&& use_desktop_native_widgets_
)
43 params
->native_widget
= new DesktopNativeWidgetAura(delegate
);
44 #endif // !defined(OS_CHROMEOS)
47 ui::ContextFactory
* TestViewsDelegate::GetContextFactory() {
49 return context_factory_
;
50 if (aura::Env::GetInstance())
51 return aura::Env::GetInstance()->context_factory();