#include "lily-guile.hh"
#include "engraver.hh"
#include "dictionary.hh"
-#include "score-element.hh"
+#include "grob.hh"
#include "scm-hash.hh"
#include "translator-group.hh"
UGH. Junk Dictionary
*/
Scheme_hash_table *prop_dict_; // junkme
- void apply_properties (SCM, Score_element*, Translator_group *origin);
+ void apply_properties (SCM, Grob*, Translator_group *origin);
protected:
- virtual void acknowledge_element (Score_element_info ei);
- virtual void do_creation_processing ();
- virtual void do_removal_processing ();
+ virtual void acknowledge_grob (Grob_info ei);
+ virtual void initialize ();
+ virtual void finalize ();
public:
~Property_engraver();
Property_engraver();
prop_dict_ = 0;
}
void
-Property_engraver::do_removal_processing()
+Property_engraver::finalize()
{
}
}
void
-Property_engraver::do_creation_processing ()
+Property_engraver::initialize ()
{
prop_dict_ = new Scheme_hash_table;
}
void
-Property_engraver::acknowledge_element (Score_element_info i)
+Property_engraver::acknowledge_grob (Grob_info i)
{
- SCM ifs = i.elem_l_->get_elt_property ("interfaces");
+ SCM ifs = i.elem_l_->get_grob_property ("interfaces");
SCM props;
for (; gh_pair_p (ifs); ifs = gh_cdr (ifs))
{
void
-Property_engraver::apply_properties (SCM p, Score_element *e, Translator_group*origin)
+Property_engraver::apply_properties (SCM p, Grob *e, Translator_group*origin)
{
for (; gh_pair_p (p); p = gh_cdr (p))
{
SCM val = get_property (prop_sym);
- if (val == SCM_UNDEFINED)
+ if (val == SCM_EOL)
; // Not defined in context.
else if (gh_apply (type_p, scm_listify (val, SCM_UNDEFINED))
== SCM_BOOL_T) // defined and right type: do it
{
- e->set_elt_property (elt_prop_sym, val);
-
- SCM errport = scm_current_error_port ();
- scm_display (prop_sym, errport);
- scm_puts (_(" is deprecated. Use\n \\property ").ch_C(), errport);
-
- scm_puts (origin->type_str_.ch_C(), errport);
- scm_puts (".", errport);
-
- SCM name = e->get_elt_property ("meta");
- name = scm_assoc (ly_symbol2scm ("name"), name);
- scm_display (gh_cdr(name), errport);
- scm_puts(" \\push #'",errport);
- scm_write (elt_prop_sym,errport);
- scm_puts ( " = #",errport);
- scm_write (val, scm_current_error_port ());
- scm_puts ("\n", errport);
+ e->set_grob_property (elt_prop_sym, val);
+
+ SCM meta = e->get_grob_property ("meta");
+ SCM name = scm_assoc (ly_symbol2scm ("name"), meta);
+ warning (_f ("%s is deprecated. Use\n \\property %s.%s \\override #'%s = #%s",
+ ly_symbol2string (prop_sym).ch_C (),
+ origin->type_str_.ch_C (),
+ ly_scm2string (gh_cdr (name)).ch_C (),
+ ly_symbol2string (elt_prop_sym).ch_C (),
+ ly_scm2string (ly_write2scm (val)).ch_C ()));
}
else
/*
- we don't print a warning if VAL == #f, because we would
+ we don't print a warning if VAL == (), because we would
get lots of warnings when we restore stuff to default, eg.
- slurDash = #1 [...] slurDash = ##f
+ slurDash = #1 [...] slurDash = ()
should not cause "type error: slurDash expects number not
- boolean"
+ boolean
*/
- if (val != SCM_BOOL_F)
+ if (val != SCM_EOL)
{ // not the right type: error message.
SCM errport = scm_current_error_port ();
- warning (_("Wrong type for property"));
- scm_display (prop_sym, errport);
- scm_puts (", type: ", errport);
-
SCM typefunc = scm_eval2 (ly_symbol2scm ("type-name"), SCM_EOL);
-
- scm_display (gh_call1 (typefunc, type_p), errport);
- scm_puts (", value found: ", errport);
- scm_write (val, errport);
- scm_puts (" type: ", errport);
- scm_display (ly_type (val), errport);
+ SCM type_name = gh_call1 (typefunc, type_p);
+ warning (_f ("Wrong type for property: %s, type: %s, value found: %s, type: %s",
+ ly_symbol2string (prop_sym).ch_C (),
+ ly_scm2string (type_name).ch_C (),
+ ly_scm2string (ly_write2scm (val)).ch_C (),
+ ly_scm2string (ly_type (val)).ch_C ()));
scm_puts ("\n", errport);
}
}