]> git.donarmstrong.com Git - lilypond.git/commitdiff
Implement rounded-box whiteout style
authorPaul Morris <paulwmorris@gmail.com>
Thu, 26 Nov 2015 13:11:37 +0000 (08:11 -0500)
committerJames Lowe <pkx166h@gmail.com>
Fri, 4 Dec 2015 17:41:19 +0000 (17:41 +0000)
Documentation/changes.tely
input/regression/whiteout-lower-layers.ly
input/regression/whiteout.ly
scm/define-grob-properties.scm
scm/define-markup-commands.scm
scm/stencil.scm

index bc0807624b36f11ceefc38ec9f3f99a3f94f8bc8..24e973e4fd4c89d5ac438acf377c8376593eb5c0 100644 (file)
@@ -96,19 +96,28 @@ mus = \relative { c'4 cih d dih }
 @end lilypond
 
 @item
-A new style of whiteout that approximates the contours of a glyph's
-outline is now available using @code{whiteout-style}.  The shape of the
-white background is produced from multiple displaced copies of the
-glyph.  The @code{thickness} of both the new @code{outline} style and
-the default @code{box} style, as a multiple of staff-line thickness, can
-be customized.
+Two new styles of whiteout are now available.  The @code{outline} style
+approximates the contours of a glyph's outline, and its shape is
+produced from multiple displaced copies of the glyph.  The
+@code{rounded-box} style produces a rounded rectangle shape.  For all
+three styles, including the default @code{box} style, the whiteout
+shape's @code{thickness}, as a multiple of staff-line thickness, can be
+customized.
+
 @lilypond[verbatim,quote]
 \markup {
   \combine
     \filled-box #'(-1 . 15) #'(-3 . 4) #1
-    \override #'(thickness . 2)
+    \override #'(thickness . 3)
     \whiteout whiteout-box
 }
+\markup {
+  \combine
+    \filled-box #'(-1 . 24) #'(-3 . 4) #1
+    \override #'(style . rounded-box)
+    \override #'(thickness . 3)
+    \whiteout whiteout-rounded-box
+}
 \markup {
   \combine
     \filled-box #'(-1 . 18) #'(-3 . 4) #1
index 8549cbc783cde5c2ded54ea5550cc04749ca04ab..15c59e5770b04eee6afea06de97cfcbfec19078b 100644 (file)
@@ -10,23 +10,35 @@ TimeSignature whites out the Tie but not the StaffSymbol.
 
 \relative {
   \time 3/4
-  \override Staff.StaffSymbol.layer = #4
-  \once \override Tie.layer = #2
+  \override Staff.StaffSymbol.layer = 4
+  \once \override Tie.layer = 2
   b'2.~
   \once \override Staff.TimeSignature.whiteout = ##t
-  \once \override Staff.TimeSignature.layer = #3
+  \once \override Staff.TimeSignature.layer = 3
   \time 5/4
   b4
 }
 
 \relative c' {
   \time 3/4
-  \override Staff.StaffSymbol.layer = #4
-  \once \override Tie.layer = #2
+  \override Staff.StaffSymbol.layer = 4
+  \once \override Tie.layer = 2
+  b'2.~
+  \once \override Staff.TimeSignature.whiteout-style = #'rounded-box
+  \once \override Staff.TimeSignature.whiteout = 3
+  \once \override Staff.TimeSignature.layer = 3
+  \time 5/4
+  b4
+}
+
+\relative c' {
+  \time 3/4
+  \override Staff.StaffSymbol.layer = 4
+  \once \override Tie.layer = 2
   b'2.~
   \once \override Staff.TimeSignature.whiteout-style = #'outline
-  \once \override Staff.TimeSignature.whiteout = #3
-  \once \override Staff.TimeSignature.layer = #3
+  \once \override Staff.TimeSignature.whiteout = 3
+  \once \override Staff.TimeSignature.layer = 3
   \time 5/4
   b4
 }
index 7e10de9727be00498a693859cd563d77fe025808..543d94f369da04536a8fc13c3a88a0466871fac4 100644 (file)
@@ -2,8 +2,9 @@
 
   texidoc = "The whiteout command underlays a white background under a
 markup.  The shape is determined by @code{whiteout-style}. The default
-is @code{box} which produces a white rectangle.  @code{outline}
-approximates the outline of the markup."
+is @code{box} which produces a rectangle.  @code{rounded-box} produces
+a rounded rectangle.  @code{outline} approximates the outline of the
+markup."
 
 }
 \version "2.19.32"
@@ -25,7 +26,13 @@ approximates the outline of the markup."
   c
   c-\markup {
     \override #'(thickness . 3)
-    \override #'(whiteout-style . outline)
+    \override #'(style . rounded-box)
+    \whiteout foo
+  }
+  c
+  c-\markup {
+    \override #'(thickness . 3)
+    \override #'(style . outline)
     \whiteout foo
   }
   c
index db5b2e1d7bec55f5dc93a7d0183144327481ddd2..5017128901456d5f4f5521df8718852dbae200f8 100644 (file)
@@ -1148,8 +1148,8 @@ extends beyond the bounding box of the grob as a multiple of the
 staff-line thickness.  The shape of the background is determined by
 @code{whiteout-style}.  Usually @code{#f} by default.")
      (whiteout-style ,symbol? "Determines the shape of the
-@code{whiteout} background.  Available are @code{'outline} and the
-default @code{'box}.")
+@code{whiteout} background.  Available are @code{'outline},
+@code{'rounded-box}, and the default @code{'box}.")
      (width ,ly:dimension? "The width of a grob measured in staff
 space.")
      (word-space ,ly:dimension? "Space to insert between words in
index 67bc76c3a044104d087f549d8302b900869de969..362080ed9b8d72a1ede07d5d13911296b6823e9a 100644 (file)
@@ -818,8 +818,9 @@ Rotate object with @var{ang} degrees around its center.
 
 Provide a white background for @var{arg}.  The shape of the white
 background is determined by @code{style}.  The default
-is @code{box} which produces a white rectangle.  @code{outline}
-approximates the outline of the markup.
+is @code{box} which produces a rectangle.  @code{rounded-box}
+produces a rounded rectangle.  @code{outline} approximates the
+outline of the markup.
 
 @lilypond[verbatim,quote]
 \\markup {
@@ -828,6 +829,13 @@ approximates the outline of the markup.
     \\override #'(thickness . 1.5)
     \\whiteout whiteout-box
 }
+\\markup {
+  \\combine
+    \\filled-box #'(-1 . 24) #'(-3 . 4) #1
+    \\override #'(style . rounded-box)
+    \\override #'(thickness . 3)
+    \\whiteout whiteout-rounded-box
+}
 \\markup {
   \\combine
     \\filled-box #'(-1 . 18) #'(-3 . 4) #1
index d2fad841cbd589d70297b49bc414e479a4a53381..d76c84810010040675eca97d9408b9a13e1a4ea1 100644 (file)
@@ -852,10 +852,14 @@ by the user, an appropriate default is chosen based on @var{style}."
   (let ((thick (* line-thickness
                  (if (number? thickness)
                      thickness
-                     (if (eq? style 'outline) 3 0)))))
-    (if (eq? style 'outline)
-        (stencil-whiteout-outline stil thick)
-        (stencil-whiteout-box stil thick))))
+                     (cond
+                      ((eq? style 'outline) 3)
+                      ((eq? style 'rounded-box) 3)
+                      (else 0))))))
+    (cond
+     ((eq? style 'outline) (stencil-whiteout-outline stil thick))
+     ((eq? style 'rounded-box) (stencil-whiteout-box stil thick (* 2 thick)))
+     (else (stencil-whiteout-box stil thick)))))
 
 (define-public (arrow-stencil-maker start? end?)
   "Return a function drawing a line from current point to @code{destination},