Improved vanilla API compatibility
This fixes some glitches in our API to improve compatibility with vanilla. Specifically:
-
Added the missing obj_findsignalscalar declaration to m_imp.h.
-
Purr Data's glist_grab function has an extra argument, so I renamed it to glist_grabx and provided a vanilla-compatible glist_grab function that can be used by bundled and 3rd party externals. There are precisely two instances in g_numbox.c and g_text.c where the extra argument is actually needed, these use glist_grabx now. While I was at it, I also fixed a bug in g_numbox.c related to glist_grabx and slashed some gcc warnings in src/pd.
-
I also removed some public class definitions from g_canvas.h which might clash with 3rd party externals (ELSE, in particular). Checking for these classes is all the functionality needed across the internals, so I provided suitable predicate functions instead.
With this, I can now build Alexandre's ELSE against Purr Data. Here's a screenshot which shows one of ELSE's help patches purring happily.
So in principle adding ELSE to purr-data/externals as a submodule and building it in externals/Makefile will be as easy as pie now. I can submit another MR for that if wanted. But there still are two roadblocks on that avenue:
- There's the legacy gui stuff (lots of it) in ELSE that needs to be ported to nw.js.
- ELSE uses vanilla's new listbox in some of the help patches, so it would be good have that ported first. hint
🏆