- if (str == "")
- {
- return Lookup::blank (Box (Interval (0, 0), Interval (-h / 2, h / 2)));
- }
- else if (str == "|")
- {
- return thin;
- }
- else if (str == "|." || (h == 0 && str == ":|"))
- {
- m.add_at_edge (X_AXIS, LEFT, thick, 0, 0);
- m.add_at_edge (X_AXIS, LEFT, thin, kern, 0);
- }
- else if (str == ".|" || (h == 0 && str == "|:"))
- {
- m.add_at_edge (X_AXIS, RIGHT, thick, 0, 0);
- m.add_at_edge (X_AXIS, RIGHT, thin, kern, 0);
- }
- else if (str == ":|")
- {
- m.add_at_edge (X_AXIS, LEFT, thick, 0, 0);
- m.add_at_edge (X_AXIS, LEFT, thin, kern, 0);
- m.add_at_edge (X_AXIS, LEFT, colon, kern, 0);
- }
- else if (str == "|:")
- {
- m.add_at_edge (X_AXIS, RIGHT, thick, 0, 0);
- m.add_at_edge (X_AXIS, RIGHT, thin, kern, 0);
- m.add_at_edge (X_AXIS, RIGHT, colon, kern, 0);
- }
- else if (str == ":|:")
- {
- m.add_at_edge (X_AXIS, LEFT, thick, thinkern, 0);
- m.add_at_edge (X_AXIS, LEFT, colon, kern, 0);
- m.add_at_edge (X_AXIS, RIGHT, thick, kern, 0);
- m.add_at_edge (X_AXIS, RIGHT, colon, kern, 0);
- }
- else if (str == ".|.")
- {
- m.add_at_edge (X_AXIS, LEFT, thick, thinkern, 0);
- m.add_at_edge (X_AXIS, RIGHT, thick, kern, 0);
- }
- else if (str == "||")
- {
- /*
- should align to other side? this never appears
- on the system-start?
- */
- m.add_at_edge (X_AXIS, RIGHT, thin, 0, 0);
- m.add_at_edge (X_AXIS, RIGHT, thin, thinkern, 0);
- }
- else if (str == ":")
- {
- int c = (Staff_symbol_referencer::line_count (me));
-
- for (int i = 0; i < c - 1; i++)
- {
- Real y = (- (c - 1.0) / 2 + 0.5 + i * staff_space);
- Stencil d (dot);
-
- d.translate_axis (y, Y_AXIS);
- m.add_stencil (d);
- }
- }
- return m;
-}
-
-Stencil
-Bar_line::simple_barline (Grob *me,
- Real w,
- Real h,
- bool rounded)