X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Ffont-metric-scheme.cc;h=19afdd698d337b1481e31328399c16a5c194a29e;hb=9e781b7dc83b60a543ce218aa1a5f139f74c760f;hp=b06d419b99e4342e52d5ca8b7f4bdd55ba3cfbc2;hpb=da12a3eb8e07ec4e910ead9f39f477920251190a;p=lilypond.git diff --git a/lily/font-metric-scheme.cc b/lily/font-metric-scheme.cc index b06d419b99..19afdd698d 100644 --- a/lily/font-metric-scheme.cc +++ b/lily/font-metric-scheme.cc @@ -1,9 +1,20 @@ /* - font-metric-scheme.cc -- implement Font_metric scheme bindings + This file is part of LilyPond, the GNU music typesetter. - source file of the GNU LilyPond music typesetter + Copyright (C) 2005--2014 Han-Wen Nienhuys - (c) 2005--2007 Han-Wen Nienhuys + LilyPond is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + LilyPond is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with LilyPond. If not, see . */ #include "font-metric.hh" @@ -13,10 +24,17 @@ #include "modified-font-metric.hh" LY_DEFINE (ly_font_get_glyph, "ly:font-get-glyph", - 2, 0, 0, - (SCM font, SCM name), - "Return a stencil from @var{font} for the glyph named @var{name}." - " If the glyph is not available, return an empty stencil.") + 2, 0, 0, + (SCM font, SCM name), + "Return a stencil from @var{font} for the glyph named @var{name}." + " If the glyph is not available, return an empty stencil.\n" + "\n" + "Note that this command can only be used to access glyphs from" + " fonts loaded with @code{ly:system-font-load}; currently, this" + " means either the Emmentaler or Emmentaler-Brace " + " fonts, corresponding" + " to the font encodings @code{fetaMusic} and @code{fetaBraces}," + " respectively.") { Font_metric *fm = unsmob_metrics (font); LY_ASSERT_SMOB (Font_metric, font, 1); @@ -28,23 +46,16 @@ LY_DEFINE (ly_font_get_glyph, "ly:font-get-glyph", return m.smobbed_copy (); } -LY_DEFINE (ly_get_glyph, "ly:get-glyph", - 2, 0, 0, - (SCM font, SCM index), - "Retrieve a stencil for the glyph numbered @var{index}" - " in @var{font}.") -{ - Font_metric *fm = unsmob_metrics (font); - LY_ASSERT_SMOB (Font_metric, font, 1); - LY_ASSERT_TYPE (scm_is_number, index,2); - - return fm->get_ascii_char_stencil (scm_to_int (index)).smobbed_copy (); -} - LY_DEFINE (ly_font_glyph_name_to_index, "ly:font-glyph-name-to-index", - 2, 0, 0, - (SCM font, SCM name), - "Return the index for @var{name} in @var{font}.") + 2, 0, 0, + (SCM font, SCM name), + "Return the index for @var{name} in @var{font}.\n" + "\n" + "Note that this command can only be used to access glyphs from" + " fonts loaded with @code{ly:system-font-load}; currently, this" + " means either the Emmentaler or Emmentaler-Brace fonts, corresponding" + " to the font encodings @code{fetaMusic} and @code{fetaBraces}," + " respectively.") { Font_metric *fm = unsmob_metrics (font); LY_ASSERT_SMOB (Font_metric, font, 1); @@ -54,9 +65,15 @@ LY_DEFINE (ly_font_glyph_name_to_index, "ly:font-glyph-name-to-index", } LY_DEFINE (ly_font_index_to_charcode, "ly:font-index-to-charcode", - 2, 0, 0, - (SCM font, SCM index), - "Return the character code for @var{index} in @var{font}.") + 2, 0, 0, + (SCM font, SCM index), + "Return the character code for @var{index} in @var{font}.\n" + "\n" + "Note that this command can only be used to access glyphs from" + " fonts loaded with @code{ly:system-font-load}; currently, this" + " means either the Emmentaler or Emmentaler-Brace fonts, corresponding" + " to the font encodings @code{fetaMusic} and @code{fetaBraces}," + " respectively.") { Font_metric *fm = unsmob_metrics (font); LY_ASSERT_SMOB (Font_metric, font, 1); @@ -66,9 +83,15 @@ LY_DEFINE (ly_font_index_to_charcode, "ly:font-index-to-charcode", } LY_DEFINE (ly_font_glyph_name_to_charcode, "ly:font-glyph-name-to-charcode", - 2, 0, 0, - (SCM font, SCM name), - "Return the character code for glyph @var{name} in @var{font}.") + 2, 0, 0, + (SCM font, SCM name), + "Return the character code for glyph @var{name} in @var{font}.\n" + "\n" + "Note that this command can only be used to access glyphs from" + " fonts loaded with @code{ly:system-font-load}; currently, this" + " means either the Emmentaler or Emmentaler-Brace fonts, corresponding" + " to the font encodings @code{fetaMusic} and @code{fetaBraces}," + " respectively.") { Font_metric *fm = unsmob_metrics (font); LY_ASSERT_SMOB (Font_metric, font, 1); @@ -77,33 +100,14 @@ LY_DEFINE (ly_font_glyph_name_to_charcode, "ly:font-glyph-name-to-charcode", return scm_from_unsigned_integer (fm->index_to_charcode (fm->name_to_index (ly_scm2string (name)))); } -LY_DEFINE (ly_text_dimension, "ly:text-dimension", - 2, 0, 0, - (SCM font, SCM text), - "Given the font metric in @var{font} and the string @var{text}," - " compute the extents of that text in that font. The return" - " value is a pair of number-pairs.") -{ - Box b; - Modified_font_metric *fm = dynamic_cast - (unsmob_metrics (font)); - - LY_ASSERT_SMOB (Font_metric, font, 1); - LY_ASSERT_TYPE (scm_is_string, text, 2); - Stencil stc (fm->text_stencil (ly_scm2string (text))); - return scm_cons (ly_interval2scm (stc.extent (X_AXIS)), - ly_interval2scm (stc.extent (Y_AXIS))); -} - - /* TODO: when are non string retvals allowed? */ LY_DEFINE (ly_font_file_name, "ly:font-file-name", - 1, 0, 0, - (SCM font), - "Given the font metric @var{font}," - " return the corresponding file name.") + 1, 0, 0, + (SCM font), + "Given the font metric @var{font}," + " return the corresponding file name.") { LY_ASSERT_SMOB (Font_metric, font, 1); @@ -114,10 +118,10 @@ LY_DEFINE (ly_font_file_name, "ly:font-file-name", } LY_DEFINE (ly_font_name, "ly:font-name", - 1, 0, 0, - (SCM font), - "Given the font metric @var{font}," - " return the corresponding name.") + 1, 0, 0, + (SCM font), + "Given the font metric @var{font}," + " return the corresponding name.") { LY_ASSERT_SMOB (Font_metric, font, 1); Font_metric *fm = unsmob_metrics (font); @@ -126,9 +130,9 @@ LY_DEFINE (ly_font_name, "ly:font-name", } LY_DEFINE (ly_font_magnification, "ly:font-magnification", 1, 0, 0, - (SCM font), - "Given the font metric @var{font}, return the" - " magnification, relative to the current output-scale.") + (SCM font), + "Given the font metric @var{font}, return the" + " magnification, relative to the current output-scale.") { LY_ASSERT_SMOB (Font_metric, font, 1); @@ -137,9 +141,9 @@ LY_DEFINE (ly_font_magnification, "ly:font-magnification", 1, 0, 0, } LY_DEFINE (ly_font_design_size, "ly:font-design-size", 1, 0, 0, - (SCM font), - "Given the font metric @var{font}, return the" - " design size, relative to the current output-scale.") + (SCM font), + "Given the font metric @var{font}, return the" + " design size, relative to the current output-scale.") { LY_ASSERT_SMOB (Font_metric, font, 1);