]> git.donarmstrong.com Git - lilypond.git/blob - lily/pointer-group-interface.cc
release: 1.3.55
[lilypond.git] / lily / pointer-group-interface.cc
1 /*   
2   group-interface.cc --  implement Pointer_group_interface
3   
4   source file of the GNU LilyPond music typesetter
5   
6   (c) 1999--2000 Han-Wen Nienhuys <hanwen@cs.uu.nl>
7   
8  */
9 #include "group-interface.hh"
10 #include "score-element.hh"
11
12 Pointer_group_interface::Pointer_group_interface (Score_element const* e)
13 {
14   elt_l_ = (Score_element*)e;
15   name_ = "elements";
16 }
17
18
19 Pointer_group_interface::Pointer_group_interface (Score_element const *e, String s)
20 {
21   elt_l_ =(Score_element*)e;
22   name_ = s;
23
24 bool
25 Pointer_group_interface::has_interface_b () 
26 {
27   SCM el = elt_l_->get_elt_pointer (name_.ch_C());
28
29   return el == SCM_EOL || gh_pair_p (el);
30 }
31
32
33 void
34 Pointer_group_interface::add_element (Score_element*p) 
35 {
36   elt_l_->set_elt_pointer (name_.ch_C(),
37                            gh_cons (p->self_scm_,
38                                     elt_l_->get_elt_pointer (name_.ch_C())));
39 }
40
41 int
42 Pointer_group_interface::count ()
43 {
44   return scm_ilength (elt_l_->get_elt_pointer (name_.ch_C()));
45 }
46
47 void
48 Pointer_group_interface::set_interface ()
49 {
50   if (!has_interface_b ())
51     {
52       elt_l_->set_elt_pointer (name_.ch_C(), SCM_EOL);
53     }
54
55