Zrythm v2.0.0-DEV
a highly automated and intuitive digital audio workstation
Loading...
Searching...
No Matches
fade_overlay_canvas_renderer.h
1// SPDX-FileCopyrightText: © 2026 Alexandros Theodotou <alex@zrythm.org>
2// SPDX-License-Identifier: LicenseRef-ZrythmLicense
3
4#pragma once
5
6#include <vector>
7
8#include <QtCanvasPainter/qcanvaspainter.h>
9#include <QtCanvasPainter/qcanvaspainteritemrenderer.h>
10
11namespace zrythm::gui::qquick
12{
13
15
16class FadeOverlayCanvasRenderer : public QCanvasPainterItemRenderer
17{
18public:
19 FadeOverlayCanvasRenderer () = default;
20 Q_DISABLE_COPY_MOVE (FadeOverlayCanvasRenderer)
21
22 void synchronize (QCanvasPainterItem * item) override;
23 void paint (QCanvasPainter * painter) override;
24
25private:
26 int fade_type_ = 0;
27 bool hovered_ = false;
28 QColor overlay_color_{ 51, 51, 51, 153 };
29 QColor curve_color_{ 255, 255, 255, 200 };
30 float canvas_width_ = 0.0f;
31 float canvas_height_ = 0.0f;
32 bool has_valid_fade_ = false;
33
34 // Pre-computed curve Y values (copied from item during synchronize)
35 std::vector<double> cached_curve_y_;
36};
37
38} // namespace zrythm::gui::qquick
QML-visible canvas item that renders a single fade overlay.