typedef void (Grob::*Grob_method_pointer) (void);
+
+#define get_grob_property(x) internal_get_grob_property(ly_symbol2scm(x))
+#define set_grob_property(x,y) internal_set_grob_property(ly_symbol2scm(x),y)
+
/*
Basic output object.
*/
0 means ORPHAN,
*/
- char status_i_;
+ char status_c_;
String name () const;
/*
/*
properties
*/
- SCM get_grob_property (const char*) const;
- SCM get_grob_property (SCM) const;
- void set_grob_property (const char * , SCM val);
+ SCM internal_get_grob_property (SCM) const;
+ void internal_set_grob_property (SCM, SCM val);
+
+#if 0
void set_immutable_grob_property (const char * , SCM val);
- void set_immutable_grob_property (SCM key, SCM val);
- void set_grob_property (SCM , SCM val);
+ void set_immutable_grob_property (SCM key, SCM val);
+#endif
+
void set_elt_pointer (const char*, SCM val);
friend class Property_engraver; // UGHUGHUGH.
SCM remove_grob_property (const char* nm);
bool linked_b () const;
- VIRTUAL_COPY_CONS(Grob);
+ VIRTUAL_COPY_CONS (Grob);
/**
Recursively track all dependencies of this Grob. The
- status_i_ field is used as a mark-field. It is marked with
+ 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_smobs (SCM, SCM criterion);
+ static SCM handle_broken_grobs(SCM, SCM criterion);
virtual void do_break_processing ();
virtual Grob *find_broken_piece (Line_of_score*) const;
void suicide ();
- DECLARE_SCHEME_CALLBACK(preset_extent, (SCM smob, SCM axis));
- DECLARE_SCHEME_CALLBACK(point_dimension_callback, (SCM smob, SCM axis));
- DECLARE_SCHEME_CALLBACK(molecule_extent, (SCM smob, SCM axis));
+ DECLARE_SCHEME_CALLBACK (preset_extent, (SCM smob, SCM axis));
+ DECLARE_SCHEME_CALLBACK (point_dimension_callback, (SCM smob, SCM axis));
+ DECLARE_SCHEME_CALLBACK (molecule_extent, (SCM smob, SCM axis));
static SCM ly_set_grob_property (SCM, SCM,SCM);
virtual void handle_prebroken_dependencies ();
- DECLARE_SMOBS(Grob,foo);
+ DECLARE_SMOBS (Grob,foo);
void init ();
*/
void set_parent (Grob* e, Axis);
- Grob *parent_l (Axis a) const;
- DECLARE_SCHEME_CALLBACK(fixup_refpoint, (SCM));
+ Grob *parent_l (Axis a) const { return dim_cache_[a].parent_l_; }
+ DECLARE_SCHEME_CALLBACK (fixup_refpoint, (SCM));
};
-Grob * unsmob_grob (SCM);
+DECLARE_UNSMOB(Grob,grob);
#endif // STAFFELEM_HH