What will it do?
It will allow faster development of GPL2+ applications that generally do
similar things that pcb-rnd, but are not necessarily with PCB-related:
- offer the same infra with actions and fungw (potentially with scripting)
- offer the same multiple-HID GUI system, with configurable menus and DAD
- the GUI has the menu, the central drawing/viewing/render area and the command prompt, everything else is up to the user
What is included?
- the fungw based action system
- the plugin system
- the conf system (without conf_core)
- generic types (pcb_coord_t included)
- the HID infrastructure, including DAD
- dynamic menu system
- the color system
- the event system?
- the error reporting/logging system
- most of the compatibility layer (misc_util, compat_*, safe_fs)
- pcb-printf
- a bunch of the minilibs (dependency of all the above): lihata, genvector, genregex, genht
What are the benefits of using it?
- code reuse on the GUI and sophisticated UI/conf/action infrastructure
- support for multiple GUI toolkits (HIDs)
- future GUI HIDs appearing in pcb-rnd will be automatically available for other users
- maybe support for exporters (e.g. png, ps)?
- bonus for coralEDA apps: similar look&feel?
What are the drawbacks of using it?
- the license is GPL2+, the user application links to it, so it needs to have the same license
- the infrastructure is generic, but may be too heavy for a simple application
- steep learning curve
- at the moment microsoft windows is not supported by any of the GUIs