source file of the GNU LilyPond music typesetter
- (c) 2000--2003 Jan Nieuwenhuizen <janneke@gnu.org>
+ (c) 2000--2004 Jan Nieuwenhuizen <janneke@gnu.org>
*/
#include "note-column.hh"
-#include "item.hh"
#include "side-position-interface.hh"
#include "engraver.hh"
class Text_spanner_engraver : public Engraver
{
public:
- TRANSLATOR_DECLARATIONS(Text_spanner_engraver);
+ TRANSLATOR_DECLARATIONS (Text_spanner_engraver);
protected:
virtual void finalize ();
virtual void acknowledge_grob (Grob_info);
{
finished_ = 0;
current_req_ = 0;
- span_ =0;
+ span_ = 0;
req_drul_[START] = 0;
req_drul_[STOP] = 0;
}
{
if (m->is_mus_type ("text-span-event"))
{
-
- Direction d = to_dir (m->get_mus_property ("span-direction"));
+ Direction d = to_dir (m->get_property ("span-direction"));
req_drul_[d] = m;
return true;
}
- else if (m->is_mus_type ("abort-event"))
- {
- req_drul_[LEFT] = 0;
- req_drul_[RIGHT] = 0;
- if (span_)
- span_->suicide ();
- span_ = 0;
- }
return false;
}
{
if (!span_)
{
- req_drul_[STOP]->origin ()->warning
- (_ ("can't find start of text spanner"));
+ req_drul_[STOP]->origin ()->warning (_ ("can't find start of text spanner"));
}
else
{
{
if (current_req_)
{
- req_drul_[START]->origin ()->warning(_ ("already have a text spanner"));
+ req_drul_[START]->origin ()->warning (_ ("already have a text spanner"));
}
else
{
current_req_ = req_drul_[START];
- span_ = make_spanner ("TextSpanner");
+ span_ = make_spanner ("TextSpanner", req_drul_[START]->self_scm ());
Side_position_interface::set_axis (span_, Y_AXIS);
- announce_grob (span_, req_drul_[START]->self_scm());
req_drul_[START] = 0;
}
}
{
if (finished_)
{
- Side_position_interface::add_staff_support (finished_);
if (!finished_->get_bound (RIGHT))
{
Grob* e = unsmob_grob (get_property ("currentMusicalColumn"));
finished_->set_bound (RIGHT, e);
}
- typeset_grob (finished_);
finished_ = 0;
}
}
}
}
-ENTER_DESCRIPTION(Text_spanner_engraver,
+ADD_TRANSLATOR (Text_spanner_engraver,
/* descr */ "Create text spanner from a Music.",
/* creats*/ "TextSpanner",
/* accepts */ "text-span-event",