]> git.donarmstrong.com Git - lilypond.git/blob - lily/ps-outputter.cc
4600f9b40df1d75f59346a79b145e0f0e5c8e199
[lilypond.git] / lily / ps-outputter.cc
1 /*
2   ps-outputter.cc -- implement Ps_outputter
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 #include "ps-outputter.hh"
11 #include "ps-stream.hh"
12 #include "molecule.hh"
13 #include "atom.hh"
14 #include "array.hh"
15 #include "string-convert.hh"
16 #include "debug.hh"
17 #include "lookup.hh"
18 #include "main.hh"
19
20 Ps_outputter::Ps_outputter (Paper_stream *s)
21   :Paper_outputter (s)
22 {
23 }
24
25 Ps_outputter::~Ps_outputter ()
26 {
27 }
28
29 /*
30    26 fonts ought to be enough for anyone.
31 */
32 static String
33 ps_font_command(int i)
34 {
35 // urg
36 //  return "%\\font" + String_convert::form_str ("%c",  'A' + i) + "\n";
37   return "\n/feta20 findfont 12 scalefont setfont ";
38 }
39
40 void
41 Ps_outputter::switch_to_font (String fontname)
42 {
43   if (!fontname.length_i () || fontname == current_font_)
44     return;
45
46   current_font_ = fontname;
47   int i=0;
48   for (; i< font_arr_.size (); i++)
49     if (font_arr_[i] == fontname)
50       {
51         *outstream_l_ <<ps_font_command (i) << "\n";
52         return ;
53       }
54
55   
56   font_arr_.push (fontname);
57   *outstream_l_ << "%\\font"  + ps_font_command (i) << "% =" + fontname << "\n";
58   *outstream_l_<< ps_font_command (i) << "\n";
59 }
60
61 void
62 Ps_outputter::output_molecule (Molecule const*m, Offset o, char const *nm)
63 {
64   if (check_debug)
65     *outstream_l_ << String ("\n%start: ") << nm << "\n";
66
67   Paper_outputter::output_molecule (m, o, nm, "% % {%}placebox \n", "'ps");
68 }
69
70 void
71 Ps_outputter::start_line ()
72 {
73   *outstream_l_ << "\nstart_line {\n";
74 }
75
76 void
77 Ps_outputter::stop_line ()
78 {
79   *outstream_l_ << "}\nstop_line\n";
80   current_font_ = "";
81   font_arr_.clear ();
82 }