Several days ago started to develop Redkite – a small GUI toolkit that target of which is to be suitable to develop GUI plugins that will be loaded as shared libraries into other GUI applications. First demand is audio plugins for music production. The common GUI toolkits are not suitable for this for many serious reasons.
I have developed the main concept, the parent-child ownership tree, or so-called Chain of Responsibility pattern, and smart pointers are not very suitable for this, the resulted interface gives a more complex code for the end user in comparison with raw pointers, that’s why Qt still keeps the raw pointers for this too. Smart pointers are used for the rest of the code. Implemented eventloop and events processing, also, implemented the so-called Pimpl Pattern in order to provide an interface that keeps the ABI compatibility. At this time the toolkit can process events from X Windows System. Added cmake build system and can build the library as static and some standalone examples. Also, used Redkite in LV2 for Geonkick in the branch redkite, and now I can see RkWidget that is shown buy the host, and it also captures events.
The toolkit make only a single connection to X Window system server, that is passed down to children tree.
What I’ll do is to cleanup, move code around, and make look better Pimpl Pattern, and hide from the user some internals if they are exposed. Than probably the private implementation for Win API for windows will happen… curious to see Redkite running on Windows. Than I’ll start to develop first toolkit widgets like buttons, check-boxes, labels, sliders etc. The target is to develop enough widgets in order to replaces all those I have now for Geonkick. Probably first there will be needed for kind of a Pinter class to be developed that will use OpenGL… but I need to document me better on this to see what is better taking in account also cross-platform.