]> git.donarmstrong.com Git - lilypond.git/commitdiff
Add point-and-click to non-default rehearsal marks.
authorNeil Puttock <n.puttock@gmail.com>
Tue, 17 Aug 2010 14:39:10 +0000 (15:39 +0100)
committerNeil Puttock <n.puttock@gmail.com>
Tue, 17 Aug 2010 14:50:04 +0000 (15:50 +0100)
* lily/parser.yy (command_element):

  call make-mark-set via MAKE_SYNTAX so input location can be used

* scm/ly-syntax-constructors.scm (make-mark-set):

  set 'origin for MarkEvent

* scm/music-functions.scm (make-mark-set):

  move to ly-syntax-constructors.scm

lily/parser.yy
scm/ly-syntax-constructors.scm
scm/music-functions.scm

index a9d8938889185e76b9b8c1537e0f9ef4555f3aaf..7fff408f7d9d0aa59d25fa5ca9970da13a9e602e 100644 (file)
@@ -1642,9 +1642,7 @@ command_element:
                $$ = scm_apply_2   (proc, scm_car ($2), scm_cdr ($2), SCM_EOL);
        }
        | MARK scalar {
-               SCM proc = ly_lily_module_constant ("make-mark-set");
-
-               $$ = scm_call_1 (proc, $2);
+               $$ = MAKE_SYNTAX ("make-mark-set", @$, $2);
        }
        ;
 
index 565dfbb6a7cfe26d18e3e0c0dd4664d7b4583636..98365930fefa16e2a1e8c4751b8196774206b290 100644 (file)
@@ -232,3 +232,18 @@ into a @code{MultiMeasureTextEvent}."
                                         'origin loc)))
                         addlyrics-list)))
     (make-simultaneous-music (cons voice lyricstos))))
+
+(define-ly-syntax (make-mark-set parser location label)
+  "Make the music for the \\mark command."
+  (let* ((set (and (integer? label)
+                  (context-spec-music (make-property-set 'rehearsalMark label)
+                                     'Score)))
+        (ev (make-music 'MarkEvent))
+        (ch (make-event-chord (list ev))))
+
+    (set! (ly:music-property ev 'origin) location)
+    (if set
+       (make-sequential-music (list set ch))
+       (begin
+         (set! (ly:music-property ev 'label) label)
+         ch))))
index 1dfa6bc0acf3307c491172710da951796f371374..a9f54cd443765c9bd0041594ace63c5a47223d5b 100644 (file)
@@ -505,24 +505,10 @@ i.e.  this is not an override"
 If @var{rest} is present, it is used to set
 @code{beatStructure}."
   (ly:export
-    (make-music 'TimeSignatureMusic
-              'numerator num
-              'denominator den
-              'beat-structure (if (null? rest) rest (car rest)))))
-
-(define-public (make-mark-set label)
-  "Make the music for the \\mark command."
-  (let* ((set (if (integer? label)
-                 (context-spec-music (make-property-set 'rehearsalMark label)
-                                     'Score)
-                 #f))
-        (ev (make-music 'MarkEvent))
-        (ch (make-event-chord (list ev))))
-    (if set
-       (make-sequential-music (list set ch))
-       (begin
-         (set! (ly:music-property ev 'label) label)
-         ch))))
+   (make-music 'TimeSignatureMusic
+              'numerator num
+              'denominator den
+              'beat-structure (if (null? rest) rest (car rest)))))
 
 (define-safe-public (make-articulation name)
   (make-music 'ArticulationEvent