/* * Copyright (c) 2024, Shannon Booth * * SPDX-License-Identifier: BSD-2-Clause */ #pragma once #include #include #include #include namespace Web::CSS { class ScreenOrientation final : public DOM::EventTarget { WEB_PLATFORM_OBJECT(ScreenOrientation, DOM::EventTarget); GC_DECLARE_ALLOCATOR(ScreenOrientation); public: [[nodiscard]] static GC::Ref create(JS::Realm&); WebIDL::ExceptionOr> lock(Bindings::OrientationLockType); void unlock(); Bindings::OrientationType type() const; WebIDL::UnsignedShort angle() const; void set_onchange(GC::Ptr); GC::Ptr onchange(); private: explicit ScreenOrientation(JS::Realm&); virtual void initialize(JS::Realm&) override; }; }