From 33f2c8bb1ca9682e0dc79defdf6a1545c24573c4 Mon Sep 17 00:00:00 2001 From: fred Date: Tue, 26 Mar 2002 21:48:32 +0000 Subject: [PATCH] lilypond-1.1.37 --- lily/axis-group-element.cc | 33 +++++++++++++++++++++++++----- lily/axis-group-spanner.cc | 7 +++++-- lily/include/axis-group-element.hh | 10 ++++++--- lily/include/axis-group-spanner.hh | 7 +++++-- 4 files changed, 45 insertions(+), 12 deletions(-) diff --git a/lily/axis-group-element.cc b/lily/axis-group-element.cc index 0bce567aca..cd6000b464 100644 --- a/lily/axis-group-element.cc +++ b/lily/axis-group-element.cc @@ -53,17 +53,40 @@ Axis_group_element::do_print() const 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); +} diff --git a/lily/axis-group-spanner.cc b/lily/axis-group-spanner.cc index c78cac0e11..58214f5137 100644 --- a/lily/axis-group-spanner.cc +++ b/lily/axis-group-spanner.cc @@ -131,5 +131,8 @@ Axis_group_spanner::do_print() const } - - +Interval +Axis_group_spanner::do_width () const +{ + return Spanner::do_width (); +} diff --git a/lily/include/axis-group-element.hh b/lily/include/axis-group-element.hh index ed80677fae..d38c0d1960 100644 --- a/lily/include/axis-group-element.hh +++ b/lily/include/axis-group-element.hh @@ -18,15 +18,19 @@ 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 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 elem_l_arr() const; - Axis_group_element(Axis,Axis); - Axis_group_element(); + Axis_group_element (); + virtual void set_axes (Axis,Axis); + virtual Link_array get_children (); }; diff --git a/lily/include/axis-group-spanner.hh b/lily/include/axis-group-spanner.hh index 138c58787a..40753a8a9a 100644 --- a/lily/include/axis-group-spanner.hh +++ b/lily/include/axis-group-spanner.hh @@ -15,15 +15,18 @@ /** 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 -- 2.39.5