]> git.donarmstrong.com Git - lilypond.git/blob - lily/include/afm.hh
757ed776ee22f020f073086e34c1dc64c613e17d
[lilypond.git] / lily / include / afm.hh
1 /*   
2   afm.hh -- declare Adobe_font_metric
3   
4   source file of the GNU LilyPond music typesetter
5   
6   (c) 1998--1999 Han-Wen Nienhuys <hanwen@cs.uu.nl>
7   
8  */
9
10 #ifndef AFM_HH
11 #define AFM_HH
12
13 #include "string.hh"
14 #include "box.hh"
15 #include "array.hh"
16 #include "dictionary.hh"
17 #include "font-metric.hh"
18
19 struct Adobe_font_char_metric : Character_metric {
20   int C_;
21   Real WX_;
22   String N_;
23   Box B_;
24   int size_;
25   Box &bbox();
26   String &name();
27   Real &width();
28   int  &code ();
29   
30   String str () const;
31   Adobe_font_char_metric ();
32   Box dimensions () const;
33 };
34
35 struct Adobe_font_metric : Font_metric {
36   String  FontName_;
37   String FullName_;
38   String FamilyName_;
39   String Weight_;
40   Real ItalicAngle_;
41   bool IsFixedPitch_;
42   Box FontBBox_;
43   Real UnderlinePosition_;
44   Real UnderlineThickness_;
45   String Version_;
46   String Notice_;
47   String EncodingScheme_;
48   Array<Adobe_font_char_metric> char_metrics_;
49   Array<int> ascii_to_metric_idx_;
50   Dictionary<int> name_to_metric_dict_;
51   
52   Adobe_font_char_metric const &find_char (String name, bool warn=true) const;
53   Adobe_font_char_metric const &find_ascii (int ascii,bool warn) const;
54   String str () const;
55   Adobe_font_metric ();
56   void read_char_metrics (Data_file &input, int size);
57
58   Character_metric *get_char (int, bool) const;
59 };
60
61 Adobe_font_metric read_afm_file (String fn);
62
63
64
65 #endif /* AFM_HH */
66