Grob *me = unsmob_grob (smob);
Grob *tie = unsmob_grob (me->get_object ("tie"));
- if (tie && !tie->original ())
- me->suicide ();
+ if (tie && !tie->original ()
+ && !to_boolean (me->get_property ("forced")))
+ {
+ me->suicide ();
+ }
+
return SCM_UNSPECIFIED;
}
-std::vector<Box>
+vector<Box>
Accidental_interface::accurate_boxes (Grob *a, Grob **common)
{
Box b;
b[X_AXIS] = a->extent (a, X_AXIS);
b[Y_AXIS] = a->extent (a, Y_AXIS);
- std::vector<Box> boxes;
+ vector<Box> boxes;
bool parens = false;
if (to_boolean (a->get_property ("cautionary")))
/*
todo: this sort of stuff in Scheme. --hwn.
*/
-std::string
-Accidental_interface::get_fontcharname (std::string style, int alteration)
+string
+Accidental_interface::get_fontcharname (string style, int alteration)
{
if (alteration == DOUBLE_FLAT
|| alteration == DOUBLE_SHARP)
}
SCM scm_style = me->get_property ("style");
- std::string style;
+ string style;
if (scm_is_symbol (scm_style))
style = ly_symbol2string (scm_style);
else
scm_is_pair (s); s = scm_cdr (s))
{
int alteration = scm_to_int (scm_car (s));
- std::string font_char = get_fontcharname (style, alteration);
+ string font_char = get_fontcharname (style, alteration);
Stencil acc (fm->find_by_name ("accidentals." + font_char));
if (acc.is_empty ())
/*
TODO: should move avoid-slur into item?
*/
-ADD_INTERFACE (Accidental_interface, "accidental-interface",
+ADD_INTERFACE (Accidental_interface,
"a single accidental",
"accidentals "
"avoid-slur "
"cautionary "
"cautionary-style "
+ "forced "
"style "
"tie "
);