Filter.h 872 B

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. /*
  2. * Copyright (c) 2022, MacDue <macdue@dueutil.tech>
  3. *
  4. * SPDX-License-Identifier: BSD-2-Clause
  5. */
  6. #pragma once
  7. #include <AK/Variant.h>
  8. #include <LibWeb/CSS/CSSStyleValue.h>
  9. #include <LibWeb/CSS/StyleValues/FilterValueListStyleValue.h>
  10. namespace Web::CSS {
  11. class Filter {
  12. public:
  13. Filter() = default;
  14. Filter(FilterValueListStyleValue const& filter_value_list)
  15. : m_filter_value_list { filter_value_list }
  16. {
  17. }
  18. static Filter make_none()
  19. {
  20. return Filter {};
  21. }
  22. bool has_filters() const { return m_filter_value_list; }
  23. bool is_none() const { return !has_filters(); }
  24. ReadonlySpan<FilterFunction> filters() const
  25. {
  26. VERIFY(has_filters());
  27. return m_filter_value_list->filter_value_list().span();
  28. }
  29. private:
  30. RefPtr<FilterValueListStyleValue const> m_filter_value_list { nullptr };
  31. };
  32. }