]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/include/lilypond-key.hh
*** empty log message ***
[lilypond.git] / lily / include / lilypond-key.hh
index b499814c36b43118c1b5a55c9010fff56c3422ab..fe47155bf6b1df772b6715a144d094b0a640dc04 100644 (file)
@@ -20,20 +20,19 @@ 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
@@ -42,21 +41,39 @@ 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 */