#ifndef UI_AURA_WINDOW_H_
#define UI_AURA_WINDOW_H_
#include <stdint.h>
#include <map>
#include <memory>
#include <optional>
#include <set>
#include <string>
#include <vector>
#include "base/check.h"
#include "base/containers/flat_set.h"
#include "base/memory/raw_ptr.h"
#include "base/memory/weak_ptr.h"
#include "base/observer_list.h"
#include "base/time/time.h"
#include "build/build_config.h"
#include "components/viz/common/surfaces/frame_sink_id.h"
#include "components/viz/common/surfaces/local_surface_id.h"
#include "components/viz/common/surfaces/scoped_surface_id_allocator.h"
#include "components/viz/common/surfaces/subtree_capture_id.h"
#include "components/viz/host/host_frame_sink_client.h"
#include "third_party/skia/include/core/SkRegion.h"
#include "ui/aura/aura_export.h"
#include "ui/aura/client/window_types.h"
#include "ui/aura/scoped_window_capture_request.h"
#include "ui/aura/window_observer.h"
#include "ui/base/class_property.h"
#include "ui/base/metadata/metadata_header_macros.h"
#include "ui/compositor/layer_delegate.h"
#include "ui/compositor/layer_owner.h"
#include "ui/compositor/layer_type.h"
#include "ui/events/event_constants.h"
#include "ui/events/event_target.h"
#include "ui/events/event_targeter.h"
#include "ui/events/gestures/gesture_types.h"
#include "ui/gfx/geometry/rect.h"
#include "ui/gfx/native_widget_types.h"
#if BUILDFLAG(IS_APPLE)
#error "This file must not be included on macOS; Chromium Mac doesn't use Aura."
#endif
namespace cc {
class LayerTreeFrameSink;
}
namespace display {
class Display;
}
namespace gfx {
class Transform;
}
namespace ui {
enum class DomCode : uint32_t;
class Layer;
}
namespace viz {
class ParentLocalSurfaceIdAllocator;
class SurfaceId;
}
namespace aura {
class LayoutManager;
class ScopedKeyboardHook;
class ScopedWindowEventTargetingBlocker;
class WindowDelegate;
class WindowTargeter;
class WindowTreeHost;
WindowProperty;
namespace test {
class WindowTestApi;
}
enum class EventTargetingPolicy { … };
class AURA_EXPORT Window : public ui::LayerDelegate,
public ui::LayerOwner,
public ui::EventTarget,
public ui::GestureConsumer,
public ui::PropertyHandler,
public ui::metadata::MetaDataProvider,
public viz::HostFrameSinkClient { … };
}
#endif