2 tweak-registration-scheme.cc -- implement Tweak_registry bindings
4 source file of the GNU LilyPond music typesetter
6 (c) 2004 Han-Wen Nienhuys <hanwen@xs4all.nl>
11 #include "tweak-registration.hh"
13 #include "object-key-undumper.hh"
15 LY_DEFINE(ly_clear_tweak_registry, "ly:tweak-clear-registry",
17 "Clear global tweak registry"
20 global_registry_->clear ();
21 return SCM_UNSPECIFIED;
24 LY_DEFINE(ly_insert_tweak, "ly:insert-tweak",
26 (SCM grob, SCM tweak),
27 "add new tweak for grob."
30 Grob *gr = unsmob_grob (grob);
31 SCM_ASSERT_TYPE(gr, grob, SCM_ARG1, __FUNCTION__, "Grob");
32 SCM_ASSERT_TYPE(scm_list_p (tweak) == SCM_BOOL_T
33 && ly_c_procedure_p (scm_car (tweak)),
34 tweak, SCM_ARG2, __FUNCTION__, "Tweak");
36 global_registry_->insert_grob_tweak (gr, tweak);
37 return SCM_UNSPECIFIED;
41 LY_DEFINE(ly_tweak_read_keys, "ly:tweak-define-keys",
46 global_registry_->undumper ()->parse_contents (keys);
47 return SCM_UNSPECIFIED;
51 LY_DEFINE(ly_all_tweaks, "ly:all-tweaks",
56 return global_registry_->list_tweaks();
60 LY_DEFINE(ly_tweak_read_tweaks, "ly:tweak-define-tweaks",
65 for (SCM s = tweaks; scm_is_pair (s); s = scm_cdr (s))
67 global_registry_->insert_tweak_from_file (scm_car (s));
69 return SCM_UNSPECIFIED;