lilypond-1.3.29
[lilypond.git] / lily / mark-engraver.cc
blob404644f2cea633c6ede89df0f58ab6326aaf3903
1 /*
2 mark-engraver.cc -- implement Mark_engraver
4 source file of the GNU LilyPond music typesetter
6 (c) 1998--2000 Jan Nieuwenhuizen <janneke@gnu.org>
7 */
8 #include "command-request.hh"
9 #include "mark-engraver.hh"
10 #include "engraver-group-engraver.hh"
11 #include "text-item.hh"
14 ADD_THIS_TRANSLATOR (Mark_engraver);
16 Mark_engraver::Mark_engraver ()
18 mark_req_l_ = 0;
19 axis_ = Y_AXIS;
20 type_ = "mark";
23 void
24 Mark_engraver::do_post_move_processing ()
26 mark_req_l_ = 0;
30 bool
31 Mark_engraver::do_try_music (Music* r_l)
33 if (Mark_req *mr = dynamic_cast <Mark_req *> (r_l))
36 if (mark_req_l_ && mr->equal_b (mark_req_l_))
37 return true;
38 if (mark_req_l_)
39 return false;
40 mark_req_l_ = mr;
41 return true;
43 return false;
46 void
47 Mark_engraver::do_process_requests ()
49 if (mark_req_l_)
51 create_items (mark_req_l_);
53 String t = mark_req_l_->str_;
54 text_p_->set_elt_property ("text",
55 ly_str02scm ( t.ch_C()));
56 SCM st = ly_str02scm ((t.index_any_i ("0123456789") >= 0 )
57 ? "mark" : "large");
58 text_p_->set_elt_property ("style", st);