source file of the GNU LilyPond music typesetter
- (c) 1997--1998 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+ (c) 1997--1999 Han-Wen Nienhuys <hanwen@cs.uu.nl>
*/
#include "key-engraver.hh"
Key_engraver::Key_engraver ()
{
- kit_p_ = 0;
+ item_p_ = 0;
do_post_move_processing ();
}
void
Key_engraver::create_key ()
{
- if (!kit_p_)
+ if (!item_p_)
{
- kit_p_ = new Key_item;
- kit_p_->break_priority_i_ = -1; // ugh
- kit_p_->multi_octave_b_ = key_.multi_octave_b_;
- announce_element (Score_element_info (kit_p_,keyreq_l_));
+ item_p_ = new Key_item;
+ item_p_->set_elt_property (break_priority_scm_sym, gh_int2scm(-1)); // ugh
+ item_p_->multi_octave_b_ = key_.multi_octave_b_;
+ announce_element (Score_element_info (item_p_,keyreq_l_));
for (int i = 0; i < accidental_idx_arr_.size(); i++)
Musical_pitch m_l =accidental_idx_arr_[i];
int a =m_l.accidental_i_;
if (key_.multi_octave_b_)
- kit_p_->add (m_l.steps (), a);
+ item_p_->add (m_l.steps (), a);
else
- kit_p_->add (m_l.notename_i_, a);
+ item_p_->add (m_l.notename_i_, a);
}
for (int i = 0 ; i< old_accidental_idx_arr_.size(); i++)
Musical_pitch m_l =old_accidental_idx_arr_[i];
int a =m_l.accidental_i_;
if (key_.multi_octave_b_)
- kit_p_->add_old (m_l.steps (), a);
+ item_p_->add_old (m_l.steps (), a);
else
- kit_p_->add_old (m_l.notename_i_, a);
+ item_p_->add_old (m_l.notename_i_, a);
}
}
}
{
if (dynamic_cast <Clef_change_req *> (info.req_l_))
{
- int i= get_property ("createKeyOnClefChange").length_i ();
+ int i= get_property ("createKeyOnClefChange", 0).length_i ();
if (i)
create_key ();
}
else if (dynamic_cast<Bar *> (info.elem_l_)
&& accidental_idx_arr_.size ())
{
- if (!keyreq_l_)
- default_key_b_ = true;
+ bool def = (!item_p_);
create_key ();
+ if (def)
+ {
+ item_p_->set_elt_property (visibility_lambda_scm_sym,
+ gh_eval_str ("postbreak_only_visibility"));
+ }
}
}
void
Key_engraver::do_pre_move_processing ()
{
- if (kit_p_)
+ if (item_p_)
{
- kit_p_->default_b_ = default_key_b_;
- typeset_element (kit_p_);
- kit_p_ = 0;
+ typeset_element (item_p_);
+ item_p_ = 0;
}
}
{
old_accidental_idx_arr_ = accidental_idx_arr_;
key_.clear ();
- Scalar prop = get_property ("keyoctaviation");
+ Scalar prop = get_property ("keyoctaviation", 0);
if (prop.length_i () > 0)
{
key_.multi_octave_b_ = ! prop.to_bool ();
Key_engraver::do_post_move_processing ()
{
keyreq_l_ = 0;
- default_key_b_ = false;
old_accidental_idx_arr_.clear ();
}