]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/system.cc
Fix #122.
[lilypond.git] / lily / system.cc
index 90eb463c44932ac307902bd3e8a7e5e210b7984f..8fee38257286408c69ed8df8ce4042ece36a7ca2 100644 (file)
@@ -245,10 +245,7 @@ System::add_column (Paper_column *p)
       ga = unsmob_grob_array (scm_ga);
     }
 
-  p->rank_
-    = ga->size ()
-    ? Paper_column::get_rank (ga->array ().back ()) + 1
-    : 0;
+  p->rank_ = ga->size ();
 
   ga->add (p);
   Axis_group_interface::add_element (this, p);
@@ -493,6 +490,17 @@ System::columns () const
   return columns;
 }
 
+Grob*
+System::column (int which) const
+{
+  extract_grob_set (this, "columns", columns);
+  for (vsize i = 0; i < columns.size (); i++)
+    if (dynamic_cast<Paper_column*> (columns[i])->get_rank () == which)
+      return columns[i];
+  programming_error ("couldn't find the column of the requested index");
+  return columns[0];
+}
+
 Paper_score*
 System::paper_score () const
 {