]> git.donarmstrong.com Git - lilypond.git/commitdiff
* scm/output-lib.scm (begin-of-line-invisible): use vectors for
authorHan-Wen Nienhuys <hanwen@xs4all.nl>
Tue, 19 Jul 2005 00:04:11 +0000 (00:04 +0000)
committerHan-Wen Nienhuys <hanwen@xs4all.nl>
Tue, 19 Jul 2005 00:04:11 +0000 (00:04 +0000)
predefined break-visibilities.

* lily/item.cc (handle_prebroken_dependencies): use a vector of 3
booleans for break-visibility.

ChangeLog
lily/item.cc
lily/lily-guile.cc
lily/system.cc
scm/define-grob-properties.scm
scm/output-lib.scm

index 38db38d9c507b774516d6b154a28e2f3b657e5cd..d081ba64b31963a0760f3705f4d40a6963a7f08e 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,11 @@
 2005-07-19  Han-Wen Nienhuys  <hanwen@xs4all.nl>
 
+       * 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 fa591c9c5497170c3b402c98576cc36c984bb8b1..922faf0abd2041d62a85fcfc707eda5ed990d91f 100644 (file)
@@ -148,29 +148,14 @@ Item::handle_prebroken_dependencies ()
   /*
     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 500aa5d178957055539e95eb5d684400b2f103b6..2ebc9beee68be121b3f48410a2cd8cdd95324018 100644 (file)
@@ -41,6 +41,7 @@ SCM
 ly_to_string (SCM scm)
 {
   return scm_call_3 (ly_lily_module_constant ("format"), SCM_BOOL_F,
+
                     scm_makfrom0str ("~S"), scm);
 }
 
index 73e65dfeb386ef417952e7a8aab1523defb2d815..a69725d7019c72d375a8d66d23aeeabce95db9e0 100644 (file)
@@ -289,7 +289,7 @@ System::pre_processing ()
   
   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 99480d245ef301ab953dd0eadd2106e38d62b197..2a209d16cd43d3e3cb0da937c0c0ddefb8cf2c00 100644 (file)
@@ -463,13 +463,8 @@ tuplet bracket.")
      (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:
-@code{all-visible}, @code{begin-of-line-visible},
-@code{end-of-line-visible}, @code{begin-of-line-invisible},
-@code{end-of-line-invisible}, @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 52ccd660ad1660197d7cc52f44ad1d1da6cd5bd9..03556dc7c50617d01109c357fd18ee501d835ba1 100644 (file)
@@ -173,16 +173,19 @@ centered, X==1 is at the right, X == -1 is at the left."
 (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.