MuseScore  3.4
Music composition and notation
Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes | Static Private Attributes | Friends | List of all members
Ms::ScoreFont Class Reference

#include <sym.h>

Public Member Functions

 ScoreFont ()
 
 ScoreFont (const ScoreFont &)
 
 ScoreFont (const char *n, const char *f, const char *p, const char *fn)
 
 ~ScoreFont ()
 
const QString & name () const
 
const QString & family () const
 
std::list< std::pair< Sid, QVariant > > engravingDefaults ()
 
double textEnclosureThickness ()
 
QString fontPath () const
 
QString toString (SymId) const
 
QPixmap sym2pixmap (SymId, qreal)
 
void draw (SymId id, QPainter *, const QSizeF &mag, const QPointF &pos, qreal scale) const
 
void draw (SymId id, QPainter *, qreal mag, const QPointF &pos, qreal scale) const
 
void draw (SymId id, QPainter *, qreal mag, const QPointF &pos) const
 
void draw (SymId id, QPainter *, const QSizeF &mag, const QPointF &pos) const
 
void draw (SymId id, QPainter *, qreal mag, const QPointF &pos, int n) const
 
void draw (const std::vector< SymId > &, QPainter *, qreal mag, const QPointF &pos) const
 
void draw (const std::vector< SymId > &, QPainter *, const QSizeF &mag, const QPointF &pos) const
 
void draw (const std::vector< SymId > &, QPainter *, qreal mag, const QPointF &pos, qreal scale) const
 
void draw (const std::vector< SymId > &, QPainter *, const QSizeF &mag, const QPointF &pos, qreal scale) const
 
qreal height (SymId id, qreal mag) const
 
qreal width (SymId id, qreal mag) const
 
qreal advance (SymId id, qreal mag) const
 
qreal width (const std::vector< SymId > &, qreal mag) const
 
const QRectF bbox (SymId id, const QSizeF &) const
 
const QRectF bbox (SymId id, qreal mag) const
 
const QRectF bbox (const std::vector< SymId > &s, const QSizeF &mag) const
 
const QRectF bbox (const std::vector< SymId > &s, qreal mag) const
 
QPointF stemDownNW (SymId id, qreal mag) const
 
QPointF stemUpSE (SymId id, qreal mag) const
 
QPointF cutOutNE (SymId id, qreal mag) const
 
QPointF cutOutNW (SymId id, qreal mag) const
 
QPointF cutOutSE (SymId id, qreal mag) const
 
QPointF cutOutSW (SymId id, qreal mag) const
 
bool isValid (SymId id) const
 
bool useFallbackFont (SymId id) const
 
const Symsym (SymId id) const
 

Static Public Member Functions

static ScoreFontfontFactory (QString)
 
static ScoreFontfallbackFont ()
 
static const char * fallbackTextFont ()
 
static const QVector< ScoreFont > & scoreFonts ()
 
static QJsonObject initGlyphNamesJson ()
 

Private Member Functions

void load ()
 
void computeMetrics (Sym *sym, int code)
 

Private Attributes

FT_Face face = 0
 
QVector< Sym_symbols
 
QString _name
 
QString _family
 
QString _fontPath
 
QString _filename
 
QByteArray fontImage
 
QCache< GlyphKey, GlyphPixmap > * cache { 0 }
 
std::list< std::pair< Sid, QVariant > > _engravingDefaults
 
double _textEnclosureThickness = 0
 
QFont * font { 0 }
 

Static Private Attributes

static QVector< ScoreFont_scoreFonts
 
static std::array< uint, size_t(SymId::lastSym)+1 > _mainSymCodeTable { {0} }
 

Friends

void initScoreFonts ()
 

Constructor & Destructor Documentation

◆ ScoreFont() [1/3]

Ms::ScoreFont::ScoreFont ( )
inline

◆ ScoreFont() [2/3]

Ms::ScoreFont::ScoreFont ( const ScoreFont f)

◆ ScoreFont() [3/3]

Ms::ScoreFont::ScoreFont ( const char *  n,
const char *  f,
const char *  p,
const char *  fn 
)
inline

◆ ~ScoreFont()

Ms::ScoreFont::~ScoreFont ( )

Member Function Documentation

◆ advance()

qreal Ms::ScoreFont::advance ( SymId  id,
qreal  mag 
) const

◆ bbox() [1/4]

const QRectF Ms::ScoreFont::bbox ( SymId  id,
const QSizeF &  mag 
) const

◆ bbox() [2/4]

const QRectF Ms::ScoreFont::bbox ( SymId  id,
qreal  mag 
) const

◆ bbox() [3/4]

const QRectF Ms::ScoreFont::bbox ( const std::vector< SymId > &  s,
const QSizeF &  mag 
) const

◆ bbox() [4/4]

const QRectF Ms::ScoreFont::bbox ( const std::vector< SymId > &  s,
qreal  mag 
) const

◆ computeMetrics()

void Ms::ScoreFont::computeMetrics ( Sym sym,
int  code 
)
private

◆ cutOutNE()

QPointF Ms::ScoreFont::cutOutNE ( SymId  id,
qreal  mag 
) const

◆ cutOutNW()

QPointF Ms::ScoreFont::cutOutNW ( SymId  id,
qreal  mag 
) const

◆ cutOutSE()

QPointF Ms::ScoreFont::cutOutSE ( SymId  id,
qreal  mag 
) const

◆ cutOutSW()

QPointF Ms::ScoreFont::cutOutSW ( SymId  id,
qreal  mag 
) const

◆ draw() [1/9]

void Ms::ScoreFont::draw ( SymId  id,
QPainter *  painter,
const QSizeF &  mag,
const QPointF &  pos,
qreal  scale 
) const

◆ draw() [2/9]

void Ms::ScoreFont::draw ( SymId  id,
QPainter *  painter,
qreal  mag,
const QPointF &  pos,
qreal  scale 
) const

◆ draw() [3/9]

void Ms::ScoreFont::draw ( SymId  id,
QPainter *  painter,
qreal  mag,
const QPointF &  pos 
) const

◆ draw() [4/9]

void Ms::ScoreFont::draw ( SymId  id,
QPainter *  painter,
const QSizeF &  mag,
const QPointF &  pos 
) const

◆ draw() [5/9]

void Ms::ScoreFont::draw ( SymId  id,
QPainter *  painter,
qreal  mag,
const QPointF &  pos,
int  n 
) const

◆ draw() [6/9]

void Ms::ScoreFont::draw ( const std::vector< SymId > &  ids,
QPainter *  p,
qreal  mag,
const QPointF &  pos 
) const

◆ draw() [7/9]

void Ms::ScoreFont::draw ( const std::vector< SymId > &  ids,
QPainter *  p,
const QSizeF &  mag,
const QPointF &  pos 
) const

◆ draw() [8/9]

void Ms::ScoreFont::draw ( const std::vector< SymId > &  ids,
QPainter *  p,
qreal  mag,
const QPointF &  pos,
qreal  scale 
) const

◆ draw() [9/9]

void Ms::ScoreFont::draw ( const std::vector< SymId > &  ids,
QPainter *  p,
const QSizeF &  mag,
const QPointF &  pos,
qreal  scale 
) const

◆ engravingDefaults()

std::list<std::pair<Sid, QVariant> > Ms::ScoreFont::engravingDefaults ( )
inline

◆ fallbackFont()

ScoreFont * Ms::ScoreFont::fallbackFont ( )
static

◆ fallbackTextFont()

const char * Ms::ScoreFont::fallbackTextFont ( )
static

◆ family()

const QString& Ms::ScoreFont::family ( ) const
inline

◆ fontFactory()

ScoreFont * Ms::ScoreFont::fontFactory ( QString  s)
static

◆ fontPath()

QString Ms::ScoreFont::fontPath ( ) const
inline

◆ height()

qreal Ms::ScoreFont::height ( SymId  id,
qreal  mag 
) const
inline

◆ initGlyphNamesJson()

QJsonObject Ms::ScoreFont::initGlyphNamesJson ( )
static

◆ isValid()

bool Ms::ScoreFont::isValid ( SymId  id) const
inline

◆ load()

void Ms::ScoreFont::load ( )
private

◆ name()

const QString& Ms::ScoreFont::name ( ) const
inline

◆ scoreFonts()

static const QVector<ScoreFont>& Ms::ScoreFont::scoreFonts ( )
inlinestatic

◆ stemDownNW()

QPointF Ms::ScoreFont::stemDownNW ( SymId  id,
qreal  mag 
) const

◆ stemUpSE()

QPointF Ms::ScoreFont::stemUpSE ( SymId  id,
qreal  mag 
) const

◆ sym()

const Sym& Ms::ScoreFont::sym ( SymId  id) const
inline

◆ sym2pixmap()

QPixmap Ms::ScoreFont::sym2pixmap ( SymId  ,
qreal   
)
inline

◆ textEnclosureThickness()

double Ms::ScoreFont::textEnclosureThickness ( )
inline

◆ toString()

QString Ms::ScoreFont::toString ( SymId  id) const

◆ useFallbackFont()

bool Ms::ScoreFont::useFallbackFont ( SymId  id) const

◆ width() [1/2]

qreal Ms::ScoreFont::width ( SymId  id,
qreal  mag 
) const
inline

◆ width() [2/2]

qreal Ms::ScoreFont::width ( const std::vector< SymId > &  s,
qreal  mag 
) const

Friends And Related Function Documentation

◆ initScoreFonts

void initScoreFonts ( )
friend

Member Data Documentation

◆ _engravingDefaults

std::list<std::pair<Sid, QVariant> > Ms::ScoreFont::_engravingDefaults
private

◆ _family

QString Ms::ScoreFont::_family
private

◆ _filename

QString Ms::ScoreFont::_filename
private

◆ _fontPath

QString Ms::ScoreFont::_fontPath
private

◆ _mainSymCodeTable

std::array< uint, size_t(SymId::lastSym)+1 > Ms::ScoreFont::_mainSymCodeTable { {0} }
staticprivate

◆ _name

QString Ms::ScoreFont::_name
private

◆ _scoreFonts

QVector< ScoreFont > Ms::ScoreFont::_scoreFonts
staticprivate
Initial value:
{
ScoreFont("Bravura", "Bravura", ":/fonts/bravura/", "Bravura.otf" ),
ScoreFont("Emmentaler", "MScore", ":/fonts/mscore/", "mscore.ttf" ),
ScoreFont("Gonville", "Gootville", ":/fonts/gootville/", "Gootville.otf" ),
ScoreFont("MuseJazz", "MuseJazz", ":/fonts/musejazz/", "MuseJazz.otf" ),
}

◆ _symbols

QVector<Sym> Ms::ScoreFont::_symbols
private

◆ _textEnclosureThickness

double Ms::ScoreFont::_textEnclosureThickness = 0
private

◆ cache

QCache<GlyphKey, GlyphPixmap>* Ms::ScoreFont::cache { 0 }
private

◆ face

FT_Face Ms::ScoreFont::face = 0
private

◆ font

QFont* Ms::ScoreFont::font { 0 }
mutableprivate

◆ fontImage

QByteArray Ms::ScoreFont::fontImage
private

The documentation for this class was generated from the following files: