summaryrefslogtreecommitdiff
path: root/lily/include
diff options
context:
space:
mode:
authorHan-Wen Nienhuys <hanwen@xs4all.nl>2000-03-20 13:53:27 +0100
committerHan-Wen Nienhuys <hanwen@xs4all.nl>2000-03-20 13:53:27 +0100
commitee513a2f7d18fc8d43e1c291350ed81856b0192d (patch)
treeb26bd9874221cbb917507ea4cc0117b410eb92ee /lily/include
parent1a72867b0c5db394ec87a1901910792cf850bc57 (diff)
release: 1.3.37
=========== * Abstract Align_element into Align_interface. Removed Axis_align_{item,spanner}, Align_element, Super_element, all multiple inheritance in the backend. * new Gade score, INSTALL.texi fixes (thanks, Mats) * Removed Item::hpos_f (), Score_element::{get,set}_real () * comments detailing properties for Axis_group_interface, Side_position_interface, Score_element, Item and Spanner 1.3.36.j
Diffstat (limited to 'lily/include')
-rw-r--r--lily/include/align-interface.hh (renamed from lily/include/align-element.hh)52
-rw-r--r--lily/include/atom.hh0
-rw-r--r--lily/include/audio-item.hh4
-rw-r--r--lily/include/axis-align-item.hh28
-rw-r--r--lily/include/axis-align-spanner.hh27
-rw-r--r--lily/include/axis-group-engraver.hh4
-rw-r--r--lily/include/axis-group-interface.hh22
-rw-r--r--lily/include/axis-group-item.hh23
-rw-r--r--lily/include/axis-group-spanner.hh27
-rw-r--r--lily/include/break-align-item.hh7
-rw-r--r--lily/include/collision.hh5
-rw-r--r--lily/include/context-specced-music.hh6
-rw-r--r--lily/include/dot-column.hh4
-rw-r--r--lily/include/dummy.icc0
-rw-r--r--lily/include/grace-align-item.hh4
-rw-r--r--lily/include/group-interface.hh7
-rw-r--r--lily/include/hara-kiri-engraver.hh2
-rw-r--r--lily/include/hara-kiri-vertical-group-spanner.hh4
-rw-r--r--lily/include/head-column.hh0
-rw-r--r--lily/include/item.hh42
-rw-r--r--lily/include/lily-proto.hh5
-rw-r--r--lily/include/line-group-group-engraver.hh2
-rw-r--r--lily/include/line-of-score.hh28
-rw-r--r--lily/include/note-column.hh8
-rw-r--r--lily/include/paper-column.hh5
-rw-r--r--lily/include/priority-halign-engraver.hh26
-rw-r--r--lily/include/rest-column-engraver.hh0
-rw-r--r--lily/include/rest-column.hh0
-rw-r--r--lily/include/score-element.hh26
-rw-r--r--lily/include/side-position-interface.hh21
-rw-r--r--lily/include/span-bar.hh1
-rw-r--r--lily/include/spanner.hh13
-rw-r--r--lily/include/super-element.hh20
-rw-r--r--lily/include/todo-performer.hh0
-rw-r--r--lily/include/vertical-align-engraver.hh29
35 files changed, 158 insertions, 294 deletions
diff --git a/lily/include/align-element.hh b/lily/include/align-interface.hh
index 19a4e9dcc9..0809620234 100644
--- a/lily/include/align-element.hh
+++ b/lily/include/align-interface.hh
@@ -1,18 +1,22 @@
/*
- align-item.hh -- declare Align_elem
-
+ align-interface.hh -- declare Align_interface
+
source file of the GNU LilyPond music typesetter
+
+ (c) 2000 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+
+ */
- (c) 1997--2000 Han-Wen Nienhuys <hanwen@cs.uu.nl>
-*/
-
-
-#ifndef VERTICAL_ALIGN_ITEM_HH
-#define VERTICAL_ALIGN_ITEM_HH
+#ifndef ALIGN_INTERFACE_HH
+#define ALIGN_INTERFACE_HH
-#include "score-element.hh"
+#include "axes.hh"
+#include "lily-proto.hh"
-/**
+/*
+ TODO: rewrite this comment.
+
+
Order elements top to bottom/left to right/right to left etc..
TODO: implement padding.
@@ -29,20 +33,20 @@
Which side to align? -1: left side, 0: centered (around
center_l_ if not nil, or around center of width), 1: right side
-
-
-*/
-class Align_element : public virtual Score_element {
-public:
- Axis axis () const;
-
- Align_element ();
+ */
+struct Align_interface {
+ Score_element * elt_l_;
+
+ Align_interface (Score_element const*);
+ static Real alignment_callback (Dimension_cache const *);
+ void do_side_processing (Axis a);
void set_axis (Axis);
+ Axis axis () const;
+ void add_element (Score_element*);
int get_count (Score_element*)const;
- void add_element (Score_element *);
- static Real alignment_callback (Dimension_cache const *);
-protected:
- virtual void do_side_processing (Axis);
-
+ void set_interface ();
+ bool has_interface_b ();
};
-#endif // VERTICAL_ALIGN_ITEM_HH
+
+#endif /* ALIGN_INTERFACE_HH */
+
diff --git a/lily/include/atom.hh b/lily/include/atom.hh
deleted file mode 100644
index e69de29bb2..0000000000
--- a/lily/include/atom.hh
+++ /dev/null
diff --git a/lily/include/audio-item.hh b/lily/include/audio-item.hh
index 9b59283804..fd465f9f4c 100644
--- a/lily/include/audio-item.hh
+++ b/lily/include/audio-item.hh
@@ -40,9 +40,9 @@ private:
class Audio_dynamic : public Audio_item
{
public:
- Audio_dynamic (Real volume);
+ Audio_dynamic (int volume);
- Real volume_;
+ int volume_i_;
};
class Audio_key : public Audio_item
diff --git a/lily/include/axis-align-item.hh b/lily/include/axis-align-item.hh
deleted file mode 100644
index 7a7d4022ec..0000000000
--- a/lily/include/axis-align-item.hh
+++ /dev/null
@@ -1,28 +0,0 @@
-/*
- axis-align-item.hh -- declare Axis_align_item
-
- source file of the GNU LilyPond music typesetter
-
- (c) 1999--2000 Han-Wen Nienhuys <hanwen@cs.uu.nl>
-
- */
-
-#ifndef AXIS_ALIGN_ITEM_HH
-#define AXIS_ALIGN_ITEM_HH
-
-#include "align-element.hh"
-#include "axis-group-item.hh"
-
-/*
- UGH. FIXME: multiple inheritance.
- */
-class Axis_align_item : public virtual Align_element, public virtual Axis_group_item
-{
-public:
- Axis_align_item ();
-protected:
- virtual void do_print ()const;
-
-};
-#endif /* AXIS_ALIGN_ITEM_HH */
-
diff --git a/lily/include/axis-align-spanner.hh b/lily/include/axis-align-spanner.hh
deleted file mode 100644
index 0352968aee..0000000000
--- a/lily/include/axis-align-spanner.hh
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
- vertical-align-spanner.hh -- declare Vertical_align_spanner
-
- source file of the GNU LilyPond music typesetter
-
- (c) 1997--2000 Han-Wen Nienhuys <hanwen@cs.uu.nl>
-*/
-
-
-#ifndef VERTICAL_ALIGN_SPANNER_HH
-#define VERTICAL_ALIGN_SPANNER_HH
-
-#include "spanner.hh"
-#include "align-element.hh"
-#include "axis-group-spanner.hh"
-
-/*
- FIXME: multiple inheritance
- */
-class Axis_align_spanner : public virtual Align_element, public virtual Axis_group_spanner
-{
-public:
- VIRTUAL_COPY_CONS(Score_element);
- Axis_align_spanner ();
- virtual void do_print() const {}
-};
-#endif // VERTICAL_ALIGN_SPANNER_HH
diff --git a/lily/include/axis-group-engraver.hh b/lily/include/axis-group-engraver.hh
index f2f99b0411..f790997d85 100644
--- a/lily/include/axis-group-engraver.hh
+++ b/lily/include/axis-group-engraver.hh
@@ -19,14 +19,14 @@
class Axis_group_engraver : public Engraver
{
protected:
- Axis_group_spanner *staffline_p_;
+ Spanner *staffline_p_;
Link_array<Score_element> elts_;
virtual void do_creation_processing();
virtual void do_removal_processing();
virtual void acknowledge_element (Score_element_info);
virtual void process_acknowledged ();
- virtual Axis_group_spanner* get_spanner_p () const;
+ virtual Spanner* get_spanner_p () const;
public:
VIRTUAL_COPY_CONS(Translator);
diff --git a/lily/include/axis-group-interface.hh b/lily/include/axis-group-interface.hh
index 9ceee2fcb1..f1382da9be 100644
--- a/lily/include/axis-group-interface.hh
+++ b/lily/include/axis-group-interface.hh
@@ -12,10 +12,27 @@
#include "group-interface.hh"
-struct Axis_group_interface : Group_interface
+/**
+ Treat a group of elements as a union. This sets the parent of any S
+ added to ELT_L_ to ELT_L_.
+
+ Properties:
+
+ axes -- list of axis (number) in which this group works
+
+ transparent -- an Axis_group is transparent by default
+
+ elements -- contains list of pointers to other elements
+
+ interfaces -- Axis_group is added to this list.
+*/
+struct Axis_group_interface
{
+ Score_element *elt_l_;
Axis_group_interface (Score_element*);
+
static Interval group_extent_callback (Dimension_cache const*);
+
void add_element (Score_element*);
void set_axes (Axis,Axis);
bool axis_b (Axis)const;
@@ -24,8 +41,5 @@ struct Axis_group_interface : Group_interface
void set_interface ();
};
-Axis_group_interface
-axis_group (Score_element*);
-
#endif /* AXIS_GROUP_INTERFACE_HH */
diff --git a/lily/include/axis-group-item.hh b/lily/include/axis-group-item.hh
index aa2e6392bc..09c7cfafd0 100644
--- a/lily/include/axis-group-item.hh
+++ b/lily/include/axis-group-item.hh
@@ -1,22 +1 @@
-/*
- axis-item.hh -- declare Axis_group_item
-
- source file of the GNU LilyPond music typesetter
-
- (c) 1997--2000 Han-Wen Nienhuys <hanwen@cs.uu.nl>
-*/
-
-
-#ifndef AXIS_ITEM_HH
-#define AXIS_ITEM_HH
-
-#include "item.hh"
-
-class Axis_group_item : public virtual Item
-{
-public:
- Axis_group_item ();
- VIRTUAL_COPY_CONS(Score_element);
-};
-
-#endif // AXIS_ITEM_HH
+#error
diff --git a/lily/include/axis-group-spanner.hh b/lily/include/axis-group-spanner.hh
index 9d48108c2e..65296f8106 100644
--- a/lily/include/axis-group-spanner.hh
+++ b/lily/include/axis-group-spanner.hh
@@ -1,27 +1,2 @@
-/*
- axis-group-spanner.hh -- declare Axis_group_spanner
- source file of the GNU LilyPond music typesetter
-
- (c) 1997--2000 Han-Wen Nienhuys <hanwen@cs.uu.nl>
-*/
-
-
-#ifndef AXIS_GROUP_SPANNER_HH
-#define AXIS_GROUP_SPANNER_HH
-
-#include "spanner.hh"
-
-/**
- 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 virtual Spanner
-
-{
-public:
- Axis_group_spanner ();
- VIRTUAL_COPY_CONS(Score_element);
-};
-
-#endif // SPAN_AXIS_GROUP_HH
+#error
diff --git a/lily/include/break-align-item.hh b/lily/include/break-align-item.hh
index 791e104f00..c9a5aa1632 100644
--- a/lily/include/break-align-item.hh
+++ b/lily/include/break-align-item.hh
@@ -10,12 +10,11 @@
#ifndef BREAK_ALIGN_ITEM_HH
#define BREAK_ALIGN_ITEM_HH
-#include "axis-align-item.hh"
+#include "item.hh"
/// align breakable items (clef, bar, etc.)
-class Break_align_item : public Axis_align_item {
-
-
+class Break_align_item : public Item
+{
protected:
virtual void before_line_breaking ();
public:
diff --git a/lily/include/collision.hh b/lily/include/collision.hh
index f64db66504..64052db5e0 100644
--- a/lily/include/collision.hh
+++ b/lily/include/collision.hh
@@ -10,7 +10,7 @@
#ifndef COLLISION_HH
#define COLLISION_HH
#include "lily-proto.hh"
-#include "axis-group-item.hh"
+#include "item.hh"
#include "tuple.hh"
//junkme, use SCM conses.
@@ -24,7 +24,8 @@ typedef Tuple<Score_element*, Real> Shift_tup;
multistaff support (see Chlapik: equal noteheads should be on the
same hpos.)
*/
-class Collision : public Axis_group_item {
+class Collision : public Item
+{
protected:
Array<Shift_tup> automatic_shift ();
Array<Shift_tup> forced_shift ();
diff --git a/lily/include/context-specced-music.hh b/lily/include/context-specced-music.hh
index 56206a3bdf..abcf2c40f3 100644
--- a/lily/include/context-specced-music.hh
+++ b/lily/include/context-specced-music.hh
@@ -15,11 +15,7 @@
class Context_specced_music : public Music_wrapper
{
public:
- /** The kind of translation needed for this music. This doesn't
- make sense for simple (ie non-list) music, but it does no harm
- here. Yes, it did harm Music_sequence: you can forget to copy it.
-
- */
+ /// The kind of translation needed for this music.
String translator_type_str_;
/// what identification for the translation unit
diff --git a/lily/include/dot-column.hh b/lily/include/dot-column.hh
index 9679bf32a4..4c3a211557 100644
--- a/lily/include/dot-column.hh
+++ b/lily/include/dot-column.hh
@@ -10,13 +10,13 @@
#ifndef DOT_COLUMN_HH
#define DOT_COLUMN_HH
-#include "axis-group-item.hh"
+#include "item.hh"
/**
Group dots. This is needed because, the dots have to be aligned per voice
*/
-class Dot_column : public Axis_group_item
+class Dot_column : public Item
{
static int compare (Dots * const&,Dots * const&);
void add_dots (Dots*);
diff --git a/lily/include/dummy.icc b/lily/include/dummy.icc
deleted file mode 100644
index e69de29bb2..0000000000
--- a/lily/include/dummy.icc
+++ /dev/null
diff --git a/lily/include/grace-align-item.hh b/lily/include/grace-align-item.hh
index f3bb2af3c4..ed16719bca 100644
--- a/lily/include/grace-align-item.hh
+++ b/lily/include/grace-align-item.hh
@@ -11,9 +11,9 @@
#define GRACE_ALIGN_ITEM_HH
-#include "axis-align-item.hh"
+#include "item.hh"
-class Grace_align_item : public Axis_align_item
+class Grace_align_item : public Item
{
public:
VIRTUAL_COPY_CONS (Score_element);
diff --git a/lily/include/group-interface.hh b/lily/include/group-interface.hh
index 509fcdf25b..72bc892258 100644
--- a/lily/include/group-interface.hh
+++ b/lily/include/group-interface.hh
@@ -15,15 +15,14 @@
#include "lily-guile.hh"
#include "smobs.hh"
-/*
- rename to list interface?
- */
-
/**
Look at Score element ELT as thing which has a list property called
NAME_. Normally the list would contain Score_elements, but
sometimes it can be different things.
+
+ todo: reename as list_interface?
*/
+
struct Group_interface
{
Score_element * elt_l_;
diff --git a/lily/include/hara-kiri-engraver.hh b/lily/include/hara-kiri-engraver.hh
index 82992a29a8..93eeb8feb7 100644
--- a/lily/include/hara-kiri-engraver.hh
+++ b/lily/include/hara-kiri-engraver.hh
@@ -15,7 +15,7 @@
class Hara_kiri_engraver : public Axis_group_engraver
{
protected:
- virtual Axis_group_spanner*get_spanner_p ()const;
+ virtual Spanner*get_spanner_p ()const;
virtual void acknowledge_element (Score_element_info);
public:
VIRTUAL_COPY_CONS(Translator);
diff --git a/lily/include/hara-kiri-vertical-group-spanner.hh b/lily/include/hara-kiri-vertical-group-spanner.hh
index e3e34c2a00..aeb77bf9b8 100644
--- a/lily/include/hara-kiri-vertical-group-spanner.hh
+++ b/lily/include/hara-kiri-vertical-group-spanner.hh
@@ -10,14 +10,14 @@
#ifndef HARA_KIRI_VERTICAL_GROUP_SPANNER_HH
#define HARA_KIRI_VERTICAL_GROUP_SPANNER_HH
-#include "axis-group-spanner.hh"
+#include "spanner.hh"
/**
As Vertical_group_spanner, but keep track of interesting items. If
we don't contain any interesting items after linebreaking, then
gracefully commit suicide. Objective: don't disgrace Lily by
typesetting empty lines in orchestral scores. */
-class Hara_kiri_group_spanner : public Axis_group_spanner
+class Hara_kiri_group_spanner : public Spanner
{
public:
Hara_kiri_group_spanner ();
diff --git a/lily/include/head-column.hh b/lily/include/head-column.hh
deleted file mode 100644
index e69de29bb2..0000000000
--- a/lily/include/head-column.hh
+++ /dev/null
diff --git a/lily/include/item.hh b/lily/include/item.hh
index c4b3dfbad3..0f2c951ca4 100644
--- a/lily/include/item.hh
+++ b/lily/include/item.hh
@@ -24,31 +24,27 @@
NB. This doesn't mean an Item has to initialize the output field before
spacing calculation.
-
- @signature
- visibility_lambda :: int -> (bool . bool)
-
- @in
- break direction
-
- @out
- (transparent, empty) cons
-
- */
-class Item : public virtual Score_element {
- void do_break ();
- void try_visibility_lambda ();
-public:
- /*
- ugh.
+ Element properties
+
+ visibility-lambda -- a function that takes the break
+ direction and returns a (transparent, empty) cons
+
+ breakable -- boolean indicating if this is a breakable item (clef,
+ barline, key sig, etc.)
+
*/
+class Item : public Score_element
+{
Drul_array<Item*> broken_to_drul_;
-
+ void do_break ();
+ void try_visibility_lambda ();
public:
+ VIRTUAL_COPY_CONS(Score_element);
+ Item();
+ Item (Item const &);
- /// I am really to be broken?
bool breakable_b () const;
bool broken_b () const;
@@ -57,18 +53,10 @@ public:
Item * find_broken_piece (Direction) const;
Score_element * find_broken_piece (Line_of_score*) const;
- Item();
- Real hpos_f() const;
-
virtual Line_of_score * line_l() const;
virtual Paper_column * column_l () const;
-
- static int left_right_compare (Item const *, Item const*);
-
- Item (Item const &);
protected:
virtual void do_breakable_col_processing();
-
void copy_breakable_items();
};
diff --git a/lily/include/lily-proto.hh b/lily/include/lily-proto.hh
index 8309d245a9..1b85d39f98 100644
--- a/lily/include/lily-proto.hh
+++ b/lily/include/lily-proto.hh
@@ -34,10 +34,6 @@ struct Audio_tie;
struct Audio_time_signature;
struct Auto_beam_engraver;
struct Axis_align_item;
-struct Axis_group;
-struct Axis_group_element;
-struct Axis_group_item;
-struct Axis_group_spanner;
struct Bar;
struct Bar_column;
struct Bar_column_engraver;
@@ -273,7 +269,6 @@ struct Tremolo_req;
struct Tuplet_spanner;
struct Unfolded_repeat_iterator;
struct Vertical_brace;
-struct Vertical_spanner;
struct Volta_spanner;
struct Moment;
diff --git a/lily/include/line-group-group-engraver.hh b/lily/include/line-group-group-engraver.hh
index 72a10c72a5..b5db361da4 100644
--- a/lily/include/line-group-group-engraver.hh
+++ b/lily/include/line-group-group-engraver.hh
@@ -20,7 +20,7 @@
*/
class Line_group_engraver_group : public Engraver_group_engraver {
protected:
- Axis_group_spanner *staffline_p_;
+ Spanner *staffline_p_;
virtual void create_line_spanner ();
virtual void do_creation_processing();
diff --git a/lily/include/line-of-score.hh b/lily/include/line-of-score.hh
index 994a50b20d..a5a0174d19 100644
--- a/lily/include/line-of-score.hh
+++ b/lily/include/line-of-score.hh
@@ -8,13 +8,34 @@
#define SCORELINE_HH
#include "column-x-positions.hh"
-#include "axis-group-spanner.hh"
-#include "super-element.hh"
+#include "spanner.hh"
/// the columns of a score that form one line. FIXME: multiple inheritance
-class Line_of_score : public Axis_group_spanner, public Super_element
+class Line_of_score : public Spanner
{
public:
+
+
+/*
+ imported the following from Super_element
+
+ The toplevel element. The Paper_score contains this element, and any
+ element shoud be a dependency for the super element.
+
+ It is the entry point for the "constraint solver"/ dependency
+ tracker. Every XXXX_processing () call traverses the entire
+ dependency graph, and calls the appropriate
+ Score_element::do_XXX_processing function on each Score_element it encounters.
+
+
+ FIXME: remove this class, to eliminate multiple inheritance. Merge
+ with Line_of_score ? */
+ void space_processing ();
+ void pre_processing();
+ void breakable_col_processing();
+ void post_processing();
+ void output_all ();
+
int rank_i_;
Line_of_score();
@@ -30,7 +51,6 @@ public:
void add_column (Paper_column*);
protected:
- virtual void do_print() const;
VIRTUAL_COPY_CONS(Score_element);
};
diff --git a/lily/include/note-column.hh b/lily/include/note-column.hh
index df0876b598..0d81e99399 100644
--- a/lily/include/note-column.hh
+++ b/lily/include/note-column.hh
@@ -11,15 +11,15 @@
#define NOTE_COLUMN_HH
#include "item.hh"
-#include "axis-group-item.hh"
/** a struct for treating a group of noteheads (noteheads, stem
- (chord) and scripts) as a single entity. */
-class Note_column : public Axis_group_item {
+ (chord) and scripts) as a single entity.
+*/
+class Note_column : public Item
+{
protected:
virtual void after_line_breaking () ;
public:
-
static int shift_compare (Note_column *const &, Note_column*const&);
/** The relative position of the "voice" containing this
diff --git a/lily/include/paper-column.hh b/lily/include/paper-column.hh
index 16b0585057..e0510bc7f8 100644
--- a/lily/include/paper-column.hh
+++ b/lily/include/paper-column.hh
@@ -10,7 +10,7 @@
#ifndef P_COL_HH
#define P_COL_HH
-#include "axis-group-item.hh"
+#include "item.hh"
#include "rod.hh"
#include "spring.hh"
@@ -27,7 +27,8 @@
\end{itemize}
*/
-class Paper_column : public Axis_group_item {
+class Paper_column : public Item
+{
public:
VIRTUAL_COPY_CONS(Score_element);
Drul_array<Array<Column_rod> > minimal_dists_arr_drul_;
diff --git a/lily/include/priority-halign-engraver.hh b/lily/include/priority-halign-engraver.hh
index a3209d8b13..09c7cfafd0 100644
--- a/lily/include/priority-halign-engraver.hh
+++ b/lily/include/priority-halign-engraver.hh
@@ -1,25 +1 @@
-/*
- score-halign-engraver.hh -- declare Score_horizontal_align_engraver
-
- source file of the GNU LilyPond music typesetter
-
- (c) 1997--2000 Han-Wen Nienhuys <hanwen@cs.uu.nl>
-*/
-
-
-#ifndef FSCORE_HALIGN_GRAV_HH
-#define FSCORE_HALIGN_GRAV_HH
-
-#include "engraver.hh"
-
-class Priority_horizontal_align_engraver : public Engraver {
- Break_align_item * halign_p_;
-public:
- VIRTUAL_COPY_CONS(Translator);
-
- Priority_horizontal_align_engraver();
-protected:
- virtual void acknowledge_element (Score_element_info);
- virtual void do_pre_move_processing();
-};
-#endif // Priority_HALIGN_GRAV_HH
+#error
diff --git a/lily/include/rest-column-engraver.hh b/lily/include/rest-column-engraver.hh
deleted file mode 100644
index e69de29bb2..0000000000
--- a/lily/include/rest-column-engraver.hh
+++ /dev/null
diff --git a/lily/include/rest-column.hh b/lily/include/rest-column.hh
deleted file mode 100644
index e69de29bb2..0000000000
--- a/lily/include/rest-column.hh
+++ /dev/null
diff --git a/lily/include/score-element.hh b/lily/include/score-element.hh
index 9bcbd2e33c..8fde243cd8 100644
--- a/lily/include/score-element.hh
+++ b/lily/include/score-element.hh
@@ -17,24 +17,24 @@
typedef void (Score_element::*Score_element_method_pointer) (void);
-/** Both Spanner and Item are Score_element's. Most Score_element's depend
- on other Score_element's, eg, Beam needs to know and set direction of
- Stem. So the Beam has to be calculated *before* Stem. This is
- accomplished with the dependencies fields of struct Score_element,
- which are implemented in the Directed_graph_node class: all elements
- form an acyclic graph.
+/**
+ Basic output object.
- (elem)
+ Element Properties:
+ transparent -- boolean: if true, do not print anything black.
-Element Properties:
+ dependencies -- list of score-element pointers that indicate who to
+ compute first.
-Boolean (true iff defined)
+ interfaces -- list of symbols indicating the interfaces supported
+ by this object.
- break_helper_only -- if defined try to junk this after calcing breakpoints.
-
- transparent -- do not calc. output
+ extra-offset -- pair of reals (a cons) forcing an extra offset
+ before outputting
+ glyph -- afm character name to output.
+
*/
class Score_element {
/**
@@ -170,6 +170,8 @@ public:
/**
Set this if anyone points to me, or if I point to anyone.
+
+ JUNKME.
*/
bool used_b_;
diff --git a/lily/include/side-position-interface.hh b/lily/include/side-position-interface.hh
index 12495db3af..839c088c2c 100644
--- a/lily/include/side-position-interface.hh
+++ b/lily/include/side-position-interface.hh
@@ -13,6 +13,27 @@
#include "spanner.hh"
#include "item.hh"
+
+/**
+ Position victim object (ELT_L_) next to other objects (the support).
+
+ side-support -- list of score elements
+
+ direction -- where to put the victim object (left or right?)
+
+ side-relative-direction -- if set: get the direction from a different object, and multiply by this.
+
+ direction-source -- in case side-relative-direction is set, where
+ to get the direction
+
+ minimum-space -- minimum distance that the victim should move
+ (after padding)
+
+ padding -- add this much extra space between victim and support
+
+ TODO: move out unrelated callbacks.
+
+ */
struct Side_position_interface
{
Score_element * elt_l_;
diff --git a/lily/include/span-bar.hh b/lily/include/span-bar.hh
index bc93e8fe3d..93213fa0b2 100644
--- a/lily/include/span-bar.hh
+++ b/lily/include/span-bar.hh
@@ -29,7 +29,6 @@ public:
VIRTUAL_COPY_CONS(Score_element);
void add_bar (Score_element*);
- void set_align (Align_element *);
protected:
void evaluate_empty ();
diff --git a/lily/include/spanner.hh b/lily/include/spanner.hh
index 130604b863..b67d63d7dc 100644
--- a/lily/include/spanner.hh
+++ b/lily/include/spanner.hh
@@ -20,13 +20,10 @@ class Axis_group_spanner;
Examples
- \begin{itemize}
- \item (de)crescendo
- \item slur
- \item beam
- \item bracket
- \end{itemize}
-
+ * (de)crescendo
+ * slur
+ * beam
+ * bracket
Spanner should know about the items which it should consider:
e.g. slurs should be steep enough to "enclose" all those items. This
@@ -34,7 +31,7 @@ class Axis_group_spanner;
length of stems of notes they encompass.
*/
-class Spanner : public virtual Score_element {
+class Spanner : public Score_element {
Drul_array<Item*> spanned_drul_;
public:
diff --git a/lily/include/super-element.hh b/lily/include/super-element.hh
index 8c574bb683..3ae4480ba4 100644
--- a/lily/include/super-element.hh
+++ b/lily/include/super-element.hh
@@ -10,25 +10,7 @@
#ifndef Super_element_HH
#define Super_element_HH
+#error
#include "score-element.hh"
-/** The toplevel element. The Paper_score contains this element, and any
- element shoud be a dependency for the super element.
-
- It is the entry point for the "constraint solver"/ dependency
- tracker. Every XXXX_processing () call traverses the entire
- dependency graph, and calls the appropriate
- Score_element::do_XXX_processing function on each Score_element it encounters.
-
-
- FIXME: remove this class, to eliminate multiple inheritance. Merge
- with Line_of_score ? */
-class Super_element : public virtual Score_element {
-public:
- void space_processing ();
- void pre_processing();
- void breakable_col_processing();
- void post_processing();
- void output_all ();
-};
#endif // Super_element_HH
diff --git a/lily/include/todo-performer.hh b/lily/include/todo-performer.hh
deleted file mode 100644
index e69de29bb2..0000000000
--- a/lily/include/todo-performer.hh
+++ /dev/null
diff --git a/lily/include/vertical-align-engraver.hh b/lily/include/vertical-align-engraver.hh
deleted file mode 100644
index 286395fceb..0000000000
--- a/lily/include/vertical-align-engraver.hh
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
- vertical-align-engraver.hh -- declare Vertical_align_engraver
-
- source file of the GNU LilyPond music typesetter
-
- (c) 1997--2000 Han-Wen Nienhuys <hanwen@cs.uu.nl>
-*/
-
-
-#ifndef VERTICAL_ALIGN_GRAV_HH
-#define VERTICAL_ALIGN_GRAV_HH
-
-#include "engraver.hh"
-class Axis_align_spanner;
-class Vertical_align_engraver : public Engraver {
- Axis_align_spanner * valign_p_;
- bool qualifies_b (Score_element_info) const;
-public:
- VIRTUAL_COPY_CONS(Translator);
-
- Vertical_align_engraver();
-protected:
-
- virtual void acknowledge_element (Score_element_info);
- virtual void do_creation_processing();
- virtual void do_removal_processing();
-};
-
-#endif // VERTICAL_ALIGN_GRAV_HH