/*
bar.hh -- part of GNU LilyPond
- (c) 1996--1998 Han-Wen Nienhuys
+ (c) 1996--2009 Han-Wen Nienhuys
*/
#ifndef BAR_HH
#define BAR_HH
-#include "item.hh"
-/**
- A vertical bar.
-
- TODO: connections with pre and postbreak
- */
-class Bar:public Item {
-public:
- String type_str_;
-
- VIRTUAL_COPY_CONS(Score_element);
- Bar ();
+#include "lily-proto.hh"
+#include "grob-interface.hh"
-protected:
- virtual void do_pre_processing ();
- Molecule* brew_molecule_p () const;
+/**
+ A vertical bar.
+*/
+class Bar
+{
+public:
+ DECLARE_GROB_INTERFACE();
-private:
- void do_print () const;
+ static Stencil compound_barline (Grob *, string, Real height);
+ static Stencil simple_barline (Grob *, Real wid, Real height);
+ DECLARE_SCHEME_CALLBACK (get_staff_bar_size, (SCM));
+ DECLARE_SCHEME_CALLBACK (print, (SCM));
+ DECLARE_SCHEME_CALLBACK (before_line_breaking, (SCM));
};
#endif // BAR_HH