#include "system.hh"
#include "unpure-pure-container.hh"
#include "warn.hh"
+#include "lily-imports.hh"
Grob *
retval = *m;
bool transparent = to_boolean (get_property ("transparent"));
+ /* Process whiteout before color and grob-cause to prevent colored */
+ /* whiteout background and larger file sizes with \pointAndClickOn. */
+ /* A grob has to be visible, otherwise the whiteout property has no effect. */
+ /* Calls the scheme procedure stencil-whiteout in scm/stencils.scm */
+ if (!transparent && (scm_is_number (get_property("whiteout"))
+ || to_boolean (get_property ("whiteout"))))
+ {
+ Real thickness = robust_scm2double (get_property("whiteout"), 3.0)
+ * layout ()->get_dimension (ly_symbol2scm ("line-thickness"));
+ retval = *unsmob<Stencil>
+ (Lily::stencil_whiteout (retval.smobbed_copy (),
+ scm_from_double (thickness)));
+ }
+
+ /* Calls the scheme procedure stencil-whiteout-box in scm/stencils.scm */
+ if (!transparent && to_boolean (get_property ("whiteout-box")))
+ {
+ retval = *unsmob<Stencil>
+ (Lily::stencil_whiteout_box (retval.smobbed_copy ()));
+ }
+
if (transparent)
retval = Stencil (m->extent_box (), SCM_EOL);
else
{
- SCM expr = m->expr ();
- expr = scm_list_3 (ly_symbol2scm ("grob-cause"),
- self_scm (), expr);
+ SCM expr = scm_list_3 (ly_symbol2scm ("grob-cause"),
+ self_scm (),
+ retval.expr ());
- retval = Stencil (m->extent_box (), expr);
+ retval = Stencil (retval.extent_box (), expr);
}
SCM rot = get_property ("rotation");
retval = Stencil (retval.extent_box (), expr);
}
- /* process whiteout */
- /* a grob has to be visible, otherwise the whiteout property has no effect */
- if (!transparent && to_boolean (get_property ("whiteout")))
- {
- /* Call the scheme procedure stencil-whiteout in scm/stencils.scm */
- /* to add a round-filled-box stencil to the stencil list */
- retval
- = *unsmob<Stencil> (scm_call_1 (ly_lily_module_constant ("stencil-whiteout"),
- retval.smobbed_copy ()));
- }
-
SCM id = get_property ("id");
if (scm_is_string (id))
{
"transparent "
"vertical-skylines "
"whiteout "
+ "whiteout-box "
);
/****************************************************************