StyleElementUtils.h 1.1 KB

12345678910111213141516171819202122232425262728293031
  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. private:
  17. void remove_a_css_style_sheet(CSS::StyleSheetList&, CSS::CSSStyleSheet& sheet);
  18. void create_a_css_style_sheet(CSS::StyleSheetList&, String type, DOM::Element* owner_node, String media, String title, bool alternate, bool origin_clean, Optional<String> location, CSS::CSSStyleSheet* parent_style_sheet, CSS::CSSRule* owner_rule, CSS::CSSStyleSheet& sheet);
  19. void add_a_css_style_sheet(CSS::StyleSheetList&, CSS::CSSStyleSheet& sheet);
  20. // https://www.w3.org/TR/cssom/#associated-css-style-sheet
  21. JS::GCPtr<CSS::CSSStyleSheet> m_associated_css_style_sheet;
  22. };
  23. }