+2002-08-31 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+
+ * lily/break-align-interface.cc (do_alignment): translate last
+ break-align-group if it is invisible/empty.
+
+ * scm/grob-description.scm (all-grob-descriptions): LeftEdge is
+ not a BreakAlignGroup. Do not use
+ Break_align_interface::alignment_callback
+
+
2002-08-30 Han-Wen Nienhuys <hanwen@cs.uu.nl>
* scripts/lilypond-book.py (LatexPaper.find_latex_dims): give more
Break_align_interface::do_alignment (Grob *me)
{
Item * item = dynamic_cast<Item*> (me);
-
+ int rank = Paper_column::get_rank (item->get_column ());
Link_array<Grob> elems
= Pointer_group_interface__extract_grobs (me, (Grob*)0,
"elements");
int edge_idx = -1;
- while (idx < elems.size())
+ while (idx < elems.size() - 1)
{
int next_idx = idx+1;
- while ( next_idx < elems.size() && extents[next_idx].empty_b())
+ while (next_idx < elems.size() &&
+ extents[next_idx].empty_b()
+ && next_idx != elems.size() -1 )
next_idx++;
-
- if (next_idx == elems.size())
- break;
Grob *l = elems[idx];
Grob *r = elems[next_idx];
table, but that gets icky when that grob is suicided for some
reason.
*/
- for (SCM s = r->get_grob_property ("elements");
- gh_pair_p (s); s = gh_cdr (s))
- {
- Grob * elt =unsmob_grob(gh_car (s));
-
- SCM sym = elt->get_grob_property ("break-align-symbol");
- if (gh_symbol_p (sym))
- {
- rsym = sym;
- break;
- }
- }
+ for (SCM s = r->get_grob_property ("elements");
+ gh_pair_p (s); s = gh_cdr (s))
+ {
+ Grob * elt =unsmob_grob(gh_car (s));
+
+ SCM sym = elt->get_grob_property ("break-align-symbol");
+ if (gh_symbol_p (sym))
+ {
+ rsym = sym;
+ break;
+ }
+ }
if (rsym == ly_symbol2scm("left-edge"))
edge_idx = next_idx;
offsets[next_idx] = extents[idx][RIGHT] + distance;
else if (type == ly_symbol2scm("minimum-space"))
offsets[next_idx] = extents[idx][RIGHT] >? distance;
-
+
idx = next_idx;
}
#include "item.hh"
#include "spanner.hh"
+#include "paper-column.hh"
+extern "C" {
// thanks to GDBs wonderful casting abilities, we need these:
Item*
to_item (Grob* g)
{
return dynamic_cast<Spanner*> (g);
}
+
+Paper_column*
+to_pc (Grob* g)
+{
+ return dynamic_cast<Paper_column*> (g);
+}
+}