// Copyright 2021 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_OZONE_PLATFORM_WAYLAND_HOST_SHELL_TOPLEVEL_WRAPPER_H_ #define UI_OZONE_PLATFORM_WAYLAND_HOST_SHELL_TOPLEVEL_WRAPPER_H_ #include <string> #include "ui/display/types/display_constants.h" #include "ui/ozone/platform/wayland/common/wayland_object.h" #include "ui/platform_window/extensions/wayland_extension.h" namespace gfx { class ImageSkia; class Rect; class RoundedCornersF; } namespace ui { class WaylandConnection; class WaylandOutput; class XDGToplevelWrapperImpl; enum class ZOrderLevel; // Wrapper interface for shell top level windows. // // This is one of three wrapper classes: Shell{Surface,Toplevel,Popup}Wrapper. // It has the only sub-class in Chromium, but should not be removed because it // eases downstream implementations. // See https://crbug.com/1402672 // // Allows WaylandToplevelWindow to set window-like properties such as maximize, // fullscreen, and minimize, set application-specific metadata like title and // id, as well as trigger user interactive operations such as interactive resize // and move. class ShellToplevelWrapper { … }; // Look for `value` in `wl_array` in C++ style. bool CheckIfWlArrayHasValue(struct wl_array* wl_array, uint32_t value); } // namespace ui #endif // UI_OZONE_PLATFORM_WAYLAND_HOST_SHELL_TOPLEVEL_WRAPPER_H_