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>
9 #ifndef LILYPOND_KEY_HH
10 #define LILYPOND_KEY_HH
12 #include "object-key.hh"
13 #include "lily-proto.hh"
16 class Lilypond_grob_key : public Object_key
18 Object_key const *context_;
19 Moment creation_moment_;
21 int disambiguation_count_;
24 Lilypond_grob_key (Object_key const *context,
28 static Object_key *from_scheme (SCM);
30 virtual int get_type () const;
31 virtual void derived_mark () const;
32 virtual int do_compare (Object_key const *a) const;
33 virtual SCM as_scheme () const;
36 class Lilypond_context_key : public Object_key
38 Object_key const *parent_context_;
42 int disambiguation_count_;
45 Lilypond_context_key (Object_key const *parent,
51 static Object_key *from_scheme (SCM);
53 virtual int get_type () const;
54 virtual int do_compare (Object_key const *a) const;
55 virtual void derived_mark () const;
56 virtual SCM as_scheme () const;
59 class Lilypond_general_key : public Object_key
61 Object_key const *parent_;
63 int disambiguation_count_;
65 Lilypond_general_key (Object_key const *parent, String name,
68 static Object_key *from_scheme (SCM);
70 virtual int get_type () const;
71 virtual int do_compare (Object_key const *a) const;
72 virtual void derived_mark () const;
73 virtual SCM as_scheme () const;
76 #endif /* LILYPOND_KEY_HH */