CVSROOT: /cvsroot/lilypond Module name: lilypond Branch: Changes by: Han-Wen Nienhuys <[EMAIL PROTECTED]> 05/07/19 00:04:11
Modified files: . : ChangeLog lily : item.cc lily-guile.cc system.cc scm : define-grob-properties.scm output-lib.scm Log message: * scm/output-lib.scm (begin-of-line-invisible): use vectors for predefined break-visibilities. * lily/item.cc (handle_prebroken_dependencies): use a vector of 3 booleans for break-visibility. CVSWeb URLs: http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/ChangeLog.diff?tr1=1.3887&tr2=1.3888&r1=text&r2=text http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/lily/item.cc.diff?tr1=1.116&tr2=1.117&r1=text&r2=text http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/lily/lily-guile.cc.diff?tr1=1.214&tr2=1.215&r1=text&r2=text http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/lily/system.cc.diff?tr1=1.108&tr2=1.109&r1=text&r2=text http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/scm/define-grob-properties.scm.diff?tr1=1.103&tr2=1.104&r1=text&r2=text http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/scm/output-lib.scm.diff?tr1=1.83&tr2=1.84&r1=text&r2=text Patches: Index: lilypond/ChangeLog diff -u lilypond/ChangeLog:1.3887 lilypond/ChangeLog:1.3888 --- lilypond/ChangeLog:1.3887 Mon Jul 18 23:41:58 2005 +++ lilypond/ChangeLog Tue Jul 19 00:04:11 2005 @@ -1,5 +1,11 @@ 2005-07-19 Han-Wen Nienhuys <[EMAIL PROTECTED]> + * scm/output-lib.scm (begin-of-line-invisible): use vectors for + predefined break-visibilities. + + * lily/item.cc (handle_prebroken_dependencies): use a vector of 3 + booleans for break-visibility. + * Documentation/topdocs/NEWS.tely (Top): add note about engravers. * python/convertrules.py (conv): rule for Timing_translator. Index: lilypond/lily/item.cc diff -u lilypond/lily/item.cc:1.116 lilypond/lily/item.cc:1.117 --- lilypond/lily/item.cc:1.116 Mon Jul 18 23:37:24 2005 +++ lilypond/lily/item.cc Tue Jul 19 00:04:11 2005 @@ -148,29 +148,14 @@ /* Can't do this earlier, because try_visibility_lambda () might set the elt property transparent, which would then be copied. - - TODO: - - give the item to break-visibility itself, so the function can do - more complicated things. */ SCM vis = get_property ("break-visibility"); - if (ly_is_procedure (vis)) + if (scm_is_vector (vis)) { - SCM args = scm_list_n (scm_int2num (break_status_dir ()), SCM_UNDEFINED); - SCM result = scm_apply_0 (vis, args); - bool trans = ly_scm2bool (scm_car (result)); - bool empty = ly_scm2bool (scm_cdr (result)); + bool visible = to_boolean (scm_vector_ref (vis, scm_from_int (break_status_dir () + 1))); - if (empty && trans) + if (!visible) suicide (); - else if (empty) - { - set_extent (SCM_EOL, X_AXIS); - set_extent (SCM_EOL, Y_AXIS); - } - else if (trans) - set_property ("print-function", SCM_EOL); } } Index: lilypond/lily/lily-guile.cc diff -u lilypond/lily/lily-guile.cc:1.214 lilypond/lily/lily-guile.cc:1.215 --- lilypond/lily/lily-guile.cc:1.214 Mon Jul 11 11:51:42 2005 +++ lilypond/lily/lily-guile.cc Tue Jul 19 00:04:11 2005 @@ -41,6 +41,7 @@ ly_to_string (SCM scm) { return scm_call_3 (ly_lily_module_constant ("format"), SCM_BOOL_F, + scm_makfrom0str ("~S"), scm); } Index: lilypond/lily/system.cc diff -u lilypond/lily/system.cc:1.108 lilypond/lily/system.cc:1.109 --- lilypond/lily/system.cc:1.108 Mon Jul 18 23:37:25 2005 +++ lilypond/lily/system.cc Tue Jul 19 00:04:11 2005 @@ -289,7 +289,7 @@ for (int i = 0 ; i < all_elements_->size(); i ++) { - Grob *e = all_elements_->grob (i); + Grob *e = all_elements_->grob (i); SCM proc = e->get_property ("spacing-procedure"); if (ly_is_procedure (proc)) scm_call_1 (proc, e->self_scm ()); Index: lilypond/scm/define-grob-properties.scm diff -u lilypond/scm/define-grob-properties.scm:1.103 lilypond/scm/define-grob-properties.scm:1.104 --- lilypond/scm/define-grob-properties.scm:1.103 Sat Jul 16 12:23:33 2005 +++ lilypond/scm/define-grob-properties.scm Tue Jul 19 00:04:11 2005 @@ -463,13 +463,8 @@ (number-visibility ,boolean-or-symbol? "Like @code{bracket-visibility}, but for the number.") - ;; FIXME. - (break-visibility ,procedure? "A function that takes the break -direction and returns a cons of booleans containing (@var{transparent} -. @var{empty}). The following variables are predefined: [EMAIL PROTECTED], @code{begin-of-line-visible}, [EMAIL PROTECTED], @code{begin-of-line-invisible}, [EMAIL PROTECTED], @code{all-invisible}.") + (break-visibility ,vector? "A vector of 3 booleans, #(end-of-line unbroken begin-of-line). +#t means visible, #f means killed.") (flag-count ,number? "The number of tremolo beams.") (when ,ly:moment? "Global time step associated with this column Index: lilypond/scm/output-lib.scm diff -u lilypond/scm/output-lib.scm:1.83 lilypond/scm/output-lib.scm:1.84 --- lilypond/scm/output-lib.scm:1.83 Sat Jul 16 12:23:33 2005 +++ lilypond/scm/output-lib.scm Tue Jul 19 00:04:11 2005 @@ -173,16 +173,19 @@ (define-public (default-bar-number-visibility barnum) (> barnum 1)) ;; See documentation of Item::visibility_lambda_ -(define-safe-public (begin-of-line-visible d) (if (= d 1) '(#f . #f) '(#t . #t))) -(define-safe-public (end-of-line-visible d) (if (= d -1) '(#f . #f) '(#t . #t))) -(define-safe-public (spanbar-begin-of-line-invisible d) (if (= d -1) '(#t . #t) '(#f . #f))) - -(define-safe-public (all-visible d) '(#f . #f)) -(define-safe-public (all-invisible d) '(#t . #t)) -(define-safe-public (begin-of-line-invisible d) (if (= d 1) '(#t . #t) '(#f . #f))) -(define-safe-public (center-invisible d) (if (= d 0) '(#t . #t) '(#f . #f))) -(define-safe-public (end-of-line-invisible d) (if (= d -1) '(#t . #t) '(#f . #f))) - +(define-public begin-of-line-visible + #(#f #f #t)) +(define-public end-of-line-visible + #(#t #f #f)) +(define-public end-of-line-invisible + #(#f #t #t)) +(define-public spanbar-begin-of-line-invisible + #(#t #f #f)) +(define-public all-visible #(#t #t #t)) +(define-public all-invisible #(#f #f #f)) +(define-public begin-of-line-invisible + #(#t #t #f)) +(define-public center-invisible #(#t #f #t)) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; Bar lines. _______________________________________________ Lilypond-cvs mailing list Lilypond-cvs@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-cvs