public:
DECLARE_SCHEME_CALLBACK(brew_molecule, (SCM ));
static Molecule ledger_line (Interval, Grob*) ;
+ DECLARE_SCHEME_CALLBACK(brew_ez_molecule, (SCM ));
static bool has_interface (Grob*);
+
};
#endif // NOTEHEAD_HH
{
return m&& m->has_interface (ly_symbol2scm ("note-head-interface"));
}
+
+
+MAKE_SCHEME_CALLBACK(Note_head,brew_ez_molecule,1);
+
+SCM
+Note_head::brew_ez_molecule (SCM smob)
+{
+ Grob *me = unsmob_grob (smob);
+ int l = gh_scm2int (me->get_grob_property ("duration-log"));
+
+ int b = (l >= 2);
+ SCM at = gh_list (ly_symbol2scm ("ez-ball"),
+ me->get_grob_property ("note-character"),
+ gh_int2scm (b),
+ gh_int2scm (1-b),
+ SCM_UNDEFINED);
+ Box bx (Interval (0, 1.0), Interval (-0.5, 0.5));
+ Molecule m (bx, at);
+
+ return m.smobbed_copy ();
+}
;;; Han-Wen Nienhuys <hanwen@cs.uu.nl>
+
+;;
+;; todo: this dispatch is totally LAME
+
(define (tex-scm action-name)
(define (unknown)
"%\n\\unknown%\n")
(number->string (inexact->exact (* 1000 (cdr name-mag))))
"\n"))
+ (define (ez-ball c l b)
+ (embedded-ps ((ps-scm 'ez-ball) c l b)))
(define (embedded-ps s)
(string-append "\\embeddedps{" s "}"))
(define font-switch ,font-switch)
(define header-end ,header-end)
(define lily-def ,lily-def)
+ (define ez-ball ,ez-ball)
(define header ,header)
(define invoke-char ,invoke-char)
(define invoke-dim1 ,invoke-dim1)