Spanner* elt_l_;
Hyphen_spanner (Spanner*);
void set_textitem (Direction, Item*);
- static SCM scheme_molecule (SCM);
+ static SCM brew_molecule (SCM);
};
#endif // HYPHEN_SPANNER_HH
public:
VIRTUAL_COPY_CONS(Score_element);
Key_item (SCM);
- static SCM scheme_molecule (SCM);
+ static SCM brew_molecule (SCM);
-protected:
- Molecule do_brew_molecule() const;
+
+ SCM member_brew_molecule() const;
};
#endif // KEYITEM_HH
Molecule accidental (int,bool,bool) const;
public:
Local_key_item (SCM );
- static SCM scheme_molecule (SCM);
+ static SCM brew_molecule (SCM);
void add_pitch (Musical_pitch, bool cautionary, bool natural);
-protected:
- virtual void before_line_breaking ();
- Molecule do_brew_molecule() const;
+
+ SCM member_before_line_breaking ();
+ static SCM before_line_breaking (SCM);
+ SCM member_brew_molecule() const;
};
#endif // LOCALKEYITEM_HH
SCM fontify_atom (Font_metric*, SCM atom);
-Molecule create_molecule (SCM scheme_molecule);
+Molecule create_molecule (SCM brew_molecule);
{
public:
Multi_measure_rest (SCM);
- static SCM scheme_molecule (SCM);
+ static SCM brew_molecule (SCM);
void add_column (Item*);
Molecule compound_rest (int)const;
-protected:
- Molecule do_brew_molecule () const;
+
+ SCM member_brew_molecule () const;
VIRTUAL_COPY_CONS (Score_element);
virtual void do_add_processing ();
- virtual void after_line_breaking ();
+ SCM member_after_line_breaking ();
+ static SCM after_line_breaking (SCM);
virtual Array<Rod> get_rods () const;
};
{
public:
static int compare (Note_head * const &a, Note_head *const &b) ;
- static SCM scheme_molecule (SCM);
+ static SCM brew_molecule (SCM);
Molecule ledger_line (Interval) const;
Note_head (SCM);
-protected:
- virtual void before_line_breaking ();
- Molecule do_brew_molecule() const;
+
+ SCM member_before_line_breaking ();
+ static SCM before_line_breaking (SCM);
+ SCM member_brew_molecule() const;
};
#endif // NOTEHEAD_HH
*/
class Rest : public Rhythmic_head
{
-protected:
- virtual void after_line_breaking ();
- Molecule do_brew_molecule () const;
public:
- static SCM scheme_molecule (SCM);
+ SCM member_after_line_breaking ();
+ static SCM after_line_breaking (SCM);
+ SCM member_brew_molecule () const;
+
+ static SCM brew_molecule (SCM);
Rest (SCM s);
};
#funcptr# is the function to call to update this element.
*/
- void calculate_dependencies (int final, int busy, Score_element_method_pointer funcptr);
+ void calculate_dependencies (int final, int busy, SCM funcname);
static SCM handle_broken_smobs (SCM, SCM criterion);
virtual void do_space_processing ();
virtual void discretionary_processing ();
virtual void do_derived_mark ();
- /// do calculations before determining horizontal spacing
- virtual void before_line_breaking ();
- /// do calculations after determining horizontal spacing
- virtual void after_line_breaking ();
Molecule get_molecule () const;
void suicide ();
static Interval molecule_extent (Score_element const*,Axis);
protected:
-
/**
Junk score element. This is protected because this is supposed to
be handled by GUILE gc. */
///executed directly after the item is added to the Paper_score
virtual void do_add_processing ();
- Molecule do_brew_molecule ()const;
-
static Interval dim_cache_callback (Dimension_cache const*);
public:
+ SCM member_brew_molecule ()const;
+
static SCM ly_set_elt_property (SCM, SCM,SCM);
static SCM ly_get_elt_property (SCM, SCM);
- static SCM scheme_molecule (SCM);
+ static SCM brew_molecule (SCM);
virtual void handle_broken_dependencies ();
virtual void handle_prebroken_dependencies ();
Score_element * unsmob_element (SCM);
-#define MAKE_SCHEME_SCORE_ELEMENT_NON_DEFAULT_CALLBACKS(TYPE) \
+#define MAKE_SCHEME_SCORE_ELEMENT_CALLBACK(TYPE, FUNC) \
void \
-TYPE ## __init_functions () \
+TYPE ## _ ## FUNC ## _init_functions () \
{ \
- scm_make_gsubr (#TYPE "::scheme_molecule", 1, 0, 0, \
- (SCM(*)(...))TYPE::scheme_molecule); \
+ scm_make_gsubr (#TYPE "::" #FUNC, 1, 0, 0, \
+ (SCM(*)(...))TYPE :: FUNC); \
} \
\
-ADD_SCM_INIT_FUNC(TYPE ## _molecule, TYPE ## __init_functions); \
+ADD_SCM_INIT_FUNC(TYPE ## _ ## FUNC ## _scelt, TYPE ## _ ## FUNC ## _init_functions); \
-#define MAKE_SCHEME_SCORE_ELEMENT_CALLBACKS(TYPE) \
-MAKE_SCHEME_SCORE_ELEMENT_NON_DEFAULT_CALLBACKS(TYPE);\
-SCM \
-TYPE::scheme_molecule (SCM smob) \
-{ \
+#define GLUE_SCORE_ELEMENT(TYPE, FUNC) \
+MAKE_SCHEME_SCORE_ELEMENT_CALLBACK(TYPE,FUNC);\
+SCM \
+TYPE::FUNC (SCM smob) \
+{ \
TYPE * b = dynamic_cast<TYPE*> (unsmob_element (smob)); \
- return b ? b->do_brew_molecule ().create_scheme () : SCM_EOL; \
-} \
- \
-
+ return b ? b->member_ ## FUNC () : SCM_UNDEFINED; \
+} \
#endif // STAFFELEM_HH
Molecule get_molecule (Direction d) const;
public:
Script (SCM);
- static SCM scheme_molecule (SCM);
+ static SCM brew_molecule (SCM);
-protected:
- virtual void before_line_breaking ();
- virtual void after_line_breaking ();
- Molecule do_brew_molecule () const;
+
+ SCM member_before_line_breaking ();
+ static SCM before_line_breaking (SCM);
+ SCM member_after_line_breaking ();
+ static SCM after_line_breaking (SCM);
+ SCM member_brew_molecule () const;
};
#endif /* Stem_SCRIPT_HH */
VIRTUAL_COPY_CONS(Score_element);
void add_column (Note_column*);
- static SCM scheme_molecule (SCM);
+ static SCM brew_molecule (SCM);
-
-
-protected:
- Molecule do_brew_molecule () const;
+ SCM member_brew_molecule () const;
virtual Array<Offset> get_encompass_offset_arr () const;
Bezier get_curve () const;
Drul_array<Real> dx_f_drul_;
virtual Direction get_default_dir () const;
- virtual void after_line_breaking ();
+ SCM member_after_line_breaking ();
+ static SCM after_line_breaking (SCM);
virtual void do_add_processing ();
Array<Rod> get_rods () const;
int steps_i() const;
int line_count () const;
Staff_symbol (SCM s);
- static SCM scheme_molecule (SCM);
-
-
-protected:
+ static SCM brew_molecule (SCM);
VIRTUAL_COPY_CONS(Score_element);
- Molecule do_brew_molecule() const;
+ SCM member_brew_molecule() const;
};
#endif // STAFFSYM_HH
class Stem_tremolo : public Item {
-protected:
+public:
Stem * stem_l () const;
- Molecule do_brew_molecule () const;
+ SCM member_brew_molecule () const;
static Interval dim_callback (Score_element*, Axis);
-public:
- static SCM scheme_molecule (SCM);
-
-Stem_tremolo (SCM);
+ static SCM brew_molecule (SCM);
+ Stem_tremolo (SCM);
void set_stem (Stem *);
};
class Stem : public Item
{
public:
- static SCM scheme_molecule (SCM);
+ static SCM brew_molecule (SCM);
/// heads that the stem encompasses (positions)
Interval head_positions() const;
-protected:
+public:
friend class Stem_tremolo; // ugh.
Real get_default_stem_end_position () const;
void position_noteheads();
static Real off_callback (Score_element const*, Axis);
Molecule flag () const;
- virtual void before_line_breaking();
+ SCM member_before_line_breaking ();
+ static SCM before_line_breaking (SCM);
static Interval dim_callback (Score_element const*,Axis);
- Molecule do_brew_molecule() const;
+ SCM member_brew_molecule() const;
void set_spacing_hints () ;
};