predefined break-visibilities.
* lily/item.cc (handle_prebroken_dependencies): use a vector of 3
booleans for break-visibility.
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.
/*
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);
}
}
ly_to_string (SCM scm)
{
return scm_call_3 (ly_lily_module_constant ("format"), SCM_BOOL_F,
+
scm_makfrom0str ("~S"), scm);
}
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 ());
(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
(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.