]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/clef-engraver.cc
release: 1.3.12
[lilypond.git] / lily / clef-engraver.cc
index deaac87548b9890d5ec364125a1014850027fdb7..5de0c8e5495bce25e17f9853bb2e24c14567a73b 100644 (file)
 /*
   CLEAN ME UP.
  */
+
 #include <ctype.h>
+#include "staff-symbol-referencer.hh"
 #include "bar.hh"
 #include "clef-engraver.hh"
 #include "clef-item.hh"
 #include "debug.hh"
 #include "command-request.hh"
-#include "time-description.hh"
+#include "timing-translator.hh"
 #include "note-head.hh"
 #include "key-item.hh"
 #include "local-key-item.hh"
@@ -116,7 +118,7 @@ Clef_engraver::acknowledge_element (Score_element_info info)
       create_clef();
       if(!default_clef)
        clef_p_->set_elt_property("visibility-lambda",
-                                 ly_ch_C_eval_scm ("all-visibility"));
+                                 ly_eval_str ("all-visibility"));
     }
 
   /* ugh; should make Clef_referenced baseclass */
@@ -125,7 +127,8 @@ Clef_engraver::acknowledge_element (Score_element_info info)
     {
       if (Note_head * h = dynamic_cast<Note_head*>(it_l))
        {
-         h->set_position (int (h->position_f ()) + c0_position_i_);
+         Staff_symbol_referencer_interface si (h);
+         si.set_position (int (si.position_f ()) + c0_position_i_);
        }
       else if (Local_key_item *i = dynamic_cast<Local_key_item*> (it_l))
        {
@@ -175,12 +178,18 @@ Clef_engraver::create_clef()
   if (!clef_p_)
     {
       Clef_item *c= new Clef_item;
+      c->set_elt_property ("breakable", SCM_BOOL_T);
+      c->set_elt_property ("break-aligned", SCM_BOOL_T);
       announce_element (Score_element_info (c, clef_req_l_));
+
+      Staff_symbol_referencer_interface si(c);
+      si.set_interface ();
+      
       clef_p_ = c;
     }
-  
+  Staff_symbol_referencer_interface si(clef_p_);
   clef_p_->symbol_ = clef_type_str_;
-  clef_p_->set_position(clef_position_i_);
+  si.set_position (clef_position_i_);
   if (octave_dir_)
     {
       clef_p_->set_elt_property ("octave-dir", gh_int2scm (octave_dir_));