From e48ad720d23509d883e3fbe946c7264d88467918 Mon Sep 17 00:00:00 2001 From: Han-Wen Nienhuys Date: Fri, 7 Jan 2005 14:54:07 +0000 Subject: [PATCH] (get_font_by_design_size): retrieve PangoFont for (designsize . "pango-descr") entries. --- lily/font-select.cc | 55 ++++++++++++++++++++++---------------------- lily/pango-select.cc | 4 ++-- lily/paper-def.cc | 2 -- lily/text-item.cc | 1 + scm/output-ps.scm | 4 +++- 5 files changed, 33 insertions(+), 33 deletions(-) diff --git a/lily/font-select.cc b/lily/font-select.cc index 9e55cd2c50..4443209d01 100644 --- a/lily/font-select.cc +++ b/lily/font-select.cc @@ -17,14 +17,6 @@ #include "main.hh" -bool -wild_compare (SCM field_val, SCM val) -{ - return (val == SCM_BOOL_F - || field_val == ly_symbol2scm ("*") - || field_val == val); -} - Font_metric * get_font_by_design_size (Output_def *layout, Real requested, SCM font_vector) @@ -118,30 +110,37 @@ select_encoded_font (Output_def *layout, SCM chain) else name = scm_cdr (name); +#if HAVE_PANGO_FT2 if (scm_is_string (name) && is_pango_format_global) { - SCM mag = ly_chain_assoc (ly_symbol2scm ("font-magnification"), chain); - Real rmag = (scm_is_pair (mag) - ? robust_scm2double (scm_cdr (mag), 1.0) - : 1); - Font_metric *fm = all_fonts_global->find_font (ly_scm2string (name)); - - return find_scaled_font (layout, fm, rmag); - } - else if (scm_instance_p (name)) - { - SCM base_size = scm_slot_ref (name, ly_symbol2scm ("default-size")); - SCM vec = scm_slot_ref (name, ly_symbol2scm ("size-vector")); - - SCM font_size = ly_chain_assoc (ly_symbol2scm ("font-size"), chain); - Real req = 0; - if (scm_is_pair (font_size)) - req = scm_to_double (scm_cdr (font_size)); - - return get_font_by_mag_step (layout, req, vec, - scm_to_double (base_size)); + select_pango_font (layout, chain); } + else +#endif + if (scm_is_string (name)) + { + SCM mag = ly_chain_assoc (ly_symbol2scm ("font-magnification"), chain); + Real rmag = (scm_is_pair (mag) + ? robust_scm2double (scm_cdr (mag), 1.0) + : 1); + Font_metric *fm = all_fonts_global->find_font (ly_scm2string (name)); + + return find_scaled_font (layout, fm, rmag); + } + else if (scm_instance_p (name)) + { + SCM base_size = scm_slot_ref (name, ly_symbol2scm ("default-size")); + SCM vec = scm_slot_ref (name, ly_symbol2scm ("size-vector")); + + SCM font_size = ly_chain_assoc (ly_symbol2scm ("font-size"), chain); + Real req = 0; + if (scm_is_pair (font_size)) + req = scm_to_double (scm_cdr (font_size)); + + return get_font_by_mag_step (layout, req, vec, + scm_to_double (base_size)); + } assert (0); return 0; diff --git a/lily/pango-select.cc b/lily/pango-select.cc index 10a7b182cb..c1e21965ae 100644 --- a/lily/pango-select.cc +++ b/lily/pango-select.cc @@ -53,8 +53,8 @@ properties_to_pango_description (SCM chain, Real text_size) Font_metric * select_pango_font (Output_def *layout, SCM chain) { - PangoFontDescription *pfd =properties_to_pango_description (chain, - point_constant * layout->get_dimension (ly_symbol2scm ("text-font-size"))); + PangoFontDescription *pfd = properties_to_pango_description (chain, + point_constant * layout->get_dimension (ly_symbol2scm ("text-font-size"))); Font_metric * fm = all_fonts_global->find_pango_font (pfd); diff --git a/lily/paper-def.cc b/lily/paper-def.cc index 8cfdcba9bf..a46fb43fc1 100644 --- a/lily/paper-def.cc +++ b/lily/paper-def.cc @@ -40,8 +40,6 @@ find_scaled_font (Output_def *mod, Font_metric *f, Real m) return find_scaled_font (mod->parent_, f, m); Real lookup_mag = m / output_scale (mod); - - SCM font_table = get_font_table (mod); SCM sizes = scm_hashq_ref (font_table, f->self_scm (), SCM_BOOL_F); diff --git a/lily/text-item.cc b/lily/text-item.cc index 3bcab30fc9..2ceb979b74 100644 --- a/lily/text-item.cc +++ b/lily/text-item.cc @@ -40,6 +40,7 @@ Text_interface::interpret_string (SCM layout_smob, return fm->text_stencil (str).smobbed_copy(); } + MAKE_SCHEME_CALLBACK (Text_interface, interpret_markup, 3) SCM Text_interface::interpret_markup (SCM layout_smob, SCM props, SCM markup) diff --git a/scm/output-ps.scm b/scm/output-ps.scm index b3d317c274..ddf6925c34 100644 --- a/scm/output-ps.scm +++ b/scm/output-ps.scm @@ -287,7 +287,9 @@ out-vec)))))) ;;(define text old-text) -(define text new-text) +(define (text font str) + (ly:warn "TEXT backend-command encountered in Pango backend\nargs: ~a ~a" font str) + "") ;; FIXME: BARF helvetica? (define (white-text scale s) -- 2.39.2