+
+Context *
+Grob_info::context () const
+{
+ return origin_trans_->context ();
+}
+
+Spanner *
+Grob_info::spanner () const
+{
+ return dynamic_cast<Spanner *> (grob_);
+}
+
+Item *
+Grob_info::item () const
+{
+ return dynamic_cast<Item *> (grob_);
+}
+
+Stream_event *
+Grob_info::ultimate_event_cause () const
+{
+ SCM cause = grob_->self_scm ();
+ while (unsmob_grob (cause))
+ {
+ cause = unsmob_grob (cause)->get_property ("cause");
+ }
+ return unsmob_stream_event (cause);
+}