X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Finclude%2Fitem.hh;h=0c001af69468b97bf3385b8cdaa62d964314f6f5;hb=75eebcb49e52d296b1da3e1074e0825d2c780db4;hp=c4b3dfbad3d6ca56efe42be084b1de3def0a7e2b;hpb=a6193f6f613e0b2ff519b804d28f99fcd6ec9b92;p=lilypond.git diff --git a/lily/include/item.hh b/lily/include/item.hh index c4b3dfbad3..0c001af694 100644 --- a/lily/include/item.hh +++ b/lily/include/item.hh @@ -3,75 +3,46 @@ source file of the GNU LilyPond music typesetter - (c) 1997--2000 Han-Wen Nienhuys + (c) 1997--2006 Han-Wen Nienhuys */ #ifndef ITEM_HH #define ITEM_HH - #include "box.hh" -#include "string.hh" -#include "score-element.hh" -#include "drul-array.hh" -#include "protected-scm.hh" +#include "grob.hh" /** - A horizontally fixed size element of the score. - - Item is the datastructure for printables whose width is known - before the spacing is calculated + A horizontally fixed size element of the score. - NB. This doesn't mean an Item has to initialize the output field before - spacing calculation. - + Item is the datastructure for printables whose width is known + before the spacing is calculated +*/ +class Item : public Grob +{ + Drul_array broken_to_drul_; - - @signature - visibility_lambda :: int -> (bool . bool) - - @in - break direction - - @out - (transparent, empty) cons - - */ -class Item : public virtual Score_element { - void do_break (); - void try_visibility_lambda (); + DECLARE_CLASSNAME(Item); public: - /* - ugh. - */ - Drul_array broken_to_drul_; + Item (SCM, Object_key const *); + Item (Item const &, int count); + virtual Grob *clone (int count) const; -public: + static bool is_breakable (Grob *); + bool is_broken () const; - /// I am really to be broken? - bool breakable_b () const; - bool broken_b () const; - Direction break_status_dir () const; - - Item * find_broken_piece (Direction) const; - Score_element * find_broken_piece (Line_of_score*) const; - Item(); - Real hpos_f() const; - - virtual Line_of_score * line_l() const; - virtual Paper_column * column_l () const; - - static int left_right_compare (Item const *, Item const*); - - Item (Item const &); + Item *find_prebroken_piece (Direction) const; + Grob *find_broken_piece (System *) const; + virtual System *get_system () const; + virtual Paper_column *get_column () const; + virtual void handle_prebroken_dependencies (); + static bool has_interface (Grob *); protected: - virtual void do_breakable_col_processing(); - - void copy_breakable_items(); + virtual void discretionary_processing (); + void copy_breakable_items (); + virtual void derived_mark () const; }; - - #endif