X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Finclude%2Fprob.hh;h=cb850555fb414983ff0024c502fd66a0da920336;hb=77320a48ed671c658f04256d087880c1701eb746;hp=b18f944e012db3d6ec4e3d3ab8f4a02d87a689ac;hpb=b7a0cffbf9d1069860368f289a5b50e9d1d90ba8;p=lilypond.git diff --git a/lily/include/prob.hh b/lily/include/prob.hh index b18f944e01..cb850555fb 100644 --- a/lily/include/prob.hh +++ b/lily/include/prob.hh @@ -1,7 +1,7 @@ /* This file is part of LilyPond, the GNU music typesetter. - Copyright (C) 2004--2009 Jan Nieuwenhuizen + Copyright (C) 2004--2015 Jan Nieuwenhuizen LilyPond is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -20,10 +20,10 @@ #ifndef PROPERTY_OBJECT_HH #define PROPERTY_OBJECT_HH +#include "pitch.hh" #include "stencil.hh" #include "virtual-methods.hh" - /* A formatted "system" (A block of titling also is a Property_object) @@ -32,21 +32,27 @@ Property_object. Page-breaking handles Property_object objects. */ -class Prob +class Prob : public Smob { - DECLARE_SMOBS (Prob); - DECLARE_CLASSNAME(Prob); +public: + int print_smob (SCM, scm_print_state *) const; + SCM mark_smob () const; + static SCM equal_p (SCM, SCM); + static const char type_p_name_[]; + virtual ~Prob (); +private: + DECLARE_CLASSNAME (Prob); void init_vars (); protected: SCM mutable_property_alist_; SCM immutable_property_alist_; SCM type_; - + virtual void derived_mark () const; virtual SCM copy_mutable_properties () const; - virtual void type_check_assignment (SCM,SCM) const; - + virtual void type_check_assignment (SCM, SCM) const; + public: Prob (SCM, SCM); Prob (Prob const &); @@ -54,15 +60,20 @@ public: SCM type () const { return type_; } SCM get_property_alist (bool _mutable) const; SCM internal_get_property (SCM sym) const; - void instrumented_set_property (SCM, SCM, const char*, int, const char*); + void instrumented_set_property (SCM, SCM, const char *, int, const char *); void internal_set_property (SCM sym, SCM val); + + // Needed in both Music and Stream_event + // For technical reasons defined in lily/music.cc + // + /// Transpose, with the interval central C to #p# + void transpose (Pitch p); }; -DECLARE_UNSMOB(Prob,prob); SCM ly_prob_set_property_x (SCM system, SCM sym, SCM value); SCM ly_prob_property (SCM prob, SCM sym, SCM val); SCM ly_prob_type_p (SCM obj, SCM sym); - + #endif /* PROPERTY_OBJECT_HH */