]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/include/tfm.hh
*** empty log message ***
[lilypond.git] / lily / include / tfm.hh
index 068ca68ae225cc1eebc045b8af1bcd866439d0ef..85e2002029c88fa9c32facda0399167e6d634c09 100644 (file)
@@ -1,14 +1,13 @@
-/*   
+/*
   tfm.hh -- declare Tex_font_metric
-  
+
   source file of the GNU LilyPond music typesetter
-  
-  (c) 1999--2000 Jan Nieuwenhuizen <janneke@gnu.org>
 
+  (c) 1999--2006 Jan Nieuwenhuizen <janneke@gnu.org>
 
-  revamped code from GNU Fontutils-0.6
 
- */
+  revamped code from GNU Fontutils-0.6
+*/
 
 /*
   TODO: aren't there standard libs?  Ideally it is better to just link
@@ -17,9 +16,7 @@
 #ifndef TFM_HH
 #define TFM_HH
 
-#include "string.hh"
 #include "array.hh"
-#include "lily-proto.hh"
 #include "font-metric.hh"
 
 /* The type.  */
@@ -106,7 +103,7 @@ struct Tfm_info
   Char_code first_charcode, last_charcode;
   U32 checksum;
   Real design_size;
-  String coding_scheme;
+  std::string coding_scheme;
   unsigned parameter_count;
   // Real parameters [Tex_font_metric::MAX_FONTDIMENS];
   Real parameters [TFM_MAX_FONTDIMENS];
@@ -131,40 +128,44 @@ struct Tfm_kern
 
 struct Tex_font_char_metric
 {
-  bool exists_b_;
+  bool exists_;
   Char_code code_;
   Real width_, height_, depth_, italic_correction_;
   Fix width_fix_, height_fix_, depth_fix_, italic_correction_fix_;
-  Array<Tfm_kern> kern_arr_;
-  Array<Tfm_ligature> ligature_arr_;
+  Array<Tfm_kern> kerns_;
+  Array<Tfm_ligature> ligatures_;
 
-  String str () const;
   Tex_font_char_metric ();
 
-  Box dimensions () const; 
+  Box dimensions () const;
 };
 
-
-class Tex_font_metric : public Font_metric
+class Tex_font_metric : public Simple_font_metric
 {
+  DECLARE_CLASSNAME(Tex_font_metric);
 public:
-  static  SCM make_tfm (String filename);
-
-  Box get_char (int) const;
-  Tex_font_char_metric const *find_ascii (int ascii, bool warn=true) const;
+  static SCM make_tfm (std::string file_name);
 
-  String str () const;
+  virtual int count () const;
+  virtual Box get_ascii_char (int) const;
+  virtual Real design_size () const;
+  virtual void derived_mark () const;
+  virtual int name_to_index (std::string) const;
+  virtual std::string font_name () const;
 
+  Tfm_info const &info () const;
 
-  
+protected:
   Tfm_info info_;
   Tfm_header header_;
   Array<Tex_font_char_metric> char_metrics_;
   Array<int> ascii_to_metric_idx_;
+  SCM encoding_table_;
+  std::string font_name_;
 private:
+  Tex_font_char_metric const *find_ascii (int ascii, bool warn = true) const;
   Tex_font_metric ();
 };
 
-
 #endif /* TFM_HH */