1 //=============================================================================
2 // MuseScore
3 // Music Composition & Notation
4 //
5 // Copyright (C) 2002-2011 Werner Schweer
6 //
7 // This program is free software; you can redistribute it and/or modify
8 // it under the terms of the GNU General Public License version 2
9 // as published by the Free Software Foundation and appearing in
10 // the file LICENCE.GPL
11 //=============================================================================
12
13 #ifndef __STYLE_H__
14 #define __STYLE_H__
15
16 #include "chordlist.h"
17 #include "types.h"
18
19 namespace Ms {
20
21 enum class Pid : int;
22 class XmlWriter;
23 struct ChordDescription;
24 class Element;
25 class Score;
26
27 // Needs to be duplicated here and in sym.h since moc doesn't handle macros from #include'd files
28 #ifdef SCRIPT_INTERFACE
29 #define BEGIN_QT_REGISTERED_ENUM(Name) \
30 class MSQE_##Name { \
31 Q_GADGET \
32 public:
33 #define END_QT_REGISTERED_ENUM(Name) \
34 Q_ENUM(Name); \
35 }; \
36 using Name = MSQE_##Name::Name;
37 #else
38 #define BEGIN_QT_REGISTERED_ENUM(Name)
39 #define END_QT_REGISTERED_ENUM(Name)
40 #endif
41
42 //---------------------------------------------------------
43 // Sid
44 /// Enumerates the list of score style settings
45 //
46 // Keep in sync with styleTypes[] in style.cpp
47 //---------------------------------------------------------
48
49 BEGIN_QT_REGISTERED_ENUM(Sid)
50 enum class Sid {
51 ///.\{
52 NOSTYLE = -1,
53
54 pageWidth,
55 pageHeight,
56 pagePrintableWidth,
57 pageEvenLeftMargin,
58 pageOddLeftMargin,
59 pageEvenTopMargin,
60 pageEvenBottomMargin,
61 pageOddTopMargin,
62 pageOddBottomMargin,
63 pageTwosided,
64
65 staffUpperBorder,
66 staffLowerBorder,
67 staffDistance,
68 akkoladeDistance,
69 minSystemDistance,
70 maxSystemDistance,
71
72 enableVerticalSpread,
73 spreadSystem,
74 spreadSquareBracket,
75 spreadCurlyBracket,
76 minSystemSpread,
77 maxSystemSpread,
78 minStaffSpread,
79 maxStaffSpread,
80 maxAkkoladeDistance,
81 maxPageFillSpread,
82
83 lyricsPlacement,
84 lyricsPosAbove,
85 lyricsPosBelow,
86 lyricsMinTopDistance,
87 lyricsMinBottomDistance,
88 lyricsMinDistance,
89 lyricsLineHeight,
90 lyricsDashMinLength,
91 lyricsDashMaxLength,
92 lyricsDashMaxDistance,
93 lyricsDashForce,
94 lyricsAlignVerseNumber,
95 lyricsLineThickness,
96 lyricsMelismaAlign,
97 lyricsMelismaPad,
98 lyricsDashPad,
99 lyricsDashLineThickness,
100 lyricsDashYposRatio,
101
102 lyricsOddFontFace,
103 lyricsOddFontSize,
104 lyricsOddLineSpacing,
105 lyricsOddFontSpatiumDependent,
106 lyricsOddFontStyle,
107 lyricsOddColor,
108 lyricsOddAlign,
109 lyricsOddFrameType,
110 lyricsOddFramePadding,
111 lyricsOddFrameWidth,
112 lyricsOddFrameRound,
113 lyricsOddFrameFgColor,
114 lyricsOddFrameBgColor,
115
116 lyricsEvenFontFace,
117 lyricsEvenFontSize,
118 lyricsEvenLineSpacing,
119 lyricsEvenFontSpatiumDependent,
120 lyricsEvenFontStyle,
121 lyricsEvenColor,
122 lyricsEvenAlign,
123 lyricsEvenFrameType,
124 lyricsEvenFramePadding,
125 lyricsEvenFrameWidth,
126 lyricsEvenFrameRound,
127 lyricsEvenFrameFgColor,
128 lyricsEvenFrameBgColor,
129
130 figuredBassFontFamily,
131 // figuredBassFontSize,
132 figuredBassYOffset,
133 figuredBassLineHeight,
134 figuredBassAlignment,
135 figuredBassStyle,
136 systemFrameDistance,
137 frameSystemDistance,
138 minMeasureWidth,
139
140 barWidth,
141 doubleBarWidth,
142 endBarWidth,
143 doubleBarDistance,
144 endBarDistance,
145 repeatBarlineDotSeparation,
146 repeatBarTips,
147 startBarlineSingle,
148 startBarlineMultiple,
149
150 bracketWidth,
151 bracketDistance,
152 akkoladeWidth,
153 akkoladeBarDistance,
154 dividerLeft,
155 dividerLeftSym,
156 dividerLeftX,
157 dividerLeftY,
158 dividerRight,
159 dividerRightSym,
160 dividerRightX,
161 dividerRightY,
162
163 clefLeftMargin,
164 keysigLeftMargin,
165 ambitusMargin,
166 timesigLeftMargin,
167 timesigScale,
168
169 midClefKeyRightMargin,
170 clefKeyRightMargin,
171 clefKeyDistance,
172 clefTimesigDistance,
173 keyTimesigDistance,
174 keyBarlineDistance,
175 systemHeaderDistance,
176 systemHeaderTimeSigDistance,
177
178 clefBarlineDistance,
179 timesigBarlineDistance,
180
181 stemWidth,
182 shortenStem,
183 shortStemProgression,
184 shortestStem,
185 beginRepeatLeftMargin,
186 minNoteDistance,
187 barNoteDistance,
188 barAccidentalDistance,
189 multiMeasureRestMargin,
190 noteBarDistance,
191
192 measureSpacing,
193 staffLineWidth,
194 ledgerLineWidth,
195 ledgerLineLength,
196 accidentalDistance,
197 accidentalNoteDistance,
198 bracketedAccidentalPadding,
199 alignAccidentalsLeft,
200 beamWidth,
201 beamDistance,
202 beamMinLen,
203 beamNoSlope,
204
205 dotMag,
206 dotNoteDistance,
207 dotRestDistance,
208 dotDotDistance,
209 propertyDistanceHead,
210 propertyDistanceStem,
211 propertyDistance,
212 articulationMag,
213 articulationPosAbove,
214 articulationAnchorDefault,
215 articulationAnchorLuteFingering,
216 articulationAnchorOther,
217 lastSystemFillLimit,
218
219 hairpinPlacement,
220 hairpinPosAbove,
221 hairpinPosBelow,
222 hairpinLinePosAbove,
223 hairpinLinePosBelow,
224 hairpinHeight,
225 hairpinContHeight,
226 hairpinLineWidth,
227 hairpinFontFace,
228 hairpinFontSize,
229 hairpinLineSpacing,
230 hairpinFontSpatiumDependent,
231 hairpinFontStyle,
232 hairpinColor,
233 hairpinTextAlign,
234 hairpinFrameType,
235 hairpinFramePadding,
236 hairpinFrameWidth,
237 hairpinFrameRound,
238 hairpinFrameFgColor,
239 hairpinFrameBgColor,
240 hairpinText,
241 hairpinCrescText,
242 hairpinDecrescText,
243 hairpinCrescContText,
244 hairpinDecrescContText,
245 hairpinLineStyle,
246 hairpinLineLineStyle,
247
248 pedalPlacement,
249 pedalPosAbove,
250 pedalPosBelow,
251 pedalLineWidth,
252 pedalLineStyle,
253 pedalBeginTextOffset,
254 pedalHookHeight,
255 pedalFontFace,
256 pedalFontSize,
257 pedalLineSpacing,
258 pedalFontSpatiumDependent,
259 pedalFontStyle,
260 pedalColor,
261 pedalTextAlign,
262 pedalFrameType,
263 pedalFramePadding,
264 pedalFrameWidth,
265 pedalFrameRound,
266 pedalFrameFgColor,
267 pedalFrameBgColor,
268
269 trillPlacement,
270 trillPosAbove,
271 trillPosBelow,
272
273 vibratoPlacement,
274 vibratoPosAbove,
275 vibratoPosBelow,
276
277 harmonyFretDist,
278 minHarmonyDistance,
279 maxHarmonyBarDistance,
280 maxChordShiftAbove,
281 maxChordShiftBelow,
282
283 harmonyPlacement,
284 romanNumeralPlacement,
285 nashvilleNumberPlacement,
286 harmonyPlay,
287 harmonyVoiceLiteral,
288 harmonyVoicing,
289 harmonyDuration,
290
291 chordSymbolAPosAbove,
292 chordSymbolAPosBelow,
293
294 chordSymbolBPosAbove,
295 chordSymbolBPosBelow,
296
297 romanNumeralPosAbove,
298 romanNumeralPosBelow,
299
300 nashvilleNumberPosAbove,
301 nashvilleNumberPosBelow,
302
303 chordSymbolAFontFace,
304 chordSymbolAFontSize,
305 chordSymbolALineSpacing,
306 chordSymbolAFontSpatiumDependent,
307 chordSymbolAFontStyle,
308 chordSymbolAColor,
309 chordSymbolAAlign,
310 chordSymbolAFrameType,
311 chordSymbolAFramePadding,
312 chordSymbolAFrameWidth,
313 chordSymbolAFrameRound,
314 chordSymbolAFrameFgColor,
315 chordSymbolAFrameBgColor,
316
317 chordSymbolBFontFace,
318 chordSymbolBFontSize,
319 chordSymbolBLineSpacing,
320 chordSymbolBFontSpatiumDependent,
321 chordSymbolBFontStyle,
322 chordSymbolBColor,
323 chordSymbolBAlign,
324 chordSymbolBFrameType,
325 chordSymbolBFramePadding,
326 chordSymbolBFrameWidth,
327 chordSymbolBFrameRound,
328 chordSymbolBFrameFgColor,
329 chordSymbolBFrameBgColor,
330
331 romanNumeralFontFace,
332 romanNumeralFontSize,
333 romanNumeralLineSpacing,
334 romanNumeralFontSpatiumDependent,
335 romanNumeralFontStyle,
336 romanNumeralColor,
337 romanNumeralAlign,
338 romanNumeralFrameType,
339 romanNumeralFramePadding,
340 romanNumeralFrameWidth,
341 romanNumeralFrameRound,
342 romanNumeralFrameFgColor,
343 romanNumeralFrameBgColor,
344
345 nashvilleNumberFontFace,
346 nashvilleNumberFontSize,
347 nashvilleNumberLineSpacing,
348 nashvilleNumberFontSpatiumDependent,
349 nashvilleNumberFontStyle,
350 nashvilleNumberColor,
351 nashvilleNumberAlign,
352 nashvilleNumberFrameType,
353 nashvilleNumberFramePadding,
354 nashvilleNumberFrameWidth,
355 nashvilleNumberFrameRound,
356 nashvilleNumberFrameFgColor,
357 nashvilleNumberFrameBgColor,
358
359 capoPosition,
360 fretNumMag,
361 fretNumPos,
362 fretY,
363 fretMinDistance,
364 fretMag,
365 fretPlacement,
366 fretStrings,
367 fretFrets,
368 fretNut,
369 fretDotSize,
370 fretStringSpacing,
371 fretFretSpacing,
372 fretOrientation,
373 maxFretShiftAbove,
374 maxFretShiftBelow,
375
376 showPageNumber,
377 showPageNumberOne,
378 pageNumberOddEven,
379 showMeasureNumber,
380 showMeasureNumberOne,
381 measureNumberInterval,
382 measureNumberSystem,
383 measureNumberAllStaves,
384
385 smallNoteMag,
386 graceNoteMag,
387 smallStaffMag,
388 smallClefMag,
389 genClef,
390 genKeysig,
391 genCourtesyTimesig,
392 genCourtesyKeysig,
393 genCourtesyClef,
394
395 swingRatio,
396 swingUnit,
397
398 useStandardNoteNames,
399 useGermanNoteNames,
400 useFullGermanNoteNames,
401 useSolfeggioNoteNames,
402 useFrenchNoteNames,
403 automaticCapitalization,
404 lowerCaseMinorChords,
405 lowerCaseBassNotes,
406 allCapsNoteNames,
407 chordStyle,
408 chordsXmlFile,
409 chordDescriptionFile,
410 chordExtensionMag,
411 chordExtensionAdjust,
412 chordModifierMag,
413 chordModifierAdjust,
414 concertPitch,
415 createMultiMeasureRests,
416 minEmptyMeasures,
417 minMMRestWidth,
418 mmRestNumberPos,
419 hideEmptyStaves,
420 dontHideStavesInFirstSystem,
421 enableIndentationOnFirstSystem,
422 firstSystemIndentationValue,
423 alwaysShowBracketsWhenEmptyStavesAreHidden,
424 hideInstrumentNameIfOneInstrument,
425 gateTime,
426 tenutoGateTime,
427 staccatoGateTime,
428 slurGateTime,
429
430 ArpeggioNoteDistance,
431 ArpeggioLineWidth,
432 ArpeggioHookLen,
433 ArpeggioHiddenInStdIfTab,
434
435 SlurEndWidth,
436 SlurMidWidth,
437 SlurDottedWidth,
438 MinTieLength,
439 SlurMinDistance,
440
441 SectionPause,
442 MusicalSymbolFont,
443 MusicalTextFont,
444
445 showHeader,
446 headerFirstPage,
447 headerOddEven,
448 evenHeaderL,
449 evenHeaderC,
450 evenHeaderR,
451 oddHeaderL,
452 oddHeaderC,
453 oddHeaderR,
454
455 showFooter,
456 footerFirstPage,
457 footerOddEven,
458 evenFooterL,
459 evenFooterC,
460 evenFooterR,
461 oddFooterL,
462 oddFooterC,
463 oddFooterR,
464
465 voltaPosAbove,
466 voltaHook,
467 voltaLineWidth,
468 voltaLineStyle,
469 voltaFontFace,
470 voltaFontSize,
471 voltaLineSpacing,
472 voltaFontSpatiumDependent,
473 voltaFontStyle,
474 voltaColor,
475 voltaAlign,
476 voltaOffset,
477 voltaFrameType,
478 voltaFramePadding,
479 voltaFrameWidth,
480 voltaFrameRound,
481 voltaFrameFgColor,
482 voltaFrameBgColor,
483
484 ottava8VAPlacement,
485 ottava8VBPlacement,
486 ottava15MAPlacement,
487 ottava15MBPlacement,
488 ottava22MAPlacement,
489 ottava22MBPlacement,
490
491 ottava8VAText,
492 ottava8VAContinueText,
493 ottava8VBText,
494 ottava8VBContinueText,
495 ottava15MAText,
496 ottava15MAContinueText,
497 ottava15MBText,
498 ottava15MBContinueText,
499 ottava22MAText,
500 ottava22MAContinueText,
501 ottava22MBText,
502 ottava22MBContinueText,
503
504 ottava8VAnoText,
505 ottava8VAnoContinueText,
506 ottava8VBnoText,
507 ottava8VBnoContinueText,
508 ottava15MAnoText,
509 ottava15MAnoContinueText,
510 ottava15MBnoText,
511 ottava15MBnoContinueText,
512 ottava22MAnoText,
513 ottava22MAnoContinueText,
514 ottava22MBnoText,
515 ottava22MBnoContinueText,
516
517 ottavaPosAbove,
518 ottavaPosBelow,
519 ottavaHookAbove,
520 ottavaHookBelow,
521 ottavaLineWidth,
522 ottavaLineStyle,
523 ottavaNumbersOnly,
524 ottavaFontFace,
525 ottavaFontSize,
526 ottavaLineSpacing,
527 ottavaFontSpatiumDependent,
528 ottavaFontStyle,
529 ottavaColor,
530 ottavaTextAlign,
531 ottavaFrameType,
532 ottavaFramePadding,
533 ottavaFrameWidth,
534 ottavaFrameRound,
535 ottavaFrameFgColor,
536 ottavaFrameBgColor,
537
538 tabClef,
539
540 tremoloWidth,
541 tremoloBoxHeight,
542 tremoloStrokeWidth,
543 tremoloDistance,
544 tremoloStyle,
545 tremoloStrokeLengthMultiplier,
546 // TODO tremoloMaxBeamLength,
547
548 linearStretch,
549 crossMeasureValues,
550 keySigNaturals,
551
552 tupletMaxSlope,
553 tupletOufOfStaff,
554 tupletVHeadDistance,
555 tupletVStemDistance,
556 tupletStemLeftDistance,
557 tupletStemRightDistance,
558 tupletNoteLeftDistance,
559 tupletNoteRightDistance,
560 tupletBracketWidth,
561 tupletDirection,
562 tupletNumberType,
563 tupletBracketType,
564 tupletFontFace,
565 tupletFontSize,
566 tupletLineSpacing,
567 tupletFontSpatiumDependent,
568 tupletFontStyle,
569 tupletColor,
570 tupletAlign,
571 tupletBracketHookHeight,
572 tupletOffset,
573 tupletFrameType,
574 tupletFramePadding,
575 tupletFrameWidth,
576 tupletFrameRound,
577 tupletFrameFgColor,
578 tupletFrameBgColor,
579
580 barreLineWidth,
581 scaleBarlines,
582 barGraceDistance,
583
584 minVerticalDistance,
585 ornamentStyle,
586 spatium,
587
588 autoplaceHairpinDynamicsDistance,
589
590 dynamicsPlacement,
591 dynamicsPosAbove,
592 dynamicsPosBelow,
593
594 dynamicsMinDistance,
595 autoplaceVerticalAlignRange,
596
597 textLinePlacement,
598 textLinePosAbove,
599 textLinePosBelow,
600 textLineFrameType,
601 textLineFramePadding,
602 textLineFrameWidth,
603 textLineFrameRound,
604 textLineFrameFgColor,
605 textLineFrameBgColor,
606
607 systemTextLinePlacement,
608 systemTextLinePosAbove,
609 systemTextLinePosBelow,
610 systemTextLineFrameType,
611 systemTextLineFramePadding,
612 systemTextLineFrameWidth,
613 systemTextLineFrameRound,
614 systemTextLineFrameFgColor,
615 systemTextLineFrameBgColor,
616
617 tremoloBarLineWidth,
618 jumpPosAbove,
619 markerPosAbove,
620
621 defaultFontFace,
622 defaultFontSize,
623 defaultLineSpacing,
624 defaultFontSpatiumDependent,
625 defaultFontStyle,
626 defaultColor,
627 defaultAlign,
628 defaultFrameType,
629 defaultFramePadding,
630 defaultFrameWidth,
631 defaultFrameRound,
632 defaultFrameFgColor,
633 defaultFrameBgColor,
634 defaultOffset,
635 defaultOffsetType,
636 defaultSystemFlag,
637 defaultText,
638
639 titleFontFace,
640 titleFontSize,
641 titleLineSpacing,
642 titleFontSpatiumDependent,
643 titleFontStyle,
644 titleColor,
645 titleAlign,
646 titleOffset,
647 titleOffsetType,
648 titleFrameType,
649 titleFramePadding,
650 titleFrameWidth,
651 titleFrameRound,
652 titleFrameFgColor,
653 titleFrameBgColor,
654
655 subTitleFontFace,
656 subTitleFontSize,
657 subTitleLineSpacing,
658 subTitleFontSpatiumDependent,
659 subTitleFontStyle,
660 subTitleColor,
661 subTitleAlign,
662 subTitleOffset,
663 subTitleOffsetType,
664 subTitleFrameType,
665 subTitleFramePadding,
666 subTitleFrameWidth,
667 subTitleFrameRound,
668 subTitleFrameFgColor,
669 subTitleFrameBgColor,
670
671 composerFontFace,
672 composerFontSize,
673 composerLineSpacing,
674 composerFontSpatiumDependent,
675 composerFontStyle,
676 composerColor,
677 composerAlign,
678 composerOffset,
679 composerOffsetType,
680 composerFrameType,
681 composerFramePadding,
682 composerFrameWidth,
683 composerFrameRound,
684 composerFrameFgColor,
685 composerFrameBgColor,
686
687 lyricistFontFace,
688 lyricistFontSize,
689 lyricistLineSpacing,
690 lyricistFontSpatiumDependent,
691 lyricistFontStyle,
692 lyricistColor,
693 lyricistAlign,
694 lyricistOffset,
695 lyricistOffsetType,
696 lyricistFrameType,
697 lyricistFramePadding,
698 lyricistFrameWidth,
699 lyricistFrameRound,
700 lyricistFrameFgColor,
701 lyricistFrameBgColor,
702
703 fingeringFontFace,
704 fingeringFontSize,
705 fingeringLineSpacing,
706 fingeringFontSpatiumDependent,
707 fingeringFontStyle,
708 fingeringColor,
709 fingeringAlign,
710 fingeringFrameType,
711 fingeringFramePadding,
712 fingeringFrameWidth,
713 fingeringFrameRound,
714 fingeringFrameFgColor,
715 fingeringFrameBgColor,
716 fingeringOffset,
717
718 lhGuitarFingeringFontFace,
719 lhGuitarFingeringFontSize,
720 lhGuitarFingeringLineSpacing,
721 lhGuitarFingeringFontSpatiumDependent,
722 lhGuitarFingeringFontStyle,
723 lhGuitarFingeringColor,
724 lhGuitarFingeringAlign,
725 lhGuitarFingeringFrameType,
726 lhGuitarFingeringFramePadding,
727 lhGuitarFingeringFrameWidth,
728 lhGuitarFingeringFrameRound,
729 lhGuitarFingeringFrameFgColor,
730 lhGuitarFingeringFrameBgColor,
731 lhGuitarFingeringOffset,
732
733 rhGuitarFingeringFontFace,
734 rhGuitarFingeringFontSize,
735 rhGuitarFingeringLineSpacing,
736 rhGuitarFingeringFontSpatiumDependent,
737 rhGuitarFingeringFontStyle,
738 rhGuitarFingeringColor,
739 rhGuitarFingeringAlign,
740 rhGuitarFingeringFrameType,
741 rhGuitarFingeringFramePadding,
742 rhGuitarFingeringFrameWidth,
743 rhGuitarFingeringFrameRound,
744 rhGuitarFingeringFrameFgColor,
745 rhGuitarFingeringFrameBgColor,
746 rhGuitarFingeringOffset,
747
748 stringNumberFontFace,
749 stringNumberFontSize,
750 stringNumberLineSpacing,
751 stringNumberFontSpatiumDependent,
752 stringNumberFontStyle,
753 stringNumberColor,
754 stringNumberAlign,
755 stringNumberFrameType,
756 stringNumberFramePadding,
757 stringNumberFrameWidth,
758 stringNumberFrameRound,
759 stringNumberFrameFgColor,
760 stringNumberFrameBgColor,
761 stringNumberOffset,
762
763 longInstrumentFontFace,
764 longInstrumentFontSize,
765 longInstrumentLineSpacing,
766 longInstrumentFontSpatiumDependent,
767 longInstrumentFontStyle,
768 longInstrumentColor,
769 longInstrumentAlign,
770 longInstrumentOffset,
771 longInstrumentFrameType,
772 longInstrumentFramePadding,
773 longInstrumentFrameWidth,
774 longInstrumentFrameRound,
775 longInstrumentFrameFgColor,
776 longInstrumentFrameBgColor,
777
778 shortInstrumentFontFace,
779 shortInstrumentFontSize,
780 shortInstrumentLineSpacing,
781 shortInstrumentFontSpatiumDependent,
782 shortInstrumentFontStyle,
783 shortInstrumentColor,
784 shortInstrumentAlign,
785 shortInstrumentOffset,
786 shortInstrumentFrameType,
787 shortInstrumentFramePadding,
788 shortInstrumentFrameWidth,
789 shortInstrumentFrameRound,
790 shortInstrumentFrameFgColor,
791 shortInstrumentFrameBgColor,
792
793 partInstrumentFontFace,
794 partInstrumentFontSize,
795 partInstrumentLineSpacing,
796 partInstrumentFontSpatiumDependent,
797 partInstrumentFontStyle,
798 partInstrumentColor,
799 partInstrumentAlign,
800 partInstrumentOffset,
801 partInstrumentFrameType,
802 partInstrumentFramePadding,
803 partInstrumentFrameWidth,
804 partInstrumentFrameRound,
805 partInstrumentFrameFgColor,
806 partInstrumentFrameBgColor,
807
808 dynamicsFontFace,
809 dynamicsFontSize,
810 dynamicsLineSpacing,
811 dynamicsFontSpatiumDependent,
812 dynamicsFontStyle,
813 dynamicsColor,
814 dynamicsAlign,
815 dynamicsFrameType,
816 dynamicsFramePadding,
817 dynamicsFrameWidth,
818 dynamicsFrameRound,
819 dynamicsFrameFgColor,
820 dynamicsFrameBgColor,
821
822 expressionFontFace,
823 expressionFontSize,
824 expressionLineSpacing,
825 expressionFontSpatiumDependent,
826 expressionFontStyle,
827 expressionColor,
828 expressionAlign,
829 expressionPlacement,
830 expressionOffset,
831 expressionFrameType,
832 expressionFramePadding,
833 expressionFrameWidth,
834 expressionFrameRound,
835 expressionFrameFgColor,
836 expressionFrameBgColor,
837
838 tempoFontFace,
839 tempoFontSize,
840 tempoLineSpacing,
841 tempoFontSpatiumDependent,
842 tempoFontStyle,
843 tempoColor,
844 tempoAlign,
845 tempoSystemFlag,
846 tempoPlacement,
847 tempoPosAbove,
848 tempoPosBelow,
849 tempoMinDistance,
850 tempoFrameType,
851 tempoFramePadding,
852 tempoFrameWidth,
853 tempoFrameRound,
854 tempoFrameFgColor,
855 tempoFrameBgColor,
856
857 metronomeFontFace,
858 metronomeFontSize,
859 metronomeLineSpacing,
860 metronomeFontSpatiumDependent,
861 metronomeFontStyle,
862 metronomeColor,
863 metronomePlacement,
864 metronomeAlign,
865 metronomeOffset,
866 metronomeFrameType,
867 metronomeFramePadding,
868 metronomeFrameWidth,
869 metronomeFrameRound,
870 metronomeFrameFgColor,
871 metronomeFrameBgColor,
872
873 measureNumberFontFace,
874 measureNumberFontSize,
875 measureNumberLineSpacing,
876 measureNumberFontSpatiumDependent,
877 measureNumberFontStyle,
878 measureNumberColor,
879 measureNumberPosAbove,
880 measureNumberPosBelow,
881 measureNumberOffsetType,
882 measureNumberVPlacement,
883 measureNumberHPlacement,
884 measureNumberAlign,
885 measureNumberFrameType,
886 measureNumberFramePadding,
887 measureNumberFrameWidth,
888 measureNumberFrameRound,
889 measureNumberFrameFgColor,
890 measureNumberFrameBgColor,
891
892 mmRestShowMeasureNumberRange,
893 mmRestRangeBracketType,
894
895 mmRestRangeFontFace,
896 mmRestRangeFontSize,
897 mmRestRangeFontSpatiumDependent,
898 mmRestRangeFontStyle,
899 mmRestRangeColor,
900 mmRestRangePosAbove,
901 mmRestRangePosBelow,
902 mmRestRangeOffsetType,
903 mmRestRangeVPlacement,
904 mmRestRangeHPlacement,
905 mmRestRangeAlign,
906 mmRestRangeFrameType,
907 mmRestRangeFramePadding,
908 mmRestRangeFrameWidth,
909 mmRestRangeFrameRound,
910 mmRestRangeFrameFgColor,
911 mmRestRangeFrameBgColor,
912
913 translatorFontFace,
914 translatorFontSize,
915 translatorLineSpacing,
916 translatorFontSpatiumDependent,
917 translatorFontStyle,
918 translatorColor,
919 translatorAlign,
920 translatorOffset,
921 translatorFrameType,
922 translatorFramePadding,
923 translatorFrameWidth,
924 translatorFrameRound,
925 translatorFrameFgColor,
926 translatorFrameBgColor,
927
928 systemTextFontFace,
929 systemTextFontSize,
930 systemTextLineSpacing,
931 systemTextFontSpatiumDependent,
932 systemTextFontStyle,
933 systemTextColor,
934 systemTextAlign,
935 systemTextOffsetType,
936 systemTextPlacement,
937 systemTextPosAbove,
938 systemTextPosBelow,
939 systemTextMinDistance,
940 systemTextFrameType,
941 systemTextFramePadding,
942 systemTextFrameWidth,
943 systemTextFrameRound,
944 systemTextFrameFgColor,
945 systemTextFrameBgColor,
946
947 staffTextFontFace,
948 staffTextFontSize,
949 staffTextLineSpacing,
950 staffTextFontSpatiumDependent,
951 staffTextFontStyle,
952 staffTextColor,
953 staffTextAlign,
954 staffTextOffsetType,
955 staffTextPlacement,
956 staffTextPosAbove,
957 staffTextPosBelow,
958 staffTextMinDistance,
959 staffTextFrameType,
960 staffTextFramePadding,
961 staffTextFrameWidth,
962 staffTextFrameRound,
963 staffTextFrameFgColor,
964 staffTextFrameBgColor,
965
966 rehearsalMarkFontFace,
967 rehearsalMarkFontSize,
968 rehearsalMarkLineSpacing,
969 rehearsalMarkFontSpatiumDependent,
970 rehearsalMarkFontStyle,
971 rehearsalMarkColor,
972 rehearsalMarkAlign,
973 rehearsalMarkFrameType,
974 rehearsalMarkFramePadding,
975 rehearsalMarkFrameWidth,
976 rehearsalMarkFrameRound,
977 rehearsalMarkFrameFgColor,
978 rehearsalMarkFrameBgColor,
979 rehearsalMarkPlacement,
980 rehearsalMarkPosAbove,
981 rehearsalMarkPosBelow,
982 rehearsalMarkMinDistance,
983
984 repeatLeftFontFace,
985 repeatLeftFontSize,
986 repeatLeftLineSpacing,
987 repeatLeftFontSpatiumDependent,
988 repeatLeftFontStyle,
989 repeatLeftColor,
990 repeatLeftAlign,
991 repeatLeftPlacement,
992 repeatLeftFrameType,
993 repeatLeftFramePadding,
994 repeatLeftFrameWidth,
995 repeatLeftFrameRound,
996 repeatLeftFrameFgColor,
997 repeatLeftFrameBgColor,
998
999 repeatRightFontFace,
1000 repeatRightFontSize,
1001 repeatRightLineSpacing,
1002 repeatRightFontSpatiumDependent,
1003 repeatRightFontStyle,
1004 repeatRightColor,
1005 repeatRightAlign,
1006 repeatRightPlacement,
1007 repeatRightFrameType,
1008 repeatRightFramePadding,
1009 repeatRightFrameWidth,
1010 repeatRightFrameRound,
1011 repeatRightFrameFgColor,
1012 repeatRightFrameBgColor,
1013
1014 frameFontFace,
1015 frameFontSize,
1016 frameLineSpacing,
1017 frameFontSpatiumDependent,
1018 frameFontStyle,
1019 frameColor,
1020 frameAlign,
1021 frameOffset,
1022 frameFrameType,
1023 frameFramePadding,
1024 frameFrameWidth,
1025 frameFrameRound,
1026 frameFrameFgColor,
1027 frameFrameBgColor,
1028
1029 textLineFontFace,
1030 textLineFontSize,
1031 textLineLineSpacing,
1032 textLineFontSpatiumDependent,
1033 textLineFontStyle,
1034 textLineColor,
1035 textLineTextAlign,
1036 textLineSystemFlag,
1037
1038 systemTextLineFontFace,
1039 systemTextLineFontSize,
1040 systemTextLineFontSpatiumDependent,
1041 systemTextLineFontStyle,
1042 systemTextLineColor,
1043 systemTextLineTextAlign,
1044 systemTextLineSystemFlag,
1045
1046 glissandoFontFace,
1047 glissandoFontSize,
1048 glissandoLineSpacing,
1049 glissandoFontSpatiumDependent,
1050 glissandoFontStyle,
1051 glissandoColor,
1052 glissandoAlign,
1053 glissandoOffset,
1054 glissandoFrameType,
1055 glissandoFramePadding,
1056 glissandoFrameWidth,
1057 glissandoFrameRound,
1058 glissandoFrameFgColor,
1059 glissandoFrameBgColor,
1060 glissandoLineWidth,
1061 glissandoText,
1062
1063 bendFontFace,
1064 bendFontSize,
1065 bendLineSpacing,
1066 bendFontSpatiumDependent,
1067 bendFontStyle,
1068 bendColor,
1069 bendAlign,
1070 bendOffset,
1071 bendFrameType,
1072 bendFramePadding,
1073 bendFrameWidth,
1074 bendFrameRound,
1075 bendFrameFgColor,
1076 bendFrameBgColor,
1077 bendLineWidth,
1078 bendArrowWidth,
1079
1080 headerFontFace,
1081 headerFontSize,
1082 headerLineSpacing,
1083 headerFontSpatiumDependent,
1084 headerFontStyle,
1085 headerColor,
1086 headerAlign,
1087 headerOffset,
1088 headerFrameType,
1089 headerFramePadding,
1090 headerFrameWidth,
1091 headerFrameRound,
1092 headerFrameFgColor,
1093 headerFrameBgColor,
1094
1095 footerFontFace,
1096 footerFontSize,
1097 footerLineSpacing,
1098 footerFontSpatiumDependent,
1099 footerFontStyle,
1100 footerColor,
1101 footerAlign,
1102 footerOffset,
1103 footerFrameType,
1104 footerFramePadding,
1105 footerFrameWidth,
1106 footerFrameRound,
1107 footerFrameFgColor,
1108 footerFrameBgColor,
1109
1110 instrumentChangeFontFace,
1111 instrumentChangeFontSize,
1112 instrumentChangeLineSpacing,
1113 instrumentChangeFontSpatiumDependent,
1114 instrumentChangeFontStyle,
1115 instrumentChangeColor,
1116 instrumentChangeAlign,
1117 instrumentChangeOffset,
1118 instrumentChangePlacement,
1119 instrumentChangePosAbove,
1120 instrumentChangePosBelow,
1121 instrumentChangeMinDistance,
1122 instrumentChangeFrameType,
1123 instrumentChangeFramePadding,
1124 instrumentChangeFrameWidth,
1125 instrumentChangeFrameRound,
1126 instrumentChangeFrameFgColor,
1127 instrumentChangeFrameBgColor,
1128
1129 stickingFontFace,
1130 stickingFontSize,
1131 stickingLineSpacing,
1132 stickingFontSpatiumDependent,
1133 stickingFontStyle,
1134 stickingColor,
1135 stickingAlign,
1136 stickingOffset,
1137 stickingPlacement,
1138 stickingPosAbove,
1139 stickingPosBelow,
1140 stickingMinDistance,
1141 stickingFrameType,
1142 stickingFramePadding,
1143 stickingFrameWidth,
1144 stickingFrameRound,
1145 stickingFrameFgColor,
1146 stickingFrameBgColor,
1147
1148 figuredBassFontFace,
1149 figuredBassFontSize,
1150 figuredBassLineSpacing,
1151 figuredBassFontSpatiumDependent,
1152 figuredBassFontStyle,
1153 figuredBassColor,
1154
1155 user1Name,
1156 user1FontFace,
1157 user1FontSize,
1158 user1LineSpacing,
1159 user1FontSpatiumDependent,
1160 user1FontStyle,
1161 user1Color,
1162 user1Align,
1163 user1Offset,
1164 user1OffsetType,
1165 user1FrameType,
1166 user1FramePadding,
1167 user1FrameWidth,
1168 user1FrameRound,
1169 user1FrameFgColor,
1170 user1FrameBgColor,
1171
1172 user2Name,
1173 user2FontFace,
1174 user2FontSize,
1175 user2LineSpacing,
1176 user2FontSpatiumDependent,
1177 user2FontStyle,
1178 user2Color,
1179 user2Align,
1180 user2Offset,
1181 user2OffsetType,
1182 user2FrameType,
1183 user2FramePadding,
1184 user2FrameWidth,
1185 user2FrameRound,
1186 user2FrameFgColor,
1187 user2FrameBgColor,
1188
1189 user3Name,
1190 user3FontFace,
1191 user3FontSize,
1192 user3LineSpacing,
1193 user3FontSpatiumDependent,
1194 user3FontStyle,
1195 user3Color,
1196 user3Align,
1197 user3Offset,
1198 user3OffsetType,
1199 user3FrameType,
1200 user3FramePadding,
1201 user3FrameWidth,
1202 user3FrameRound,
1203 user3FrameFgColor,
1204 user3FrameBgColor,
1205
1206 user4Name,
1207 user4FontFace,
1208 user4FontSize,
1209 user4LineSpacing,
1210 user4FontSpatiumDependent,
1211 user4FontStyle,
1212 user4Color,
1213 user4Align,
1214 user4Offset,
1215 user4OffsetType,
1216 user4FrameType,
1217 user4FramePadding,
1218 user4FrameWidth,
1219 user4FrameRound,
1220 user4FrameFgColor,
1221 user4FrameBgColor,
1222
1223 user5Name,
1224 user5FontFace,
1225 user5FontSize,
1226 user5LineSpacing,
1227 user5FontSpatiumDependent,
1228 user5FontStyle,
1229 user5Color,
1230 user5Align,
1231 user5Offset,
1232 user5OffsetType,
1233 user5FrameType,
1234 user5FramePadding,
1235 user5FrameWidth,
1236 user5FrameRound,
1237 user5FrameFgColor,
1238 user5FrameBgColor,
1239
1240 user6Name,
1241 user6FontFace,
1242 user6FontSize,
1243 user6LineSpacing,
1244 user6FontSpatiumDependent,
1245 user6FontStyle,
1246 user6Color,
1247 user6Align,
1248 user6Offset,
1249 user6OffsetType,
1250 user6FrameType,
1251 user6FramePadding,
1252 user6FrameWidth,
1253 user6FrameRound,
1254 user6FrameFgColor,
1255 user6FrameBgColor,
1256
1257 user7Name,
1258 user7FontFace,
1259 user7FontSize,
1260 user7LineSpacing,
1261 user7FontSpatiumDependent,
1262 user7FontStyle,
1263 user7Color,
1264 user7Align,
1265 user7Offset,
1266 user7OffsetType,
1267 user7FrameType,
1268 user7FramePadding,
1269 user7FrameWidth,
1270 user7FrameRound,
1271 user7FrameFgColor,
1272 user7FrameBgColor,
1273
1274 user8Name,
1275 user8FontFace,
1276 user8FontSize,
1277 user8LineSpacing,
1278 user8FontSpatiumDependent,
1279 user8FontStyle,
1280 user8Color,
1281 user8Align,
1282 user8Offset,
1283 user8OffsetType,
1284 user8FrameType,
1285 user8FramePadding,
1286 user8FrameWidth,
1287 user8FrameRound,
1288 user8FrameFgColor,
1289 user8FrameBgColor,
1290
1291 user9Name,
1292 user9FontFace,
1293 user9FontSize,
1294 user9LineSpacing,
1295 user9FontSpatiumDependent,
1296 user9FontStyle,
1297 user9Color,
1298 user9Align,
1299 user9Offset,
1300 user9OffsetType,
1301 user9FrameType,
1302 user9FramePadding,
1303 user9FrameWidth,
1304 user9FrameRound,
1305 user9FrameFgColor,
1306 user9FrameBgColor,
1307
1308 user10Name,
1309 user10FontFace,
1310 user10FontSize,
1311 user10LineSpacing,
1312 user10FontSpatiumDependent,
1313 user10FontStyle,
1314 user10Color,
1315 user10Align,
1316 user10Offset,
1317 user10OffsetType,
1318 user10FrameType,
1319 user10FramePadding,
1320 user10FrameWidth,
1321 user10FrameRound,
1322 user10FrameFgColor,
1323 user10FrameBgColor,
1324
1325 user11Name,
1326 user11FontFace,
1327 user11FontSize,
1328 user11LineSpacing,
1329 user11FontSpatiumDependent,
1330 user11FontStyle,
1331 user11Color,
1332 user11Align,
1333 user11Offset,
1334 user11OffsetType,
1335 user11FrameType,
1336 user11FramePadding,
1337 user11FrameWidth,
1338 user11FrameRound,
1339 user11FrameFgColor,
1340 user11FrameBgColor,
1341
1342 user12Name,
1343 user12FontFace,
1344 user12FontSize,
1345 user12LineSpacing,
1346 user12FontSpatiumDependent,
1347 user12FontStyle,
1348 user12Color,
1349 user12Align,
1350 user12Offset,
1351 user12OffsetType,
1352 user12FrameType,
1353 user12FramePadding,
1354 user12FrameWidth,
1355 user12FrameRound,
1356 user12FrameFgColor,
1357 user12FrameBgColor,
1358
1359 letRingFontFace,
1360 letRingFontSize,
1361 letRingLineSpacing,
1362 letRingFontSpatiumDependent,
1363 letRingFontStyle,
1364 letRingColor,
1365 letRingTextAlign,
1366 letRingHookHeight,
1367 letRingPlacement,
1368 letRingPosAbove,
1369 letRingPosBelow,
1370 letRingLineWidth,
1371 letRingLineStyle,
1372 letRingBeginTextOffset,
1373 letRingText,
1374 letRingFrameType,
1375 letRingFramePadding,
1376 letRingFrameWidth,
1377 letRingFrameRound,
1378 letRingFrameFgColor,
1379 letRingFrameBgColor,
1380 letRingEndHookType,
1381
1382 palmMuteFontFace,
1383 palmMuteFontSize,
1384 palmMuteLineSpacing,
1385 palmMuteFontSpatiumDependent,
1386 palmMuteFontStyle,
1387 palmMuteColor,
1388 palmMuteTextAlign,
1389 palmMuteHookHeight,
1390 palmMutePlacement,
1391 palmMutePosAbove,
1392 palmMutePosBelow,
1393 palmMuteLineWidth,
1394 palmMuteLineStyle,
1395 palmMuteBeginTextOffset,
1396 palmMuteText,
1397 palmMuteFrameType,
1398 palmMuteFramePadding,
1399 palmMuteFrameWidth,
1400 palmMuteFrameRound,
1401 palmMuteFrameFgColor,
1402 palmMuteFrameBgColor,
1403 palmMuteEndHookType,
1404
1405 fermataPosAbove,
1406 fermataPosBelow,
1407 fermataMinDistance,
1408
1409 fingeringPlacement,
1410
1411 articulationMinDistance,
1412 fingeringMinDistance,
1413 hairpinMinDistance,
1414 letRingMinDistance,
1415 ottavaMinDistance,
1416 palmMuteMinDistance,
1417 pedalMinDistance,
1418 repeatMinDistance,
1419 textLineMinDistance,
1420 systemTextLineMinDistance,
1421 trillMinDistance,
1422 vibratoMinDistance,
1423 voltaMinDistance,
1424 figuredBassMinDistance,
1425 tupletMinDistance,
1426
1427 autoplaceEnabled,
1428 usePre_3_6_defaults,
1429 defaultsVersion,
1430
1431 STYLES
1432 ///\}
1433 };
END_QT_REGISTERED_ENUM(Sid)1434 END_QT_REGISTERED_ENUM(Sid)
1435
1436 inline uint qHash(Sid id)
1437 {
1438 return static_cast<uint>(id);
1439 }
1440
1441 //---------------------------------------------------------
1442 // MStyle
1443 /// \cond PLUGIN_API \private \endcond
1444 // the name "Style" gives problems with some microsoft
1445 // header files...
1446 //---------------------------------------------------------
1447
1448 class MStyle {
1449 std::array<QVariant, int(Sid::STYLES)> _values;
1450 std::array<qreal, int(Sid::STYLES)> _precomputedValues;
1451
1452 ChordList _chordList;
1453 bool _customChordList; // if true, chordlist will be saved as part of score
1454 int _defaultStyleVersion = -1;
1455
1456 public:
1457 MStyle();
1458
1459 void precomputeValues();
1460 const QVariant& value(Sid idx) const;
pvalue(Sid idx)1461 qreal pvalue(Sid idx) const { return _precomputedValues[int(idx)]; }
1462 void set(Sid idx, const QVariant& v);
1463
1464 bool isDefault(Sid idx) const;
1465 void setDefaultStyleVersion(const int defaultsVersion);
defaultStyleVersion()1466 int defaultStyleVersion() const { return _defaultStyleVersion; }
1467
1468 const ChordDescription* chordDescription(int id) const;
chordList()1469 ChordList* chordList() { return &_chordList; }
1470 void setChordList(ChordList*, bool custom = true); // Style gets ownership of ChordList
setCustomChordList(bool t)1471 void setCustomChordList(bool t) { _customChordList = t; }
1472 void checkChordList();
1473
1474 bool load(QFile* qf, bool ign = false);
1475 void load(XmlReader& e);
1476 void applyNewDefaults(const MStyle& other, const int defaultsVersion);
1477 void save(XmlWriter& xml, bool optimize);
1478 bool readProperties(XmlReader&);
1479 bool readStyleValCompat(XmlReader&);
1480 bool readTextStyleValCompat(XmlReader&);
1481
1482 void resetAllStyles(Score* score, const QSet<Sid>& ignoredStyles = QSet<Sid>());
1483 void resetStyles(Score* score, const QSet<Sid>& stylesToReset);
1484
1485 static const char* valueType(const Sid);
1486 static const char* valueName(const Sid);
1487 static Sid styleIdx(const QString& name);
1488 static MStyle* resolveStyleDefaults(const int defaultsVersion);
1489 };
1490
1491 //---------------------------------------------------------
1492 // StyledProperty
1493 /// \cond PLUGIN_API \private \endcond
1494 //---------------------------------------------------------
1495
1496 struct StyledProperty {
1497 Sid sid;
1498 Pid pid;
1499 };
1500
1501 typedef std::vector<StyledProperty> ElementStyle;
1502
1503 #define TEXT_STYLE_SIZE 14
1504
1505 typedef std::array<StyledProperty, TEXT_STYLE_SIZE> TextStyle;
1506
1507
1508 const TextStyle* textStyle(Tid);
1509 const TextStyle* textStyle(const char*);
1510
1511 const char* textStyleName(Tid);
1512 QString textStyleUserName(Tid);
1513 Tid textStyleFromName(const QString&);
1514
1515 const std::vector<Tid>& allTextStyles();
1516 const std::vector<Tid>& primaryTextStyles();
1517
1518 QSet<Sid> pageStyles();
1519
1520 #ifndef NDEBUG
1521 extern void checkStyles();
1522 #endif
1523
1524 } // namespace Ms
1525
1526
1527 #endif
1528