X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Finclude%2Fpointer-group-interface.hh;h=26ff640610a187ada8b3bd1125e4466ac53b09fd;hb=ed3e5abd8003297e02e3f90dc8755e33a6619135;hp=217bc4aaf1aebdae78f13ed33a68a8d5c54371bf;hpb=108cf0e8c08c8e15e2a800feb161cfad9057daa8;p=lilypond.git diff --git a/lily/include/pointer-group-interface.hh b/lily/include/pointer-group-interface.hh index 217bc4aaf1..26ff640610 100644 --- a/lily/include/pointer-group-interface.hh +++ b/lily/include/pointer-group-interface.hh @@ -1,15 +1,26 @@ /* - pointer-group-interface.hh -- declare Pointer_group_interface + This file is part of LilyPond, the GNU music typesetter. - source file of the GNU LilyPond music typesetter + Copyright (C) 2005--2015 Han-Wen Nienhuys - (c) 2005 Han-Wen Nienhuys + LilyPond is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + LilyPond is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with LilyPond. If not, see . */ #ifndef POINTER_GROUP_INTERFACE_HH #define POINTER_GROUP_INTERFACE_HH -#include "parray.hh" +#include "std-vector.hh" #include "lily-proto.hh" #include "lily-guile.hh" @@ -19,10 +30,14 @@ public: static int count (Grob *, SCM); static void add_grob (Grob *, SCM nm, Grob *e); static void add_grob (Grob *, SCM nm, SCM x); + static void add_unordered_grob (Grob *, SCM nm, Grob *); + static void set_ordered (Grob *, SCM, bool); + static Grob_array *get_grob_array (Grob *, SCM); + static Grob *find_grob (Grob *, SCM, bool (*pred) (Grob *)); }; -Link_array const &internal_extract_grob_array (Grob const *elt, SCM symbol); -Link_array internal_extract_item_array (Grob const *elt, SCM symbol); +vector const &internal_extract_grob_array (Grob const *elt, SCM symbol); +vector internal_extract_item_array (Grob const *elt, SCM symbol); #define extract_grob_array(x, prop) internal_extract_grob_array (x, ly_symbol2scm (prop)) #define extract_item_array(x, prop) internal_extract_item_array (x, ly_symbol2scm (prop)) @@ -31,10 +46,10 @@ Link_array internal_extract_item_array (Grob const *elt, SCM symbol); This is dubious coding style, but lets not risk that we change the representation of grob sets again. */ -#define extract_grob_set(grob, prop, set) \ - Link_array const &set (internal_extract_grob_array (grob, ly_symbol2scm (prop))) -#define extract_item_set(grob, prop, set) \ - Link_array set (internal_extract_item_array (grob, ly_symbol2scm (prop))) +#define extract_grob_set(grob, prop, set) \ + vector const &set (internal_extract_grob_array (grob, ly_symbol2scm (prop))) +#define extract_item_set(grob, prop, set) \ + vector set (internal_extract_item_array (grob, ly_symbol2scm (prop))) #endif /* POINTER_GROUP_INTERFACE_HH */