void add_brackets ();
void create_grobs ();
- void center_continuations (Link_array__Spanner_ const &consecutive_lines);
+ void center_continuations (vector<Spanner*> const &consecutive_lines);
void center_repeated_continuations ();
protected:
- std::vector<Figure_group> groups_;
+ vector<Figure_group> groups_;
Spanner *alignment_;
- Link_array__Music_ new_musics_;
+ vector<Music*> new_musics_;
bool continuation_;
bool new_music_found_;
}
void
-Figured_bass_engraver::center_continuations (Link_array__Spanner_ const &consecutive_lines)
+Figured_bass_engraver::center_continuations (vector<Spanner*> const &consecutive_lines)
{
if (consecutive_lines.size () == 2)
{
- Link_array__Grob_ left_figs;
+ vector<Grob*> left_figs;
for (vsize j = consecutive_lines.size(); j--;)
left_figs.push_back (consecutive_lines[j]->get_bound (LEFT));
void
Figured_bass_engraver::center_repeated_continuations ()
{
- Link_array__Spanner_ consecutive_lines;
+ vector<Spanner*> consecutive_lines;
for (vsize i = 0; i <= groups_.size(); i++)
{
if (i < groups_.size ()
{
if (!alignment_)
return;
-
- alignment_ = 0;
+
+ if (alignment_)
+ {
+ announce_end_grob (alignment_, SCM_EOL);
+ alignment_ = 0;
+ }
+
if (to_boolean (get_property ("figuredBassCenterContinuations")))
center_repeated_continuations();
- groups_.clear ();
+ for (vsize i = 0; i < groups_.size (); i++)
+ {
+ if (groups_[i].group_)
+ {
+ announce_end_grob (groups_[i].group_ , SCM_EOL);
+ groups_[i].group_ = 0;
+ }
+
+ if (groups_[i].continuation_line_)
+ {
+ announce_end_grob (groups_[i].continuation_line_ , SCM_EOL);
+ groups_[i].continuation_line_ = 0;
+ }
+ }
+
+ /* Check me, groups_.clear () ? */
}
void
Figured_bass_engraver::add_brackets ()
{
- Link_array__Grob_ encompass;
+ vector<Grob*> encompass;
bool inside = false;
for (vsize i = 0; i < groups_.size (); i ++)
{
if (rest_event_)
{
clear_spanners ();
+ groups_.clear ();
return;
}
&& new_musics_.empty ())
{
clear_spanners ();
+ groups_.clear ();
return;
}
bool use_extenders = to_boolean (get_property ("useBassFigureExtenders"));
if (!use_extenders)
{
- if (to_boolean (get_property ("figuredBassCenterContinuations")))
- center_repeated_continuations ();
- alignment_ = 0;
- for (vsize i = 0; i < groups_.size (); i++)
- {
- groups_[i].group_ = 0;
- groups_[i].continuation_line_ = 0;
- }
+ clear_spanners ();
}
if (!continuation_)
- clear_spanners ();
-
+ {
+ clear_spanners ();
+ groups_.clear ();
+ }
+
vsize k = 0;
for (vsize i = 0; i < new_musics_.size (); i++)
{
if (use_extenders)
{
- std::vector<int> junk_continuations;
+ vector<int> junk_continuations;
for (vsize i = 0; i < groups_.size(); i++)
{
Figure_group &group = groups_[i];
/*
Ugh, repeated code.
*/
- Link_array__Spanner_ consecutive;
+ vector<Spanner*> consecutive;
if (to_boolean (get_property ("figuredBassCenterContinuations")))
{
for (vsize i = 0; i <= junk_continuations.size (); i++)
group.figure_item_->set_property ("transparent", SCM_BOOL_T);
group.continuation_line_->set_bound (RIGHT, group.figure_item_);
}
-
if (groups_[i].group_)
groups_[i].group_->set_bound (RIGHT, muscol);
+
}
}