-/*
- text-item.hh -- part of GNU LilyPond
+/*
+ text-item.hh -- declare Text_item
- (c) 1996--1998 Han-Wen Nienhuys
-*/
-
-#ifndef TEXT_ITEM_HH
-#define TEXT_ITEM_HH
-
-#include "text-def.hh"
-#include "item.hh"
-#include "staff-side.hh"
-
-/**
- print a fixed width text above or below the staff.
+ source file of the GNU LilyPond music typesetter
+
+ (c) 1998--2002 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+ Jan Nieuwenhuizen <janneke@gnu.org>
*/
-class Text_item : public Item ,public Staff_side
-{
-public:
- /// do I have width?
- bool fat_b_;
-
- /* ***************/
+#ifndef TEXT_ITEM
+#define TEXT_ITEM
- 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:
+#include "lily-proto.hh"
+#include "lily-guile.hh"
+#include "molecule.hh"
- virtual Interval symbol_height () const;
-
- virtual Molecule* brew_molecule_p () const;
- virtual void do_pre_processing ();
- virtual Real get_position_f () const;
+class Text_item
+{
+public:
+ DECLARE_SCHEME_CALLBACK (brew_molecule, (SCM));
+ static Molecule text2molecule (Grob *me, SCM text, SCM properties);
+ static Molecule string2molecule (Grob *me, SCM text, SCM properties);
+ static Molecule markup_text2molecule (Grob *me, SCM markup_text, SCM properties);
private:
-// void init (Text_def* tdef_l);
+ static Molecule lookup_character (Grob *me, Font_metric*, SCM char_name);
+ static Molecule lookup_text (Grob *me, Font_metric*, SCM text);
};
-
-#endif // TEXT_HH
-
+#endif /* TEXT_ITEM */