2 property-object.hh -- declare Property_object
4 source file of the GNU LilyPond music typesetter
6 (c) 2004--2006 Jan Nieuwenhuizen <janneke@gnu.org>
9 #ifndef PROPERTY_OBJECT_HH
10 #define PROPERTY_OBJECT_HH
13 #include "virtual-methods.hh"
17 A formatted "system" (A block of titling also is a Property_object)
19 To save memory, we don't keep around the System grobs, but put the
20 formatted content of the grob is put into a
21 Property_object. Page-breaking handles Property_object objects.
26 DECLARE_CLASSNAME(Prob);
30 SCM mutable_property_alist_;
31 SCM immutable_property_alist_;
34 virtual void derived_mark () const;
35 virtual SCM copy_mutable_properties () const;
36 virtual void type_check_assignment (SCM,SCM) const;
41 virtual string name () const;
42 SCM type () const { return type_; }
43 SCM get_property_alist (bool mutble) const;
44 SCM internal_get_property (SCM sym) const;
47 void internal_set_property (SCM sym, SCM val, const char *file, int line, char const *fun);
49 void internal_set_property (SCM sym, SCM val);
52 DECLARE_UNSMOB(Prob,prob);
53 SCM ly_prob_set_property_x (SCM system, SCM sym, SCM value);
54 SCM ly_prob_property (SCM system, SCM sym, SCM dfault);
56 #endif /* PROPERTY_OBJECT_HH */