-/*
- maybenot such a good idea after all., to put class declarations in
- .cc
-*/
-
-#include "hara-kiri-group-spanner.hh"
-#include "rhythmic-head.hh"
-
-class Hara_kiri_engraver : public Axis_group_engraver
-{
-protected:
- virtual Spanner *get_spanner ();
- virtual void acknowledge_grob (Grob_info);
- virtual void add_element (Grob *e);
- virtual void start_translation_timestep ();
-
- SCM interesting_;
-public:
- TRANSLATOR_DECLARATIONS (Hara_kiri_engraver);
-};
-
-void
-Hara_kiri_engraver::start_translation_timestep ()
-{
- Axis_group_engraver::start_translation_timestep ();
- interesting_ = get_property ("keepAliveInterfaces");
-}
-
-
-void
-Hara_kiri_engraver::add_element (Grob *e)
-{
- Hara_kiri_group_spanner::add_element (staffline_, e);
-}
-
-Spanner *
-Hara_kiri_engraver::get_spanner ()
-{
- Spanner *sp = make_spanner ("RemoveEmptyVerticalGroup", SCM_EOL);
-
- return sp;
-}
-
-void
-Hara_kiri_engraver::acknowledge_grob (Grob_info i)
-{
- Axis_group_engraver::acknowledge_grob (i);
- if (staffline_)
- {
- for (SCM s = interesting_; scm_is_pair (s); s = scm_cdr (s))
- {
- if (i.grob ()->internal_has_interface (scm_car (s)))
- Hara_kiri_group_spanner::add_interesting_item (staffline_, i.grob ());
- }
- }
-}
+ADD_TRANSLATOR (Axis_group_engraver,
+ /* doc */
+ "Group all objects created in this context in a"
+ " @code{VerticalAxisGroup} spanner.",