blob: 9efe60bcadb0e647fd2607c7c4ae8892c7938db5 [file] [log] [blame]
// Copyright 2016 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef UI_VIEWS_TEST_NATIVE_WIDGET_FACTORY_H_
#define UI_VIEWS_TEST_NATIVE_WIDGET_FACTORY_H_
#include <stdint.h>
#include "base/functional/callback_forward.h"
#include "ui/views/widget/widget.h"
namespace views {
class NativeWidget;
namespace test {
// Values supplied to |behavior|.
// NativeWidget implementation is not customized in anyway.
constexpr uint32_t kDefault = 0u;
// Indicates capture should be mocked out and not interact with the system.
constexpr uint32_t kStubCapture = 1 << 0;
// Creates the appropriate platform specific non-desktop NativeWidget
// implementation. If |destroyed| is non-null it it set to true from the
// destructor of the NativeWidget.
NativeWidget* CreatePlatformNativeWidgetImpl(Widget* widget,
uint32_t behavior,
bool* destroyed);
// Creates the appropriate platform specific non-desktop NativeWidget
// implementation. Creates the appropriate platform specific desktop
// NativeWidget implementation. `destroyed_callback` is called from the
// destructor of the NativeWidget.
NativeWidget* CreatePlatformNativeWidgetImpl(
Widget* widget,
uint32_t behavior,
base::OnceClosure destroyed_callback);
// Creates the appropriate platform specific desktop NativeWidget
// implementation. `destroyed_callback` is called from the destructor of the
// NativeWidget.
NativeWidget* CreatePlatformDesktopNativeWidgetImpl(
Widget* widget,
uint32_t behavior,
base::OnceClosure destroyed_callback);
} // namespace test
} // namespace views
#endif // UI_VIEWS_TEST_NATIVE_WIDGET_FACTORY_H_