[EMAIL PROTECTED] writes:
> Hi, all!
> 
> With the attached patch, font-family is automatically set on accidentals,
> key signatures, custodes and rests.  This should take some burden from
> users that want to access symbols from the ancient font (and we do not
> have any more to write documentation on property font-family :-)).
> 
> It also should now be easily possible to define mixtures of font styles
> (as the baroque note head style already does), see scm/output-lib.scm.
> 
> Similar code for clefs and flags is still missing, but will follow.

Before you start adding more code like, let me make a comment. The
general pattern seems to be that you replace

        brew_molecule
        {
                Font * fm = get_default_font ();
                Molecule m = fm->get_glyph_by_name (...);

                         ..

                return m;
        }

by:

        brew_molecule
        {
                SCM some_prop =  me->get_grob_property ("foo");
                SCM answer = scm_eval (ly_symbol ("some-function"),
                                       style, some_prop);

                /*
                use answer to set font-properties.
                */
                Font * fm = get_default_font ();
                /*
                use answer to construct glyphname.
                */
                Molecule m = fm->get_glyph_by_name (...);

                ..

                return m;
        }


I have two problems with this approach:

 * it is very ad-hoc: the signature for every Scheme function is
   different

 * it does not have nice semantics  for overriding it from a file; The
   basic problem is that scm_eval() escapes into the global GUILE name
   space. Also evaluating Scheme code in this way is pretty inefficient. 

If this is happens in a single instance, I could let it go, but now
you're putting this all over the code, in vital parts (eg. note
heads.)  I want to suggest the following approach.


Foo::brew_molecule
{
        return single_glyph_from_font 
}


single_glyph_from_font (Grob *me)
{
        SCM proc = me->get_grob_property("find-font-symbol-procedure");


}

-- 

Han-Wen Nienhuys   |   [EMAIL PROTECTED]    | http://www.cs.uu.nl/~hanwen/



_______________________________________________
Lilypond-devel mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/lilypond-devel

Reply via email to