WonderGUI is a Graphical User Interface Toolkit written in C++. Just like other, GUI toolkits such as Qt, GTK, MFC, Swing etc it provides a user interface for your program with buttons, checkboxes, menus etc.
What makes WonderGUI different from other GUI toolkits is that it doesn't have a standard look and feel, instead WonderGUI is made to bring your own unique user interface to life with the look and feel that you design.
WonderGUI is also built for easy integration into an existing code base. It doesn’t run your main loop, initialize your application window or assume to be the only code drawing in your window. Instead, you tell WonderGUI about mouse and keyboard events and the screen regions where widgets should be redrawn.
This makes WonderGUI an excellent toolkit for games and media applications.
Customizable look and feel
The look and feel of WonderGUI is customizable way beyond your standard GUI toolkit. All widgets can be skinned individually using bitmaps that can have borders and transparency. These are stretched and tiled to fit the geometry of the widgets following some simple rules.
Also, the layout engine provides the flexibility needed to freely place widgets on the screen in an intuitive and efficient way. Transparency and various blend effects are supported as standard.
Easy integration
WonderGUI is easy to integrate into your existing code base. At most you will need to overload three simple classes and add some code to forward mouse and keyboard events to WonderGUI. Add another hundred lines of code for some basic initialization (load fonts to use, define graphics blocks to be used for widgets etc) plus a few API-calls for your main loop and you are ready to start adding fully functional widgets to your program.
If you are using OpenGL, Metal, SDL or pure software rendering it will be even easier since all needed classes and a lot of useful code snippets are provided in the package.
High performance graphics
WonderGUI doesn’t use any advanced or slow drawing primitives. Everything is drawn using a few simple drawing primitives and bitmaps that are scaled, tiled and blended onto the screen. As long as your graphics backend can do fast, rectangular 2D-blits you will get great performance.
WonderGUI also works hard to avoid unnecessary redraws of areas that are covered by other opaque objects. This is especially helpful on slower hardware and systems where only software rendering is available.
Flexible licensing
WonderGUI is available for commercial developers, hobby developers and open source developers under different licenses, providing affordable licensing with a support level to match for all interested parties. Discounts for batch licensing multiple products are available. Open source developers can use WonderGUI for free under the terms of the GPL.
Licensing applies to programs that are to be released or deployed within an organization. There is no need for a license to develop a product as long as the appropriate license is obtained before the program is released/deployed.
Under development
Although development of WonderGUI started more than 20 years ago and the toolkit has been used in commercial high-profile projects for more than 14 years, it is still a work in progress. Bugs are present, some functionality is missing, documentation is very limited and parts of the API are subject to change.
Currently WonderGUI is recommended for developers who feel that they can get by with the limited documentation by reading the source code and provided examples.