/* * 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); JS_DECLARE_ALLOCATOR(ScreenOrientation); public: [[nodiscard]] static JS::NonnullGCPtr create(JS::Realm&); WebIDL::ExceptionOr> lock(Bindings::OrientationLockType); void unlock(); Bindings::OrientationType type() const; WebIDL::UnsignedShort angle() const; void set_onchange(JS::GCPtr); JS::GCPtr onchange(); private: explicit ScreenOrientation(JS::Realm&); virtual void initialize(JS::Realm&) override; }; }