ResizeObserver.h 782 B

123456789101112131415161718192021222324252627282930313233
  1. /*
  2. * Copyright (c) 2021, Andreas Kling <kling@serenityos.org>
  3. *
  4. * SPDX-License-Identifier: BSD-2-Clause
  5. */
  6. #pragma once
  7. #include <AK/NonnullRefPtr.h>
  8. #include <AK/RefCounted.h>
  9. #include <LibWeb/Bindings/Wrappable.h>
  10. namespace Web::ResizeObserver {
  11. struct ResizeObserverOptions {
  12. String box;
  13. };
  14. // https://drafts.csswg.org/resize-observer/#resize-observer-interface
  15. class ResizeObserver
  16. : public RefCounted<ResizeObserver>
  17. , public Bindings::Wrappable {
  18. public:
  19. using WrapperType = Bindings::ResizeObserverWrapper;
  20. static NonnullRefPtr<ResizeObserver> create_with_global_object(JS::GlobalObject&, JS::Value callback);
  21. void observe(DOM::Element& target, ResizeObserverOptions);
  22. void unobserve(DOM::Element& target);
  23. void disconnect();
  24. };
  25. }