]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/clef-engraver.cc
Merge with master
[lilypond.git] / lily / clef-engraver.cc
index c0fb2fe4b1463fe1751ac02e408939ec26322619..d9b2e27dea3d9cd544d7ccd831c757217028a9bb 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997--2005 Han-Wen Nienhuys <hanwen@cs.uu.nl>,
+  (c) 1997--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>,
 
   Mats Bengtsson <matsb@s3.kth.se>
 */
@@ -11,6 +11,7 @@
 #include <cctype>
 using namespace std;
 
+#include "item.hh"
 #include "context.hh"
 #include "bar-line.hh"
 #include "staff-symbol-referencer.hh"
@@ -68,13 +69,11 @@ Clef_engraver::Clef_engraver ()
 void
 Clef_engraver::set_glyph ()
 {
-  SCM glyph_sym = ly_symbol2scm ("glyph-name");
-  SCM glyph = get_property ("clefGlyph");
-
+  SCM glyph_sym = ly_symbol2scm ("glyph");
   SCM basic = ly_symbol2scm ("Clef");
 
   execute_pushpop_property (context (), basic, glyph_sym, SCM_UNDEFINED);
-  execute_pushpop_property (context (), basic, glyph_sym, glyph);
+  execute_pushpop_property (context (), basic, glyph_sym, get_property ("clefGlyph"));
 }
 
 /**
@@ -146,6 +145,10 @@ Clef_engraver::inspect_clef_properties ()
       || scm_equal_p (octavation, prev_octavation_) == SCM_BOOL_F
       || to_boolean (force_clef))
     {
+      set_context_property_on_children (context (),
+                                       ly_symbol2scm ("localKeySignature"),
+                                       get_property ("keySignature"));
+      
       set_glyph ();
       if (prev_cpos_ != SCM_BOOL_F || to_boolean (get_property ("firstClef")))
        create_clef ();
@@ -191,7 +194,14 @@ Clef_engraver::stop_translation_timestep ()
 ADD_ACKNOWLEDGER (Clef_engraver, bar_line);
 ADD_TRANSLATOR (Clef_engraver,
                /* doc */ "Determine and set reference point for pitches",
-               /* create */ "Clef OctavateEight",
-               /* accept */ "",
-               /* read */ "clefPosition clefGlyph middleCPosition clefOctavation explicitClefVisibility forceClef",
+               /* create */ "Clef "
+               "OctavateEight ",
+               /* read */
+               "clefGlyph "
+               "clefOctavation "
+               "clefPosition "
+               "explicitClefVisibility "
+               "forceClef "
+               "middleCPosition "
+               ,
                /* write */ "");