]> git.donarmstrong.com Git - lilypond.git/blob - lily/script-def.cc
release: 0.0.67
[lilypond.git] / lily / script-def.cc
1 /*
2   script-def.cc -- implement 
3
4   source file of the GNU LilyPond music typesetter
5
6   (c) 1996,1997 Han-Wen Nienhuys <hanwen@stack.nl>
7 */
8
9 #include "debug.hh"
10 #include "script-def.hh"
11 #include "symbol.hh"
12 #include "paper-def.hh"
13 #include "lookup.hh"
14
15 Script_def::Script_def()
16 {
17     inside_staff_b_ = false;
18     symidx = "unknown" ;
19     rel_stem_dir_i_ =0;
20     staff_dir_i_ = -1;
21     invertsym_b_ = 0;
22     priority_i_ =0;
23 }
24
25 void
26 Script_def::set_from_input(String idx,  bool follow, int stem, int staff ,bool invert)
27 {
28     inside_staff_b_ = follow;
29     symidx = idx ;
30     rel_stem_dir_i_ =stem;
31     staff_dir_i_ = staff;
32     invertsym_b_ = invert;
33     priority_i_ =0;
34 }
35
36
37 void
38 Script_def::print() const
39 {
40     mtor << "Script_def{ idx: " << symidx 
41          << " direction, stem: " << rel_stem_dir_i_ << " staff : " << staff_dir_i_ << "}\n";
42 }
43
44 bool
45 Script_def::do_equal_b(General_script_def const &g)const 
46 {
47     Script_def const & c = (Script_def const&) g;
48     return !(symidx == c.symidx &&
49              rel_stem_dir_i_ == c.rel_stem_dir_i_&&
50              staff_dir_i_ == c.staff_dir_i_&&
51              invertsym_b_ == c.invertsym_b_);
52 }
53
54 int
55 Script_def::staff_dir_i() const
56 {
57     return staff_dir_i_; 
58 }
59
60 int
61 Script_def::rel_stem_dir_i() const
62 {
63     return rel_stem_dir_i_; 
64 }
65
66 bool
67 Script_def::inside_b() const
68 {
69     return inside_staff_b_; 
70 }
71
72 Atom
73 Script_def::get_atom(Paper_def *p , int d)const
74 {
75     String preidx_str ="";
76     if (invertsym_b_&& d < 0) 
77         preidx_str = "-";
78
79     return p->lookup_l()->script(preidx_str + symidx);
80 }
81
82 IMPLEMENT_STATIC_NAME(Script_def);
83
84 int
85 Script_def::priority_i()const
86 {
87     return priority_i_;
88 }
89         
90     
91