]> git.donarmstrong.com Git - lilypond.git/blob - lily/include/lookup.hh
9b1e198a4433cdc92051b07f91c2c8dc77c61266
[lilypond.git] / lily / include / lookup.hh
1 /*
2   lookup.hh -- declare Lookup
3
4   source file of the GNU LilyPond music typesetter
5
6   (c) 1997--1998 Han-Wen Nienhuys <hanwen@cs.uu.nl>
7   Jan Nieuwenhuizen <janneke@gnu.org>
8 */
9
10 #ifndef LOOKUP_HH
11 #define LOOKUP_HH
12
13 #include "atom.hh"
14 #include "fproto.hh"
15 #include "scalar.hh"
16 #include "direction.hh"
17 #include "curve.hh"
18 #include "afm.hh"
19 #include "symtable.hh"
20 #include "box.hh"
21
22 /** handy interface to symbol table
23  */
24 class Lookup
25 {
26 public:
27   Lookup ();
28   Lookup (Lookup const&);
29   Lookup (Symtables const&);
30   virtual ~Lookup ();
31   
32   Atom accidental (int) const;
33   void add (String, Symtable*);
34   virtual Atom afm_find (String s) const = 0;
35   Atom afm_find (String, String) const;
36   virtual Atom* atom_p (String, int, Box) const = 0;
37   Atom ball (int) const;
38   Atom bar (String, Real height) const;
39   Atom beam (Real,Real, Real) const;
40   virtual String character_str (int i) const;
41   Atom clef (String) const;
42   virtual Atom dashed_slur (Array<Offset> controls, Real thick, Real dash) const = 0;
43   Atom dots () const;
44   Atom dynamic (String) const;
45   Atom fill (Box b) const;
46   Atom flag (int, Direction) const;
47   virtual Atom hairpin (Real width, bool decresc, bool continued) const = 0;
48   virtual Atom plet (Real dy, Real dx, Direction dir) const = 0;
49   void print () const;
50   virtual Atom ps_beam (Real slope, Real width, Real thick) const = 0;
51   String print_dimen (Real) const;
52   Atom rest (int, bool outside) const;
53   Atom rule_symbol (Real height, Real width) const;
54   Atom script (String idx) const;
55   /** paratime_signature substitution in lookup strings.
56       this function provides a simple macro mechanism:
57
58       if source == "tex%bla%", then
59       substitute_args (source, {"X","Y"})  == "texXblaY"
60   */
61   String substitute_args (String source, Array<String> args) const;
62   /// paratime_signature substitution in lookup strings
63   String substitute_args (String source, Array<Scalar> args) const;
64   virtual Atom stem (Real y1_pos, Real y2_pos) const = 0;
65   Atom stem (Real y1_pos, Real y2_pos, String) const;
66   virtual Atom slur (Array<Offset> controls) const = 0;
67   Atom streepje (int type) const;
68   virtual Atom text (String style, String text) const;
69   Atom vbrace (Real &dy) const;
70   virtual Atom vbracket (Real &dy) const = 0;
71   Atom special_time_signature (String, Array<Scalar>) const;
72   Atom time_signature (Array<Scalar>) const;
73
74   Paper_def * paper_l_;
75   Symtables *symtables_p_;
76   String font_;
77   String font_path_;  
78   Adobe_font_metric * afm_p_;
79 };
80
81 #endif // LOOKUP_HH