]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/note-head.cc
* lily/ : rename Request to Event
[lilypond.git] / lily / note-head.cc
index 4b2596c298f19376dcf4b35d74e51fa5a44cb3d9..e32c1a663f0e4172e85d74ac9234afc001ad80f9 100644 (file)
@@ -14,7 +14,7 @@
 #include "warn.hh"
 #include "font-interface.hh"
 #include "molecule.hh"
-#include "musical-request.hh"
+#include "event.hh"
 #include "rhythmic-head.hh"
 #include "staff-symbol-referencer.hh"
 #include "lookup.hh"
@@ -103,7 +103,7 @@ Note_head::brew_ledger_lines (Grob *me,
 }
 
 Molecule
-internal_brew_molecule (Grob *me,  bool ledger_take_space)
+internal_brew_molecule (Grob *me, bool ledger_take_space)
 {
   SCM style  = me->get_grob_property ("style");
   if (!gh_symbol_p (style))
@@ -111,29 +111,18 @@ internal_brew_molecule (Grob *me,  bool ledger_take_space)
       return Molecule();
     }
 
-  /*
-    ugh: use gh_call () / scm_apply ().
-
-    UGH: use grob-property.
-  */
   SCM log = gh_int2scm (Note_head::get_balltype (me));
-  SCM exp = scm_list_n (ly_symbol2scm ("find-notehead-symbol"), log,
-                       ly_quote_scm (style),
-                       SCM_UNDEFINED);
-  SCM scm_pair = scm_primitive_eval (exp);
-  SCM scm_font_char = ly_car (scm_pair);
-  SCM scm_font_family = ly_cdr (scm_pair);
+  SCM proc = me->get_grob_property ("glyph-name-procedure");
+  SCM scm_font_char = scm_call_2 (proc, log, style);
   String font_char = "noteheads-" + ly_scm2string (scm_font_char);
-  String font_family = ly_scm2string (scm_font_family);
-  
-   me->set_grob_property("font-family", ly_symbol2scm (font_family.to_str0 ()));
-   Molecule out =
-     Font_interface::get_default_font (me)->find_by_name (font_char);
-   if (out.empty_b())
-     {
-       warning (_f("Symbol not found, ", font_char.to_str0()));
+
+  Font_metric * fm = Font_interface::get_default_font (me);
+  Molecule out = fm->find_by_name (font_char);
+  if (out.empty_b())
+    {
+      me->warning (_f ("note head `%s' not found", font_char.to_str0 ()));
     }
-  
+
   int interspaces = Staff_symbol_referencer::line_count (me)-1;
   int pos = (int)rint (Staff_symbol_referencer::get_position (me));
   if (abs (pos) - interspaces > 1)
@@ -254,7 +243,6 @@ Note_head::stem_attachment_coordinate (Grob *me, Axis a)
   return gh_number_p (result) ?  gh_scm2double (result) : 0.0;
 }
 
-
 int
 Note_head::get_balltype (Grob*me) 
 {
@@ -264,5 +252,5 @@ Note_head::get_balltype (Grob*me)
 
 ADD_INTERFACE (Note_head,"note-head-interface",
   "Note head",
-  "accidental-grob style stem-attachment-function");
+  "glyph-name-procedure accidental-grob style stem-attachment-function");