From 4bc8a49fe42171a2dc5476d9721628eec78503f0 Mon Sep 17 00:00:00 2001 From: Jan Nieuwenhuizen Date: Sat, 11 Dec 2004 18:36:40 +0000 Subject: [PATCH] * lily/font-metric.cc (ly:font-get-glyph-index): New function. * scm/output-gnome.scm (named-glyph): Use it. * scm/lily.scm (ly:all-stencil-expressions): Add named-glyph. --- ChangeLog | 6 ++++++ lily/font-metric.cc | 12 ++++++++++++ scm/font.scm | 2 +- scm/lily.scm | 1 + scm/output-gnome.scm | 7 ++++--- 5 files changed, 24 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index ef7e2641f1..6ce1039a16 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,11 @@ 2004-12-11 Jan Nieuwenhuizen + * lily/font-metric.cc (ly:font-get-glyph-index): New function. + + * scm/output-gnome.scm (named-glyph): Use it. + + * scm/lily.scm (ly:all-stencil-expressions): Add named-glyph. + * flower/string.cc (substitute_char): Rename, rewrite, modify this. (upper_string, lower_string, reverse_string): Remove. diff --git a/lily/font-metric.cc b/lily/font-metric.cc index 0bf62ae2a0..0bfbca0ade 100644 --- a/lily/font-metric.cc +++ b/lily/font-metric.cc @@ -161,6 +161,18 @@ LY_DEFINE (ly_get_glyph, "ly:get-glyph", return fm->get_ascii_char_stencil (scm_to_int (index)).smobbed_copy (); } +LY_DEFINE (ly_font_get_glyph_index, "ly:font-get-glyph-index", + 2, 0, 0, + (SCM font, SCM name), + "Return the index for @{name} in @var{font}.") +{ + Font_metric *fm = unsmob_metrics (font); + SCM_ASSERT_TYPE (fm, font, SCM_ARG1, __FUNCTION__, "font-metric"); + SCM_ASSERT_TYPE (scm_is_string (name), name, SCM_ARG2, __FUNCTION__, "string"); + + return scm_from_int (fm->name_to_index (ly_scm2string (name))); +} + LY_DEFINE (ly_text_dimension,"ly:text-dimension", 2, 0, 0, (SCM font, SCM text), diff --git a/scm/font.scm b/scm/font.scm index c804c7a77b..ed52fb0613 100644 --- a/scm/font.scm +++ b/scm/font.scm @@ -182,7 +182,7 @@ ,(delay (ly:make-virtual-font (ly:font-load "feta20") (ly:font-load "parmesan20"))) -; ,(delay (ly:make-virtual-font (ly:font-load "bigcheese20"))) + ,(delay (ly:make-virtual-font (ly:font-load "bigcheese20"))) ,(delay (ly:make-virtual-font (ly:font-load "feta23") (ly:font-load "parmesan23"))) diff --git a/scm/lily.scm b/scm/lily.scm index 074fa58e4c..e7ee977ce8 100644 --- a/scm/lily.scm +++ b/scm/lily.scm @@ -128,6 +128,7 @@ predicates. Print a message at LOCATION if any predicate failed." ez-ball filledbox horizontal-line + named-glyph polygon repeat-slash round-filled-box diff --git a/scm/output-gnome.scm b/scm/output-gnome.scm index 1ce2965e5d..9a7af133c4 100644 --- a/scm/output-gnome.scm +++ b/scm/output-gnome.scm @@ -315,14 +315,15 @@ lilypond -fgnome input/simple-song.ly (lineto def tx (- ty)) (set-path-def props def) props)) - (define (list->offsets accum coords) (if (null? coords) accum (cons (cons (car coords) (cadr coords)) - (list->offsets accum (cddr coords)) - ))) + (list->offsets accum (cddr coords))))) + +(define (named-glyph font name) + (text font (integer->char (ly:font-get-glyph-index font name)))) (define (polygon coords blotdiameter) (let* -- 2.39.5