virtual Spacing_req * spacing() { return 0; }
virtual Blank_req * blank() { return 0; }
virtual Musical_req *musical() { return 0; }
- virtual Nonmusical_req * nonmus() { return 0; }
+ virtual Command_req * command() { return 0; }
protected:
virtual void do_print()const ;
};
#include "bar.hh"
#include "commandrequest.hh"
#include "complexwalker.hh"
-#include "sccol.hh"
+#include "scorecolumn.hh"
Bar_register::Bar_register(Complex_walker*w)
bool
Bar_register::try_request(Request*r_l)
{
- if (!r_l->nonmus()->bar())
+ if (!r_l->command()->bar())
return false;
assert(!bar_req_l_);
- bar_req_l_ = r_l->nonmus()->bar();
+ bar_req_l_ = r_l->command()->bar();
return true;
}
#include "keyitem.hh"
#include "complexwalker.hh"
#include "commandrequest.hh"
-#include "stcol.hh"
+#include "staffcolumn.hh"
#include "localkeyreg.hh"
#include "musicalrequest.hh"
bool
Key_register::try_request(Request * req_l)
{
- if (!req_l->nonmus()->keychange())
+ if (!req_l->command()->keychange())
return false;
assert(!keyreq_l_); // todo
- keyreq_l_ = req_l->nonmus()->keychange();
+ keyreq_l_ = req_l->command()->keychange();
read_req(keyreq_l_);
- walk_l_->local_key_reg_p_->local_key_.reset(key_); // ugh
return true;
}
+void
+Key_register::acknowledge_element(Staff_elem_info info)
+{
+ Command_req * r_l = info.req_l_->command() ;
+ if (r_l && r_l->clefchange() && !kit_p_) {
+ kit_p_ = new Key_item(walk_l_->c0_position_i());
+ kit_p_->read(*this);
+ announce_element(Staff_elem_info(kit_p_, keyreq_l_, this));
+ }
+}
+
void
Key_register::process_request()
{
default_key_b_ = true;
}
- if (default_key_b_ || keyreq_l_) {
+ if ( default_key_b_ || keyreq_l_) {
kit_p_ = new Key_item(walk_l_->c0_position_i());
kit_p_->read(*this);
announce_element(Staff_elem_info(kit_p_, keyreq_l_, this));
Key_register::do_pre_move_process()
{
if (kit_p_) {
- if (default_key_b_)
+ if (default_key_b_)
typeset_breakable_item(0,0,kit_p_);
else
typeset_breakable_item(
keyreq_l_ = 0;
default_key_b_ = false;
kit_p_ = 0;
- if (!walk_l_->time_.whole_in_measure_)
- walk_l_->local_key_reg_p_->local_key_.reset(key_); // ugh
}
bool
Meter_register::try_request(Request*r_l)
{
- if (!r_l->nonmus()->meterchange())
+ if (!r_l->command()->meterchange())
return false;
assert(!meter_req_l_);
- meter_req_l_ = r_l->nonmus()->meterchange();
+ meter_req_l_ = r_l->command()->meterchange();
return true;
}