]> git.donarmstrong.com Git - lilypond.git/commitdiff
patch::: 1.3.54.hwn2
authorHan-Wen Nienhuys <hanwen@xs4all.nl>
Thu, 25 May 2000 23:15:04 +0000 (01:15 +0200)
committerHan-Wen Nienhuys <hanwen@xs4all.nl>
Thu, 25 May 2000 23:15:04 +0000 (01:15 +0200)
* Experimental property collapse for clef and staff-symbol.
---

Generated by hanwen@cs.uu.nl,
From = lilypond-1.3.54.hwn1, To = lilypond-1.3.54.hwn2

usage

    cd lilypond-source-dir; patch -E -p1 < lilypond-1.3.54.hwn2.diff

Patches do not contain automatically generated files
or (urg) empty directories,
i.e., you should rerun autoconf, configure

29 files changed:
CHANGES
VERSION
lily/align-note-column-engraver.cc
lily/bar-engraver.cc
lily/bar-number-engraver.cc
lily/bar.cc
lily/clef-engraver.cc
lily/collision.cc
lily/grace-engraver-group.cc
lily/include/paper-column.hh
lily/include/slur-engraver.hh
lily/item.cc
lily/key-engraver.cc
lily/key-item.cc
lily/line-of-score.cc
lily/mark-engraver.cc
lily/paper-column.cc
lily/score-element.cc
lily/score-engraver.cc
lily/side-position-interface.cc
lily/slur-engraver.cc
lily/slur.cc
lily/span-bar-engraver.cc
lily/staff-symbol-engraver.cc
lily/staff-symbol.cc
lily/time-signature-engraver.cc
lily/time-signature.cc
ly/engraver.ly
ly/params.ly

diff --git a/CHANGES b/CHANGES
index 4f557042f36445e84a40fe2d26f4667022c58b31..8eff3a8cedecc0ac6ef6404b44d3f66b3ef07dd8 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -1,4 +1,12 @@
---- ../lilypond-1.3.54/CHANGES Thu May 25 00:20:46 2000
+--- ../lilypond-1.3.54.hwn1/CHANGES    Thu May 25 19:52:28 2000
+++ b/CHANGES   Fri May 26 01:15:04 2000
+@@ -1,5 +1,4 @@
+-1.3.1.3.54.hwn1
+-===========
+* Experimental property collapse for clef and staff-symbol.
+ * Massive search replace patch: store pointers and properties
+ separately, in preparation of property collapse.--- ../lilypond-1.3.54/CHANGES        Thu May 25 00:20:46 2000
 ++ b/CHANGES   Thu May 25 23:22:02 2000
 @@ -1,3 +1,11 @@
 1.3.54.jcn1
diff --git a/VERSION b/VERSION
index 4e3376e8bb72ee0a5413f9c4500c3edb7896f457..620725e0e783bc99eb71486a5c435c2943aba2dc 100644 (file)
--- a/VERSION
+++ b/VERSION
@@ -2,7 +2,7 @@ PACKAGE_NAME=LilyPond
 MAJOR_VERSION=1
 MINOR_VERSION=3
 PATCH_LEVEL=54
-MY_PATCH_LEVEL=jcn1
+MY_PATCH_LEVEL=hwn2
 
 # use the above to send patches: MY_PATCH_LEVEL is always empty for a
 # released version.
index dff753effc34512b72a9f964108f28cf0da6ba4e..9bdd9a82408edb8794aa84078910f7556b73ed18 100644 (file)
@@ -47,7 +47,8 @@ Align_note_column_engraver::do_creation_processing ()
 {
   align_item_p_ = new Grace_align_item;
   Side_position_interface (align_item_p_).set_axis (X_AXIS);
-  Side_position_interface (align_item_p_).set_direction (LEFT);  
+  Side_position_interface (align_item_p_).set_direction (LEFT);
+  
   // needed  for setting font size.
   announce_element (Score_element_info (align_item_p_, 0));
 }
index 2a8c2ae66d306e42f1bca3f29fffed08d01714c7..a70b89db352289ecb2c0d6b22417b4ead155e1b6 100644 (file)
@@ -29,8 +29,8 @@ Bar_engraver::create_bar ()
   if (!bar_p_)
     {
       bar_p_ = new Staff_bar;
-      bar_p_->set_elt_property ("break-align-symbol", ly_symbol2scm ("Staff_bar"));
-
+      bar_p_->property_alist_ = get_property ("basicBarlineProperties");
+      
       // urg: "" != empty...
       /*
        TODO: use symbol.
index a9d39a62f6c1f8c2c57c4bb1438355b2a24ba664..926bc0b50a6013192305c28fb3675f5d658e2b69 100644 (file)
@@ -98,7 +98,7 @@ Bar_number_engraver::do_pre_move_processing ()
 {
   if (text_p_)
     {
-      text_p_->set_elt_pointer ("side-support", staffs_);
+      text_p_->set_elt_pointer ("side-support-elements", staffs_);
       typeset_element (text_p_);
       text_p_ =0;
     }
index 99f65c026ecabd64f111efc1d4efdeed0ca5a658..3b5cf5fea0851cac3feb858b66b0f26972ad3431 100644 (file)
@@ -20,7 +20,6 @@
 
 Bar::Bar ()
 {
-  set_elt_property ("breakable", SCM_BOOL_T);
 }
 
 
index 7fff19244c95730c985489eba934ba9b844bedc0..aa7291d7c7f608ab76faa7d9358f474e49a00787 100644 (file)
@@ -49,11 +49,17 @@ public:
   SCM clef_glyph_;             // no need for protection. Always referenced somewhere else.
    
   Clef_engraver();
+
+  SCM basic_properties_;
+  Protected_scm current_settings_;
 };
 
 
 Clef_engraver::Clef_engraver()
 {
+  current_settings_ = SCM_EOL;
+  basic_properties_ = SCM_EOL;
+  
   clef_glyph_ = SCM_EOL;
   clef_p_ = 0;
   clef_req_l_ = 0;
@@ -101,6 +107,14 @@ Clef_engraver::set_type (String s)
     }
 
   c0_position_i_ -= (int) octave_dir_ * 7;
+
+
+  current_settings_ = gh_cons (gh_cons (ly_symbol2scm ("glyph"), clef_glyph_), basic_properties_);
+  current_settings_ =
+    gh_cons (gh_cons (ly_symbol2scm ("c0-position"),
+                     gh_int2scm (c0_position_i_)),
+            current_settings_);
+  
   return true;
 }
 
@@ -138,6 +152,8 @@ Clef_engraver::acknowledge_element (Score_element_info info)
 void
 Clef_engraver::do_creation_processing()
 {
+  basic_properties_ = get_property ("basicClefItemProperties");
+  
   SCM def = get_property ("defaultClef");
   if (gh_string_p (def))
     {
@@ -169,8 +185,7 @@ Clef_engraver::create_clef()
   if (!clef_p_)
     {
       Clef_item *c= new Clef_item;
-      c->set_elt_property ("breakable", SCM_BOOL_T);
-      c->set_elt_property ("break-align-symbol", ly_symbol2scm ("Clef_item"));
+      c-> property_alist_ = current_settings_;
       announce_element (Score_element_info (c, clef_req_l_));
 
       Staff_symbol_referencer_interface si(c);
@@ -217,20 +232,20 @@ Clef_engraver::do_pre_move_processing()
 {
   if (clef_p_)
     {
-      SCM vis;
-      if(to_boolean (clef_p_->remove_elt_property("non-default")))
+      SCM vis = 0; 
+      if(to_boolean (clef_p_->get_elt_property("non-default")))
        {
          vis = ly_symbol2scm ("all-visible");
+         vis = scm_eval (vis);
        }
-      else
-       vis = ly_symbol2scm ("begin-of-line-visible");
 
-      vis = scm_eval (vis);
+      if (vis)
+       {
+         clef_p_->set_elt_property("visibility-lambda", vis);
+         if (octavate_p_)
+           octavate_p_->set_elt_property("visibility-lambda", vis);
+       }
       
-      clef_p_->set_elt_property("visibility-lambda", vis);
-      if (octavate_p_)
-       octavate_p_->set_elt_property("visibility-lambda", vis);
-
       typeset_element (clef_p_);
       clef_p_ =0;
 
index 81de09987f31fedb0048aea0eb726dbd855f8044..b500fc889653dfe4807d3ff2fc8a58f848e72feb 100644 (file)
@@ -95,7 +95,7 @@ Collision::automatic_shift ()
       for (int i=0; i < clashes.size (); i++)
        {
          SCM sh
-           = clashes[i]->remove_elt_property ("horizontal-shift");
+           = clashes[i]->get_elt_property ("horizontal-shift");
 
          if (gh_number_p (sh))
            shift.push (gh_scm2int (sh));
index 91744ff657dc4d6dc0d977d04242df6c5965940a..f7b66a62c3f6bf30ae9f9ec5d0e77b83d0b774f3 100644 (file)
@@ -6,9 +6,9 @@
   (c) 1999--2000 Han-Wen Nienhuys <hanwen@cs.uu.nl>
   
  */
+
 #include "grace-engraver-group.hh"
 #include "lily-guile.hh"
-
 #include "score-element.hh"
 #include "musical-request.hh"
 
@@ -23,7 +23,7 @@ void
 Grace_engraver_group::finish ()
 {
   calling_self_b_ = true;
-  removal_processing ();       // ugr. We'd want to have this done by our parents.g
+  removal_processing ();       // ugr. We'd want to have this done by our parents.
   for (int i=0; i < announce_to_top_.size (); i++)
     {
       Engraver::announce_element (announce_to_top_[i]);
index 8bf231d3f49745ccad5ff0b5dcc896004ea3b574..5ef166a3bac27d386c7ed6a34e3c1c422c24ae08 100644 (file)
@@ -62,7 +62,7 @@ public:
   Moment when_mom ()const;
 
   bool musical_b () const;
-
+  bool used_b () const;
   void set_rank (int);
 private:
     
index f639783421bc095a6ba6cf8f997cec2277ece4d0..71a84a21bcc373a67cbb0f1c80b0c2313f91515f 100644 (file)
@@ -8,26 +8,6 @@
 #ifndef SLURGRAV_HH
 #define SLURGRAV_HH
 
-#include "engraver.hh"
 
-class Slur_engraver :public Engraver {
-  Link_array<Span_req> requests_arr_;
-  Link_array<Span_req> new_slur_req_l_arr_;
-  Link_array<Slur> slur_l_stack_;
-  Link_array<Slur> end_slur_l_arr_;
-
-  void set_melisma (bool);
-protected:
-  virtual bool do_try_music (Music*);
-  virtual void do_process_music();
-  virtual void acknowledge_element (Score_element_info);
-  virtual void do_pre_move_processing();
-  virtual void do_post_move_processing();
-  virtual void do_removal_processing ();
-
-public:
-  VIRTUAL_COPY_CONS(Translator);
-  
-};
 
 #endif // SLURGRAV_HH
index feab9823ef1de126c42eefdc94fc98698e798573..61c0a28f8e99fa11777ce726b30cc89e68f203b4 100644 (file)
@@ -137,9 +137,6 @@ Item::handle_prebroken_dependencies ()
 {
   if (original_l_)
     {
-      property_alist_
-       = handle_broken_smobs (original_l_->property_alist_,
-                              gh_int2scm (break_status_dir ()));
       pointer_alist_
        = handle_broken_smobs (original_l_->pointer_alist_,
                               gh_int2scm (break_status_dir ()));
@@ -149,7 +146,7 @@ Item::handle_prebroken_dependencies ()
     Can't do this earlier, because try_visibility_lambda () might set
     the elt property transparent, which would then be copied.
   */
-  SCM vis = remove_elt_property ("visibility-lambda");
+  SCM vis = get_elt_property ("visibility-lambda");
   if (gh_procedure_p (vis))
     {
       SCM args = scm_listify (gh_int2scm (break_status_dir ()), SCM_UNDEFINED);
index e4b76f68d8145b5669ffb743e3fbf2f592e42825..85419c2a1901bd7aa2217fae55f1bcbcbd60e389 100644 (file)
@@ -34,13 +34,18 @@ Key_engraver::create_key (bool def)
   if (!item_p_) 
     {
       item_p_ = new Key_item;
+      item_p_->property_alist_ = get_property ("basicKeyProperties");
+
+      
+      item_p_->set_elt_property ("c0-position", gh_int2scm (0));
+      item_p_->set_elt_property ("old-accidentals", SCM_EOL);
+      item_p_->set_elt_property ("new-accidentals", SCM_EOL);
+
       Staff_symbol_referencer_interface st (item_p_);
       st.set_interface ();
-
       
-      item_p_->set_elt_property ("break-align-symbol", ly_symbol2scm ("Key_item")); 
-      item_p_->set_elt_property ("multi-octave",
-                                gh_bool2scm (key_.multi_octave_b_));
+      if (key_.multi_octave_b_)
+       item_p_->set_elt_property ("multi-octave", gh_bool2scm (key_.multi_octave_b_));
       
       announce_element (Score_element_info (item_p_,keyreq_l_));
       
@@ -68,8 +73,8 @@ Key_engraver::create_key (bool def)
 
 
   if (!def)
-      item_p_->set_elt_property ("visibility-lambda",
-                                scm_eval (ly_symbol2scm  ("all-visible")));
+    item_p_->set_elt_property ("visibility-lambda",
+                              scm_eval (ly_symbol2scm  ("all-visible")));
 
 }      
 
index 143d7da10302ac7ba0c0e4eeb66e83e1d3874913..2740a77a041440b88caa9da63d3893be274d9c84 100644 (file)
@@ -22,9 +22,6 @@ Key_item::Key_item ()
 {
   set_elt_property ("breakable", SCM_BOOL_T);
   set_elt_property ("c0-position", gh_int2scm (0));
-
-  set_elt_property ("old-accidentals", SCM_EOL);
-  set_elt_property ("new-accidentals", SCM_EOL);
 }
 
 void
index 721240dbf29ee5867fc7552e94d7b51eb1bc25e7..2f340aaf4f9098d6bf20f48e15f75066b45b3732 100644 (file)
@@ -194,9 +194,7 @@ Line_of_score::column_l_arr ()const
        seem empty. We need to retain breakable columns, in case
        someone forced a breakpoint.
       */
-      if (!bfound
-         || (acs[i]->get_elt_pointer ("elements") == SCM_EOL
-             && !brb))
+      if (!bfound || !acs[i]->used_b ())
        acs.del (i);
     }
   return acs;
index 0aa80fc411b24713b8c872c13fc433dcdb0f19cb..7f79b1d2103ab0ef9ccab32710c84dc1f8c15081 100644 (file)
@@ -95,7 +95,7 @@ Mark_engraver::do_pre_move_processing ()
 {
   if (text_p_)
     {
-      text_p_->set_elt_property ("side-support" , staffs_);
+      text_p_->set_elt_pointer("side-support-elements" , staffs_);
       typeset_element (text_p_);
       text_p_ =0;
     }
index d81fc89911109df902b462e0ec9c185e5a3a5cbf..a399a6aceae73c304a056d5a1d330895b4a057e9 100644 (file)
@@ -131,3 +131,8 @@ Paper_column::musical_b () const
   return s != Moment(0);
 }
 
+bool
+Paper_column::used_b ()const
+{
+  return gh_pair_p (get_elt_pointer ("elements")) ||  breakable_b ();
+}
index 65c5e496afecaed0c044d2d9551f09b5a2180c69..ec4221cad069f6ec8f56fac669c55624a12de7e8 100644 (file)
@@ -65,7 +65,7 @@ Score_element::Score_element (Score_element const&s)
   self_scm_ = SCM_EOL;
   used_b_ = true;
   original_l_ =(Score_element*) &s;
-  property_alist_ = SCM_EOL;
+  property_alist_ = s.property_alist_; 
   pointer_alist_ = SCM_EOL;
   
   status_i_ = s.status_i_;
@@ -122,7 +122,9 @@ Score_element::remove_elt_property (const char* key)
 {
   SCM s = get_elt_property (key); 
   SCM sym = ly_symbol2scm (key);
-  property_alist_ =  scm_assq_remove_x (property_alist_, sym);
+  
+  property_alist_ = gh_cons (gh_cons (sym, SCM_UNDEFINED), property_alist_);
+
   return s;
 }
 
@@ -130,7 +132,8 @@ void
 Score_element::set_elt_property (String k, SCM v)
 {
   SCM s = ly_symbol2scm (k.ch_C ());
-  property_alist_ = scm_assq_set_x (property_alist_, s, v);
+  // non destructive
+  property_alist_ = gh_cons (gh_cons (s, v),property_alist_);
 }
 
 void
@@ -404,10 +407,7 @@ Score_element::handle_broken_dependencies()
        {
          Score_element * sc = s->broken_into_l_arr_[i];
          Line_of_score * l = sc->line_l ();
-         s->broken_into_l_arr_[i]->property_alist_ =
-           handle_broken_smobs (property_alist_,
-                                l ? l->self_scm_ : SCM_UNDEFINED);
-         s->broken_into_l_arr_[i]->pointer_alist_ =
+         sc->pointer_alist_ =
            handle_broken_smobs (pointer_alist_,
                                 l ? l->self_scm_ : SCM_UNDEFINED);
        }
index 76500dcf6b75886027e70d487ef580ce7c4db78e..21b7350a83b10935903544d1a575846f541c1a04 100644 (file)
@@ -74,8 +74,6 @@ Score_engraver::do_removal_processing()
   typeset_all ();
 
 
-  if (musical_column_l_->linked_b ())
-    programming_error ("Last column in score should be non-musical");
   set_columns (0,0);
 }
 
@@ -183,10 +181,10 @@ Score_engraver::set_columns (Paper_column *new_command_l,
     {
       if (*current[i])
        {
-         if ((*current[i])->linked_b()) 
+         if ((*current[i])->used_b())
+         //      if ((*current[i])->linked_b())          
            {
              scoreline_l_->add_column ((*current[i]));
-             
            }
          else
            {
index 28773f479f27b7678c4bc49152c0b0e9a222e3f1..21f8d227dc82a85780690a367e9eb4aefdf00db6 100644 (file)
@@ -25,7 +25,7 @@ Side_position_interface::Side_position_interface (Score_element const *e)
 void
 Side_position_interface::add_support (Score_element*e)
 {
-  Pointer_group_interface (elt_l_, "side-support").add_element (e);
+  Pointer_group_interface (elt_l_, "side-support-elements").add_element (e);
 }
 
 
@@ -63,7 +63,7 @@ Side_position_interface::side_position (Score_element const *cme, Axis axis)
 {
   Score_element* me = (Score_element*)cme;
   Score_element *common = me->parent_l (axis);
-  SCM support = me->get_elt_pointer ("side-support");
+  SCM support = me->get_elt_pointer ("side-support-elements");
   for (SCM s = support; s != SCM_EOL; s = gh_cdr (s))
     {
       Score_element * e  = unsmob_element (gh_car (s));
@@ -228,8 +228,8 @@ void
 Side_position_interface::set_axis (Axis a)
 {
   // prop transparent ? 
-  if (elt_l_->get_elt_property ("side-support") == SCM_UNDEFINED)
-    elt_l_->set_elt_property ("side-support" ,SCM_EOL);
+  if (elt_l_->get_elt_pointer ("side-support-elements") == SCM_UNDEFINED)
+    elt_l_->set_elt_pointer ("side-support-elements" ,SCM_EOL);
 
   if (!elt_l_->has_offset_callback_b (aligned_side, a))
     elt_l_->add_offset_callback (aligned_side, a);
@@ -274,13 +274,13 @@ Side_position_interface::set_padding (Real p)
 bool
 Side_position_interface::has_interface_b () const
 {
-  return elt_l_->get_elt_property ("side-support") != SCM_UNDEFINED;
+  return elt_l_->get_elt_pointer ("side-support-elements") != SCM_UNDEFINED;
 }
 
 bool
 Side_position_interface::supported_b () const
 {
-  SCM s =elt_l_->get_elt_property  ("side-support"); 
+  SCM s =elt_l_->get_elt_pointer  ("side-support-elements"); 
   return s != SCM_UNDEFINED && s != SCM_EOL;
 }
 
index d6115db93c489b181280db3eeb3b17aad9f2723e..5d7114482de3f78055cd4f829d59ac8b08276ac9 100644 (file)
 #include "debug.hh"
 #include "note-column.hh"
 #include "translator-group.hh"
+#include "engraver.hh"
+
+class Slur_engraver :public Engraver {
+  Link_array<Span_req> requests_arr_;
+  Link_array<Span_req> new_slur_req_l_arr_;
+  Link_array<Slur> slur_l_stack_;
+  Link_array<Slur> end_slur_l_arr_;
+
+  void set_melisma (bool);
+protected:
+  virtual bool do_try_music (Music*);
+  virtual void do_process_music();
+  virtual void acknowledge_element (Score_element_info);
+  virtual void do_pre_move_processing();
+  virtual void do_post_move_processing();
+  virtual void do_removal_processing ();
+
+public:
+  VIRTUAL_COPY_CONS(Translator);
+  
+};
 
 bool
 Slur_engraver::do_try_music (Music *req_l)
index f0d82bf1b3a19bf3a167a1cffae6a3d4e3eb0b22..8439b6a35c0a70296a79e44a7f50ae710b45dfb2 100644 (file)
@@ -221,14 +221,14 @@ Slur::Slur ()
   dy_f_drul_[LEFT] = dy_f_drul_[RIGHT] = 0.0;
   dx_f_drul_[LEFT] = dx_f_drul_[RIGHT] = 0.0;
 
-  set_elt_property ("note-columns", SCM_EOL);
+  set_elt_pointer ("note-columns", SCM_EOL);
   set_elt_property ("control-points", SCM_EOL);
 }
 
 void
 Slur::add_column (Note_column*n)
 {
-  if (!gh_pair_p (n->get_elt_property ("note-heads")))
+  if (!gh_pair_p (n->get_elt_pointer ("note-heads")))
     warning (_ ("Putting slur over rest.  Ignoring."));
   else
     {
index 6b9db20f74142704b2a4e07193a918dc28bdc475..5a3e29b9685a12cdfbdd0131539a7055f44cb1cf 100644 (file)
@@ -43,7 +43,8 @@ Span_bar_engraver::Span_bar_engraver()
 Span_bar*
 Span_bar_engraver::get_span_bar_p() const
 {
-  return new Span_bar;
+  Span_bar * sp= new Span_bar;
+  return sp;
 }
 
 
@@ -59,22 +60,14 @@ Span_bar_engraver::acknowledge_element (Score_element_info i)
       if (bar_l_arr_.size() >= 2 && !spanbar_p_) 
        {
          spanbar_p_ = get_span_bar_p();
+         spanbar_p_-> property_alist_ = bar_l_arr_[0]->property_alist_;
          spanbar_p_->set_parent (bar_l_arr_[0], Y_AXIS);
          spanbar_p_->set_parent (bar_l_arr_[0], X_AXIS);
 
-         SCM v = bar_l_arr_[0]->get_elt_property ("visibility-lambda");
-         if (gh_procedure_p (v))
-           spanbar_p_->set_elt_property ("visibility-lambda",v);
-
-         spanbar_p_->set_parent (bar_l_arr_[0], X_AXIS);
          announce_element (Score_element_info (spanbar_p_,0));
-         if (!gh_string_p (spanbar_p_->get_elt_property ("glyph")))
-           spanbar_p_-> set_elt_property ("glyph",
-                                          bar_l_arr_[0]->get_elt_property ("glyph"));
        }
     }
 }
-
 void
 Span_bar_engraver::do_pre_move_processing()
 {
index 3baf35e3ef9e816d1994d8b90b94cb1a9af9aa7d..f749d7d007cc099987c738be3e2a7e31534781be 100644 (file)
@@ -48,6 +48,10 @@ Staff_symbol_engraver::do_creation_processing()
 {
   span_p_ = new Staff_symbol;
   span_p_->set_bound(LEFT,get_staff_info().command_pcol_l ());
+
+
+  // ugh, should do generic 
+  span_p_->property_alist_ = get_property ("staffSymbolBasicProperties");
   announce_element (Score_element_info (span_p_, 0));
 }
 
index 4419d8dc126ea043d2a587eb71e1fd070f75c6bc..d4b83618c3595675aa9f1d06396a8ee7d0831eb0 100644 (file)
@@ -60,5 +60,6 @@ Staff_symbol::line_count () const
 Real
 Staff_symbol::staff_space ()const
 {
-  return gh_scm2double (get_elt_property ("staff-space"));
+  return gh_scm2double (get_elt_property ("staff-space")) *
+    paper_l ()->get_var ("staffspace");
 }
index 6a4a1deed75fc85ea90c674c21db68529c493346..3c42d78d96b770d98a13a67a7787881f35cf4d27 100644 (file)
@@ -36,10 +36,10 @@ Time_signature_engraver::do_process_music()
   if (req)
     {
       time_signature_p_ = new Time_signature;
+      time_signature_p_->property_alist_ = get_property ("basicTimeSignatureProperties");
       time_signature_p_->set_elt_property ("fraction",
                                           gh_cons (gh_int2scm (req->beats_i_),
                                                    gh_int2scm (req->one_beat_i_))); 
-      time_signature_p_->set_elt_property ("break-align-symbol", ly_symbol2scm(  "Time_signature"));
     }
 
   
index 4a67538f35709194967b29e2136a6665a9905bae..6a24d2bc69175bfa6450e7bea6bcd041544d5dfb 100644 (file)
@@ -15,7 +15,7 @@
 
 Time_signature::Time_signature ()
 {
-  set_elt_property ("breakable", SCM_BOOL_T);
+
 }
 
 // ugh.!
index f52fb942b471dbf018b85fae66fce74dbfa34592..c60ee1a5104525f7cbfbf417e214b1aa81398948 100644 (file)
@@ -23,6 +23,31 @@ StaffContext=\translator {
 
        \consists "Repeat_engraver";
 
+       staffSymbolBasicProperties = #'(
+        (staff-space . 1.0 )
+        (line-count . 5 )
+        )
+        basicTimeSignatureProperties = #`(
+         (break-align-symbol . Time_signature)
+         (visibility-lambda . ,all-visible)
+         (breakable . #t)
+        )
+        basicBarlineProperties = #`(
+          (break-align-symbol . Staff_bar)
+          (visibility-lambda . `begin-of-line-invisible)
+          (breakable . #t)
+          )
+
+        basicKeyProperties = #`(
+         (break-align-symbol . Key_item)
+         (visibility-lambda . ,begin-of-line-visible)
+         (breakable . #t)
+         )      
+        basicClefItemProperties = #`(
+          (breakable . #t)
+          (break-align-symbol . Clef_item)
+          (visibility-lambda . ,begin-of-line-visible) 
+        )
 
        %  name, glyph id, c0 position
        supportedClefTypes = #'(
index cd799fdb76e1ee53f3298c02a31df2e23ea57e86..b31166dcd7e5c26fb8b6f007bbe4de415ad34c1b 100644 (file)
@@ -1,7 +1,6 @@
 % params.ly
 % generic paper parameters
 
-#'staff-height = \staffheight;
 
 paperfile = \papersize + ".ly";
 % paperfile = "a4.ly";
@@ -18,7 +17,6 @@ interline = \staffspace;
 % urg, need grace_ versions of these too?
 beam_thickness = 0.52 * (\staffspace - \stafflinethickness);
 
-#'beam-thickness = \beam_thickness;  %% UGR
 
 
 interbeam = (2.0 * \staffspace + \stafflinethickness - \beam_thickness) / 2.0;
@@ -70,19 +68,10 @@ arithmetic_multiplier = 0.9 * \quartwidth ;
 arithmetic_basicspace = 2.0;
 
 
-
-
-#'Stem_tremolo::beam-width = 1.5 * \quartwidth ; 
-
-#'Left_edge_item::visibility-lambda = #begin-of-line-visible
-
 % 
 % UGH; junk these!
 %
 
-#'Key_item::visibility-lambda = #begin-of-line-visible
-#'Breathing_sign::visibility-lambda = #begin-of-line-invisible
-
 % catch suspect beam slopes, set slope to zero if
 % outer stem is lengthened more than
 beam_lengthened = 0.2 * \staffspace;
@@ -278,12 +267,12 @@ Wordwrap =0.0;
 
 
 #'margin-shape = #'()
-
-
-% 
 #'Local_key_item::left-padding = #'0.2
 #'Local_key_item::right-padding = #'0.4
 
-#'Staff_symbol::staff-space = \staffspace ;
-#'Staff_symbol::line-count = #5
+#'staff-height = \staffheight;
+#'beam-thickness = \beam_thickness;  %% UGR
+#'Stem_tremolo::beam-width = 1.5 * \quartwidth ; 
 
+#'Breathing_sign::visibility-lambda = #begin-of-line-invisible
+#'Left_edge_item::visibility-lambda = #begin-of-line-visible