1 
2 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
3 
4 /*
5     Rosegarden
6     A MIDI and audio sequencer and musical notation editor.
7     Copyright 2000-2021 the Rosegarden development team.
8 
9     Other copyrights also apply to some parts of this work.  Please
10     see the AUTHORS file and individual file headers for details.
11 
12     This program is free software; you can redistribute it and/or
13     modify it under the terms of the GNU General Public License as
14     published by the Free Software Foundation; either version 2 of the
15     License, or (at your option) any later version.  See the file
16     COPYING included with this distribution for more information.
17 */
18 
19 #ifndef RG_NOTATIONPROPERTIES_H
20 #define RG_NOTATIONPROPERTIES_H
21 
22 #include "base/PropertyName.h"
23 #include <string>
24 
25 
26 namespace Rosegarden
27 {
28 
29 
30 /**
31  * Property names for properties that are computed and cached within
32  * the notation module, but that need not necessarily be saved with
33  * the file.
34  *
35  * If you add something here, remember to add the definition to
36  * NotationProperties.cpp as well...
37  */
38 
39 class NotationProperties
40 {
41 public:
42     NotationProperties(const std::string &prefix);
43 
44     // These are only of interest to notation views, but are the
45     // same across all notation views.
46 
47     static const PropertyName HEIGHT_ON_STAFF;
48     static const PropertyName NOTE_STYLE;
49     static const PropertyName BEAMED;
50     static const PropertyName BEAM_ABOVE;
51     static const PropertyName SLASHES;
52     static const PropertyName STEM_UP;
53     static const PropertyName USE_CAUTIONARY_ACCIDENTAL;
54     static const PropertyName OTTAVA_SHIFT;
55     static const PropertyName SLUR_ABOVE;
56 
57     // The rest are, or may be, view-local
58 
59     const PropertyName VIEW_LOCAL_STEM_UP;
60     const PropertyName MIN_WIDTH;
61     const PropertyName CALCULATED_ACCIDENTAL;
62     const PropertyName DISPLAY_ACCIDENTAL;
63     const PropertyName DISPLAY_ACCIDENTAL_IS_CAUTIONARY;
64     const PropertyName ACCIDENTAL_SHIFT;
65     const PropertyName ACCIDENTAL_EXTRA_SHIFT;
66     const PropertyName UNBEAMED_STEM_LENGTH;
67     const PropertyName DRAW_FLAG;
68     const PropertyName NOTE_HEAD_SHIFTED;
69     const PropertyName NEEDS_EXTRA_SHIFT_SPACE;
70     const PropertyName NOTE_DOT_SHIFTED;
71     const PropertyName CHORD_PRIMARY_NOTE;
72     const PropertyName CHORD_MARK_COUNT;
73     const PropertyName TIE_LENGTH;
74     const PropertyName SLUR_Y_DELTA;
75     const PropertyName SLUR_LENGTH;
76     const PropertyName LYRIC_EXTRA_WIDTH;
77     const PropertyName REST_TOO_SHORT;
78     const PropertyName REST_OUTSIDE_STAVE;
79 
80     // Set in applyBeam in NotationSets.cpp:
81 
82     const PropertyName BEAM_GRADIENT;
83     const PropertyName BEAM_SECTION_WIDTH;
84     const PropertyName BEAM_NEXT_BEAM_COUNT;
85     const PropertyName BEAM_NEXT_PART_BEAMS;
86     const PropertyName BEAM_THIS_PART_BEAMS;
87     const PropertyName BEAM_MY_Y;
88     const PropertyName TUPLING_LINE_MY_Y;
89     const PropertyName TUPLING_LINE_WIDTH;
90     const PropertyName TUPLING_LINE_GRADIENT;
91     const PropertyName TUPLING_LINE_FOLLOWS_BEAM;
92 
93 };
94 
95 
96 }
97 
98 #endif
99