GPU Accelerated C++ User Interface, with WYSIWYG developing tools, XML supports, built-in data binding and MVVM features.
Read the LICENSE first.
- The release of the GacUI project is put in vczh-libraries/Release.
- DO NOT download source code from this repo if you are not intended to create pull request. This is not for end users.
For Home Page: click here
For Gaclib: click here
For GacUI: click here
gaclib.net is a mirror to github pages above.
- The Tutorial shows how to start using this marvelous GUI library.
- The Demos section shows you all demos using this GUI library.
Using this library requires you to use C++ source files directly in
- The Release folder for Vlpp, Workflow or GacUI.
- The GacGen.exe if you prefer to use XML to build your UI.
All other files are for library development only.
This GUI library provides the following features:
- Develop your GUI using pure C++, Workflow script, XML or even JavaScript (under construction).
- Cross-platform abilities.
- for Windows: Release repo
- for Linux: XGac repo (beta release)
- for macOS: iGac repo (beta release)
- for running in Browser using WASM: (2.0)
- Rich control library. Container controls supports MVC and virtual list mode.
- Control template system. You can write your own.
- GPU acceleration.
- XML resource supports.
- You can use the provided GacGen.exe to generate multiple XML files with binary resources (images) into a compressed binary format.
- This program will also generate C++ code behind for you. You can fill event handlers (but we suggest you use MVVM and Data Binding instead) in generated C++ files.
- If you update your UI, GacGen.exe will merge your modification in C++ code and modification in XML together to generate new C++ code behind. Your update will still exist.
- NOTE: You will see a very obvious mark
USERIMPL(/* ... */)
in the generated code. Here is where you want to add your code. All your modification outside of these places will be discarded on the next GacGen.exe run.
- NOTE: You will see a very obvious mark
- MVVM and Data Binding.
- You can define interfaces that required to build your own MVVM pattern in XML and GacGen.exe will generate the C++ interface declaration for you.
- You can also use Workflow expressions in Data Binding and statements in event handlers (instead of writing C++ code in code behind).
https://gankra.github.io/blah/text-hates-you/
https://lord.io/text-editing-hates-you-too/