Line data Source code
1 : /*
2 : * SPDX-License-Identifier: GPL-3.0-only
3 : * MuseScore-Studio-CLA-applies
4 : *
5 : * MuseScore Studio
6 : * Music Composition & Notation
7 : *
8 : * Copyright (C) 2025 MuseScore Limited and others
9 : *
10 : * This program is free software: you can redistribute it and/or modify
11 : * it under the terms of the GNU General Public License version 3 as
12 : * published by the Free Software Foundation.
13 : *
14 : * This program is distributed in the hope that it will be useful,
15 : * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 : * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 : * GNU General Public License for more details.
18 : *
19 : * You should have received a copy of the GNU General Public License
20 : * along with this program. If not, see <https://www.gnu.org/licenses/>.
21 : */
22 : #pragma once
23 :
24 : #include "../ieditmoderenderer.h"
25 :
26 : namespace muse::draw {
27 : class Painter;
28 : }
29 :
30 : namespace mu::engraving {
31 : class MStyle;
32 : class IEngravingFont;
33 : class Score;
34 : class EngravingItem;
35 : class EditData;
36 :
37 : class BarLine;
38 : class Dynamic;
39 : class SlurTieSegment;
40 : class TextBase;
41 : class TextBlock;
42 : class TextFragment;
43 : }
44 :
45 : namespace mu::engraving::rendering::editmode {
46 : class EditModeRenderer : public IEditModeRenderer
47 : {
48 : public:
49 16 : EditModeRenderer() = default;
50 :
51 : void drawItem(const EngravingItem* item, muse::draw::Painter* p, const EditData& ed, double currentViewScaling,
52 : const PaintOptions& opt) override;
53 :
54 : private:
55 : static void drawEngravingItem(const EngravingItem* item, muse::draw::Painter* painter, const EditData& ed, double currentViewScaling,
56 : const PaintOptions& opt);
57 :
58 : static void drawBarline(const BarLine* item, muse::draw::Painter* painter, const EditData& ed, double currentViewScaling,
59 : const PaintOptions& opt);
60 : static void drawDynamic(const Dynamic* item, muse::draw::Painter* painter, const EditData& ed, double currentViewScaling,
61 : const PaintOptions& opt);
62 : static void drawSlurTieSegment(const SlurTieSegment* item, muse::draw::Painter* painter, const EditData& ed, double currentViewScaling,
63 : const PaintOptions& opt);
64 :
65 : static void drawTextBase(const TextBase* item, muse::draw::Painter* painter, double currentViewScaling, const PaintOptions& opt);
66 : static void draw(const TextBlock& textBlock, const TextBase* item, muse::draw::Painter* painter);
67 : static void draw(const TextFragment& textFragment, const TextBase* item, muse::draw::Painter* painter);
68 : };
69 : }
|