]> git.donarmstrong.com Git - lilypond.git/blobdiff - Documentation/snippets/three-sided-box.ly
Docs: run convert-ly for 2.14.0.
[lilypond.git] / Documentation / snippets / three-sided-box.ly
index eaa321a8b186c472d85cdc66b13c3d67a0e52bff..a758cb3e580f985b9a574f440f55d6b9b2af6c81 100644 (file)
@@ -1,6 +1,10 @@
-%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
+%% DO NOT EDIT this file manually; it is automatically
+%% generated from LSR http://lsr.dsi.unimi.it
+%% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
+%% and then run scripts/auxiliar/makelsr.py
+%%
 %% This file is in the public domain.
-\version "2.13.1"
+\version "2.14.0"
 
 \header {
   lsrtags = "rhythms, text"
@@ -15,38 +19,37 @@ around some text (or other markup).
 
 % New command to add a three sided box, with sides north, west and south
 % Based on the box-stencil command defined in scm/stencil.scm
-% Note that ";" is used to comment a line in Scheme
+% Note that ";;" is used to comment a line in Scheme
 #(define-public (NWS-box-stencil stencil thickness padding)
-  "Add a box around STENCIL, producing a new stencil."
-  (let* ((x-ext (interval-widen (ly:stencil-extent stencil 0) padding))
-         (y-ext (interval-widen (ly:stencil-extent stencil 1) padding))
-         (y-rule (make-filled-box-stencil (cons 0 thickness) y-ext))
-         (x-rule (make-filled-box-stencil
-                  (interval-widen x-ext thickness) (cons 0 thickness))))
-;    (set! stencil (ly:stencil-combine-at-edge stencil X 1 y-rule padding))
-    (set! stencil (ly:stencil-combine-at-edge stencil X -1 y-rule padding))
-    (set! stencil (ly:stencil-combine-at-edge stencil Y 1 x-rule 0.0))
-    (set! stencil (ly:stencil-combine-at-edge stencil Y -1 x-rule 0.0))
-    stencil))
-
-% The corresponding markup command, based on the \box command defined 
+   "Add a box around STENCIL, producing a new stencil."
+   (let* ((x-ext (interval-widen (ly:stencil-extent stencil X) padding))
+          (y-ext (interval-widen (ly:stencil-extent stencil Y) padding))
+          (y-rule (make-filled-box-stencil (cons 0 thickness) y-ext))
+          (x-rule (make-filled-box-stencil
+                   (interval-widen x-ext thickness) (cons 0 thickness))))
+     ;; (set! stencil (ly:stencil-combine-at-edge stencil X 1 y-rule padding))
+     (set! stencil (ly:stencil-combine-at-edge stencil X LEFT y-rule padding))
+     (set! stencil (ly:stencil-combine-at-edge stencil Y UP x-rule 0.0))
+     (set! stencil (ly:stencil-combine-at-edge stencil Y DOWN x-rule 0.0))
+     stencil))
+
+% The corresponding markup command, based on the \box command defined
 % in scm/define-markup-commands.scm
 #(define-markup-command (NWS-box layout props arg) (markup?)
-  "Draw a box round @var{arg}.  Looks at @code{thickness},
+   "Draw a box round @var{arg}.  Looks at @code{thickness},
 @code{box-padding} and @code{font-size} properties to determine line
-thickness and padding around the markup."  
-  (let* ((th (chain-assoc-get 'thickness props  0.1))
-         (size (chain-assoc-get 'font-size props 0))
-         (pad (* (magstep size)
-                 (chain-assoc-get 'box-padding props 0.2)))
-         (m (interpret-markup layout props arg)))
-    (NWS-box-stencil m th pad)))
+thickness and padding around the markup."
+   (let* ((th (chain-assoc-get 'thickness props 0.1))
+          (size (chain-assoc-get 'font-size props 0))
+          (pad (* (magstep size)
+                  (chain-assoc-get 'box-padding props 0.2)))
+          (m (interpret-markup layout props arg)))
+     (NWS-box-stencil m th pad)))
 
 % Test it:
 
-\layout { ragged-right = ##f }
 \relative c' {
-  c2^\markup { \NWS-box ABCD }
-  c2^\markup { \NWS-box \note #"4" #1.0 }
+  c1^\markup { \NWS-box ABCD }
+  c1^\markup { \NWS-box \note #"4" #1.0 }
 }