X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Finclude%2Fpointer-group-interface.hh;h=26ff640610a187ada8b3bd1125e4466ac53b09fd;hb=47db9a3883d726ca53e2133a3b2298f78dd6a32e;hp=0565b83c1f568cdbad9d9cccf55b44a4b71c7aa7;hpb=5600add5833cadc921b9be48b08edf8a74f44d01;p=lilypond.git diff --git a/lily/include/pointer-group-interface.hh b/lily/include/pointer-group-interface.hh index 0565b83c1f..26ff640610 100644 --- a/lily/include/pointer-group-interface.hh +++ b/lily/include/pointer-group-interface.hh @@ -1,45 +1,55 @@ /* - 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" - struct Pointer_group_interface { 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); - -#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)) +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)) /* 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 */