2 lilypond-key.hh -- declare Lilypond_{grob, context}_key
4 source file of the GNU LilyPond music typesetter
6 (c) 2004--2006 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 */