- void set_elt_pointer (const char*, SCM val);
- friend class Property_engraver; // UGHUGHUGH.
- SCM remove_grob_property (const char* nm);
-
- /*
- related classes.
- */
- Paper_def *paper_l () const;
-
- /**
- add a dependency. It may be the 0 pointer, in which case, it is ignored.
- */
- void add_dependency (Grob*);
- virtual Line_of_score * line_l () const;
- bool linked_b () const;
-
-
- VIRTUAL_COPY_CONS (Grob);
-
- /**
- Recursively track all dependencies of this Grob. The
- status_c_ field is used as a mark-field. It is marked with
- #busy# during execution of this function, and marked with #final#
- when finished.
-
- #funcptr# is the function to call to update this element.
- */
- void calculate_dependencies (int final, int busy, SCM funcname);
- static SCM handle_broken_grobs(SCM, SCM criterion);
-
- virtual void do_break_processing ();
- virtual Grob *find_broken_piece (Line_of_score*) const;
- virtual void discretionary_processing ();
- virtual SCM do_derived_mark ();
+ /* friends */
+ friend class Spanner;
+ friend class System;
+ friend SCM ly_grob_properties (SCM);
+ friend SCM ly_grob_basic_properties (SCM);
+
+ /* standard callbacks */
+ DECLARE_SCHEME_CALLBACK(x_parent_positioning, (SCM));
+ DECLARE_SCHEME_CALLBACK(y_parent_positioning, (SCM));
+ DECLARE_SCHEME_CALLBACK (stencil_height, (SCM smob));
+ DECLARE_SCHEME_CALLBACK (stencil_width, (SCM smob));
+
+ /* R/O access */
+ Output_def *layout () const { return layout_; }
+ Grob *original () const { return original_; }
+ SCM interfaces () const { return interfaces_; }
+
+ /* life & death */
+ Grob (SCM basic_props);
+ Grob (Grob const &);
+ virtual Grob *clone () const;