Hey,
i wanted to make a library out of this part of D3hex, and i already started working on a newer docking gadget that is extendable so that it could work on linux and macOS, too. But i haven't got that finished, last time i worked on it was in 2017.
Here is a version i just extracted from D3hex. Also i added a really simple example:
https://www.dropbox.com/s/n0t9695ro7o3k ... r.zip?dl=0 (Unfortunately i can't upload it to the forum, even though it's just 53kB)
The API is similar to the MDI gadget. So if you have code that already works with the MDI gadget, it's really easy to swap it out with my docking/workspace gadget. It mostly works fine, but there are some limitations:
- Only windows support
- No storing and restoring of docked window arrangements/positions/sizes
- It's not possible to dock windows outside of the docking gadget
- No static containers(that you can't undock/resize/move)
- When you switch the window, you may have to set the previous active dockable window to active
- Tabulator works differently compared to the MDI gadet. That's because all docked windows are basically in the same big window
I don't really know of many other library that does offer something similar. It's hard to find even for other languages/UI libraries. There is one really well made docking/workspace gadget for QT (Qt-Advanced-Docking-System). But most other libraries are either limited in some ways (e.g. can only arrange widgets around a main gadget) or cost some bucks. For purebasic or even pure WinAPI windows, there is hardly anything to find.