]> git.donarmstrong.com Git - lilypond.git/blob - lily/include/tweak-registration.hh
* flower
[lilypond.git] / lily / include / tweak-registration.hh
1 /*
2   tweak-registration.hh -- declare
3
4   source file of the GNU LilyPond music typesetter
5
6   (c) 2004--2005 Han-Wen Nienhuys <hanwen@xs4all.nl>
7 */
8
9 #ifndef TWEAK_REGISTRATION_HH
10 #define TWEAK_REGISTRATION_HH
11
12 #include <map>
13
14 #include "lily-proto.hh"
15 #include "object-key.hh"
16
17 typedef std::map < Object_key const *, SCM, Object_key_less> Tweak_map;
18
19 class Tweak_registry
20 {
21   Tweak_map tweaks_;
22   Object_key_undumper *undumper_;
23
24   DECLARE_SMOBS (Tweak_registry,);
25
26 public:
27   Tweak_registry ();
28
29   Object_key_undumper *undumper () const;
30   void clear ();
31   void insert_grob_tweak (Grob *, SCM);
32   void replace_grob_tweak (Grob *, SCM);
33   SCM get_tweaks (Grob *);
34   SCM list_tweaks ();
35   void insert_tweak_from_file (SCM);
36 };
37
38 extern Tweak_registry *global_registry_;
39
40 DECLARE_UNSMOB (Tweak_registry, tweak_registry);
41
42 #endif /* TWEAK_REGISTRATION_HH */