MuseScore/libmscore/sym.h

1612 lines
43 KiB
C
Raw Normal View History

2012-05-26 14:26:10 +02:00
//=============================================================================
// MuseScore
// Music Composition & Notation
//
// Copyright (C) 2002-2011 Werner Schweer
//
// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License version 2
// as published by the Free Software Foundation and appearing in
// the file LICENCE.GPL
//=============================================================================
#ifndef __SYM_H__
#define __SYM_H__
2012-07-19 11:09:46 +02:00
#include "config.h"
2012-05-26 14:26:10 +02:00
class QPainter;
2013-05-13 18:49:17 +02:00
namespace Ms {
2012-05-26 14:26:10 +02:00
class TextStyle;
//---------------------------------------------------------
// SymId
//---------------------------------------------------------
2013-11-06 15:58:05 +01:00
enum class SymId {
2012-05-26 14:26:10 +02:00
noSym = -1,
2013-11-06 15:58:05 +01:00
fourStringTabClef,
fourStringTabClefSerif,
fourStringTabClefTall,
sixStringTabClef,
sixStringTabClefSerif,
sixStringTabClefTall,
accdnLH2Ranks16Round,
accdnLH2Ranks8Plus16Round,
accdnLH2Ranks8Round,
accdnLH2RanksFullMasterRound,
accdnLH2RanksMasterPlus16Round,
accdnLH2RanksMasterRound,
accdnLH3Ranks2Plus8Square,
accdnLH3Ranks2Square,
accdnLH3Ranks8Square,
accdnLH3RanksDouble8Square,
accdnLH3RanksTuttiSquare,
accdnRH3RanksAccordion,
accdnRH3RanksAuthenticMusette,
accdnRH3RanksBandoneon,
accdnRH3RanksBassoon,
accdnRH3RanksClarinet,
accdnRH3RanksHarmonium,
accdnRH3RanksImitationMusette,
accdnRH3RanksLowerTremolo8,
accdnRH3RanksMaster,
accdnRH3RanksOboe,
accdnRH3RanksOrgan,
accdnRH3RanksPiccolo,
accdnRH3RanksUpperTremolo8,
accdnRH3RanksViolin,
accdnRH4RanksAlto,
accdnRH4RanksBassAlto,
accdnRH4RanksMaster,
accdnRH4RanksSoftBass,
accdnRH4RanksSoftTenor,
accdnRH4RanksSoprano,
accdnRH4RanksTenor,
accidental1CommaFlat,
accidental1CommaSharp,
accidental2CommaFlat,
accidental2CommaSharp,
accidental3CommaFlat,
accidental3CommaSharp,
accidental4CommaFlat,
accidental5CommaSharp,
accidentalArrowDown,
accidentalArrowUp,
accidentalBakiyeFlat,
accidentalBakiyeSharp,
accidentalBuyukMucennebFlat,
accidentalBuyukMucennebSharp,
accidentalCombiningCloseCurlyBrace,
accidentalCombiningLower17Schisma,
accidentalCombiningLower19Schisma,
accidentalCombiningLower23Limit29LimitComma,
accidentalCombiningLower31Schisma,
accidentalCombiningOpenCurlyBrace,
accidentalCombiningRaise17Schisma,
accidentalCombiningRaise19Schisma,
accidentalCombiningRaise23Limit29LimitComma,
accidentalCombiningRaise31Schisma,
accidentalDoubleFlat,
accidentalDoubleFlatArrowDown,
accidentalDoubleFlatArrowUp,
accidentalDoubleFlatEqualTempered,
accidentalDoubleFlatInverted,
accidentalDoubleFlatOneArrowDown,
accidentalDoubleFlatOneArrowUp,
accidentalDoubleFlatReversed,
accidentalDoubleFlatThreeArrowsDown,
accidentalDoubleFlatThreeArrowsUp,
accidentalDoubleFlatTwoArrowsDown,
accidentalDoubleFlatTwoArrowsUp,
accidentalDoubleSharp,
accidentalDoubleSharpArrowDown,
accidentalDoubleSharpArrowUp,
accidentalDoubleSharpEqualTempered,
accidentalDoubleSharpOneArrowDown,
accidentalDoubleSharpOneArrowUp,
accidentalDoubleSharpThreeArrowsDown,
accidentalDoubleSharpThreeArrowsUp,
accidentalDoubleSharpTwoArrowsDown,
accidentalDoubleSharpTwoArrowsUp,
accidentalFilledReversedFlatAndFlat,
accidentalFilledReversedFlatAndFlatArrowDown,
accidentalFilledReversedFlatAndFlatArrowUp,
accidentalFilledReversedFlatArrowDown,
accidentalFilledReversedFlatArrowUp,
accidentalFlat,
accidentalFlatEqualTempered,
accidentalFlatInverted,
accidentalFlatOneArrowDown,
accidentalFlatOneArrowUp,
accidentalFlatThreeArrowsDown,
accidentalFlatThreeArrowsUp,
accidentalFlatTwoArrowsDown,
accidentalFlatTwoArrowsUp,
accidentalHalfSharpArrowDown,
accidentalHalfSharpArrowUp,
accidentalJohnston13,
accidentalJohnston31,
accidentalJohnstonArrowDown,
accidentalJohnstonArrowUp,
accidentalJohnstonEl,
accidentalJohnstonMinus,
accidentalJohnstonPlus,
accidentalJohnstonSeven,
accidentalKomaFlat,
accidentalKomaSharp,
accidentalKoron,
accidentalKucukMucennebFlat,
accidentalKucukMucennebSharp,
accidentalLowerOneSeptimalComma,
accidentalLowerOneTridecimalQuartertone,
accidentalLowerOneUndecimalQuartertone,
accidentalLowerTwoSeptimalCommas,
accidentalManeriSims12Down,
accidentalManeriSims12Up,
accidentalManeriSims4Down,
accidentalManeriSims4Up,
accidentalManeriSims6Down,
accidentalManeriSims6Up,
accidentalNatural,
accidentalNaturalEqualTempered,
accidentalNaturalFlat,
accidentalNaturalOneArrowDown,
accidentalNaturalOneArrowUp,
accidentalNaturalReversed,
accidentalNaturalSharp,
accidentalNaturalThreeArrowsDown,
accidentalNaturalThreeArrowsUp,
accidentalNaturalTwoArrowsDown,
accidentalNaturalTwoArrowsUp,
accidentalOneAndAHalfSharpsArrowDown,
accidentalOneAndAHalfSharpsArrowUp,
accidentalQuarterFlat3,
accidentalQuarterFlat4,
accidentalQuarterFlat5,
accidentalQuarterFlatArrowUp,
accidentalQuarterFlatNaturalArrowDown,
accidentalQuarterFlatTartini,
accidentalQuarterSharp3,
accidentalQuarterSharp4,
accidentalQuarterSharpArrowDown,
accidentalQuarterSharpNaturalArrowUp,
accidentalRaiseOneSeptimalComma,
accidentalRaiseOneTridecimalQuartertone,
accidentalRaiseOneUndecimalQuartertone,
accidentalRaiseTwoSeptimalCommas,
accidentalReversedFlatAndFlatArrowDown,
accidentalReversedFlatAndFlatArrowUp,
accidentalReversedFlatArrowDown,
accidentalReversedFlatArrowUp,
accidentalSharp,
accidentalSharpEqualTempered,
accidentalSharpOneArrowDown,
accidentalSharpOneArrowUp,
accidentalSharpReversed,
accidentalSharpSharp,
accidentalSharpThreeArrowsDown,
accidentalSharpThreeArrowsUp,
accidentalSharpTwoArrowsDown,
accidentalSharpTwoArrowsUp,
accidentalSori,
accidentalThreeQuartersFlat2,
accidentalThreeQuartersFlatArrowDown,
accidentalThreeQuartersFlatCouper,
accidentalThreeQuartersFlatGrisey,
accidentalThreeQuartersFlatTartini,
accidentalThreeQuartersSharp2,
accidentalThreeQuartersSharpArrowUp,
accidentalTripleFlat,
accidentalTripleSharp,
accidentalXenakisOneThirdSharp,
accidentalXenakisTwoThirdsSharp,
analyticsEndStimme,
analyticsHauptstimme,
analyticsInversion1,
analyticsNebenstimme,
analyticsStartStimme,
analyticsTheme,
analyticsTheme1,
analyticsThemeInversion,
analyticsThemeRetrograde,
analyticsThemeRetrogradeInversion,
arpeggiatoDown,
arpeggiatoUp,
arrowBlackDown,
arrowBlackDownLeft,
arrowBlackDownRight,
arrowBlackLeft,
arrowBlackRight,
arrowBlackUp,
arrowBlackUpLeft,
arrowBlackUpRight,
arrowWhiteDown,
arrowWhiteDownLeft,
arrowWhiteDownRight,
arrowWhiteLeft,
arrowWhiteRight,
arrowWhiteUp,
arrowWhiteUpLeft,
arrowWhiteUpRight,
arrowheadBlackDown,
arrowheadBlackDownLeft,
arrowheadBlackDownRight,
arrowheadBlackLeft,
arrowheadBlackRight,
arrowheadBlackUp,
arrowheadBlackUpLeft,
arrowheadBlackUpRight,
arrowheadWhiteDown,
arrowheadWhiteDownLeft,
arrowheadWhiteDownRight,
arrowheadWhiteLeft,
arrowheadWhiteRight,
arrowheadWhiteUp,
arrowheadWhiteUpLeft,
arrowheadWhiteUpRight,
articAccent,
articAccentLarge,
articAccentStaccatoAbove,
articAccentStaccatoBelow,
articLaissezVibrerAbove,
articLaissezVibrerBelow,
articMarcatoAbove,
articMarcatoBelow,
articMarcatoStaccatoAbove,
articMarcatoStaccatoBelow,
articStaccatissimoAbove,
articStaccatissimoBelow,
articStaccatissimoStrokeAbove,
articStaccatissimoStrokeBelow,
articStaccatissimoWedgeAbove,
articStaccatissimoWedgeBelow,
articStaccato,
articStressAbove,
articStressBelow,
articTenuroSlurBelow,
articTenuto,
articTenutoSlurAbove,
articUnstressAbove,
articUnstressBelow,
augmentationDot,
barlineDashed,
barlineDotted,
barlineDouble,
barlineFinal,
barlineHeavy,
barlineHeavyHeavy,
barlineReverseFinal,
barlineShort,
barlineSingle,
barlineTick,
brace,
bracket,
bracketBottom,
bracketTop,
brassBend,
brassDoitLong,
brassDoitMedium,
brassDoitShort,
brassFallLipLong,
brassFallLipMedium,
brassFallLipShort,
brassFallRoughLong,
brassFallRoughMedium,
brassFallRoughShort,
brassFallSmoothLong,
brassFallSmoothMedium,
brassFallSmoothShort,
brassFlip,
brassHarmonMuteClosed,
brassHarmonMuteStemHalfLeft,
brassHarmonMuteStemHalfRight,
brassHarmonMuteStemOpen,
brassJazzTurn,
brassLiftLong,
brassLiftMedium,
brassLiftShort,
brassMuteClosed,
brassMuteHalfClosed,
brassMuteOpen,
brassPlop,
brassScoop,
brassSmear,
breathMark,
breathMarkSalzedo,
bridgeClef,
buzzRoll,
cClef,
cClefArrowDown,
cClefArrowUp,
cClefCombining,
cClefReversed,
cClefTriangular,
cClefTriangularToFClef,
caesura,
caesuraShort,
caesuraThick,
coda,
codaJapanese,
codaSquare,
conductorBeat2Compound,
conductorBeat2Simple,
conductorBeat3Compound,
conductorBeat3Simple,
conductorBeat4Compound,
conductorBeat4Simple,
conductorLeftBeat,
conductorRightBeat,
conductorStrongBeat,
conductorWeakBeat,
controlBeginBeam,
controlBeginPhrase,
controlBeginSlur,
controlBeginTie,
controlEndBeam,
controlEndPhrase,
controlEndSlur,
controlEndTie,
csymAugmented,
csymDiminished,
csymHalfDiminished,
csymMajorSeventh,
csymMinor,
daCapo,
dalSegno,
doubleTongueAbove,
doubleTongueBelow,
dynamicCrescendoHairpin,
dynamicDiminuendoHairpin,
dynamicFF,
dynamicFFF,
dynamicFFFF,
dynamicFFFFF,
dynamicFFFFFF,
dynamicForte,
dynamicFortePiano,
dynamicForzando,
dynamicMF,
dynamicMP,
dynamicMezzo,
dynamicNiente,
dynamicNienteForHairpin,
dynamicPP,
dynamicPPP,
dynamicPPPP,
dynamicPPPPP,
dynamicPPPPPP,
dynamicPiano,
dynamicRinforzando,
dynamicRinforzando1,
dynamicRinforzando2,
dynamicSforzando,
dynamicSforzandoPianissimo,
dynamicSforzandoPiano,
dynamicSforzato,
dynamicSforzatoFF,
dynamicSubito,
dynamicZ,
elecLoop,
elecLoudspeaker,
elecMIDIController0,
elecMIDIController100,
elecMIDIController20,
elecMIDIController40,
elecMIDIController60,
elecMIDIController80,
elecMIDIIn,
elecMIDIOut,
elecMicrophone,
elecPause,
elecPlay,
elecSkipBackwards,
elecSkipForwards,
elecStop,
elecVolumeLevel0,
elecVolumeLevel100,
elecVolumeLevel20,
elecVolumeLevel40,
elecVolumeLevel60,
elecVolumeLevel80,
fClef,
fClef15ma,
fClef15mb,
fClef8va,
fClef8vb,
fClefArrowDown,
fClefArrowUp,
fClefReversed,
fClefTriangular,
fClefTriangularToCClef,
fClefUpsideDown,
fermataAbove,
fermataBelow,
fermataLongAbove,
fermataLongBelow,
fermataShortAbove,
fermataShortBelow,
fermataVeryLongAbove,
fermataVeryLongBelow,
fermataVeryShortAbove,
fermataVeryShortBelow,
figbass0,
figbass1,
figbass2,
figbass2Raised,
figbass3,
figbass4,
figbass4Raised,
figbass5,
figbass5Raised1,
figbass5Raised2,
figbass5Raised3,
figbass6,
figbass6Raised,
figbass7,
figbass7Raised,
figbass8,
figbass9,
figbass9Raised,
figbassBracketLeft,
figbassBracketRight,
figbassCombiningLowering,
figbassCombiningRaising,
figbassDoubleFlat,
figbassDoubleSharp,
figbassFlat,
figbassNatural,
figbassParensLeft,
figbassParensRight,
figbassPlus,
figbassSharp,
flag128thDown,
flag128thDownStraight,
flag128thUp,
flag128thUpStraight,
flag16thDown,
flag16thDownStraight,
flag16thUp,
flag16thUpStraight,
flag256thDown,
flag256thDownStraight,
flag256thUp,
flag256thUpStraight,
flag32ndDown,
flag32ndDownStraight,
flag32ndUp,
flag32ndUpStraight,
flag512thDown,
flag512thDownStraight,
flag512thUp,
flag512thUpStraight,
flag64thDown,
flag64thDownStraight,
flag64thUp,
flag64thUpStraight,
flag8thDown,
flag8thDownStraight,
flag8thUp,
flag8thUpStraight,
flagInternalDown,
flagInternalUp,
flags1024thDown,
flags1024thDownStraight,
flags1024thUp,
flags1024thUpStraight,
fretboard3String,
fretboard3StringNut,
fretboard4String,
fretboard4StringNut,
fretboard5String,
fretboard5StringNut,
fretboard6String,
fretboard6StringNut,
fretboardFilledCircle,
fretboardO,
fretboardX,
functionAngleLeft,
functionAngleRight,
functionBracketLeft,
functionBracketRight,
functionD,
functionDD,
functionEight,
functionFive,
functionFour,
functionG,
functionGreaterThan,
functionLessThan,
functionMinus,
functionN,
functionNine,
functionOne,
functionP,
functionParensLeft,
functionParensRight,
functionPlus,
functionRepetition1,
functionRepetition2,
functionRing,
functionS,
functionSS,
functionSeven,
functionSix,
functionSlashedDD,
functionT,
functionThree,
functionTwo,
functionV,
functionZero,
gClef,
gClef15ma,
gClef15mb,
gClef8va,
gClef8vb,
gClef8vbCclef,
gClef8vbOld,
gClefArrowDown,
gClefArrowUp,
gClefLigatedNumberAbove,
gClefLigatedNumberBelow,
gClefReversed,
gClefUpsideDown,
glissandoDown,
glissandoUp,
graceNoteAcciaccaturaStemDown,
graceNoteAcciaccaturaStemUp,
graceNoteAppoggiaturaStemDown,
graceNoteAppoggiaturaStemUp,
graceNoteSlashStemDown,
graceNoteSlashStemUp,
gregorianCClef,
gregorianClimacus,
gregorianClivis,
gregorianFClef,
gregorianPesSubpunctis,
gregorianPodatus,
gregorianPorrectus,
gregorianPorrectusFlexus,
gregorianScandicus,
gregorianScandicusFlexus,
gregorianSquareB,
gregorianTorculus,
gregorianTorculusResupinus,
gregorianVirga,
guitarClosePedal,
guitarHalfOpenPedal,
guitarLeftHandTapping,
guitarOpenPedal,
guitarRightHandTapping,
guitarShake,
guitarString0,
guitarString1,
guitarString2,
guitarString3,
guitarString4,
guitarString5,
guitarString6,
guitarString7,
guitarString8,
guitarString9,
guitarVibratoBarDip,
guitarVibratoBarScoop,
guitarVibratoStroke,
guitarWideVibratoStroke,
handbellsBelltree,
handbellsDamp3,
handbellsEcho1,
handbellsEcho2,
handbellsGyro,
handbellsHandMartellato,
handbellsMalletBellOnTable,
handbellsMalletBellSuspended,
handbellsMalletLft,
handbellsMartellato,
handbellsMartellatoLift,
handbellsMutedMartellato,
handbellsPluckLift,
handbellsSwing,
handbellsSwingDown,
handbellsSwingUp,
harpMetalRod,
harpPedalCentered,
harpPedalDivider,
harpPedalLowered,
harpPedalRaised,
harpSalzedoFluidicSoundsLeft,
harpSalzedoFluidicSoundsRight,
harpSalzedoMetallicSounds,
harpSalzedoMuffleTotally,
harpSalzedoOboicFlux,
harpSalzedoPlayUpperEnd,
harpSalzedoSlideWithSuppleness,
harpSalzedoTamTamSounds,
harpSalzedoThunderEffect,
harpSalzedoTimpanicSounds,
harpSalzedoWhistlingSounds,
harpTuningKey,
keyboardLeftPedalPictogram,
keyboardMiddlePedalPictogram,
keyboardPedalHalf,
keyboardPedalHalf2,
keyboardPedalHalf3,
keyboardPedalHeel1,
keyboardPedalHeel2,
keyboardPedalP,
keyboardPedalPed,
keyboardPedalS,
keyboardPedalSost,
keyboardPedalToe1,
keyboardPedalToe2,
keyboardPedalUp,
keyboardPedalUpNotch,
keyboardPedalUpSpecial,
keyboardPluckInside,
keyboardRightPedalPictogram,
leftRepeat,
leftRepeatSmall,
mensuralBrevis,
mensuralCroix,
mensuralCustosDown,
mensuralCustosUp,
mensuralFusaBlackDown,
mensuralFusaBlackUp,
mensuralFusaWhiteDown,
mensuralFusaWhiteUp,
mensuralLongaDownLeft,
mensuralLongaDownRight,
mensuralLongaUpLeft,
mensuralLongaUpRight,
mensuralMaximaDownLeft,
mensuralMaximaDownRight,
mensuralMaximaUpLeft,
mensuralMaximaUpRight,
mensuralMinimaBlackDown,
mensuralMinimaBlackUp,
mensuralMinimaWhiteDown,
mensuralMinimaWhiteUp,
mensuralProlation1,
mensuralProlation10,
mensuralProlation11,
mensuralProlation2,
mensuralProlation3,
mensuralProlation4,
mensuralProlation5,
mensuralProlation6,
mensuralProlation7,
mensuralProlation8,
mensuralProlation9,
mensuralProportion1,
mensuralProportion2,
mensuralProportion3,
mensuralProportion4,
mensuralProportion4Old,
mensuralRestBrevis,
mensuralRestLongaImperfecta,
mensuralRestLongaPerfecta,
mensuralRestMinima,
mensuralRestSemibrevis,
mensuralRestSemiminima,
mensuralSemibrevisBlack,
mensuralSemibrevisWhite,
mensuralSemiminimaBlackDown,
mensuralSemiminimaBlackUp,
mensuralSemiminimaWhiteDown,
mensuralSemiminimaWhiteUp,
mensuralSignum,
miscDoNotCopy,
miscDoNotPhotocopy,
miscEyeglasses,
miscStaffDivideArrowDown,
miscStaffDivideArrowUp,
miscStaffDivideArrowUpDown,
miscSwish,
note1024thDown,
note1024thUp,
note128thDown,
note128thUp,
note16thDown,
note16thUp,
note256thDown,
note256thUp,
note32ndDown,
note32ndUp,
note512thDown,
note512thUp,
note64thDown,
note64thUp,
noteABlack,
noteAFlatBlack,
noteAFlatHalf,
noteAFlatWhole,
noteAHalf,
noteASharpBlack,
noteASharpHalf,
noteASharpWhole,
noteAWhole,
noteBBlack,
noteBFlatBlack,
noteBFlatHalf,
noteBFlatWhole,
noteBHalf,
noteBSharpBlack,
noteBSharpHalf,
noteBSharpWhole,
noteBWhole,
noteCBlack,
noteCFlatBlack,
noteCFlatHalf,
noteCFlatWhole,
noteCHalf,
noteCSharpBlack,
noteCSharpHalf,
noteCSharpWhole,
noteCWhole,
noteDBlack,
noteDFlatBlack,
noteDFlatHalf,
noteDFlatWhole,
noteDHalf,
noteDSharpBlack,
noteDSharpHalf,
noteDSharpWhole,
noteDWhole,
noteDoBlack,
noteDoHalf,
noteDoWhole,
noteDoubleWhole,
noteDoubleWholeAlt,
noteEBlack,
noteEFlatBlack,
noteEFlatHalf,
noteEFlatWhole,
noteEHalf,
noteESharpBlack,
noteESharpHalf,
noteESharpWhole,
noteEWhole,
noteEighthDown,
noteEighthUp,
noteEmptyBlack,
noteEmptyHalf,
noteEmptyWhole,
noteFBlack,
noteFFlatBlack,
noteFFlatHalf,
noteFFlatWhole,
noteFHalf,
noteFSharpBlack,
noteFSharpHalf,
noteFSharpWhole,
noteFWhole,
noteFaBlack,
noteFaHalf,
noteFaWhole,
noteGBlack,
noteGFlatBlack,
noteGFlatHalf,
noteGFlatWhole,
noteGHalf,
noteGSharpBlack,
noteGSharpHalf,
noteGSharpWhole,
noteGWhole,
noteHBlack,
noteHHalf,
noteHSharpBlack,
noteHSharpHalf,
noteHSharpWhole,
noteHWhole,
noteHalfDown,
noteHalfUp,
noteLaBlack,
noteLaHalf,
noteLaWhole,
noteMiBlack,
noteMiHalf,
noteMiWhole,
noteQuarterDown,
noteQuarterUp,
noteReBlack,
noteReHalf,
noteReWhole,
noteShapeDiamondBlack,
noteShapeDiamondWhite,
noteShapeMoonBlack,
noteShapeMoonWhite,
noteShapeRoundBlack,
noteShapeRoundWhite,
noteShapeSquareBlack,
noteShapeSquareWhite,
noteShapeTriangleLeftBlack,
noteShapeTriangleLeftWhite,
noteShapeTriangleRightBlack,
noteShapeTriangleRightWhite,
noteShapeTriangleRoundBlack,
noteShapeTriangleRoundWhite,
noteShapeTriangleUpBlack,
noteShapeTriangleUpWhite,
noteSiBlack,
noteSiHalf,
noteSiWhole,
noteSoBlack,
noteSoHalf,
noteSoWhole,
noteTiBlack,
noteTiHalf,
noteTiWhole,
noteWhole,
noteheadBlack,
noteheadCircleSlash,
noteheadCircleX,
noteheadCircleXDoubleWhole,
noteheadCircleXHalf,
noteheadCircleXWhole,
noteheadCircledBlack,
noteheadCircledDoubleWhole,
noteheadCircledHalf,
noteheadCircledWhole,
noteheadClusterDoubleWhole2nd,
noteheadClusterDoubleWhole3rd,
noteheadClusterDoubleWholeBottom,
noteheadClusterDoubleWholeMiddle,
noteheadClusterDoubleWholeTop,
noteheadClusterHalf2nd,
noteheadClusterHalf3rd,
noteheadClusterHalfBottom,
noteheadClusterHalfMiddle,
noteheadClusterHalfTop,
noteheadClusterQuarter2nd,
noteheadClusterQuarter3rd,
noteheadClusterQuarterBottom,
noteheadClusterQuarterMiddle,
noteheadClusterQuarterTop,
noteheadClusterRoundBlack,
noteheadClusterRoundWhite,
noteheadClusterSquareBlack,
noteheadClusterSquareWhite,
noteheadClusterWhole2nd,
noteheadClusterWhole3rd,
noteheadClusterWholeBottom,
noteheadClusterWholeMiddle,
noteheadClusterWholeTop,
noteheadDiamondBlack,
noteheadDiamondBlackOld,
noteheadDiamondClusterBlack2nd,
noteheadDiamondClusterBlack3rd,
noteheadDiamondClusterBlackBottom,
noteheadDiamondClusterBlackMiddle,
noteheadDiamondClusterBlackTop,
noteheadDiamondClusterWhite2nd,
noteheadDiamondClusterWhite3rd,
noteheadDiamondClusterWhiteBottom,
noteheadDiamondClusterWhiteMiddle,
noteheadDiamondClusterWhiteTop,
noteheadDiamondDoubleWhole,
noteheadDiamondDoubleWholeOld,
noteheadDiamondHalf,
noteheadDiamondHalfFilled,
noteheadDiamondHalfOld,
noteheadDiamondWhole,
noteheadDiamondWholeOld,
noteheadDoubleWhole,
noteheadDoubleWholeWithX,
noteheadHalf,
noteheadHalfWithX,
noteheadHeavyX,
noteheadHeavyXHat,
noteheadLargeArrowDownBlack,
noteheadLargeArrowDownDoubleWhole,
noteheadLargeArrowDownHalf,
noteheadLargeArrowDownWhole,
noteheadLargeArrowUpBlack,
noteheadLargeArrowUpDoubleWhole,
noteheadLargeArrowUpHalf,
noteheadLargeArrowUpWhole,
noteheadMoonBlack,
noteheadMoonWhite,
noteheadNull,
noteheadParenthesis,
noteheadParenthesisLeft,
noteheadParenthesisRight,
noteheadPlusBlack,
noteheadPlusDoubleWhole,
noteheadPlusHalf,
noteheadPlusWhole,
noteheadRoundBlack,
noteheadRoundBlackLarge,
noteheadRoundBlackSlashed,
noteheadRoundBlackSlashedLarge,
noteheadRoundWhite,
noteheadRoundWhiteLarge,
noteheadRoundWhiteSlashed,
noteheadRoundWhiteSlashedLarge,
noteheadRoundWhiteWithDot,
noteheadRoundWhiteWithDotLarge,
noteheadSlashDiamondWhite,
noteheadSlashHorizontalEnds,
noteheadSlashHorizontalEndsMuted,
noteheadSlashVerticalEnds,
noteheadSlashVerticalEndsMuted,
noteheadSlashVerticalEndsSmall,
noteheadSlashWhite,
noteheadSlashWhiteMuted,
noteheadSlashX,
noteheadSlashedBlack1,
noteheadSlashedBlack2,
noteheadSlashedDoubleWhole1,
noteheadSlashedDoubleWhole2,
noteheadSlashedHalf1,
noteheadSlashedHalf2,
noteheadSlashedWhole1,
noteheadSlashedWhole2,
noteheadSquareBlack,
noteheadSquareBlackLarge,
noteheadSquareBlackWhite,
noteheadSquareWhite,
noteheadTriangleDownBlack,
noteheadTriangleDownDoubleWhole,
noteheadTriangleDownHalf,
noteheadTriangleDownWhite,
noteheadTriangleDownWhole,
noteheadTriangleLeftBlack,
noteheadTriangleLeftWhite,
noteheadTriangleRightBlack,
noteheadTriangleRightWhite,
noteheadTriangleRoundDownBlack,
noteheadTriangleRoundDownWhite,
noteheadTriangleUpBlack,
noteheadTriangleUpDoubleWhole,
noteheadTriangleUpHalf,
noteheadTriangleUpRightBlack,
noteheadTriangleUpRightWhite,
noteheadTriangleUpWhite,
noteheadTriangleUpWhole,
noteheadVoidWithX,
noteheadWhole,
noteheadWholeWithX,
noteheadXBlack,
noteheadXDoubleWhole,
noteheadXHalf,
noteheadXOrnate,
noteheadXWhole,
ornamentBottomLeftConcaveStroke,
ornamentBottomLeftConcaveStrokeLarge,
ornamentBottomLeftConvexStroke,
ornamentBottomRightConcaveStroke,
ornamentBottomRightConvexStroke,
ornamentComma,
ornamentDoubleObliqueLinesAfterNote,
ornamentDoubleObliqueLinesBeforeNote,
ornamentDownCurve,
ornamentHaydn,
ornamentHighLeftConcaveStroke,
ornamentHighLeftConvexStroke,
ornamentHighRightConcaveStroke,
ornamentHighRightConvexStroke,
ornamentHookAfterNote,
ornamentHookBeforeNote,
ornamentLeftFacingHalfCircle,
ornamentLeftFacingHook,
ornamentLeftPlus,
ornamentLeftShakeT,
ornamentLeftVerticalStroke,
ornamentLeftVerticalStrokeWithCross,
ornamentLowLeftConcaveStroke,
ornamentLowLeftConvexStroke,
ornamentLowRightConcaveStroke,
ornamentLowRightConvexStroke,
ornamentMiddleVerticalStroke,
ornamentMordent,
ornamentMordentInverted,
ornamentObliqueLineAfterNote,
ornamentObliqueLineBeforeNote,
ornamentObliqueLineHorizAfterNote,
ornamentObliqueLineHorizBeforeNote,
ornamentOriscus,
ornamentPortDeVoixV,
ornamentPrecompAppoggTrill,
ornamentPrecompAppoggTrillSuffix,
ornamentPrecompDescendingSlide,
ornamentPrecompPortDeVoixMordent,
ornamentPrecompSlide,
ornamentPrecompSlideTrillBach,
ornamentPrecompSlideTrillDAnglebert,
ornamentPrecompSlideTrillMarpurg,
ornamentPrecompSlideTrillMuffat,
ornamentPrecompSlideTrillSuffixMuffat,
ornamentPrecompTrillSuffixDandrieu,
ornamentPrecompTurnTrillBach,
ornamentPrecompTurnTrillDAnglebert,
ornamentQuilisma,
ornamentRightFacingHalfCircle,
ornamentRightFacingHook,
ornamentRightVerticalStroke,
ornamentSchleifer,
ornamentShake3,
ornamentShakeMuffat1,
ornamentShortObliqueLineAfterNote,
ornamentShortObliqueLineBeforeNote,
ornamentTopLeftConcaveStroke,
ornamentTopLeftConvexStroke,
ornamentTopRightConcaveStroke,
ornamentTopRightConvexStroke,
ornamentTremblement,
ornamentTrill,
ornamentTurn,
ornamentTurnInverted,
ornamentTurnSlash,
ornamentTurnUp,
ornamentTurnUpS,
ornamentUpCurve,
ornamentVerticalLine,
ornamentZigZagLineNoRightEnd,
ornamentZigZagLineWithRightEnd,
ottava,
ottavaAlta,
ottavaBassa,
ottavaBassaBa,
pendereckiTremolo,
pictAlmglocken,
pictAnvil,
pictBassDrum,
pictBassDrumOnSide,
pictBeaterBow,
pictBeaterBrassMalletsDown,
pictBeaterBrassMalletsUp,
pictBeaterDoubleBassDrumDown,
pictBeaterDoubleBassDrumUp,
pictBeaterFinger,
pictBeaterFingernails,
pictBeaterFist,
pictBeaterGuiroScraper,
pictBeaterHammer,
pictBeaterHand,
pictBeaterHardBassDrumDown,
pictBeaterHardBassDrumUp,
pictBeaterHardGlockenspielDown,
pictBeaterHardGlockenspielLeft,
pictBeaterHardGlockenspielRight,
pictBeaterHardGlockenspielUp,
pictBeaterHardTimpaniDown,
pictBeaterHardTimpaniLeft,
pictBeaterHardTimpaniRight,
pictBeaterHardTimpaniUp,
pictBeaterHardXylophoneDown,
pictBeaterHardXylophoneLeft,
pictBeaterHardXylophoneRight,
pictBeaterHardXylophoneUp,
pictBeaterHardYarnDown,
pictBeaterHardYarnLeft,
pictBeaterHardYarnRight,
pictBeaterHardYarnUp,
pictBeaterJazzSticksDown,
pictBeaterJazzSticksUp,
pictBeaterKnittingNeedle,
pictBeaterMallet,
pictBeaterMediumBassDrumDown,
pictBeaterMediumBassDrumUp,
pictBeaterMediumTimpaniDown,
pictBeaterMediumTimpaniLeft,
pictBeaterMediumTimpaniRight,
pictBeaterMediumTimpaniUp,
pictBeaterMediumXylophoneDown,
pictBeaterMediumXylophoneLeft,
pictBeaterMediumXylophoneRight,
pictBeaterMediumXylophoneUp,
pictBeaterMediumYarnDown,
pictBeaterMediumYarnLeft,
pictBeaterMediumYarnRight,
pictBeaterMediumYarnUp,
pictBeaterMetalHammer,
pictBeaterSnareSticksDown,
pictBeaterSnareSticksUp,
pictBeaterSoftBassDrumDown,
pictBeaterSoftBassDrumUp,
pictBeaterSoftGlockenspielDown,
pictBeaterSoftGlockenspielLeft,
pictBeaterSoftGlockenspielRight,
pictBeaterSoftGlockenspielUp,
pictBeaterSoftTimpaniDown,
pictBeaterSoftTimpaniLeft,
pictBeaterSoftTimpaniRight,
pictBeaterSoftTimpaniUp,
pictBeaterSoftXylophone,
pictBeaterSoftXylophoneDown,
pictBeaterSoftXylophoneLeft,
pictBeaterSoftXylophoneRight,
pictBeaterSoftXylophoneUp,
pictBeaterSoftYarnDown,
pictBeaterSoftYarnLeft,
pictBeaterSoftYarnRight,
pictBeaterSoftYarnUp,
pictBeaterSpoonWoodenMallet,
pictBeaterSuperballDown,
pictBeaterSuperballLeft,
pictBeaterSuperballRight,
pictBeaterSuperballUp,
pictBeaterTriangleDown,
pictBeaterTriangleUp,
pictBeaterWireBrushesDown,
pictBeaterWireBrushesUp,
pictBeaterWoodTimpaniDown,
pictBeaterWoodTimpaniLeft,
pictBeaterWoodTimpaniRight,
pictBeaterWoodTimpaniUp,
pictBeaterWoodXylophoneDown,
pictBeaterWoodXylophoneLeft,
pictBeaterWoodXylophoneRight,
pictBeaterWoodXylophoneUp,
pictBell,
pictBellOfCymbal,
pictBellPlate,
pictBirdWhistle,
pictBoardClapper,
pictBongos,
pictBrakeDrum,
pictCabasa,
pictCannon,
pictCarHorn,
pictCastanets,
pictCastanetsSmithBrindle,
pictCenter1,
pictCenter2,
pictCenter3,
pictChimes,
pictChineseCymbal,
pictChokeCymbal,
pictClaves,
pictCoins,
pictConga,
pictCowBell,
pictCowBellBerio,
pictCrashCymbals,
pictCrotales,
pictCymbalTongs,
pictDamp1,
pictDamp2,
pictDamp3,
pictDamp4,
pictDrumStick,
pictDuckCall,
pictEdgeOfCymbal,
pictEmptyTrap,
pictFingerCymbals,
pictFlexatone,
pictFootballRatchet,
pictGlsp,
pictGlspSmithBrindle,
pictGobletDrum,
pictGong,
pictGongWithButton,
pictGuiro,
pictGumHardDown,
pictGumHardLeft,
pictGumHardRight,
pictGumHardUp,
pictGumMediumDown,
pictGumMediumLeft,
pictGumMediumRight,
pictGumMediumUp,
pictGumSoftDown,
pictGumSoftLeft,
pictGumSoftRight,
pictGumSoftUp,
pictHalfOpen1,
pictHalfOpen2,
pictHandbell,
pictHiHat,
pictHiHatOnStand,
pictKlaxonHorn,
pictLionsRoar,
pictLogDrum,
pictMar,
pictMarSmithBrindle,
pictMaraca,
pictMaracaSmithBrindle,
pictMaracas,
pictMegaphone,
pictNormalPosition,
pictOnRim,
pictOpen,
pictOpenRimShot,
pictPistolShot,
pictPoliceWhistle,
pictRainstick,
pictRatchet,
pictRim1,
pictRim2,
pictRim3,
pictRimShotOnStem,
pictSandpaperBlocks,
pictScrapeAroundRim,
pictScrapeCenterToEdge,
pictScrapeEdgeToCenter,
pictSiren,
pictSistrum,
pictSizzleCymbal,
pictSleighBell,
pictSleighBellSmithBrindle,
pictSlideBrushOnGong,
pictSlideWhistle,
pictSlitDrum,
pictSnareDrum,
pictSnareDrumMilitary,
pictSnareDrumSnaresOff,
pictStickShot,
pictSuperball,
pictSuspendedCymbal,
pictTabla,
pictTamTam,
pictTamTamWithBeater,
pictTambourine,
pictTambourineStockhausen,
pictTempleBlocks,
pictTenorDrum,
pictThundersheet,
pictTimbales,
pictTimpani,
pictTomTom,
pictTriangle,
pictTubularBells,
pictVib,
pictVibSmithBrindle,
pictVibraslap,
pictVietnameseHat,
pictWhip,
pictWindChimesGlass,
pictWindMachine,
pictWindWhistle,
pictWoodBlock,
pictWoundHardDown,
pictWoundHardLeft,
pictWoundHardRight,
pictWoundHardUp,
pictWoundSoftDown,
pictWoundSoftLeft,
pictWoundSoftRight,
pictWoundSoftUp,
pictXyl,
pictXylSmithBrindle,
pluckedBuzzPizzicato,
pluckedDamp,
pluckedDampAll,
pluckedDampOnStem,
pluckedFingernailFlick,
pluckedPlectrum,
pluckedSnapPizzicatoAbove,
pluckedSnapPizzicatoAboveGerman,
pluckedSnapPizzicatoBelow,
pluckedSnapPizzicatoBelowGerman,
pluckedWithFingernails,
quindicesima,
quindicesimaAlta,
quindicesimaBassa,
repeat1Bar,
repeat2Bars,
repeat4Bars,
repeatDots,
rest1024th,
rest128th,
rest16th,
rest256th,
rest32nd,
rest512th,
rest64th,
rest8th,
restDoubleWhole,
restHBar,
restHBarLeft,
restHBarRight,
restHalf,
restLonga,
restQuarter,
restQuarterOld,
restWhole,
reversedBrace,
reversedBracketBottom,
reversedBracketTop,
rightRepeat,
rightRepeatSmall,
segno,
segnoJapanese,
segnoSerpent1,
segnoSerpent2,
semipitchedPercussionClef1,
semipitchedPercussionClef2,
staff1Line,
staff2Lines,
staff3Lines,
staff4Lines,
staff5Lines,
staff6Lines,
stem,
stemBowOnBridge,
stemBowOnTailpiece,
stemBuzzRoll,
stemDamp,
stemMultiphonicsBlack,
stemMultiphonicsBlackWhite,
stemMultiphonicsWhite,
stemPendereckiTremolo,
stemRimShot,
stemSprechgesang,
stemSulPonticello,
stemSussurando,
stemSwished,
stemVibratoPulse,
stringsBowBehindBridge,
stringsBowOnBridge,
stringsBowOnTailpiece,
stringsChangeBowDirection,
stringsDownBow,
stringsFouette,
stringsHalfHarmonic,
stringsHarmonic,
stringsJeteAbove,
stringsJeteBelow,
stringsMuteOff,
stringsMuteOn,
stringsOverpressureDownBow,
stringsOverpressureNoDirection,
stringsOverpressurePossibileDownBow,
stringsOverpressurePossibileUpBow,
stringsOverpressureUpBow,
stringsThumbPizzicato,
stringsThumbPosition,
stringsUpBow,
stringsVibratoPulse,
systemDivider,
systemDividerExtraLong,
systemDividerLong,
timeSig0,
timeSig1,
timeSig2,
timeSig3,
timeSig4,
timeSig5,
timeSig6,
timeSig7,
timeSig8,
timeSig9,
timeSigComma,
timeSigCommon,
timeSigCutCommon,
timeSigEquals,
timeSigFractionHalf,
timeSigFractionOneThird,
timeSigFractionQuarter,
timeSigFractionThreeQuarters,
timeSigFractionTwoThirds,
timeSigFractionalSlash,
timeSigMinus,
timeSigMultiply,
timeSigOpenPenderecki,
timeSigParensLeft,
timeSigParensLeftSmall,
timeSigParensRight,
timeSigParensRightSmall,
timeSigPlus,
timeSigPlusSmall,
timeSigX,
tremolo1,
tremolo2,
tremolo3,
tremolo4,
tremolo5,
tremoloFingered1,
tremoloFingered2,
tremoloFingered3,
tremoloFingered4,
tremoloFingered5,
tripleTongueAbove,
tripleTongueBelow,
tuplet0,
tuplet1,
tuplet2,
tuplet3,
tuplet4,
tuplet5,
tuplet6,
tuplet7,
tuplet8,
tuplet9,
tupletColon,
unmeasuredTremolo,
unmeasuredTremoloSimple,
unpitchedPercussionClef1,
unpitchedPercussionClef1Alt,
unpitchedPercussionClef2,
ventiduesima,
ventiduesimaAlta,
ventiduesimaBassa,
vocalBreathMark,
vocalMouthClosed,
vocalMouthOpen,
vocalMouthPursed,
vocalMouthSlightlyOpen,
vocalMouthWideOpen,
vocalSprechgesang,
vocalsSussurando,
wiggleArpeggiatoDown,
wiggleArpeggiatoDownArrow,
wiggleArpeggiatoDownSwash,
wiggleArpeggiatoUp,
wiggleArpeggiatoUpArrow,
wiggleArpeggiatoUpSwash,
wiggleCircular,
wiggleCircularConstant,
wiggleCircularEnd,
wiggleCircularLarge,
wiggleCircularLarger,
wiggleCircularLargerStill,
wiggleCircularLargest,
wiggleCircularSmall,
wiggleCircularStart,
wiggleGlissando,
wiggleGlissandoGroup1,
wiggleGlissandoGroup2,
wiggleGlissandoGroup3,
wiggleSawtooth,
wiggleSquaretooth,
wiggleTrill,
wiggleTrillFast,
wiggleTrillFaster,
wiggleTrillFasterStill,
wiggleTrillFastest,
wiggleTrillSlow,
wiggleTrillSlower,
wiggleTrillSlowerStill,
wiggleTrillSlowest,
wiggleVIbratoLargestSlower,
wiggleVIbratoMediumSlower,
wiggleVibrato,
wiggleVibratoLargeFast,
wiggleVibratoLargeFaster,
wiggleVibratoLargeFasterStill,
wiggleVibratoLargeFastest,
wiggleVibratoLargeSlow,
wiggleVibratoLargeSlower,
wiggleVibratoLargeSlowest,
wiggleVibratoLargestFast,
wiggleVibratoLargestFaster,
wiggleVibratoLargestFasterStill,
wiggleVibratoLargestFastest,
wiggleVibratoLargestSlow,
wiggleVibratoLargestSlowest,
wiggleVibratoMediumFast,
wiggleVibratoMediumFaster,
wiggleVibratoMediumFasterStill,
wiggleVibratoMediumFastest,
wiggleVibratoMediumSlow,
wiggleVibratoMediumSlowest,
wiggleVibratoSmallFast,
wiggleVibratoSmallFaster,
wiggleVibratoSmallFasterStill,
wiggleVibratoSmallFastest,
wiggleVibratoSmallSlow,
wiggleVibratoSmallSlower,
wiggleVibratoSmallSlowest,
wiggleVibratoSmallestFast,
wiggleVibratoSmallestFaster,
wiggleVibratoSmallestFasterStill,
wiggleVibratoSmallestFastest,
wiggleVibratoSmallestSlow,
wiggleVibratoSmallestSlower,
wiggleVibratoSmallestSlowest,
wiggleVibratoStart,
wiggleVibratoWide,
wiggleWavy,
windClosedHole,
windFlatEmbouchure,
windHalfClosedHole1,
windHalfClosedHole2,
windHalfClosedHole3,
windLessRelaxedEmbouchure,
windLessTightEmbouchure,
windMultiphonicsBlackStem,
windMultiphonicsBlackWhiteStem,
windMultiphonicsWhiteStem,
windOpenHole,
windReedPositionIn,
windReedPositionNormal,
windReedPositionOut,
windRelaxedEmbouchure,
windSharpEmbouchure,
windThreeQuartersClosedHole,
windTightEmbouchure,
windTrillKey,
windVeryRelaxedEmbouchure,
windVeryTightEmbouchure,
2012-05-26 14:26:10 +02:00
lastSym
};
//---------------------------------------------------------
// Sym
//---------------------------------------------------------
class Sym {
2013-11-07 16:05:00 +01:00
int _code = 0;
qreal w;
2013-11-07 16:05:00 +01:00
QRectF _bbox;
QPointF _attach;
public:
2013-11-06 15:58:05 +01:00
Sym() { }
Sym(int c, const QPointF&, const QRectF&);
const QRectF bbox(qreal mag) const;
qreal height(qreal mag) const { return _bbox.height() * mag; }
qreal width(qreal mag) const { return w * mag; }
2013-11-06 15:58:05 +01:00
void setWidth(qreal val) { w = val; }
QPointF attach(qreal mag) const { return _attach * mag; }
int code() const { return _code; }
2013-11-06 15:58:05 +01:00
void setCode(int c) { _code = c; }
bool isValid() const { return _code != 0; }
2013-11-07 16:05:00 +01:00
QRectF bbox() const { return _bbox; }
2013-11-06 15:58:05 +01:00
void setbbox(const QRectF& r) { _bbox = r; }
QPointF getAttach() const { return _attach; }
2013-11-07 16:05:00 +01:00
void setAttach(const QPointF& r) { _attach = r; }
2013-11-06 15:58:05 +01:00
static SymId name2id(const QString& s) { return lnhash.value(s, SymId::noSym); } // return noSym if not found
2013-08-30 12:46:15 +02:00
static const char* id2name(SymId id);
2013-11-06 15:58:05 +01:00
static QString id2userName(SymId id) { return symUserNames[int(id)]; }
static SymId userName2id(const QString& s) { return (SymId)(symUserNames.indexOf(s)); }
static QVector<const char*> symNames;
static QVector<QString> symUserNames;
static QHash<QString, SymId> lnhash;
};
2013-11-06 15:58:05 +01:00
//---------------------------------------------------------
// ScoreFont
//---------------------------------------------------------
class ScoreFont {
QFont _font;
QVector<Sym> _symbols;
QString _name;
QString _family;
QString _fontPath;
QString _filename;
bool loaded = false;
static QVector<ScoreFont> _scoreFonts;
public:
ScoreFont() {}
ScoreFont(const char* n, const char* f, const char* p, const char* fn)
: _name(n), _family(f), _fontPath(p), _filename(fn) {
_symbols = QVector<Sym>(int(SymId::lastSym) + 1);
}
const QString& name() const { return _name; }
const QString& family() const { return _family; }
const QString& fontPath() const { return _fontPath; }
const QString& filename() const { return _filename; }
2013-11-07 16:05:00 +01:00
const Sym& sym(SymId id) const;
2013-11-06 15:58:05 +01:00
static ScoreFont* fontFactory(QString);
static const QVector<ScoreFont>& scoreFonts() { return _scoreFonts; }
const QFont& font() const { return _font; }
QString toString(SymId id) const;
void draw(SymId id, QPainter* painter, qreal mag, const QPointF& pos = QPointF()) const;
void draw(SymId id, QPainter* painter, qreal mag, const QPointF& pos, int n) const;
QString symToHtml(SymId, int leftMargin=0, const TextStyle* ts = 0, qreal sp=10.0);
QString symToHtml(SymId, SymId, int leftMargin=0);
QPixmap sym2pixmap(SymId id, qreal mag);
};
2012-05-26 14:26:10 +02:00
2013-11-06 15:58:05 +01:00
extern void initScoreFonts();
2013-05-13 18:49:17 +02:00
} // namespace Ms
2012-05-26 14:26:10 +02:00
#endif