2 lilypond-key.hh -- declare Lilypond_{grob, context}_key
4 source file of the GNU LilyPond music typesetter
6 (c) 2004--2005 Han-Wen Nienhuys <hanwen@xs4all.nl>
10 #ifndef LILYPOND_KEY_HH
11 #define LILYPOND_KEY_HH
13 #include "object-key.hh"
14 #include "lily-proto.hh"
17 class Lilypond_grob_key : public Object_key
19 Object_key const *context_;
20 Moment creation_moment_;
22 int disambiguation_count_;
25 Lilypond_grob_key (Object_key const *context,
29 static Object_key *from_scheme (SCM);
31 virtual int get_type () const;
32 virtual void derived_mark () const;
33 virtual int do_compare (Object_key const* a) const;
34 virtual SCM as_scheme () const;
37 class Lilypond_context_key : public Object_key
39 Object_key const *parent_context_;
43 int disambiguation_count_;
46 Lilypond_context_key (Object_key const * parent,
52 static Object_key *from_scheme (SCM);
54 virtual int get_type () const;
55 virtual int do_compare (Object_key const* a) const;
56 virtual void derived_mark () const;
57 virtual SCM as_scheme () const;
60 class Lilypond_general_key : public Object_key
62 Object_key const *parent_;
64 int disambiguation_count_;
66 Lilypond_general_key (Object_key const *parent, String name,
69 static Object_key *from_scheme (SCM);
71 virtual int get_type () const;
72 virtual int do_compare (Object_key const* a) const;
73 virtual void derived_mark () const;
74 virtual SCM as_scheme () const;
77 #endif /* LILYPOND_KEY_HH */