summaryrefslogtreecommitdiff
path: root/hdr/spanner.hh
diff options
context:
space:
mode:
Diffstat (limited to 'hdr/spanner.hh')
-rw-r--r--hdr/spanner.hh48
1 files changed, 48 insertions, 0 deletions
diff --git a/hdr/spanner.hh b/hdr/spanner.hh
new file mode 100644
index 0000000000..3940cebf60
--- /dev/null
+++ b/hdr/spanner.hh
@@ -0,0 +1,48 @@
+/*
+ spanner.hh -- part of LilyPond
+
+ (c) 1996 Han-Wen Nienhuys
+*/
+
+#ifndef SPANNER_HH
+#define SPANNER_HH
+#include "proto.hh"
+
+/// a symbol which is attached between two columns.
+struct Spanner {
+ PCol *left, *right;
+ PStaff * pstaff_;
+ Molecule *output ;
+
+ /****************/
+
+ String TeXstring () const ;
+ Spanner();
+ Paperdef*paper() const;
+
+ virtual Interval height()const=0;
+ /**
+ PRE:
+ processed
+ */
+ virtual Interval width()const;
+ virtual void process();
+ virtual void preprocess();
+
+
+ /// clone a piece of this spanner.
+ virtual Spanner *broken_at(const PCol *c1, const PCol *c2) const=0;
+ /**
+
+ PRE
+ c1 >= start, c2 <= stop
+ */
+ virtual void print() const;
+};
+/** Spanner should know about the items which it should consider:
+ e.g. slurs should be steep enough to "enclose" all those items. This
+ is absolutely necessary for beams, since they have to adjust the
+ length of stems of notes they encompass.
+
+ */
+#endif