From: Han-Wen Nienhuys Date: Tue, 27 Jan 2004 01:32:22 +0000 (+0000) Subject: * lily/side-position-interface.cc: remove add_staff_support () X-Git-Tag: release/2.1.23~160 X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=33f2e59ea0b2a1ba41e943b5afa29e5fee97ba94;p=lilypond.git * lily/side-position-interface.cc: remove add_staff_support () Change all callers to use staff-padding. * lily/auto-beam-engraver.cc (create_beam): opps. Don't use make_spanner(). * lily/a2-engraver.cc (process_acknowledged_grobs): * lily/text-engraver.cc: remove scriptHorizontal property. * lily/side-position-interface.cc (out_of_staff): move contents of out_of_staff into aligned_side. remove out_of_staff(). * lily/side-position-interface.cc: add staff-padding support to Side_position_interface::aligned_side. --- diff --git a/ChangeLog b/ChangeLog index 52df389069..56facfc86a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,15 @@ 2004-01-27 Han-Wen Nienhuys + * lily/side-position-interface.cc: remove add_staff_support () + Change all callers to use staff-padding. + + * lily/auto-beam-engraver.cc (create_beam): opps. Don't use + make_spanner(). + + * lily/a2-engraver.cc (process_acknowledged_grobs): + + * lily/text-engraver.cc: remove scriptHorizontal property. + * lily/beam.cc (least_squares): also set least-squares-dy for special case of slanted 2-stem beam to center. diff --git a/lily/a2-engraver.cc b/lily/a2-engraver.cc index 703c222837..e50fffae20 100644 --- a/lily/a2-engraver.cc +++ b/lily/a2-engraver.cc @@ -80,7 +80,7 @@ A2_engraver::process_acknowledged_grobs () text = get_property ("aDueText"); } - Side_position_interface::set_direction (text_, dir); + set_grob_direction (text_, dir); text_->set_grob_property ("text", text); } } @@ -193,7 +193,6 @@ A2_engraver::stop_translation_timestep () { if (text_) { - Side_position_interface::add_staff_support (text_); typeset_grob (text_); text_ = 0; } diff --git a/lily/auto-beam-engraver.cc b/lily/auto-beam-engraver.cc index 16bfd35141..42e3935d8d 100644 --- a/lily/auto-beam-engraver.cc +++ b/lily/auto-beam-engraver.cc @@ -244,7 +244,7 @@ Auto_beam_engraver::create_beam () return 0; } - Spanner* beam = internal_make_spanner (beam_settings_); + Spanner* beam = new Spanner (beam_settings_); for (int i = 0; i < stems_->size (); i++) { /* diff --git a/lily/beam-engraver.cc b/lily/beam-engraver.cc index 599bced280..27cfca6069 100644 --- a/lily/beam-engraver.cc +++ b/lily/beam-engraver.cc @@ -169,8 +169,7 @@ Beam_engraver::process_music () beam_info_ = new Beaming_info_list; /* urg, must copy to Auto_beam_engraver too */ - - announce_grob(beam_, evs_drul_[START]->self_scm()); + announce_grob (beam_, evs_drul_[START]->self_scm()); } } diff --git a/lily/clef-engraver.cc b/lily/clef-engraver.cc index 6184503643..7facbbb69a 100644 --- a/lily/clef-engraver.cc +++ b/lily/clef-engraver.cc @@ -181,7 +181,6 @@ Clef_engraver::stop_translation_timestep () if (octavate_) { - Side_position_interface::add_staff_support (octavate_); typeset_grob (octavate_); } diff --git a/lily/dynamic-engraver.cc b/lily/dynamic-engraver.cc index 79377e0176..9d62bec204 100644 --- a/lily/dynamic-engraver.cc +++ b/lily/dynamic-engraver.cc @@ -363,9 +363,6 @@ Dynamic_engraver::typeset_all () } if (finished_line_spanner_) { - /* To make sure that this works */ - Side_position_interface::add_staff_support (finished_line_spanner_); - /* We used to have diff --git a/lily/fingering-engraver.cc b/lily/fingering-engraver.cc index 5430c213a1..6084cac0a7 100644 --- a/lily/fingering-engraver.cc +++ b/lily/fingering-engraver.cc @@ -128,7 +128,6 @@ Fingering_engraver::stop_translation_timestep () for (int i=0; i < fingerings_.size (); i++) { Item *ti = fingerings_[i]; - Side_position_interface::add_staff_support (ti); typeset_grob (ti); } fingerings_.clear (); diff --git a/lily/include/side-position-interface.hh b/lily/include/side-position-interface.hh index ea3a0a9697..2bc3864413 100644 --- a/lily/include/side-position-interface.hh +++ b/lily/include/side-position-interface.hh @@ -26,21 +26,15 @@ public: DECLARE_SCHEME_CALLBACK (aligned_side, (SCM element, SCM axis)); - DECLARE_SCHEME_CALLBACK (out_of_staff, (SCM element, SCM axis)); - DECLARE_SCHEME_CALLBACK (quantised_position, (SCM element, SCM axis)); static SCM general_side_position (Grob*, Axis, bool); - static void set_axis (Grob*,Axis); - static void set_minimum_space (Grob*,Real); - static void set_padding (Grob*,Real); static Axis get_axis (Grob*) ; - static bool supported_b (Grob*) ; + static void set_axis (Grob*, Axis) ; static bool has_interface (Grob*) ; static void add_support (Grob*,Grob*); static void add_staff_support (Grob*); static Direction get_direction (Grob*); - static void set_direction (Grob*,Direction); }; diff --git a/lily/multi-measure-rest-engraver.cc b/lily/multi-measure-rest-engraver.cc index 097f6da63a..b645c18f2f 100644 --- a/lily/multi-measure-rest-engraver.cc +++ b/lily/multi-measure-rest-engraver.cc @@ -180,7 +180,6 @@ Multi_measure_rest_engraver::stop_translation_timestep () for (int i = 0 ; i < numbers_.size(); i++) { typeset_grob (numbers_[i]); - Side_position_interface::add_staff_support (numbers_[i]); } /* @@ -200,7 +199,6 @@ Multi_measure_rest_engraver::stop_translation_timestep () for (int i = 0; i < last_numbers_.size ();i++) { typeset_grob (last_numbers_[i]); - Side_position_interface::add_staff_support (last_numbers_[i]); } } last_rest_ = 0; diff --git a/lily/new-fingering-engraver.cc b/lily/new-fingering-engraver.cc index c9ff303005..043b432121 100644 --- a/lily/new-fingering-engraver.cc +++ b/lily/new-fingering-engraver.cc @@ -299,9 +299,10 @@ New_fingering_engraver::stop_translation_timestep () SCM follow = scm_assoc (ly_symbol2scm ("follow-into-staff"), articulations_[i].description_); if (gh_pair_p (follow) && to_boolean (gh_cdr (follow))) - sc->add_offset_callback (Side_position_interface::quantised_position_proc, Y_AXIS); - else - Side_position_interface::add_staff_support (sc); + { + sc->add_offset_callback (Side_position_interface::quantised_position_proc, Y_AXIS); + sc->set_grob_property ("staff-padding" , SCM_EOL); + } typeset_grob (sc); } diff --git a/lily/piano-pedal-engraver.cc b/lily/piano-pedal-engraver.cc index 8ab2422326..c4fab9af87 100644 --- a/lily/piano-pedal-engraver.cc +++ b/lily/piano-pedal-engraver.cc @@ -544,7 +544,6 @@ Piano_pedal_engraver::typeset_all () if (p->finished_line_spanner_) { - Side_position_interface::add_staff_support (p->finished_line_spanner_); Grob * l = p->finished_line_spanner_->get_bound (LEFT); Grob * r = p->finished_line_spanner_->get_bound (RIGHT); if (!r && l) diff --git a/lily/script-engraver.cc b/lily/script-engraver.cc index ab53d64710..3324488400 100644 --- a/lily/script-engraver.cc +++ b/lily/script-engraver.cc @@ -203,9 +203,10 @@ Script_engraver::stop_translation_timestep () SCM follow = scm_assoc (ly_symbol2scm ("follow-into-staff"), scripts_[i].description_); if (gh_pair_p (follow) && to_boolean (gh_cdr (follow))) - sc->add_offset_callback (Side_position_interface::quantised_position_proc, Y_AXIS); - else - Side_position_interface::add_staff_support (sc); + { + sc->add_offset_callback (Side_position_interface::quantised_position_proc, Y_AXIS); + sc->set_grob_property ("staff-padding", SCM_EOL); + } typeset_grob (sc); } scripts_.clear (); diff --git a/lily/script.cc b/lily/script.cc index 72d0221309..fc00cc16d6 100644 --- a/lily/script.cc +++ b/lily/script.cc @@ -60,7 +60,7 @@ Script_interface::before_line_breaking (SCM smob) d = DOWN; } - Side_position_interface::set_direction (me,d); + set_grob_direction (me, d); if (Grob * par = me->get_parent (X_AXIS)) { diff --git a/lily/side-position-interface.cc b/lily/side-position-interface.cc index 3aa8e58568..94c3f5d349 100644 --- a/lily/side-position-interface.cc +++ b/lily/side-position-interface.cc @@ -221,15 +221,6 @@ Side_position_interface::aligned_side (SCM element_smob, SCM axis) return gh_double2scm (o); } -void -Side_position_interface::add_staff_support (Grob*me) -{ - Grob* st = Staff_symbol_referencer::get_staff_symbol (me); - if (st && get_axis (me) == Y_AXIS) - { - add_support (me,st); - } -} void Side_position_interface::set_axis (Grob*me, Axis a) @@ -251,32 +242,6 @@ Side_position_interface::get_axis (Grob*me) return Y_AXIS; } -void -Side_position_interface::set_direction (Grob*me, Direction d) -{ - me->set_grob_property ("direction", gh_int2scm (d)); -} - -void -Side_position_interface::set_minimum_space (Grob*me, Real m) -{ - me->set_grob_property ("minimum-space", gh_double2scm (m)); -} - -void -Side_position_interface::set_padding (Grob*me, Real p) -{ - me->set_grob_property ("padding", gh_double2scm (p)); -} - - -bool -Side_position_interface::supported_b (Grob*me) -{ - SCM s = me->get_grob_property ("side-support-elements"); - return gh_pair_p (s); -} - diff --git a/lily/text-engraver.cc b/lily/text-engraver.cc index 3d849d36d9..490a49eca7 100644 --- a/lily/text-engraver.cc +++ b/lily/text-engraver.cc @@ -89,12 +89,8 @@ Text_engraver::process_acknowledged_grobs () Item *text = new Item (get_property (basic.to_str0 ())); - /* - FIXME -> need to use basic props. - */ - SCM axisprop = get_property ("scriptHorizontal"); - Axis ax = to_boolean (axisprop) ? X_AXIS : Y_AXIS; + Axis ax = Y_AXIS; Side_position_interface::set_axis (text, ax); // Hmm @@ -110,7 +106,7 @@ Text_engraver::process_acknowledged_grobs () Direction dir = to_dir (r->get_mus_property ("direction")); if (dir) - Side_position_interface::set_direction (text, dir); + set_grob_direction (text, dir); SCM mark = r->get_mus_property ("text"); @@ -127,8 +123,6 @@ Text_engraver::stop_translation_timestep () for (int i=0; i < texts_.size (); i++) { Item *ti = texts_[i]; - if (!to_boolean (get_property ("scriptHorizontal"))) - Side_position_interface::add_staff_support (ti); typeset_grob (ti); } texts_.clear (); @@ -145,5 +139,5 @@ ENTER_DESCRIPTION(Text_engraver, /* creats*/ "TextScript", /* accepts */ "text-script-event", /* acks */ "rhythmic-head-interface stem-interface", -/* reads */ "scriptHorizontal", +/* reads */ "", /* write */ ""); diff --git a/lily/text-spanner-engraver.cc b/lily/text-spanner-engraver.cc index a683befb81..dd95d7d03c 100644 --- a/lily/text-spanner-engraver.cc +++ b/lily/text-spanner-engraver.cc @@ -118,7 +118,6 @@ Text_spanner_engraver::typeset_all () { if (finished_) { - Side_position_interface::add_staff_support (finished_); if (!finished_->get_bound (RIGHT)) { Grob* e = unsmob_grob (get_property ("currentMusicalColumn")); diff --git a/scm/define-grobs.scm b/scm/define-grobs.scm index 395eab13f4..09707316d8 100644 --- a/scm/define-grobs.scm +++ b/scm/define-grobs.scm @@ -341,6 +341,7 @@ (axes . (1)) (Y-extent-callback . ,Axis_group_interface::group_extent_callback) (Y-offset-callbacks . (,Side_position_interface::aligned_side)) + (staff-padding . 0.1) (padding . 0.6) (minimum-space . 1.2) (direction . -1) @@ -370,7 +371,7 @@ . ( (molecule-callback . ,Text_item::brew_molecule) (padding . 0.6) - (staff-padding . 0.5) + (staff-padding . 0.6) (self-alignment-X . 0) (self-alignment-Y . 0) (script-priority . 100) @@ -567,6 +568,7 @@ (self-alignment-X . 0) (direction . 1) (padding . 1.3) + (staff-padding . 1.3) (font-family . number) (meta . ((interfaces . (side-position-interface self-alignment-interface font-interface spanner-interface text-interface)))) )) @@ -579,6 +581,7 @@ (self-alignment-X . 0) (direction . 1) (padding . 1.5) + (staff-padding . 1.5) (font-family . roman) (meta . ((interfaces . (side-position-interface self-alignment-interface font-interface spanner-interface text-interface)))) )) @@ -654,6 +657,7 @@ (molecule-callback . ,Text_item::brew_molecule) (font-shape . italic) (padding . 0.4) + (staff-padding . 0.2) (font-size . -4) (font-family . roman) (meta . ((interfaces . (text-interface self-alignment-interface side-position-interface font-interface item-interface )))) @@ -769,6 +773,7 @@ ;; This value is sensitive: if too large, staccato dots will move a ;; space a away. (padding . 0.25) + (staff-padding . 0.25) ;; (script-priority . 0) priorities for scripts, see script.scm (X-offset-callbacks . (,Self_alignment_interface::centered_on_parent)) (before-line-breaking-callback . ,Script_interface::before_line_breaking) @@ -996,6 +1001,7 @@ (Y-offset-callbacks . (,Side_position_interface::aligned_side)) (padding . 1.2) + (staff-padding . 1.2) (minimum-space . 1.0) (direction . -1) (meta . ((interfaces . (piano-pedal-interface axis-group-interface side-position-interface spanner-interface)))) @@ -1050,6 +1056,7 @@ (X-offset-callbacks . (,Self_alignment_interface::aligned_on_self)) (direction . -1) (padding . 0.5) + (staff-padding . 0.5) (script-priority . 200) ;; todo: add X self alignment? (baseline-skip . 2) @@ -1062,7 +1069,8 @@ (molecule-callback . ,Text_spanner::brew_molecule) (font-family . roman) (style . dashed-line) - + (staff-padding . 0.1) + ;; urg, only for (de)cresc. text spanners (if-text-padding . 1.0) (dash-fraction . 0.2) @@ -1181,8 +1189,8 @@ (axes . (1)) (Y-extent-callback . ,Axis_group_interface::group_extent_callback) (Y-offset-callbacks . (,Side_position_interface::aligned_side)) - (padding . 1.2) + (staff-padding . 1.2) (minimum-space . 1.0) (direction . -1) (meta . ((interfaces . (piano-pedal-interface axis-group-interface side-position-interface spanner-interface)))) diff --git a/scm/define-translator-properties.scm b/scm/define-translator-properties.scm index 3f11acf9d6..af3b54b492 100644 --- a/scm/define-translator-properties.scm +++ b/scm/define-translator-properties.scm @@ -377,10 +377,6 @@ Description of scripts. This is used by Script_engraver for typesetting note-sup "If a multimeasure rest takes less than this number of measures, no number is printed. ") -(translator-property-description 'scriptHorizontal boolean? " Put -scripts left or right of note heads. Support for this is limited. -Accidentals will collide with scripts. -") (translator-property-description 'skipBars boolean? "If set to true, then skip the empty bars that are produced by multimeasure notes and rests. These bars will not appear on the printed output. If not set (the