-/*
- script.hh -- part of LilyPond
-
- (c) 1996,97 Han-Wen Nienhuys
-*/
+/*
+ script.hh -- declare Script
+
+ source file of the GNU LilyPond music typesetter
+
+ (c) 1999--2003 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+
+ */
#ifndef SCRIPT_HH
#define SCRIPT_HH
-#include "staff-side.hh"
-#include "script-def.hh"
-#include "item.hh"
-
-/**
- Accents that are put over a note-group.
- */
-class Script : public Item, public Staff_side {
- /**
- Vertical dir of symbol. -1 means invert the symbol.
- */
- int symdir_i_;
-
- int pos_i_;
-
- Script_def *specs_l_;
- Stem *stem_l_;
+#include "lily-guile.hh"
+#include "lily-proto.hh"
- /* *************** */
-protected:
- Molecule *brew_molecule_p()const;
- virtual void do_post_processing();
- virtual void do_pre_processing();
- virtual Interval do_width() const;
-private:
- void set_symdir();
- void set_default_dir();
- void set_default_index();
- Symbol symbol()const;
+/**
+ Articulation marks (and the like) that are attached to notes/stems.
+ Needs support from Staff_side for proper operation. Staff_side
+ handles the positioning.
+*/
+class Script_interface
+{
public:
- static int compare(Script *const&, Script *const&) ;
- Script(Script_req*);
- void set_stem(Stem*);
- NAME_MEMBERS(Script);
-
+ static Molecule get_molecule (Grob*,Direction d);
+
+ static bool has_interface (Grob*);
+ DECLARE_SCHEME_CALLBACK (brew_molecule, (SCM ));
+ DECLARE_SCHEME_CALLBACK (before_line_breaking, (SCM ));
};
-
-#endif // SCRIPT_HH
+#endif /* Stem_SCRIPT_HH */