+
/*
new-staff-margin-engraver.cc -- implement Instrument_name_engraver
*/
#include "engraver.hh"
-#include "text-item.hh"
+#include "item.hh"
#include "bar.hh"
-#include "span-bar.hh"
+#include "system-start-delimiter.hh"
+#include "side-position-interface.hh"
class Instrument_name_engraver : public Engraver
{
- Text_item *text_;
+ Item *text_;
+ System_start_delimiter * delim_ ;
void create_text (SCM s);
public:
Instrument_name_engraver::Instrument_name_engraver ()
{
text_ = 0;
+ delim_ =0;
}
{
if (text_)
{
+ text_->add_offset_callback (Side_position_interface::centered_on_parent,
+ Y_AXIS);
+
typeset_element (text_);
text_ = 0;
}
{
if(!text_)
{
- text_ = new Text_item;
+ text_ = new Item (get_property ("basicInstrumentNameProperties"));
text_->set_elt_property ("text", txt);
- text_->set_elt_property ("breakable", SCM_BOOL_T);
/*
TODO: use more lispish names for break-align-symbols
*/
- text_->set_elt_property ("break-align-symbol", ly_symbol2scm ("Instrument_name"));
- text_->set_elt_property ("visibility-lambda",
- scm_eval (ly_symbol2scm ("begin-of-line-visible")));
+ if (delim_)
+ text_->set_parent (delim_, Y_AXIS);
announce_element (Score_element_info (text_,0));
}
if (Bar* b= dynamic_cast<Bar*> (i.elem_l_))
{
create_text (s);
- if (Span_bar* s= dynamic_cast<Span_bar*> (b))
- {
- text_->set_parent (s, Y_AXIS);
- }
}
}
+
+ if (dynamic_cast <System_start_delimiter*> (i.elem_l_)
+ && i.origin_trans_l_->daddy_trans_l_ == daddy_trans_l_)
+ {
+ delim_ = dynamic_cast<System_start_delimiter*> (i.elem_l_);
+ }
}