]> git.donarmstrong.com Git - lilypond.git/commitdiff
* scm/output-lib.scm (make-stencil-boxer): Junk code duplication,
authorJan Nieuwenhuizen <janneke@gnu.org>
Wed, 30 Mar 2005 12:22:10 +0000 (12:22 +0000)
committerJan Nieuwenhuizen <janneke@gnu.org>
Wed, 30 Mar 2005 12:22:10 +0000 (12:22 +0000)
use box-stencil.  Remove y-padding argument.
(make-stencil-circler): New function.

* scm/stencil.scm (make-circle-stencil): New function.

* scm/stencil.scm (circle-stencil): New function.

ChangeLog
Documentation/topdocs/NEWS.tely
input/regression/bar-number.ly
input/regression/rehearsal-mark-number.ly
input/test/bar-number-regular-interval.ly
input/test/boxed-stencil.ly
scm/output-lib.scm
scm/stencil.scm

index b0e1c0b343cf506ed500df439472c0245efe6a97..283ed8631bb95c57793267ea8088bcc3d260500b 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,9 @@
 2005-03-30  Jan Nieuwenhuizen  <janneke@gnu.org>
 
+       * scm/output-lib.scm (make-stencil-boxer): Junk code duplication,
+       use box-stencil.  Remove y-padding argument.
+       (make-stencil-circler): New function.
+
        * buildscripts/lilypond-words.py (F): 
        * elisp/SConscript (a): 
        * elisp/GNUmakefile (LILYPOND_WORDS_DEPENDS):
index 1205ac00eee9c16e550fa544827576e53accbb71..b2d3a33272c8cc7a79dbb628e3cb544a818d9099 100644 (file)
@@ -24,14 +24,30 @@ See user manual, \NAME\
 @documentencoding utf-8
 @documentlanguage en
 
-@node Top, , , 
+@node Top
 @top
 @unnumbered New features in 2.5 since 2.4
 
 
 @itemize @bullet
 @item
-String numbers are now printed on chords as well,
+A new @code{\circle} markup command allows for all kinds of circled texts
+
+@lilypond[relative,relative=2,raggedright,fragment]
+c1            
+\set Score.markFormatter
+  = #(lambda (mark context)
+             (make-circle-markup (format-mark-numbers mark context)))
+\mark \default
+c2 d^\markup{\circle \finger "2"}
+\override Score.BarNumber #'break-visibility = #all-visible
+\override Score.BarNumber #'print-function
+  = #(make-stencil-circler 0.1 0.25 Text_interface::print)
+@end lilypond
+
+
+@item
+String numbers are now printed on chords as well
 
 @lilypond[relative,relative=1,raggedright,fragment,verbatim]
 <c\1 e\2 g\3>
index d5869cd2d217147b4ff9001ce5a58e0f2980b44d..2d3b9751a05325d04ab0da69faa796f83d00e0ab 100644 (file)
@@ -12,19 +12,15 @@ be increased.
 
 }
 
-\score {
-   \relative c'' {
-      \partial 4 c4 
-      c1 c c
-      \set Score.currentBarNumber = #99999
-      \override Score.BarNumber  #'padding = #3
-      c1 c
-  }
-  \layout {
-    raggedright = ##t
-    \context {
-       \Score
-       \override BarNumber #'break-visibility = #all-visible
-    }
-  }
+\layout {
+  raggedright = ##t
+}
+
+\relative c'' {
+  \override Score.BarNumber #'break-visibility = #all-visible
+  \partial 4 c4 
+  c1 c c
+  \set Score.currentBarNumber = #99999
+  \override Score.BarNumber  #'padding = #3
+  c1 c
 }
index aa44376fd37b935f6fc9a18cd8b6a4bfbf856146..e6c1e3550d2e353e3d2a2fcfb2ed650a5c139595 100644 (file)
@@ -6,17 +6,18 @@ By setting @code{markFormatter} we may choose a different style of mark printing
       }
 
 \version "2.4.0"
-\score {
-   \relative c''{
-    \set Score.markFormatter = #format-mark-numbers 
+\relative c''{
+  \set Score.markFormatter = #format-mark-numbers 
   c1 | \mark \markup { \musicglyph #"scripts-coda" }
   c1 | \mark \default
   c1 | \mark \default
-    \set Score.markFormatter = #(lambda (mark  context)
-       (make-box-markup (format-mark-numbers mark context)))
-       
-    c1 | \mark \default
-    c1 | \mark \default
-  }
+  \set Score.markFormatter
+  = #(lambda (mark  context)
+      (make-box-markup (format-mark-numbers mark context)))
+  c1 | \mark \default
+  \set Score.markFormatter
+  = #(lambda (mark  context)
+      (make-circle-markup (format-mark-numbers mark context)))
+  c1 | \mark \default
 }
 
index afb7fbce51579afc8351d09d774df823b8a1f323..e5062be39cc30bb1b8f42f9d60f6463a0e95d477 100644 (file)
@@ -1,22 +1,24 @@
 \header {
     texidoc = "
 
-Bar numbers can also be printed inside boxes.
+Bar numbers can be printed at regular intervals, inside a box or a circle.
 
 " }
 
 \version "2.4.0"
 
-\score {
-    \context Staff  \transpose  c c' {
-       \override Score.BarNumber  #'break-visibility = #end-of-line-invisible
-       \set Score.barNumberVisibility = #(every-nth-bar-number-visible 4)
-       \override Score.BarNumber  #'print-function =
-       #(make-stencil-boxer 0.1 0.25 0.25 Text_interface::print)
-       \override Score.BarNumber  #'font-size = #2
-       
-       \repeat unfold 9 { c1 } \bar "|."
-    }
+\relative c'{
+   \override Score.BarNumber  #'break-visibility = #end-of-line-invisible
+   \set Score.barNumberVisibility = #(every-nth-bar-number-visible 4)
+   \override Score.BarNumber #'font-size = #2
+
+   \override Score.BarNumber #'print-function
+   = #(make-stencil-boxer 0.1 0.25 Text_interface::print)
+   \repeat unfold 5 { c1 } \bar "|"
+
+   \override Score.BarNumber #'print-function
+   = #(make-stencil-circler 0.1 0.25 Text_interface::print)
+   \repeat unfold 4 { c1 } \bar "|."
 }
 
 
index 35b698ab6fc82c2b392e59542297e82afea0aa7a..70aa54b3d87f1e370b9efc1c878c04c3eb344cdc 100644 (file)
@@ -10,15 +10,15 @@ grob. " }
  \score {  \relative c''  {
 
  \override TextScript  #'print-function =
-   #(make-stencil-boxer 0.1 0.3 0.2 Text_interface::print)
+   #(make-stencil-boxer 0.1 0.3 Text_interface::print)
 
    c'4^"foo"
 
 \override Stem  #'print-function =
-   #(make-stencil-boxer 0.05 0.25 0.25 Stem::print)
+   #(make-stencil-boxer 0.05 0.25 Stem::print)
 
 \override Score.RehearsalMark  #'print-function =
-   #(make-stencil-boxer 0.15 0.3 0.3 Text_interface::print)
+   #(make-stencil-boxer 0.15 0.3 Text_interface::print)
       b8
 \revert Stem #'print-function
 
index fa3659f4055b3be4386fffd682ec321830c46994..6adb53fcfb1bf21c6846240011b41dafef75050a 100644 (file)
 
 ;;; end of tablature functions
 
+(define-public (make-stencil-boxer thickness padding callback)
+  "Return function that adds a box around the grob passed as argument."
+  (lambda (grob) (box-stencil (callback grob) thickness padding)))
 
-(define-public (make-stencil-boxer line-thick x-padding y-padding callback)
-  "Makes a routine that adds a box around the grob parsed as argument"
-  (define (stencil-boxer grob)
-    (let* ((mol (callback grob))
-          (x-ext (interval-widen (ly:stencil-extent mol 0) x-padding))
-          (y-ext (interval-widen (ly:stencil-extent mol 1) y-padding))
-          (x-rule (make-filled-box-stencil (interval-widen x-ext line-thick)
-                                           (cons 0 line-thick)))
-          (y-rule (make-filled-box-stencil (cons 0 line-thick) y-ext)))
-      
-      (set! mol (ly:stencil-combine-at-edge mol 0 1 y-rule x-padding))
-      (set! mol (ly:stencil-combine-at-edge mol 0 -1 y-rule x-padding))
-      (set! mol (ly:stencil-combine-at-edge mol 1 1 x-rule 0))  
-      (set! mol (ly:stencil-combine-at-edge mol 1 -1 x-rule 0))
-      mol))
-  stencil-boxer)
+(define-public (make-stencil-circler thickness padding callback)
+  "Return function that adds a box around the grob passed as argument."
+  (lambda (grob) (circle-stencil (callback grob) thickness padding)))
 
 (define-public (arg->string arg)
   (cond ((number? arg) (ly:inexact->string arg 10))
index 70b65dce988fbc7b136a49cc7421a03399bc9389..8b193ce15d290c043f78d99006179ff3f5ca6185 100644 (file)
@@ -79,13 +79,13 @@ encloses the contents.
      (make-filled-box-stencil (cons (- (car xext) thick) (car xext)) yext))))
 
 ;; TODO merge this and prev function. 
-(define-public (box-stencil stencil thick padding)
+(define-public (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 thick) y-ext))
+        (y-rule (make-filled-box-stencil (cons 0 thickness) y-ext))
         (x-rule (make-filled-box-stencil
-                 (interval-widen x-ext thick) (cons 0 thick))))
+                 (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))  
@@ -98,7 +98,7 @@ encloses the contents.
         (y-ext (ly:stencil-extent stencil 1))
         (diameter (max (- (cdr x-ext) (car x-ext))
                        (- (cdr y-ext) (car y-ext))))
-        (radius (+ (/ diameter 2) padding)))
+        (radius (+ (/ diameter 2) padding thickness)))
     (ly:stencil-add
      (centered-stencil stencil) (make-circle-stencil radius thickness))))