-bool
-Engraver_group_engraver::removable_b()const
-{
- return !iterator_count_&& !group_l_arr_.size() ;
-}
-
-Engraver_group_engraver::Engraver_group_engraver()
-{
- itrans_l_ =0;
-}
-
-void
-Engraver_group_engraver::set_feature(Feature d)
-{
- PCursor<Engraver*> i(grav_list_.top());
- // why the while construct?
- while (i.ok()) {
- // this construction to ensure clean deletion
- Engraver *grav_l = i++;
- grav_l->set_feature(d);
- }
-}
-
-void
-Engraver_group_engraver::sync_features()
-{
- PCursor<Engraver*> i(grav_list_.top());
- while (i.ok()) {
- Engraver *grav_l = i++;
- grav_l->sync_features();
- }
-}
-
-void
-Engraver_group_engraver::do_pre_move_processing()
-{
- PCursor<Engraver*> i(grav_list_.top());
- while (i.ok()) {
- Engraver *grav_l = i++;
- grav_l->pre_move_processing();
- }
+ Engraver_group *dad_eng
+ = context_->get_parent_context ()
+ ? dynamic_cast<Engraver_group *> (context_->get_parent_context ()->implementation ())
+ : 0;
+ if (dad_eng)
+ dad_eng->announce_grob (info);