--- /dev/null
+/*
+ horizontal-group-element.hh -- declare Horizontal_group_element
+
+ source file of the GNU LilyPond music typesetter
+
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+
+ */
+
+#ifndef HORIZONTAL_GROUP_ELEM_HH
+#define HORIZONTAL_GROUP_ELEM_HH
+
+#include "axis-group-element.hh"
+
+/**
+ Treat a group of elements a unity in horizontal sense .
+ A column is a typical Vertical_group.
+ */
+class Horizontal_group_element : public virtual Axis_group_element {
+protected:
+ virtual Interval do_width() const;
+
+public:
+ Horizontal_group_element ();
+ DECLARE_MY_RUNTIME_TYPEINFO;
+};
+
+
+#endif /* HORIZONTAL_GROUP_ELEM_HH */
+
--- /dev/null
+/*
+ horizontal-vertical-group-element.hh -- declare Horizontal_vertical_group_element
+
+ source file of the GNU LilyPond music typesetter
+
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+
+ */
+
+#ifndef HORIZONTAL_VERTICAL_GROUP_ELEM_HH
+#define HORIZONTAL_VERTICAL_GROUP_ELEM_HH
+
+#include "vertical-group-element.hh"
+#include "horizontal-group-element.hh"
+
+/** A class to treat a group of elements as a single entity. The
+ dimensions are the unions of the dimensions of what it contains.
+ Translation means translating the contents.
+ */
+class Horizontal_vertical_group_element : public Vertical_group_element,
+ public Horizontal_group_element
+{
+protected:
+public:
+ Horizontal_vertical_group_element ();
+
+ DECLARE_MY_RUNTIME_TYPEINFO;
+};
+
+
+#endif /* HORIZONTAL_VERTICAL_GROUP_ELEM_HH */
+
+
source file of the GNU LilyPond music typesetter
- (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@cs.uu.nl>
*/
#define VERTICAL_ALIGN_SPANNER_HH
#include "spanner.hh"
-#include "vertical-align-elem.hh"
+#include "align-element.hh"
-class Vertical_align_spanner : public Vertical_align_element, public Spanner
+class Vertical_align_spanner : public Align_element, public Spanner
{
public:
- DECLARE_MY_RUNTIME_TYPEINFO;
- SCORE_ELEM_CLONE(Vertical_align_spanner);
- virtual void do_print() const { Vertical_align_element::do_print () ; }
+ DECLARE_MY_RUNTIME_TYPEINFO;
+ SCORE_ELEMENT_CLONE(Vertical_align_spanner);
+ Vertical_align_spanner ();
+ virtual void do_print() const ;
};
#endif // VERTICAL_ALIGN_SPANNER_HH
--- /dev/null
+/*
+ vertical-group-element.hh -- declare
+
+ source file of the GNU LilyPond music typesetter
+
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+
+ */
+
+#ifndef VERTICAL_GROUP_ELEM_HH
+#define VERTICAL_GROUP_ELEM_HH
+
+#include "axis-group-element.hh"
+/**
+ Like Horizontal_group_element, but in X direction
+ */
+class Vertical_group_element : public virtual Axis_group_element {
+protected:
+ virtual Interval do_height() const;
+
+public:
+ Vertical_group_element () ;
+ DECLARE_MY_RUNTIME_TYPEINFO;
+};
+
+#endif /* VERTICAL_GROUP_ELEM_HH */
+
source file of the GNU LilyPond music typesetter
- (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@cs.uu.nl>
*/
#define SPAN_VERTICAL_GROUP_HH
#include "axis-group-spanner.hh"
-#include "vertical-group-elem.hh"
+#include "vertical-group-element.hh"
/** An element which groups a line.
*/
class Vertical_group_spanner : public Axis_group_spanner, public Vertical_group_element
{
protected:
- SCORE_ELEM_CLONE(Vertical_group_spanner);
- virtual void remove_all() { Vertical_group_element::remove_all (); }
+ SCORE_ELEMENT_CLONE(Vertical_group_spanner);
virtual void do_junk_links () { Axis_group_spanner::do_junk_links (); }
virtual void do_unlink () { Axis_group_spanner::do_unlink (); }
public:
DECLARE_MY_RUNTIME_TYPEINFO;
- virtual void add_element (Graphical_element*e) { Vertical_group_element::add_element (e); }
- virtual void remove_element (Graphical_element*e) { Vertical_group_element::remove_element (e); }
+ Vertical_group_spanner ();
};