Serenity Operating System
at master 36 lines 913 B view raw
1/* 2 * Copyright (c) 2021, Andreas Kling <kling@serenityos.org> 3 * 4 * SPDX-License-Identifier: BSD-2-Clause 5 */ 6 7#pragma once 8 9#include <LibWeb/Bindings/PlatformObject.h> 10 11namespace Web::ResizeObserver { 12 13struct ResizeObserverOptions { 14 Bindings::ResizeObserverBoxOptions box; 15}; 16 17// https://drafts.csswg.org/resize-observer/#resize-observer-interface 18class ResizeObserver : public Bindings::PlatformObject { 19 WEB_PLATFORM_OBJECT(ResizeObserver, Bindings::PlatformObject); 20 21public: 22 static WebIDL::ExceptionOr<JS::NonnullGCPtr<ResizeObserver>> construct_impl(JS::Realm&, WebIDL::CallbackType* callback); 23 24 virtual ~ResizeObserver() override; 25 26 void observe(DOM::Element& target, ResizeObserverOptions); 27 void unobserve(DOM::Element& target); 28 void disconnect(); 29 30private: 31 explicit ResizeObserver(JS::Realm&); 32 33 virtual JS::ThrowCompletionOr<void> initialize(JS::Realm&) override; 34}; 35 36}