/*
- text.hh -- part of LilyPond
+ text-item.hh -- part of GNU LilyPond
- (c) 1996,97 Han-Wen Nienhuys
+ (c) 1996--1998 Han-Wen Nienhuys
*/
#ifndef TEXT_ITEM_HH
#include "text-def.hh"
#include "item.hh"
-
-struct Text_item : Item {
- int pos_i_;
- int staffsize_i_;
- int dir_i_;
- Text_def* tdef_l_;
-
- /* ***************/
- NAME_MEMBERS(Text_item);
- virtual void set_default_index();
- Molecule* brew_molecule_p() const;
- void do_pre_processing();
+#include "staff-side.hh"
+
+/**
+ print a fixed width text above or below the staff.
+ */
+class Text_item : public Item ,public Staff_side
+{
+public:
+
+ /// do I have width?
+ bool fat_b_;
- Text_item(Text_req*,int);
+
+ Text_item (General_script_def* ,Direction dir=CENTER);
+ virtual ~Text_item ();
+ DECLARE_MY_RUNTIME_TYPEINFO;
+
+//protected:
+ // ugh: so, are we a text-def, or can this vary?
+ General_script_def* tdef_p_;
+protected:
+
+ virtual Interval symbol_height () const;
+
+ virtual Molecule* brew_molecule_p () const;
+ virtual void do_pre_processing ();
+ virtual Real get_position_f () const;
+
+private:
+// void init (Text_def* tdef_l);
};