]> git.donarmstrong.com Git - lilypond.git/commitdiff
(get_font_by_design_size): retrieve
authorHan-Wen Nienhuys <hanwen@xs4all.nl>
Fri, 7 Jan 2005 14:54:07 +0000 (14:54 +0000)
committerHan-Wen Nienhuys <hanwen@xs4all.nl>
Fri, 7 Jan 2005 14:54:07 +0000 (14:54 +0000)
PangoFont for (designsize . "pango-descr") entries.

lily/font-select.cc
lily/pango-select.cc
lily/paper-def.cc
lily/text-item.cc
scm/output-ps.scm

index 9e55cd2c503bc7c648625a9875866481508c0040..4443209d01c009ec30e0a0457088f65bf99c61ad 100644 (file)
 #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;
index 10a7b182cb3b7e684a8f6a4629f890aacacad0c6..c1e21965aed6a2bea711980e0cbc18ceafade502 100644 (file)
@@ -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);
 
index 8cfdcba9bfcaa26a58eb2acf70d3a68e203f4ee2..a46fb43fc17d4aa96b2be03a96b4f62459c1301a 100644 (file)
@@ -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);
index 3bcab30fc9f79aa068c3f44b3f80399c4f476d58..2ceb979b74546c07af70742a0efcbc53340954ac 100644 (file)
@@ -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)
index b3d317c27410e3656a5edad3212d145f8e39ba72..ddf6925c34a4303ad692181c19c01e175c3ceae8 100644 (file)
        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)