From b3abe085e575c10d59505df976ad91e0722863c2 Mon Sep 17 00:00:00 2001 From: Han-Wen Nienhuys Date: Mon, 9 Oct 2006 12:19:28 +0000 Subject: [PATCH] * scm/stencil.scm (circle-stencil): don't center stencil argument, instead: move circle. * scm/define-grobs.scm (all-grob-descriptions): set allow-loose-spacing for PaperColumn and NonMusicalPaperColumn. * lily/spacing-determine-loose-columns.cc (is_loose_column): allow-loose-spacing property. * scm/define-markup-commands.scm (postscript): gsave & grestore around embedded PS. Do setlinewidth too. Fixes #109. --- ChangeLog | 3 +++ scm/define-grobs.scm | 38 ++++++++++++++++++---------------- scm/define-markup-commands.scm | 1 + scm/stencil.scm | 11 ++++++++-- 4 files changed, 33 insertions(+), 20 deletions(-) diff --git a/ChangeLog b/ChangeLog index 0a1fdbe851..9031ef9a71 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,8 @@ 2006-10-09 Han-Wen Nienhuys + * scm/stencil.scm (circle-stencil): don't center stencil argument, + instead: move circle. + * scm/define-grobs.scm (all-grob-descriptions): set allow-loose-spacing for PaperColumn and NonMusicalPaperColumn. diff --git a/scm/define-grobs.scm b/scm/define-grobs.scm index f35f29d59c..be8462be0a 100644 --- a/scm/define-grobs.scm +++ b/scm/define-grobs.scm @@ -1017,6 +1017,26 @@ font-interface text-interface)))))) + (NonMusicalPaperColumn + . ( + (allow-loose-spacing . #t) + (axes . (0)) + (before-line-breaking . ,ly:paper-column::before-line-breaking) + (X-extent . ,ly:axis-group-interface::width) + ;; (stencil . ,ly:paper-column::print) + + (non-musical . #t) + (line-break-permission . allow) + (page-break-permission . allow) + + ;; debugging stuff: print column number. + ;; (font-size . -6) (font-name . "sans") (Y-extent . #f) + + (meta . ((class . Paper_column) + (interfaces . (paper-column-interface + axis-group-interface + spaceable-grob-interface)))))) + (NoteCollision . ( (axes . (0 1)) @@ -1151,25 +1171,7 @@ (meta . ((class . Spanner) (interfaces . (slur-interface)))))) - (NonMusicalPaperColumn - . ( - (allow-loose-spacing . #t) - (axes . (0)) - (before-line-breaking . ,ly:paper-column::before-line-breaking) - (X-extent . ,ly:axis-group-interface::width) - ;; (stencil . ,ly:paper-column::print) - - (non-musical . #t) - (line-break-permission . allow) - (page-break-permission . allow) - - ;; debugging stuff: print column number. - ;; (font-size . -6) (font-name . "sans") (Y-extent . #f) - (meta . ((class . Paper_column) - (interfaces . (paper-column-interface - axis-group-interface - spaceable-grob-interface)))))) (PercentRepeat . ( diff --git a/scm/define-markup-commands.scm b/scm/define-markup-commands.scm index 03413d128f..e6d16ce558 100644 --- a/scm/define-markup-commands.scm +++ b/scm/define-markup-commands.scm @@ -55,6 +55,7 @@ optionally filled." "Draw a circle around @var{arg}. Use @code{thickness}, @code{circle-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 diff --git a/scm/stencil.scm b/scm/stencil.scm index f39328984b..b2d425e6ea 100644 --- a/scm/stencil.scm +++ b/scm/stencil.scm @@ -100,9 +100,16 @@ 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 thickness))) + (radius (+ (/ diameter 2) padding thickness)) + (circle (make-circle-stencil radius thickness #f))) + (ly:stencil-add - (centered-stencil stencil) (make-circle-stencil radius thickness #f)))) + stencil + (ly:stencil-translate circle + (cons + (interval-center x-ext) + (interval-center y-ext)))))) + (define-public (fontify-text font-metric text) "Set TEXT with font FONT-METRIC, returning a stencil." -- 2.39.2