*/
#include "axis-group-engraver.hh"
-#include "axis-group-spanner.hh"
+#include "spanner.hh"
#include "paper-column.hh"
#include "axis-group-interface.hh"
Axis_group_engraver::do_creation_processing ()
{
staffline_p_ = get_spanner_p ();
- axis_group (staffline_p_).set_axes (Y_AXIS, Y_AXIS);
+ Axis_group_interface (staffline_p_).set_interface ();
+ Axis_group_interface (staffline_p_).set_axes (Y_AXIS, Y_AXIS);
staffline_p_->set_bound(LEFT,get_staff_info().command_pcol_l ());
announce_element (Score_element_info (staffline_p_, 0));
}
-Axis_group_spanner*
+Spanner*
Axis_group_engraver::get_spanner_p () const
{
- return new Axis_group_spanner;
+ return new Spanner;
}
+
void
Axis_group_engraver::do_removal_processing ()
{
for (int i=0; i < elts_.size (); i++)
{
Score_element *par = elts_[i]->parent_l (Y_AXIS);
- if (!par || !axis_group (par).has_interface_b ())
- axis_group (staffline_p_).add_element (elts_[i]);
+ if (!par || !Axis_group_interface (par).has_interface_b ())
+ Axis_group_interface (staffline_p_).add_element (elts_[i]);
}
elts_.clear ();
}
*/
#include "grace-align-item.hh"
+#include "align-interface.hh"
#include "lookup.hh"
#include "paper-column.hh"
#include "paper-def.hh"
Grace_align_item::Grace_align_item ()
{
set_elt_property ("stacking-dir", gh_int2scm (RIGHT));
- set_axis (X_AXIS);
+ Align_interface (this).set_interface();
+ Align_interface (this).set_axis (X_AXIS);
}
void
gh_cons (gh_double2scm (nhw* 1.5),
gh_double2scm (infinity_f)));
column_l ()->set_elt_property ("contains-grace", SCM_BOOL_T);
-
-
- Axis_align_item::before_line_breaking ();
- // translate_axis (-0.5* nhw, X_AXIS); // ugh.
}
class Axis_group_engraver : public Engraver
{
protected:
- Axis_group_spanner *staffline_p_;
+ Spanner *staffline_p_;
Link_array<Score_element> elts_;
virtual void do_creation_processing();
virtual void do_removal_processing();
virtual void acknowledge_element (Score_element_info);
virtual void process_acknowledged ();
- virtual Axis_group_spanner* get_spanner_p () const;
+ virtual Spanner* get_spanner_p () const;
public:
VIRTUAL_COPY_CONS(Translator);
#ifndef BREAK_ALIGN_ITEM_HH
#define BREAK_ALIGN_ITEM_HH
-#include "axis-align-item.hh"
+#include "item.hh"
/// align breakable items (clef, bar, etc.)
-class Break_align_item : public Axis_align_item {
-
-
+class Break_align_item : public Item
+{
protected:
virtual void before_line_breaking ();
public:
class Hara_kiri_engraver : public Axis_group_engraver
{
protected:
- virtual Axis_group_spanner*get_spanner_p ()const;
+ virtual Spanner*get_spanner_p ()const;
virtual void acknowledge_element (Score_element_info);
public:
VIRTUAL_COPY_CONS(Translator);
*/
class Line_group_engraver_group : public Engraver_group_engraver {
protected:
- Axis_group_spanner *staffline_p_;
+ Spanner *staffline_p_;
virtual void create_line_spanner ();
virtual void do_creation_processing();
#include "translator-group.hh"
#include "axis-group-engraver.hh"
#include "paper-column.hh"
-#include "vertical-align-engraver.hh"
-#include "axis-align-spanner.hh"
-#include "axis-group-spanner.hh"
+#include "align-interface.hh"
#include "span-bar.hh"
#include "axis-group-interface.hh"
+#include "engraver.hh"
+#include "spanner.hh"
+
+class Vertical_align_engraver : public Engraver {
+ Spanner * valign_p_;
+ bool qualifies_b (Score_element_info) const;
+public:
+ VIRTUAL_COPY_CONS(Translator);
+
+ Vertical_align_engraver();
+protected:
+
+ virtual void acknowledge_element (Score_element_info);
+ virtual void do_creation_processing();
+ virtual void do_removal_processing();
+};
+
Vertical_align_engraver::Vertical_align_engraver()
{
void
Vertical_align_engraver::do_creation_processing()
{
- valign_p_ =new Axis_align_spanner;
- valign_p_->set_axis (Y_AXIS);
- valign_p_->set_elt_property ("stacking-dir", gh_int2scm (DOWN));
+ valign_p_ =new Spanner; //Axis_align_spanner
+ Align_interface (valign_p_).set_interface ();
+ Align_interface (valign_p_).set_axis (Y_AXIS);
+ valign_p_->set_elt_property ("stacking-dir",
+ gh_int2scm (DOWN));
valign_p_->set_bound(LEFT,get_staff_info().command_pcol_l ());
announce_element (Score_element_info (valign_p_ , 0));
{
if (qualifies_b (i))
{
- valign_p_->add_element (i.elem_l_);
+ Align_interface(valign_p_).add_element (i.elem_l_);
}
/*
- ? huh
+ Add make sure spanbars (whose size depends on vertical alignment)
+ depend on the vertical alignment element
*/
else if (dynamic_cast<Span_bar*>(i.elem_l_) && i.origin_trans_l_arr (this).size ())
{