CanvasPathDrawingStyles.h 875 B

123456789101112131415161718192021222324252627282930
  1. /*
  2. * Copyright (c) 2022, Sam Atkins <atkinssj@serenityos.org>
  3. *
  4. * SPDX-License-Identifier: BSD-2-Clause
  5. */
  6. #pragma once
  7. #include <LibWeb/HTML/Canvas/CanvasState.h>
  8. namespace Web::HTML {
  9. // https://html.spec.whatwg.org/multipage/canvas.html#canvaspathdrawingstyles
  10. template<typename IncludingClass>
  11. class CanvasPathDrawingStyles {
  12. public:
  13. ~CanvasPathDrawingStyles() = default;
  14. void set_line_width(float line_width) { my_drawing_state().line_width = line_width; }
  15. float line_width() const { return my_drawing_state().line_width; }
  16. protected:
  17. CanvasPathDrawingStyles() = default;
  18. private:
  19. CanvasState::DrawingState& my_drawing_state() { return reinterpret_cast<IncludingClass&>(*this).drawing_state(); }
  20. CanvasState::DrawingState const& my_drawing_state() const { return reinterpret_cast<IncludingClass const&>(*this).drawing_state(); }
  21. };
  22. }