CanvasShadowStyles.h 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. /*
  2. * Copyright (c) 2024, İbrahim UYSAL <uysalibov@gmail.com>
  3. *
  4. * SPDX-License-Identifier: BSD-2-Clause
  5. */
  6. #pragma once
  7. #include <AK/String.h>
  8. #include <LibWeb/CSS/Parser/Parser.h>
  9. #include <LibWeb/HTML/Canvas/CanvasState.h>
  10. #include <LibWeb/HTML/CanvasGradient.h>
  11. #include <LibWeb/HTML/CanvasPattern.h>
  12. namespace Web::HTML {
  13. // https://html.spec.whatwg.org/multipage/canvas.html#canvasshadowstyles
  14. template<typename IncludingClass>
  15. class CanvasShadowStyles {
  16. public:
  17. ~CanvasShadowStyles() = default;
  18. virtual float shadow_offset_x() const = 0;
  19. virtual void set_shadow_offset_x(float offsetX) = 0;
  20. virtual float shadow_offset_y() const = 0;
  21. virtual void set_shadow_offset_y(float offsetY) = 0;
  22. virtual String shadow_color() const = 0;
  23. virtual void set_shadow_color(String color) = 0;
  24. protected:
  25. CanvasShadowStyles() = default;
  26. private:
  27. CanvasState::DrawingState& my_drawing_state() { return reinterpret_cast<IncludingClass&>(*this).drawing_state(); }
  28. CanvasState::DrawingState const& my_drawing_state() const { return reinterpret_cast<IncludingClass const&>(*this).drawing_state(); }
  29. };
  30. }