X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Finclude%2Fitem.hh;h=8f5dd180f09e2fea4a725206114e6d2c47249272;hb=4065bcebbff7bde77a2e821db2c0c76a25c187c6;hp=0c001af69468b97bf3385b8cdaa62d964314f6f5;hpb=75eebcb49e52d296b1da3e1074e0825d2c780db4;p=lilypond.git diff --git a/lily/include/item.hh b/lily/include/item.hh index 0c001af694..8f5dd180f0 100644 --- a/lily/include/item.hh +++ b/lily/include/item.hh @@ -1,14 +1,24 @@ /* - item.hh -- declare Item + This file is part of LilyPond, the GNU music typesetter. - source file of the GNU LilyPond music typesetter + Copyright (C) 1997--2010 Han-Wen Nienhuys - (c) 1997--2006 Han-Wen Nienhuys + LilyPond is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + LilyPond is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with LilyPond. If not, see . */ #ifndef ITEM_HH #define ITEM_HH -#include "box.hh" #include "grob.hh" /** @@ -23,13 +33,16 @@ class Item : public Grob DECLARE_CLASSNAME(Item); public: - Item (SCM, Object_key const *); - Item (Item const &, int count); + Item (SCM); + Item (Item const &); - virtual Grob *clone (int count) const; + virtual Grob *clone () const; - static bool is_breakable (Grob *); + static bool is_non_musical (Grob *); + static bool break_visible(Grob *); + static bool less (Grob * const&, Grob * const&); bool is_broken () const; + bool pure_is_visible (int start, int end) const; Direction break_status_dir () const; @@ -38,11 +51,18 @@ public: virtual System *get_system () const; virtual Paper_column *get_column () const; virtual void handle_prebroken_dependencies (); - static bool has_interface (Grob *); + virtual Interval_t spanned_rank_interval () const; + virtual Interval pure_height (Grob *ref, int start, int end); + DECLARE_GROB_INTERFACE(); protected: virtual void discretionary_processing (); void copy_breakable_items (); virtual void derived_mark () const; + + bool cached_pure_height_valid_; + Interval cached_pure_height_; }; +Interval_t spanned_time_interval (Item *l, Item *r); + #endif