StyleElementUtils.h 975 B

12345678910111213141516171819202122232425262728293031323334
  1. /*
  2. * Copyright (c) 2023, Preston Taylor <PrestonLeeTaylor@proton.me>
  3. *
  4. * SPDX-License-Identifier: BSD-2-Clause
  5. */
  6. #pragma once
  7. #include <LibWeb/CSS/CSSStyleSheet.h>
  8. #include <LibWeb/DOM/Element.h>
  9. #include <LibWeb/WebIDL/ObservableArray.h>
  10. namespace Web::DOM {
  11. class StyleElementUtils {
  12. public:
  13. void update_a_style_block(DOM::Element& style_element);
  14. CSS::CSSStyleSheet* sheet() { return m_associated_css_style_sheet; }
  15. CSS::CSSStyleSheet const* sheet() const { return m_associated_css_style_sheet; }
  16. [[nodiscard]] JS::GCPtr<CSS::StyleSheetList> style_sheet_list() { return m_style_sheet_list; }
  17. [[nodiscard]] JS::GCPtr<CSS::StyleSheetList const> style_sheet_list() const { return m_style_sheet_list; }
  18. void visit_edges(JS::Cell::Visitor&);
  19. private:
  20. // https://www.w3.org/TR/cssom/#associated-css-style-sheet
  21. JS::GCPtr<CSS::CSSStyleSheet> m_associated_css_style_sheet;
  22. JS::GCPtr<CSS::StyleSheetList> m_style_sheet_list;
  23. };
  24. }