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>
*/
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
+{
+ Link_array<Score_element> extra_elems_;
+
protected:
virtual void do_print() const;
virtual Link_array<Score_element> get_extra_dependencies() const;
- virtual void do_unlink();
- virtual void do_junk_links();
+ void purge_extra ();
-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();
- virtual Link_array<Score_element> get_children ();
-
+ virtual Interval do_height () const;
+ virtual Interval do_width () const;
+
+
+ Interval extra_extent (Axis a) const;
+
+
+public:
+ /**
+ Override Graphical_axis_group::extent: make sure that
+ Graphical_element::extent() is used as the public entry point. */
+ Interval extent (Axis a) const;
+
+ /**
+ add an element that only influences size, but does not have X/Y parent
+ relationship with THIS.
+ */
+ void add_extra_element (Score_element*);
+
+
+ Axis_group_element ();
+ virtual void set_axes (Axis,Axis);
+
+ virtual Link_array<Score_element> get_children ();
};
#endif // AXIS_GROUP_ELEMENT_HH