richmond62 wrote: ↑Mon Jul 15, 2024 5:55 am
As LCB can, at best, be described as a half-finished, largely undocumented thing I wonder how valuable keeping it is . . .
1. Maybe it should be 'completed' (what ever that really means).
2. Maybe a "Watch Out!" notice should be attached to it so that xTalk programmers do not lose an awful lot of time fossicking around down a dark rabbit hole.
3. Maybe it should be 'buried' to such an extent that although it is still 'there' it is inaccessible to end-users.
Certainly if OXT is to retain LCB it needs to be documented in such a way that end-users can learn how to use it just as quickly as one can learn xTalk.
I wouldn't say it's only
half finished, rather that it could be expanded on significantly.
There's also the externals interface which is much more old way of adding capabilities, and far less user freindly as you need to code them in C++ and compile them with Xcode, Visual Studio, etc.
Builder documentation could be significantly better, and much more beginner friendly. There is a guide in 'guides' tab of the Dictionary that has a very basic walkthrough of building simple 'Pink Circle' widget.
I do have a folder of stacks collected that are attempts by various community members (and some quick tools I made for myself) that can make extension builder easier. I was recently going through this folder and realized that Hermann Hoch made a very useful stack for setting up widget properties and assigning different Property Inspector editors to those properties, which is something that can be a little bit tedious if you have a lot of properties to assign editors for. I'll try to remember to upload it here later tonight.
I do like the idea of making a sort of extension building mini-IDE, that can produce at least basic widgets with some click-to-add functionality. I think that sort of instant sample code is needed because widgets aren't like other objects in that they don't have any functionality at all, not even any real visual representation, unless you add code to draw something.
The foreign function interface has a few things that are a bit tricky to use as well. Like declaring a 'struct', which would be a 'foreign type declaration', is tricky in a way that's similar to binaryEncode/binaryDecode using a string of characters where each char represents a byte-chunk type (ie. unsigned integer, float, natural float, etc.)
There is tutorials around and open-source sample code to learn from. All of the included widgets in the IDE come with their source code. You might want to start with a very basic example like 'Pink Circle' widget. I'm happy to answer any questions that I'm able to if anyone gets stuck on something in particular.