]> git.donarmstrong.com Git - lilypond.git/blob - lily/mark-engraver.cc
release: 1.1.29
[lilypond.git] / lily / mark-engraver.cc
1 /*
2   mark-engraver.cc -- implement Mark_engraver
3
4   source file of the GNU LilyPond music typesetter
5
6  (c) 1998--1999 Jan Nieuwenhuizen <janneke@gnu.org>
7 */
8 #include "command-request.hh"
9 #include "mark-engraver.hh"
10 #include "engraver-group.hh"
11 #include "g-text-item.hh"
12
13
14 ADD_THIS_TRANSLATOR (Mark_engraver);
15
16 Mark_engraver::Mark_engraver ()
17 {
18   mark_req_l_ = 0;
19   axis_ = Y_AXIS;
20   type_ = "mark";
21 }
22
23 void
24 Mark_engraver::do_post_move_processing ()
25 {
26   mark_req_l_ = 0;
27 }
28
29
30 bool
31 Mark_engraver::do_try_music (Music* r_l)
32 {
33   if (Mark_req *mr = dynamic_cast <Mark_req *> (r_l))
34     {
35       mark_req_l_ = mr;
36       return true;
37     }
38   return false;
39 }
40
41 void
42 Mark_engraver::do_process_requests ()
43 {
44   if (mark_req_l_)
45     {
46       create_items (mark_req_l_);
47       text_p_->text_str_ = mark_req_l_->str_;
48       text_p_->style_str_ = text_p_->text_str_.index_any_i ("0123456789") >= 0 
49         ? "mark" : "Large";
50     }
51 }