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 */