Source code for neoscore.western.staff_fringe_layout

from dataclasses import dataclass, field

from neoscore.core.units import ZERO, Unit


[docs]@dataclass(frozen=True) class StaffFringeLayout: """Layout specification for a :obj:`.Staff` fringe. Each field except ``pos_x_in_staff`` describes an X-axis position relative to the start of the staff's live area. In flowables, that start point is typically the beginning of the flowable :obj:`.NewLine`. Outside flowables, that start point is the X-axis position of the staff. Since fringes extend to the left of this reference point, the values here will typically be negative. """ pos_x_in_staff: Unit """The staff position of the line where this fringe is placed. In staves outside flowables, this will always be ``ZERO``. """ staff: Unit """The starting position of the drawn staff in the fringe.""" clef: Unit """The clef's position""" key_signature: Unit """The key signature's position, if any. If there is no key signature this will be ``ZERO``. """ time_signature: Unit = field(default_factory=lambda: ZERO) """The time signature's position, if any. If there is no time signature this will be ``ZERO``. """