source file of the GNU LilyPond music typesetter
- (c) 1998 Jan Nieuwenhuizen <janneke@gnu.org>
+ (c) 1998,1999 Jan Nieuwenhuizen <janneke@gnu.org>
+ Han-Wen Nienhuys <hanwen@cs.uu.nl>
*/
#include "hara-kiri-vertical-group-spanner.hh"
#include "debug.hh"
-#include "note-head.hh"
-#include "bar.hh"
+#include "item.hh"
-IMPLEMENT_IS_TYPE_B1 (Hara_kiri_vertical_group_spanner, Vertical_group_spanner);
-
-Hara_kiri_vertical_group_spanner::Hara_kiri_vertical_group_spanner()
+Hara_kiri_group_spanner::Hara_kiri_group_spanner()
{
+ set_axes(Y_AXIS,Y_AXIS);
}
void
-Hara_kiri_vertical_group_spanner::add_note (Note_head* n)
+Hara_kiri_group_spanner::add_interesting_item (Item* n)
{
add_dependency (n);
- head_l_arr_.push (n);
+ interesting_items_.push (n);
}
void
-Hara_kiri_vertical_group_spanner::do_post_processing ()
+Hara_kiri_group_spanner::do_post_processing ()
{
- if (!head_l_arr_.empty ())
+ if (!interesting_items_.empty ())
return;
Link_array<Score_element> childs = get_children ();
for (int i = 0; i < childs.size (); i++)
{
- childs[i]->transparent_b_ = true;
- childs[i]->set_empty (true);
+ Score_element* s = childs[i];
+
+ if ( line_l () != s->line_l ())
+ programming_error ("Killing other children too");
+ s->set_elt_property (transparent_scm_sym, SCM_BOOL_T);
+ s->set_empty (true, X_AXIS, Y_AXIS);
+
}
set_empty (true);
}
void
-Hara_kiri_vertical_group_spanner::do_substitute_dependency (Score_element*o, Score_element*n)
+Hara_kiri_group_spanner::do_substitute_element_pointer (Score_element*o, Score_element*n)
{
- if (o->is_type_b (Note_head::static_name ()))
- head_l_arr_.substitute ((Note_head*)o->access_Item (),
- (n)? (Note_head*)n->access_Item () : 0);
+ Axis_group_spanner::do_substitute_element_pointer (o,n);
+ if (Item *it = dynamic_cast<Item *> (o))
+ interesting_items_.substitute (it, dynamic_cast<Item *> (n));
}
void
-Hara_kiri_vertical_group_spanner::do_print () const
+Hara_kiri_group_spanner::do_print () const
{
Axis_group_spanner::do_print ();
}