]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/include/axis-group-element.hh
release: 1.2.4
[lilypond.git] / lily / include / axis-group-element.hh
index a871d8e3df0fe8227d32e2910cf8a78ba9558456..ab81872b52b1b56afec7c9a947299e89eea552e4 100644 (file)
@@ -3,7 +3,7 @@
 
   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