]> git.donarmstrong.com Git - lilypond.git/commit
Issue 2507: Stop the entanglement of context properties and grob property internals
authorDavid Kastrup <dak@gnu.org>
Wed, 30 Jul 2014 15:34:55 +0000 (17:34 +0200)
committerDavid Kastrup <dak@gnu.org>
Fri, 22 Aug 2014 05:15:47 +0000 (07:15 +0200)
commite328b7a10ec1a4e13ba11104825bf54e027d0dd0
tree9a7fecdd91fbad2fed3f45521167f0c5a5656023
parentf4852a8ba22912f87285fe93f296543c7add5048
Issue 2507: Stop the entanglement of context properties and grob property internals

This introduces a semi-opaque structure Grob_properties meeting the
predicate ly:grob-properties? that is algorithmically handled at the C++
level via a wrapper structure Grob_property_info.

Encapsulating grob properties in that manner reduces the potential for
clashes and makes it easier to change algorithms and/or internal
representation.

While the principal distinction between context properties (one value
per context) and context-based grob property templates (one stack per
context) remains, at least the separation of the handling is more
pronounced.
13 files changed:
input/regression/scheme-text-spanner.ly
lily/auto-beam-engraver.cc
lily/context-property.cc
lily/context-scheme.cc
lily/engraver-group.cc
lily/engraver.cc
lily/include/context.hh
lily/include/grob-properties.hh [new file with mode: 0644]
lily/include/lily-proto.hh
lily/score-engraver.cc
lily/span-bar-stub-engraver.cc
ly/music-functions-init.ly
scm/define-grobs.scm