2 lilypond-key.hh -- declare Lilypond_{grob,context}_key
4 source file of the GNU LilyPond music typesetter
6 (c) 2004 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"
18 class Lilypond_grob_key : public Object_key
20 Object_key const *context_;
21 Moment creation_moment_;
23 int disambiguation_count_;
26 Lilypond_grob_key(Object_key const *context,
30 static Object_key *from_scheme (SCM);
32 virtual int get_type () const;
33 virtual void derived_mark () const;
34 virtual int do_compare (Object_key const* a) const;
35 virtual SCM as_scheme () const;
38 class Lilypond_context_key : public Object_key
40 Object_key const *parent_context_;
44 int disambiguation_count_;
47 Lilypond_context_key (Object_key const * parent,
53 static Object_key *from_scheme (SCM);
55 virtual int get_type () const;
56 virtual int do_compare (Object_key const* a) const;
57 virtual void derived_mark () const;
58 virtual SCM as_scheme () const;
61 class Lilypond_general_key : public Object_key
63 Object_key const *parent_;
65 int disambiguation_count_;
67 Lilypond_general_key (Object_key const *parent, String name,
70 static Object_key *from_scheme (SCM);
72 virtual int get_type () const;
73 virtual int do_compare (Object_key const* a) const;
74 virtual void derived_mark () const;
75 virtual SCM as_scheme () const;
78 #endif /* LILYPOND_KEY_HH */