ScrollbarGutterStyleValue.h 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. /*
  2. * Copyright (c) 2024, the Ladybird developers.
  3. *
  4. * SPDX-License-Identifier: BSD-2-Clause
  5. */
  6. #pragma once
  7. #include <LibWeb/CSS/CSSStyleValue.h>
  8. namespace Web::CSS {
  9. class ScrollbarGutterStyleValue final : public StyleValueWithDefaultOperators<ScrollbarGutterStyleValue> {
  10. public:
  11. static ValueComparingNonnullRefPtr<ScrollbarGutterStyleValue> create(ScrollbarGutter value)
  12. {
  13. return adopt_ref(*new (nothrow) ScrollbarGutterStyleValue(value));
  14. }
  15. virtual ~ScrollbarGutterStyleValue() override = default;
  16. ScrollbarGutter value() const { return m_value; }
  17. virtual String to_string() const override
  18. {
  19. switch (m_value) {
  20. case ScrollbarGutter::Auto:
  21. return "auto"_string;
  22. case ScrollbarGutter::Stable:
  23. return "stable"_string;
  24. case ScrollbarGutter::BothEdges:
  25. return "stable both-edges"_string;
  26. default:
  27. VERIFY_NOT_REACHED();
  28. }
  29. }
  30. bool properties_equal(ScrollbarGutterStyleValue const& other) const { return m_value == other.m_value; }
  31. private:
  32. ScrollbarGutterStyleValue(ScrollbarGutter value)
  33. : StyleValueWithDefaultOperators(Type::ScrollbarGutter)
  34. , m_value(value)
  35. {
  36. }
  37. ScrollbarGutter m_value;
  38. };
  39. }