From 5f91c599d2598c2150f7dbf911f041598847f9fa Mon Sep 17 00:00:00 2001 From: fred Date: Tue, 26 Mar 2002 23:23:18 +0000 Subject: [PATCH] lilypond-1.3.62 --- flower/include/pointer.hh | 2 ++ lily/align-note-column-engraver.cc | 2 +- lily/break-align-item.cc | 11 +++++++---- lily/chord.cc | 6 +++--- lily/clef-item.cc | 9 ++++++--- lily/collision.cc | 6 ++++-- lily/dot-column.cc | 15 ++++++++++----- lily/grace-align-item.cc | 8 ++++++-- lily/include/break-align-item.hh | 5 +++-- lily/include/clef-item.hh | 5 +++-- lily/include/collision.hh | 7 ++++--- lily/include/dot-column.hh | 5 +++-- lily/include/grace-align-item.hh | 5 +++-- lily/include/note-column.hh | 4 ++-- lily/include/rest-collision.hh | 5 +++-- lily/include/rhythmic-head.hh | 5 +++-- lily/include/script-column.hh | 5 +++-- lily/include/span-bar.hh | 7 ++++--- lily/include/tie-column.hh | 5 +++-- lily/note-column.cc | 11 +++++++---- lily/rest-collision.cc | 12 +++++++----- lily/rhythmic-head.cc | 7 +++++-- lily/script-column.cc | 7 +++++-- lily/span-bar-engraver.cc | 6 +++++- lily/span-bar.cc | 15 ++++++++++----- lily/tie-column.cc | 7 ++++--- 26 files changed, 116 insertions(+), 66 deletions(-) diff --git a/flower/include/pointer.hh b/flower/include/pointer.hh index 726f3c7e34..850ec18348 100644 --- a/flower/include/pointer.hh +++ b/flower/include/pointer.hh @@ -10,6 +10,8 @@ #ifndef POINTER_HH #define POINTER_HH +#error + /** P is a handy template to use iso T*. It inits to 0, deletes on destruction, deep copies upon copying diff --git a/lily/align-note-column-engraver.cc b/lily/align-note-column-engraver.cc index c034b0df9c..74d165a141 100644 --- a/lily/align-note-column-engraver.cc +++ b/lily/align-note-column-engraver.cc @@ -45,7 +45,7 @@ Align_note_column_engraver::Align_note_column_engraver() void Align_note_column_engraver::do_creation_processing () { - align_item_p_ = new Grace_align_item (SCM_EOL); + align_item_p_ = new Grace_align_item (get_property ("basicGraceAlignItemProperties")); Side_position_interface (align_item_p_).set_axis (X_AXIS); Side_position_interface (align_item_p_).set_direction (LEFT); diff --git a/lily/break-align-item.cc b/lily/break-align-item.cc index 6e5722ca12..bbea713e2b 100644 --- a/lily/break-align-item.cc +++ b/lily/break-align-item.cc @@ -20,8 +20,9 @@ #include "group-interface.hh" #include "align-interface.hh" -void -Break_align_item::before_line_breaking () +GLUE_SCORE_ELEMENT(Break_align_item,before_line_breaking); +SCM +Break_align_item::member_before_line_breaking () { if (break_status_dir() == LEFT) { @@ -48,7 +49,7 @@ Break_align_item::before_line_breaking () } if (!elems.size ()) - return; + return SCM_UNDEFINED; SCM symbol_list = SCM_EOL; Array dists; @@ -168,7 +169,9 @@ Break_align_item::before_line_breaking () column_l ()->set_elt_property ("stretch-distance", gh_cons (gh_double2scm (-dists[0]), gh_double2scm (stretch_distance))); - + + + return SCM_UNDEFINED; } Break_align_item::Break_align_item (SCM s) diff --git a/lily/chord.cc b/lily/chord.cc index 8fa7611e55..2eb762b778 100644 --- a/lily/chord.cc +++ b/lily/chord.cc @@ -49,7 +49,7 @@ to_chord (Musical_pitch tonic, Array* add_arr_p, Arrayget (i); + add_arr_p->get (i); } } @@ -400,7 +400,7 @@ Chord::find_tonic_i (Array const* pitch_arr_p) find tonic first try: base of longest line of thirds - */ + */ int tonic_i = 0; int longest_i = 0; for (int i = 0; i < pitch_arr_p->size (); i++) @@ -437,7 +437,7 @@ Chord::find_tonic_i (Array const* pitch_arr_p) { int gap = (*pitch_arr_p)[i].notename_i_ - (*pitch_arr_p)[(i - 1 + pitch_arr_p->size ()) - % pitch_arr_p->size ()].notename_i_; + % pitch_arr_p->size ()].notename_i_; while (gap < 0) gap += 7; gap %= 7; diff --git a/lily/clef-item.cc b/lily/clef-item.cc index 64df471244..781522d697 100644 --- a/lily/clef-item.cc +++ b/lily/clef-item.cc @@ -22,8 +22,9 @@ FIXME: should use symbol. FIXME: this should be schemified. */ -void -Clef_item::before_line_breaking () +GLUE_SCORE_ELEMENT(Clef_item,before_line_breaking); +SCM +Clef_item::member_before_line_breaking () { SCM style_sym =get_elt_property ("style"); String style; @@ -49,7 +50,7 @@ Clef_item::before_line_breaking () else { suicide (); - return; + return SCM_UNDEFINED; } // ugh. @@ -59,6 +60,8 @@ Clef_item::before_line_breaking () set_elt_property ("molecule-callback", SCM_BOOL_T); set_extent_callback (0, X_AXIS); } + + return SCM_UNDEFINED; } diff --git a/lily/collision.cc b/lily/collision.cc index 52498e533a..4807e47b7a 100644 --- a/lily/collision.cc +++ b/lily/collision.cc @@ -27,10 +27,12 @@ Collision::add_column (Note_column* ncol_l) add_dependency (ncol_l); } -void -Collision::before_line_breaking () +GLUE_SCORE_ELEMENT(Collision,before_line_breaking); +SCM +Collision::member_before_line_breaking () { do_shifts(); + return SCM_UNDEFINED; } /* diff --git a/lily/dot-column.cc b/lily/dot-column.cc index 75b86cf657..1caf937978 100644 --- a/lily/dot-column.cc +++ b/lily/dot-column.cc @@ -74,14 +74,16 @@ Dot_column::Dot_column (SCM s) Should be smarter. */ -void -Dot_column::after_line_breaking () + +GLUE_SCORE_ELEMENT(Dot_column,after_line_breaking); +SCM +Dot_column::member_after_line_breaking () { Link_array dots = Pointer_group_interface__extract_elements (this, (Dots*)0 , "dots"); dots.sort (Dot_column::compare); if (dots.size () < 2) - return; + return SCM_UNDEFINED; Slice s; s.set_empty (); @@ -101,7 +103,8 @@ Dot_column::after_line_breaking () } if (!conflicts) - return; + return SCM_UNDEFINED; + int middle = s.center (); /* @@ -111,8 +114,10 @@ Dot_column::after_line_breaking () if (!(pos % 2)) pos ++; // center () rounds down. - for (int i=0; i notehead (2, "")..extent (X_AXIS).length(); paper_l ()->get_var ("quartwidth"); @@ -34,6 +35,9 @@ Grace_align_item::before_line_breaking () gh_cons (gh_double2scm (nhw* 1.5), gh_double2scm (infinity_f))); column_l ()->set_elt_property ("contains-grace", SCM_BOOL_T); + + return SCM_UNDEFINED; + } diff --git a/lily/include/break-align-item.hh b/lily/include/break-align-item.hh index 6ba3cc1b7a..0a4a42b597 100644 --- a/lily/include/break-align-item.hh +++ b/lily/include/break-align-item.hh @@ -26,9 +26,10 @@ class Break_align_item : public Item { -protected: - virtual void before_line_breaking (); public: + SCM member_before_line_breaking (); + static SCM before_line_breaking (SCM); + Break_align_item (SCM s); VIRTUAL_COPY_CONS(Score_element); }; diff --git a/lily/include/clef-item.hh b/lily/include/clef-item.hh index 75aad9b0d8..e14276ba67 100644 --- a/lily/include/clef-item.hh +++ b/lily/include/clef-item.hh @@ -25,9 +25,10 @@ */ class Clef_item : public Item { -protected: - virtual void before_line_breaking (); public: + SCM member_before_line_breaking (); + static SCM before_line_breaking (SCM); + VIRTUAL_COPY_CONS(Score_element); Clef_item (SCM); }; diff --git a/lily/include/collision.hh b/lily/include/collision.hh index 4cb1993856..e1297545da 100644 --- a/lily/include/collision.hh +++ b/lily/include/collision.hh @@ -37,12 +37,13 @@ */ class Collision : public Item { -protected: +public: SCM automatic_shift (); SCM forced_shift (); void do_shifts (); - virtual void before_line_breaking (); -public: + SCM member_before_line_breaking (); + static SCM before_line_breaking (SCM); + void add_column (Note_column*ncol_l); Collision(SCM); diff --git a/lily/include/dot-column.hh b/lily/include/dot-column.hh index 9fd7150b82..c91d05d3d4 100644 --- a/lily/include/dot-column.hh +++ b/lily/include/dot-column.hh @@ -25,7 +25,8 @@ public: void add_head (Rhythmic_head*); Dot_column (SCM); -protected: - virtual void after_line_breaking (); + + SCM member_after_line_breaking (); + static SCM after_line_breaking (SCM); }; #endif // DOT_COLUMN_HH diff --git a/lily/include/grace-align-item.hh b/lily/include/grace-align-item.hh index b4f9e94e99..301178afd3 100644 --- a/lily/include/grace-align-item.hh +++ b/lily/include/grace-align-item.hh @@ -18,9 +18,10 @@ class Grace_align_item : public Item public: VIRTUAL_COPY_CONS (Score_element); Grace_align_item (SCM); -protected: + virtual void do_add_processing (); - virtual void before_line_breaking (); + SCM member_before_line_breaking (); + static SCM before_line_breaking (SCM); }; #endif /* GRACE_ALIGN_ITEM_HH */ diff --git a/lily/include/note-column.hh b/lily/include/note-column.hh index 88c2c36016..c8cf7959e9 100644 --- a/lily/include/note-column.hh +++ b/lily/include/note-column.hh @@ -17,9 +17,9 @@ */ class Note_column : public Item { -protected: - virtual void after_line_breaking () ; public: + SCM member_after_line_breaking (); + static SCM after_line_breaking (SCM); static int shift_compare (Note_column *const &, Note_column*const&); /** The relative position of the "voice" containing this diff --git a/lily/include/rest-collision.hh b/lily/include/rest-collision.hh index d6f26fa718..550ed5e0f4 100644 --- a/lily/include/rest-collision.hh +++ b/lily/include/rest-collision.hh @@ -19,7 +19,8 @@ public: Interval rest_dim () const; Rest_collision(SCM); -protected: - virtual void before_line_breaking (); + + SCM member_before_line_breaking (); + static SCM before_line_breaking (SCM); }; #endif // REST_COLLISION_HH diff --git a/lily/include/rhythmic-head.hh b/lily/include/rhythmic-head.hh index b9fc4415b6..8145bd9118 100644 --- a/lily/include/rhythmic-head.hh +++ b/lily/include/rhythmic-head.hh @@ -34,8 +34,9 @@ public: Stem * stem_l () const; Dots * dots_l () const; int dot_count () const; -protected: - virtual void after_line_breaking (); + + SCM member_after_line_breaking (); + static SCM after_line_breaking (SCM); Rhythmic_head (SCM s); }; diff --git a/lily/include/script-column.hh b/lily/include/script-column.hh index d79e25f3f8..9c580c5083 100644 --- a/lily/include/script-column.hh +++ b/lily/include/script-column.hh @@ -17,8 +17,9 @@ class Script_column : public Item public: Script_column(SCM); void add_staff_sided (Item*); -protected: - virtual void before_line_breaking (); + + SCM member_before_line_breaking (); + static SCM before_line_breaking (SCM); }; diff --git a/lily/include/span-bar.hh b/lily/include/span-bar.hh index 17886676cd..9ccb4d65b3 100644 --- a/lily/include/span-bar.hh +++ b/lily/include/span-bar.hh @@ -29,14 +29,15 @@ public: VIRTUAL_COPY_CONS(Score_element); void add_bar (Score_element*); -protected: void evaluate_empty (); static Interval width_callback(Score_element const*, Axis) ; virtual Real get_bar_size () const; - virtual void before_line_breaking (); - virtual void after_line_breaking (); + SCM member_before_line_breaking (); + static SCM before_line_breaking (SCM); + SCM member_after_line_breaking (); + static SCM after_line_breaking (SCM); }; #endif // SPAN_BAR_HH diff --git a/lily/include/tie-column.hh b/lily/include/tie-column.hh index 6dfe54d82b..d4ff9f41e7 100644 --- a/lily/include/tie-column.hh +++ b/lily/include/tie-column.hh @@ -19,8 +19,9 @@ public: VIRTUAL_COPY_CONS (Score_element); void add_tie (Tie*); Tie_column (SCM s); -protected: - virtual void after_line_breaking (); + + SCM member_after_line_breaking (); + static SCM after_line_breaking (SCM); void set_directions (); }; diff --git a/lily/note-column.cc b/lily/note-column.cc index 7c1dd5ae9c..db93c4370b 100644 --- a/lily/note-column.cc +++ b/lily/note-column.cc @@ -149,15 +149,16 @@ Note_column::set_dotcol (Dot_column *d) rest -> stem -> beam -> interpolate_y_position () */ -void -Note_column::after_line_breaking () +GLUE_SCORE_ELEMENT(Note_column,after_line_breaking); +SCM +Note_column::member_after_line_breaking () { if (!stem_l () || !rest_b ()) - return; + return SCM_UNDEFINED; Beam * b = stem_l ()->beam_l (); if (!b || !b->visible_stem_count ()) - return; + return SCM_UNDEFINED; /* ugh. Should be done by beam. (what? should be done --jcn) @@ -204,6 +205,8 @@ Note_column::after_line_breaking () discrete_dist = int (ceil (discrete_dist / 2.0)* 2.0); translate_rests (-d * discrete_dist); + + return SCM_UNDEFINED; } diff --git a/lily/rest-collision.cc b/lily/rest-collision.cc index f5be97061c..f7474eccb3 100644 --- a/lily/rest-collision.cc +++ b/lily/rest-collision.cc @@ -60,8 +60,9 @@ col2rhythmic_head (Note_column* c) return dynamic_cast (e); } -void -Rest_collision::before_line_breaking () +GLUE_SCORE_ELEMENT(Rest_collision,before_line_breaking); +SCM +Rest_collision::member_before_line_breaking () { Link_array rest_l_arr = Pointer_group_interface__extract_elements (this, (Note_column*) 0, "rests"); @@ -80,11 +81,11 @@ Rest_collision::before_line_breaking () // no rests to collide if (!rest_l_arr.size()) - return; + return SCM_UNDEFINED; // no partners to collide with if (rest_l_arr.size() + ncol_l_arr.size () < 2) - return; + return SCM_UNDEFINED; // meisjes met meisjes if (!ncol_l_arr.size()) @@ -145,7 +146,7 @@ Rest_collision::before_line_breaking () Interval restdim = rcol->rest_dim (); if (restdim.empty_b ()) - return; + return SCM_UNDEFINED; // staff ref'd? Real staff_space = paper_l()->get_var ("interline"); @@ -188,6 +189,7 @@ Rest_collision::before_line_breaking () rcol->translate_rests (dir * discrete_dist); } + return SCM_UNDEFINED; } diff --git a/lily/rhythmic-head.cc b/lily/rhythmic-head.cc index 1b735cd5ee..b6a83b6d43 100644 --- a/lily/rhythmic-head.cc +++ b/lily/rhythmic-head.cc @@ -47,8 +47,9 @@ Rhythmic_head::dot_count () const ? gh_scm2int (dots_l ()->get_elt_property ("dot-count")) : 0; } -void -Rhythmic_head::after_line_breaking () +GLUE_SCORE_ELEMENT(Rhythmic_head,after_line_breaking); +SCM +Rhythmic_head::member_after_line_breaking () { if (Dots *d = dots_l ()) { @@ -56,6 +57,8 @@ Rhythmic_head::after_line_breaking () Staff_symbol_referencer_interface me (d); si.set_position(int (me.position_f ())); } + + return SCM_UNDEFINED; } diff --git a/lily/script-column.cc b/lily/script-column.cc index c4123815d4..cc8cfcacb0 100644 --- a/lily/script-column.cc +++ b/lily/script-column.cc @@ -41,8 +41,9 @@ staff_side_compare (Item * const &i1, return gh_scm2int (p1) - gh_scm2int (p2); } -void -Script_column::before_line_breaking () +GLUE_SCORE_ELEMENT(Script_column,before_line_breaking); +SCM +Script_column::member_before_line_breaking () { Drul_array > arrs; Link_array staff_sided @@ -75,5 +76,7 @@ Script_column::before_line_breaking () } } while (flip (&d) != DOWN); + + return SCM_UNDEFINED; } diff --git a/lily/span-bar-engraver.cc b/lily/span-bar-engraver.cc index f2659b0923..17c713b453 100644 --- a/lily/span-bar-engraver.cc +++ b/lily/span-bar-engraver.cc @@ -59,7 +59,11 @@ Span_bar_engraver::acknowledge_element (Score_element_info i) if (bar_l_arr_.size() >= 2 && !spanbar_p_) { - spanbar_p_ = get_span_bar_p( bar_l_arr_[0]->property_alist_); + spanbar_p_ = get_span_bar_p (get_property ("basicSpanBarProperties")); + spanbar_p_->set_elt_property ("glyph", bar_l_arr_[0]->get_elt_property ("glyph")); + spanbar_p_->set_elt_property ("visibility-lambda", + bar_l_arr_[0]->get_elt_property ("visibility-lambda")); + spanbar_p_->set_parent (bar_l_arr_[0], Y_AXIS); spanbar_p_->set_parent (bar_l_arr_[0], X_AXIS); diff --git a/lily/span-bar.cc b/lily/span-bar.cc index 415f1cac8b..91ab2a0ab2 100644 --- a/lily/span-bar.cc +++ b/lily/span-bar.cc @@ -39,16 +39,20 @@ Span_bar::width_callback (Score_element const *se, Axis ) return m.extent (X_AXIS); } -void -Span_bar::before_line_breaking () +GLUE_SCORE_ELEMENT(Span_bar,before_line_breaking); +SCM +Span_bar::member_before_line_breaking () { - Bar::before_line_breaking (); + Bar::member_before_line_breaking (); evaluate_empty (); + + return SCM_UNDEFINED; } -void -Span_bar::after_line_breaking () +GLUE_SCORE_ELEMENT(Span_bar,after_line_breaking); +SCM +Span_bar::member_after_line_breaking () { Interval i (get_spanned_interval ()); @@ -57,6 +61,7 @@ Span_bar::after_line_breaking () we have to translate ourselves to be in the center of the interval that we span. */ translate_axis (i.center (), Y_AXIS); + return SCM_UNDEFINED; } void diff --git a/lily/tie-column.cc b/lily/tie-column.cc index 5ef23866d2..08e242bb61 100644 --- a/lily/tie-column.cc +++ b/lily/tie-column.cc @@ -85,14 +85,15 @@ Tie_column::set_directions () Direction d = (Direction) sign (p); if (!d) d = UP; - directional_element (s[i]).set (d); } } -void -Tie_column::after_line_breaking () +GLUE_SCORE_ELEMENT(Tie_column,after_line_breaking); +SCM +Tie_column::member_after_line_breaking () { set_directions (); + return SCM_UNDEFINED; } -- 2.39.5