#include "object-key.hh"
#include "lily-proto.hh"
#include "moment.hh"
-#include "string.hh"
class Lilypond_grob_key : public Object_key
{
Object_key const *context_;
Moment creation_moment_;
String grob_name_;
+ int disambiguation_count_;
- // FIXME: need to figure out smart solution for
- // the problem of creating
- // many equally named grobs at the same time.
-
- // int ambiguity_count_;
public:
- Lilypond_grob_key(Object_key const*context,
- Moment start,
- String name);
+ Lilypond_grob_key (Object_key const *context,
+ Moment start,
+ String name, int);
+
+ static Object_key *from_scheme (SCM);
protected:
virtual int get_type () const;
virtual void derived_mark () const;
virtual int do_compare (Object_key const* a) const;
+ virtual SCM as_scheme () const;
};
class Lilypond_context_key : public Object_key
Moment start_moment_;
String context_name_;
String id_;
+ int disambiguation_count_;
- // see above.
- // int ambiguity_count_;
public:
Lilypond_context_key (Object_key const * parent,
Moment start,
String type,
- String id);
- // int count);
+ String id,
+ int count);
+
+ static Object_key *from_scheme (SCM);
protected:
virtual int get_type () const;
virtual int do_compare (Object_key const* a) const;
virtual void derived_mark () const;
+ virtual SCM as_scheme () const;
};
+class Lilypond_general_key : public Object_key
+{
+ Object_key const *parent_;
+ String name_;
+ int disambiguation_count_;
+public:
+ Lilypond_general_key (Object_key const *parent, String name,
+ int count);
+
+ static Object_key *from_scheme (SCM);
+protected:
+ virtual int get_type () const;
+ virtual int do_compare (Object_key const* a) const;
+ virtual void derived_mark () const;
+ virtual SCM as_scheme () const;
+};
#endif /* LILYPOND_KEY_HH */