Graphical_axis_group::do_print();
}
-Axis_group_element::Axis_group_element(Axis a1, Axis a2)
- : Graphical_axis_group (a1,a2)
+Axis_group_element::Axis_group_element()
{
set_elt_property (transparent_scm_sym, SCM_BOOL_T);
}
-Axis_group_element::Axis_group_element ()
- : Graphical_axis_group (X_AXIS, Y_AXIS)
+void
+Axis_group_element::set_axes (Axis a1, Axis a2)
{
- set_elt_property (transparent_scm_sym, SCM_BOOL_T);
+ Graphical_axis_group::set_axes (a1,a2);
+ dim_cache_[X_AXIS].set_empty ((a1 != X_AXIS && a2 != X_AXIS));
+ dim_cache_[Y_AXIS].set_empty ((a1 != Y_AXIS && a2 != Y_AXIS));
}
+void
+Axis_group_element::do_substitute_element_pointer (Score_element*o,
+ Score_element*n)
+{
+ int i;
+ while ((i = elem_l_arr_.find_i (o))>=0)
+ if (n)
+ elem_l_arr_[i] = n;
+ else
+ elem_l_arr_.del (i);
+}
+
+Interval
+Axis_group_element::do_height () const
+{
+ return Graphical_axis_group::extent (Y_AXIS);
+}
+Interval
+Axis_group_element::do_width () const
+{
+ return Graphical_axis_group::extent (X_AXIS);
+}
}
-
-
+Interval
+Axis_group_spanner::do_width () const
+{
+ return Spanner::do_width ();
+}
This is a wrapper around Axis_group_administration
*/
class Axis_group_element : public virtual Score_element,
- public Graphical_axis_group {
+ public virtual Graphical_axis_group {
protected:
virtual void do_print() const;
virtual Link_array<Score_element> get_extra_dependencies() const;
+ virtual Interval do_height () const;
+ virtual Interval do_width () const;
public:
+ virtual void do_substitute_element_pointer (Score_element*,Score_element*);
virtual Link_array<Score_element> elem_l_arr() const;
- Axis_group_element(Axis,Axis);
- Axis_group_element();
+ Axis_group_element ();
+ virtual void set_axes (Axis,Axis);
+
virtual Link_array<Score_element> get_children ();
};
/** An element which groups a line in a certain direction. The most
useful example of this is the Vertical_group_spanner */
-class Axis_group_spanner : public Spanner, public virtual Axis_group_element
+class Axis_group_spanner : public virtual Axis_group_element,
+ public virtual Spanner
+
{
void do_break_processing_if_unbroken();
protected:
virtual void do_break_processing();
virtual void do_print() const;
+ virtual Interval do_width () const;
public:
-
+ VIRTUAL_COPY_CONS(Score_element);
};
#endif // SPAN_AXIS_GROUP_HH